diff --git a/.gitignore b/.gitignore index f37da900d..7de048f27 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,18 @@ metagpt/roles/idea_agent.py # output folder output +# Step 76+ results live in output2 (user request: keep new runs separate from +# the crowded output/); the bare `output` rule above does not match it. +# Ignore the RESULTS but track the drivers -- otherwise the code that produced +# a paper number is unreviewable. Use `output2/*` (not `output2/`) so the +# negation works: git will not descend into an ignored directory. +layout_agent/output2/* +!layout_agent/output2/*.py +# RUN_METADATA.json is the reproducibility freeze record for a run: which +# commit, which model, which sample ids. Tiny, and worthless if not tracked. +!layout_agent/output2/*/ +layout_agent/output2/*/* +!layout_agent/output2/*/RUN_METADATA.json tmp.png .dependencies.json tests/metagpt/utils/file_repo_git diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..75676a443 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,120 @@ + +# User-visible execution protocol + +These rules are persistent project instructions and apply to every future session. + +## Explain before acting + +- Before starting tools or a long-running command, tell the user in plain language: + what is being run, why it is needed, whether it uses paid APIs, the expected + duration, and the exact condition that will stop or unblock the next step. +- Keep the user oriented. Every status update must say what is happening now and + what will happen next; do not expose only internal agent/reviewer mechanics. +- For a command expected to take more than two minutes, provide one start + checkpoint and then report only meaningful milestones, completion, failure, or + when the user asks. Do not spend Codex usage on repetitive heartbeat polling. + +## Conserve Codex usage + +- Use the minimum number of agents and review rounds needed for the risk. Do not + launch repeated implementation/review loops after the acceptance criteria pass. +- Prefer one implementation pass plus one focused verification pass. Add another + reviewer only for a concrete unresolved risk, not as a routine ritual. +- If the user asks to reduce usage, immediately stop nonessential agents, polling, + and commentary. Never interrupt a useful local process merely to inspect it. + +## Final-only handoff and Git persistence + +- Do not update `layout_agent/next_step.md` after individual commands, checks, + milestones, or intermediate discoveries. Keep intermediate state in the active + session instead of creating repeated handoff churn. +- Update `layout_agent/next_step.md` exactly once, immediately before handing + control back after execution completes, genuinely blocks, or reaches a paid + authorization boundary. That consolidated update must include the timestamp, + material commands and results, artifacts, paid/API cost, remaining work, and + safest resume command. +- After the consolidated handoff, run one proportionate final verification pass, + create one scoped commit containing only the task files and final handoff, and + push once. Do not create a second handoff-only commit merely to record the first + commit hash or push receipt; report those in the final response instead. +- Read-only answers that do not materially advance execution require no handoff, + commit, or push. +- Never include unrelated pre-existing dirty files. Never stash, reset, clean, or + overwrite user work to make a commit possible. +- Always report the branch, commit hash, push result, checks run, and any files + intentionally left uncommitted. If commit or push is blocked, state the exact + blocker instead of silently leaving changes local. + +## Cost and completion guardrails + +- Never run a paid API, LLM judge, or paid generation step without first stating + the exact call/token budget and receiving explicit paid-run authorization. +- A completion report must clearly list: what changed, what ran, the result and + artifact, remaining work, `next_step.md` status, and commit/push status. + + + +# Memory Context + +# [MetaGPT] recent context, 2026-07-12 3:14am GMT+8 + +Legend: 🎯session 🔴bugfix 🟣feature 🔄refactor ✅change 🔵discovery ⚖️decision +Format: ID TIME TYPE TITLE +Fetch details: get_observations([IDs]) | Search: mem-search skill + +Stats: 50 obs (20,187t read) | 1,752,582t work | 99% savings + +### Jul 12, 2026 +4988 2:26a 🟣 evaluate_a3_sega.py — Atomic RENAME_NOREPLACE Publication and Full Bundle Validation Before Write +4989 " 🟣 validate_evaluation_bundle() — Full v1 Sidecar Contract Enforcement in a3_sega_evaluator.py +4990 " 🟣 Matched Sample ID Enforcement and Code/Detector Rehash in evaluate_a3_sega.py +4996 2:28a 🔵 phase1_hardening Callback Pattern — Third Brief Signal at 18:26:25, Then Silent Again +4997 2:30a 🔴 Orchestrator Pre-Stages Re-Verification Round While phase1_hardening Still Running +4998 2:31a 🔄 saliency_basnet_isnet.py — Full Hardening: Snapshot Resolution, Identity Recording, Output Validation, Strict ISNet Identity +4999 " 🟣 evaluate_a3_sega.py — Pre-Publish Lineage Check Callback Added to _write_results +5000 " 🟣 test_sega_metrics.py Expanded — PKU Quirk Tests and Overlay Denominator Tests Added +5001 " ✅ Phase 1 Hardening Final State — 64 Tests Passing, All Checks Clean, Smoke-2 Confirmed at 02:28 CST +5002 2:32a 🔵 phase1_hardening Entered Another Silent Period — Completion Estimate Was Premature +5003 2:33a 🔵 new_plam.md A3 Task Audit — Phase 3 Remaining Items After Phase 1+2 Completion +5004 2:34a 🔵 Pipeline Enters Final Re-Verification Phase — Three Rapid Consecutive Completions at 18:33–18:34 +5005 2:36a 🟣 A3 SEGA Evaluator Phase 1 Hardening — Major Expansion to 1,157 Lines +5006 " 🟣 A3 SEGA Test Suite Expanded — 64 Tests Passing (Up from 42) +5007 " 🔵 BASNet + ISNet Detector Artifact Verification — Hashes and Session Identity Confirmed +5008 " ✅ next_step.md Updated — Formal N=100 Run Blocked Pending Independent Review +5009 2:37a 🔵 Orchestrator Retrying Identical followup_task to phase1_hardening — Subtask Not Yet Acknowledged +5010 " 🔵 new_plam.md A3 Task Audit — Phase 3 Remaining Items After Phase 1+2 Completion +5011 2:39a 🔵 phase1_hardening Sixth Callback at 18:38:28 — Still Active at 23-Minute Mark +5012 2:40a 🔵 phase1_hardening Silent Period Continues Past 25-Minute Total Runtime +5014 2:43a 🔵 phase1_hardening Seventh Callback at 18:41:55 — Orchestrator on ~100s Retry Loop +5015 " 🔵 A3 SEGA Phase 1 Pipeline Wall-Clock Cost Profile — 28+ Minutes for Hardening Alone +5016 2:44a 🔵 phase1_hardening Past 29-Minute Mark — Longest Agent Execution in A3 SEGA Pipeline +5018 2:46a 🔵 phase1_hardening Eighth Callback at 18:45:22 — Orchestrator Cycling Through Multiple Nudge Messages +5019 2:48a 🔵 Orchestrator Sent Fourth Distinct Escalation Payload to phase1_hardening at 18:48:33 +5020 2:52a 🔵 phase1_hardening Ninth Callback at 18:48:47 — 33+ Minutes Runtime, Still No Completion +5021 2:54a 🔵 Orchestrator Shortened Timeout Windows to 30s and Sent Fifth Escalation Payload at 38-Minute Mark +5023 " 🔵 phase1_hardening Silent for 6+ Minutes — Longest Quiet Period in Session +5024 2:55a 🔵 phase1_antipattern Final Report — No Blockers, 3 Non-Blocking Edge Cases, renameat2 and ISNet Fixes Confirmed +5025 " 🔵 phase1_final_quality Report — 4 P1 Blockers Prevent Phase 2 Unlock; 64/64 Tests Pass +5030 " 🔵 phase1_hardening Force-Interrupted After 40 Minutes — Orchestrator Issued interrupt_agent +5031 2:58a 🔵 Post-Interrupt Pivot — Orchestrator Re-Engaged All Three Audit Agents with New P1 Blocker Tasks +5032 " 🔵 new_plam.md A3 Task Audit — Phase 3 Has Three Remaining Items; Phase1_final_quality Reports 4 P1 Blockers +5033 3:00a 🔵 Post-Interrupt Re-Verification Phase Active — Split Wait Results Confirm Multiple Agents Running +5034 " 🔵 Phase 1 Final Gate Verification — 84 Tests Pass, Real Runtime Contract Valid, ISNet Artifact Hashes Confirmed On-Disk +5035 " 🔵 Post-Interrupt Audit Round In Progress — Awaiting list_agents for P1 Blocker Resolution Results +5036 " 🔵 Frozen Detector Artifact Hashes Confirmed — ISNet 178MB ONNX + BASNet Revision Pinned and Schema-Valid +5037 3:02a ⚖️ Phase 1 Declared Complete — Full 5-Phase A3 SEGA Evaluation Roadmap Established +5038 " 🟣 phase1_commit and phase1_sync Agents Spawned — Phase 1 Work Being Persisted to Git +5039 3:04a 🟣 Phase 2 Formal Evaluation Started — phase2_run Agent Spawned for T0/T2/T3 Zero-LLM Six-Axis Run +5040 " 🔵 new_plam.md A3 Task Audit — Phase 3 Has Three Remaining Items +5041 3:06a 🔵 phase2_run Agent Active and Responding — Formal Evaluation Execution Confirmed Started +5043 3:07a 🟣 A3 SEGA Phase 2 Real-Detector Smoke — Passed with Metric Values +5044 " 🟣 Formal A3 SEGA Relation N=100 Evaluation Launched — evaluation-id a3-relation-n100-t0-t2-t3-sega-v1 +5045 " 🔵 BASNet Safetensors Load — Non-Meta Parameter Warnings Are Cosmetic Only +5042 " 🔵 phase2_run In Silent Execution — Formal Evaluation Processing T0/T2/T3 Samples +5046 3:09a 🔵 phase2_run Callback Cadence Established — ~2-Minute Inter-Callback Intervals During Evaluation +5047 3:10a 🔵 Formal A3 SEGA N=100 Evaluation — Runtime Resource Profile and Write-at-End Architecture Confirmed +5048 3:11a 🔵 New wait_agent Outcome Observed — "Wait interrupted by new input" Indicates Concurrent Agent Activity +5049 3:12a 🔵 A3 SEGA Evaluator Process Profile — 56 Threads, Per-Sample File Open/Close, Stable Memory Growth + +Access 1753k tokens of past work via get_observations([IDs]) or mem-search skill. + diff --git a/README.md b/README.md index 080c02cd9..aff1dbf5d 100644 --- a/README.md +++ b/README.md @@ -1,168 +1,193 @@ +# AgentLayout -# MetaGPT: The Multi-Agent Framework +**Decomposing Content-Aware Layout Generation into Collaborative Agent Workflows**

-MetaGPT logo: Enable GPT to work in a software company, collaborating to tackle more complex tasks. +[ 繁體中文 ] +
+以 Multi-Agent Workflow 解決內容感知排版生成(Content-Aware Layout Generation)的碩士論文研究專案。

-

-[ En | -中 | -Fr | -日 ] -Assign different roles to GPTs to form a collaborative entity for complex tasks. -

- -

-License: MIT -Discord Follow -Twitter Follow -

+--- -

- -

+## 專案簡介 -## News +AgentLayout 研究的問題是:**在既有背景畫布上,根據自然語言 brief 與一組既有素材(image / text),決定每個元素的座標、大小、層次與視覺屬性**。 -🚀 Mar. 10, 2025: 🎉 [mgx.dev](https://mgx.dev/) is the #1 Product of the Week on @ProductHunt! 🏆 +排版本質上不是機率性的內容生成問題,而是同時結合語意理解、空間配置與設計約束的複雜決策過程。端對端模型在這類任務上普遍缺乏可控性(Controllability)、可驗證性(Verifiability)與可除錯性(Debuggability)。因此本研究將整個流程拆解為 Multi-Agent Workflow: -🚀 Mar.   4, 2025: 🎉 [mgx.dev](https://mgx.dev/) is the #1 Product of the Day on @ProductHunt! 🏆 +> **核心論點:內容感知排版是一個可分工、可觀測、可驗證、可逐步修正的系統問題,而非單純的生成問題。** -🚀 Feb. 19, 2025: Today we are officially launching our natural language programming product: [MGX (MetaGPT X)](https://mgx.dev/) - the world's first AI agent development team. More details on [Twitter](https://x.com/MetaGPT_/status/1892199535130329356). +本專案以 [MetaGPT](https://github.com/geekan/MetaGPT) multi-agent 框架為基礎開發,所有 AgentLayout 程式碼位於 `metagpt/ext/agentlayout/`,實驗文件與結果位於 `layout_agent/`。 -🚀 Feb. 17, 2025: We introduced two papers: [SPO](https://arxiv.org/pdf/2502.06855) and [AOT](https://arxiv.org/pdf/2502.12018), check the [code](examples)! +**任務 scope**:不包含背景生成、字型/裝飾合成、影像 inpainting(by-design,對齊 AesthetiQ / LayoutNUWA / PosterLLaVa 等同類 content-aware layout generation 研究)。 -🚀 Jan. 22, 2025: Our paper [AFlow: Automating Agentic Workflow Generation](https://openreview.net/forum?id=z5uVAKwmjf) accepted for **oral presentation (top 1.8%)** at ICLR 2025, **ranking #2** in the LLM-based Agent category. +--- -👉👉 [Earlier news](docs/NEWS.md) +## 系統架構(A3 Pipeline,現行版本) -## Software Company as Multi-Agent System +A3 是目前的主要架構,由 LLM Agent 與非 LLM 模組(CV / Python)分工組成——LLM 只負責語意理解與推理,幾何驗證與數值計算全部交給確定性模組。 -1. MetaGPT takes a **one line requirement** as input and outputs **user stories / competitive analysis / requirements / data structures / APIs / documents, etc.** -2. Internally, MetaGPT includes **product managers / architects / project managers / engineers.** It provides the entire process of a **software company along with carefully orchestrated SOPs.** - 1. `Code = SOP(Team)` is the core philosophy. We materialize SOP and apply it to teams composed of LLMs. - -![A software company consists of LLM-based roles](docs/resources/software_company_cd.jpeg) - -

Software Company Multi-Agent Schematic (Gradually Implementing)

+``` +Inputs:user brief + canvas + foreground assets(+ 背景圖) + │ + ▼ +Background Analyzer(CV,非 LLM) + saliency 偵測 → safe zones、主色盤、建議文字顏色 + │ + ▼ +Agent 1:Analyst(LLM,vision) + brief + assets contact sheet → Design Spec(語意結構化規格) + │ + ▼ +Agent 2:Asset Planner(LLM,T2 臂) + 素材語意關係推理 → Layout Tree(群組 + parent-child 層級) + │ + ▼ +Agent 3:Composition Director(LLM) + → 3 個 composition concepts(整體構圖方向) + │ + ▼ +Agent 4:Coordinate Mapper(LLM,每個 concept 各一次) + concept → 像素級座標(left/top/width/height/z-order) + │ + ▼ +Quality Checker(Python,非 LLM) + 幾何合法性 + 約束 + 可讀性規則驗證(22+ 條規則) + │ + ▼ +Renderer(Python + PIL,非 LLM) + → 3 張候選渲染圖 + │ + ▼ +Agent 5:Internal Judge(LLM,vision) + 比較 3 張候選 → 選出 Final Layout +``` -## Get Started +- **Loop 臂**:預設 L0(單向流程);L1-Gated(judge critic + 一次 revision)經 Gate C 實驗驗證 compliance 不足,未採用。 +- **Tree 臂**:T2(含 Asset Planner / Layout Tree)為主要配置,語意分組指標(SGC / TLC / PCA)與外部 baseline 比較均顯著優於無樹配置。 -### Installation +完整的 agent prompt 見 `layout_agent/AGENT_PROMPTS.md`,Quality Checker 規則見 `layout_agent/QUALITY_CHECKER_RULES.md`。 -> Ensure that Python 3.9 or later, but less than 3.12, is installed on your system. You can check this by using: `python --version`. -> You can use conda like this: `conda create -n metagpt python=3.9 && conda activate metagpt` +### 前一代架構(Refinement Loop Pipeline) -```bash -pip install --upgrade metagpt -# or `pip install --upgrade git+https://github.com/geekan/MetaGPT.git` -# or `git clone https://github.com/geekan/MetaGPT && cd MetaGPT && pip install --upgrade -e .` -``` +A3 之前的四-Agent 架構(Analyst / Asset Planner / Layout Generator / Aesthetic Judge + Refinement Loop)保留於 `metagpt/ext/agentlayout/pipeline.py`(`LayoutPipeline.run()`),架構圖見 `layout_agent/PIPELINE.md`,設計理念見 `layout_agent/README.md` 與 `layout_agent/README(new).md`。 -**Install [node](https://nodejs.org/en/download) and [pnpm](https://pnpm.io/installation#using-npm) before actual use.** +--- -For detailed installation guidance, please refer to [cli_install](https://docs.deepwisdom.ai/main/en/guide/get_started/installation.html#install-stable-version) - or [docker_install](https://docs.deepwisdom.ai/main/en/guide/get_started/installation.html#install-with-docker) +## 安裝 -### Configuration +> Python 需 3.9 以上、3.12 以下。建議使用 conda: +> `conda create -n meta python=3.9 && conda activate meta` -You can init the config of MetaGPT by running the following command, or manually create `~/.metagpt/config2.yaml` file: ```bash -# Check https://docs.deepwisdom.ai/main/en/guide/get_started/configuration.html for more details -metagpt --init-config # it will create ~/.metagpt/config2.yaml, just modify it to your needs +git clone && cd MetaGPT +pip install -e . ``` -You can configure `~/.metagpt/config2.yaml` according to the [example](https://github.com/geekan/MetaGPT/blob/main/config/config2.example.yaml) and [doc](https://docs.deepwisdom.ai/main/en/guide/get_started/configuration.html): +### LLM 設定 + +建立 `~/.metagpt/config2.yaml`(範本見 `config/config2.example.yaml`): ```yaml llm: - api_type: "openai" # or azure / ollama / groq etc. Check LLMType for more options - model: "gpt-4-turbo" # or gpt-3.5-turbo - base_url: "https://api.openai.com/v1" # or forward url / other llm url + api_type: "openai" # or azure / ollama / groq etc. + model: "gpt-5.4-mini-2026-03-17" # A3 各 stage 實際使用的模型(見 layout_agent/configs/) + base_url: "https://api.openai.com/v1" api_key: "YOUR_API_KEY" ``` -### Usage - -After installation, you can use MetaGPT at CLI +> 注意:換模型時需同步確認 `metagpt/provider/constant.py` 的 `MULTI_MODAL_MODELS` 是否包含該模型,否則 vision 輸入會靜默退化為純文字。 -```bash -metagpt "Create a 2048 game" # this will create a repo in ./workspace -``` +--- -or use it as library +## 使用方式 -```python -from metagpt.software_company import generate_repo -from metagpt.utils.project_repo import ProjectRepo +### A3 pipeline(現行) -repo: ProjectRepo = generate_repo("Create a 2048 game") # or ProjectRepo("") -print(repo) # it will print the repo structure with files +```bash +conda activate meta +python layout_agent/run_a3.py --help # run planner / 初始化 immutable run ``` -You can also use [Data Interpreter](https://github.com/geekan/MetaGPT/tree/main/examples/di) to write code: - -```python -import asyncio -from metagpt.roles.di.data_interpreter import DataInterpreter +批次實驗(Full-Crello batch)流程與 resume 機制見 `layout_agent/FULL_CRELLO_BATCH_PLAN.md`。 -async def main(): - di = DataInterpreter() - await di.run("Run data analysis on sklearn Iris dataset, include a plot") +### Demo -asyncio.run(main()) # or await main() in a jupyter notebook setting +```bash +python layout_agent/run_demo.py # 單一 sample 的端到端 demo ``` +完整的 pipeline 逐步輸出範例(背景分析 → Design Spec → Layout Tree → 3 個 concepts → 座標 → QC → 候選圖 → Judge 選擇),見 `layout_agent/output2/step98_a3_walkthrough/`。 -### QuickStart & Demo Video -- Try it on [MetaGPT Huggingface Space](https://huggingface.co/spaces/deepwisdom/MetaGPT-SoftwareCompany) -- [Matthew Berman: How To Install MetaGPT - Build A Startup With One Prompt!!](https://youtu.be/uT75J_KG_aY) -- [Official Demo Video](https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d) +--- -https://github.com/user-attachments/assets/888cb169-78c3-4a42-9d62-9d90ed3928c9 +## 資料集與評估 -## Tutorial +- **資料集**:[Crello](https://github.com/CyberAgentAILab/canvas-vae)(多元設計類型版面資料集;完整 test split N=1,897 已跑過)。PKU PosterLayout / CGL 已完成可行性評估但不對標(見 `layout_agent/PKU_FEASIBILITY.md`、`layout_agent/CGL_FEASIBILITY.md`)。 +- **評估指標**: + - **SEGA 6 指標**(Ali / Ove / Und_l / Und_s / Read / Occ)— `metagpt/ext/agentlayout/evaluation/sega_metrics.py`,對齊 audit 見 `layout_agent/METRIC_ALIGNMENT_AUDIT.md` + - **mIoU** — `metagpt/ext/agentlayout/evaluation/iou.py` + - **COLE 5 軸 pairwise win-rate**(MLLM judge,vs designer ground-truth) + - **語意分組指標**(SGC / TLC / PCA)— Layout Tree 語意結構評估 + - **外部 baseline**:Elem2Design(Relation 子集 head-to-head) +- **主要結果**:以 `layout_agent/result.md` 與 `layout_agent/CURRENT_EXPERIMENT_RESULTS.md` 為權威來源;實驗全紀錄見 `layout_agent/A3_EXPERIMENT_LOG.md` 與 `layout_agent/IMPLEMENTATION_LOG.md`。 -- 🗒 [Online Document](https://docs.deepwisdom.ai/main/en/) -- 💻 [Usage](https://docs.deepwisdom.ai/main/en/guide/get_started/quickstart.html) -- 🔎 [What can MetaGPT do?](https://docs.deepwisdom.ai/main/en/guide/get_started/introduction.html) -- 🛠 How to build your own agents? - - [MetaGPT Usage & Development Guide | Agent 101](https://docs.deepwisdom.ai/main/en/guide/tutorials/agent_101.html) - - [MetaGPT Usage & Development Guide | MultiAgent 101](https://docs.deepwisdom.ai/main/en/guide/tutorials/multi_agent_101.html) -- 🧑‍💻 Contribution - - [Develop Roadmap](docs/ROADMAP.md) -- 🔖 Use Cases - - [Data Interpreter](https://docs.deepwisdom.ai/main/en/guide/use_cases/agent/interpreter/intro.html) - - [Debate](https://docs.deepwisdom.ai/main/en/guide/use_cases/multi_agent/debate.html) - - [Researcher](https://docs.deepwisdom.ai/main/en/guide/use_cases/agent/researcher.html) - - [Receipt Assistant](https://docs.deepwisdom.ai/main/en/guide/use_cases/agent/receipt_assistant.html) -- ❓ [FAQs](https://docs.deepwisdom.ai/main/en/guide/faq.html) +--- -## Support +## Repo 結構 -### Discord Join US +``` +metagpt/ext/agentlayout/ # AgentLayout 全部程式碼 +├── a3_pipeline.py # A3 主流程(L0) +├── a3_pipeline_l1.py # L1-Gated 臂(實驗用) +├── pipeline.py # 前一代 Refinement Loop pipeline +├── roles/ actions/ tools/ # Agent 定義、LLM action、非 LLM 模組(QC / renderer / CV) +├── evaluation/ # SEGA 指標、mIoU、baselines、saliency +└── schema.py layout_tree_v3.py + +layout_agent/ # 實驗文件、prompt、結果與分析 +├── AGENT_PROMPTS.md # A3 各 Agent prompt 總覽 +├── QUALITY_CHECKER_RULES.md # QC 全部規則 + 門檻 + 校準來源 +├── A3_EXPERIMENT_LOG.md # A3 實驗流水帳 +├── IMPLEMENTATION_LOG.md # 每個 step 的設計決策與 trade-off +├── result.md # 論文引用的權威數據 +├── EXPERIMENT_MATRIX.md # 主實驗與 ablation 對照表 +└── output2/ # 各 step 實驗輸出 +``` -📢 Join Our [Discord Channel](https://discord.gg/ZRHeExS6xv)! Looking forward to seeing you there! 🎉 +其餘目錄(`metagpt/roles/`、`metagpt/actions/` 等)為上游 MetaGPT 框架程式碼。 -### Contributor form +--- -📝 [Fill out the form](https://airtable.com/appInfdG0eJ9J4NNL/pagK3Fh1sGclBvVkV/form) to become a contributor. We are looking forward to your participation! +## 文件導讀 -### Contact Information +| 檔案 | 用途 | +|---|---| +| `layout_agent/README.md` | 系統設計藍圖與研究理念(前一代架構) | +| `layout_agent/README(new).md` | 前一代架構的實作現況版 | +| `layout_agent/AGENT_PROMPTS.md` | A3 各 Agent prompt 與呼叫順序 | +| `layout_agent/PIPELINE.md` | 前一代 pipeline 架構圖(Mermaid + ASCII) | +| `layout_agent/A3_EXPERIMENT_LOG.md` | A3 實驗全紀錄 | +| `layout_agent/result.md` | 最新實驗結果與論文可引用數據 | +| `layout_agent/METRIC_ALIGNMENT_AUDIT.md` | SEGA / PKU 指標逐行對齊 audit | -If you have any questions or feedback about this project, please feel free to contact us. We highly appreciate your suggestions! +--- -- **Email:** alexanderwu@deepwisdom.ai -- **GitHub Issues:** For more technical inquiries, you can also create a new issue in our [GitHub repository](https://github.com/geekan/metagpt/issues). +## 相關研究定位 -We will respond to all questions within 2-3 business days. +| 比較對象 | 關係 | +|---|---| +| [AesthetiQ (CVPR 2025)](https://arxiv.org/abs/2503.00591) | MLLM + DPO 美感對齊;win-rate protocol 對齊對象 | +| [PosterO (CVPR 2025)](https://arxiv.org/abs/2505.07843) | Layout Tree 概念來源;本研究改為 LLM 直接推理、不需訓練 | +| [SEGA (ICCV 2025)](https://arxiv.org/abs/2510.15749) | 幾何指標 head-to-head 對照;coarse-to-fine feedback 範式 | +| [MetaGPT (ICLR 2024)](https://arxiv.org/abs/2308.00352) | Multi-agent 框架基礎;Agent 間結構化 JSON 通訊設計 | -## Citation +--- -To stay updated with the latest research and development, follow [@MetaGPT_](https://twitter.com/MetaGPT_) on Twitter. +## 致謝與引用 -To cite [MetaGPT](https://openreview.net/forum?id=VtmBAGCN7o) in publications, please use the following BibTeX entries. +本專案 fork 自 [MetaGPT](https://github.com/geekan/MetaGPT) 並在其框架上開發。引用 MetaGPT 請使用: ```bibtex @inproceedings{hong2024metagpt, @@ -174,4 +199,4 @@ To cite [MetaGPT](https://openreview.net/forum?id=VtmBAGCN7o) in publications, p } ``` -For more work, please refer to [Academic Work](docs/ACADEMIC_WORK.md). +MetaGPT 原始授權為 MIT License(見 `LICENSE`)。 diff --git a/layout_agent/A3_EXPERIMENT_LOG.md b/layout_agent/A3_EXPERIMENT_LOG.md new file mode 100644 index 000000000..545eb1590 --- /dev/null +++ b/layout_agent/A3_EXPERIMENT_LOG.md @@ -0,0 +1,2495 @@ +# AgentLayout A3 實作與實驗紀錄 + +> 建立日期:2026-07-10 +> 適用範圍:`A3-MLLM / P-Full / R3 / L0 or L1-Gated` 及其受控 ablation +> 規格來源:`layout_agent/new_plam.md` + +--- + +## 0. 紀錄邊界 + +本檔是 AgentLayout A3 新架構唯一的實作與實驗流水帳。 + +從本檔建立後: + +1. 新架構的 code audit、設計決策、實作變更、smoke、gate、正式實驗、失敗與成本全部記錄在本檔。 +2. 不再把 A3 的新內容追加到 `layout_agent/IMPLEMENTATION_LOG.md` 或 `layout_agent/result.md`。 +3. 舊檔與舊輸出只作歷史證據,不視為 A3 的實驗結果。 +4. 每筆付費實驗必須對應獨立 `run_id`、run manifest、sample IDs 與 artifact 目錄。 +5. 失敗、parse error、missing element、skipped sample 與 exhausted run 必須和成功結果一起記錄。 +6. 在 N=5 smoke 與 N=20 gate 通過前,不執行 N=100 正式實驗。 +7. 論文更新不記在此階段;架構與實驗 freeze 後另行處理。 + +### 舊資料隔離 + +下列資料不得直接混入 A3 主實驗: + +- `layout_agent/demo/` +- `layout_agent/demo_v2/` +- `layout_agent/full_result/` +- `layout_agent/output/` +- `layout_agent/output2/` +- 舊 GPT-4o、GPT-5.2、o4-mini、raw-asset、text-only、SEGA-style、R2 renderer 或多輪 refinement 結果 + +預定新輸出根目錄: + +```text +layout_agent/runs/a3/ +``` + +--- + +## 1. 執行階段 + +| Phase | 內容 | 狀態 | +| --- | --- | --- | +| A3-00 | 現行程式 audit 與新舊邊界建立 | in progress | +| A3-01 | Manifest、資料協定與 run directory 基礎設施 | complete | +| A3-02 | P-Full input protocol | complete | +| A3-03 | R3 text bitmap normalization 與 leakage tests | complete | +| A3-04 | Analyst MLLM 與 contact sheet | complete | +| A3-05 | Layout Tree contract 更新 | complete | +| A3-06 | L0、Judge-Select 與 Judge-Critic | complete | +| A3-07 | L1-Gated、repair verifier 與 B0/B1 guard | complete | +| A3-08 | N=5 smoke(L0 5/5、L1-Gated 5/5) | complete | +| A3-09 | N=20 gates(Gate C=L0;Gate A/B 五臂 20/20 executed、指標已算) | complete | +| A3-09M | Human-tree SGC/TLC/PCA 與 tree prediction metrics | complete | +| A3-09H | 三位標註者 adjudication queue、finalizer 與 T3 oracle preflight | complete | +| A3-09O | Human adjudication 20/20 finalized、T3 oracle trees 發布 | complete | +| A3-10P | Relation-100 剩餘 80:三人標註+人工裁決+oracle 發布(reference tree 100/100 齊) | complete | +| A3-10R | Crello-Relation N=100 T0/T2/T3 正式實驗+human-reference 指標 | complete | +| A3-10 | N=100 正式實驗 | blocked by gates | + +--- + +## 2. A3-00:初始 audit 與紀錄切分 + +**日期:** 2026-07-10 +**Code baseline:** `fd81922a` +**修改性質:** documentation only;尚未修改 pipeline 或執行付費實驗。 + +### 已確認 + +- 核心程式位於 `metagpt/ext/agentlayout/`。 +- 現行 Analyst 沒有觀看 background 與 foreground images,不符合 Analyst MLLM 規格。 +- `AssetAnalyzer` 仍使用固定 `semantic_relevance=0.5` placeholder。 +- 舊 Crello/SEGA protocol 會把非文字 foreground 依 designer GT 位置合進 background,不符合 P-Full。 +- text bitmap 已可同時保存 `asset_ref` 與 `content`,但尚未完成 alpha-tight crop、固定 long-edge normalization 與 GT size leakage 防護。 +- 現行 pipeline 預設最多五輪,包含 ACCEPT 後強制 refinement、連續兩次 ACCEPT、issue ledger 與回 Analyst 路由,不符合 L0/L1-Gated。 +- Judge selection 與 critique 尚未解耦。 +- 現有 trace 不等同 A3 run manifest。 + +### 第一個實作目標 + +先完成 A3-01,不直接改生成 prompt: + +1. 定義 versioned run manifest schema。 +2. 建立不可覆寫的 `run_id` 與輸出目錄規則。 +3. 固定 architecture、foreground protocol、renderer、loop、model snapshot、prompt hash、schema version 與 sample IDs 欄位。 +4. 建立失敗與 skipped sample 的統一紀錄格式。 +5. 為後續 P-Full、R3、L0/L1-Gated 加入明確 feature/config boundary。 + +這一步完成後,才依序實作 P-Full 與 R3,避免新舊資料在尚無 provenance 的情況下再次混合。 + +--- + +## 3. 實驗紀錄模板 + +後續每個 smoke、gate 或正式 run 使用以下格式追加: + +```text +### [run_id] 實驗名稱 + +- 日期: +- Git commit / dirty diff hash: +- Architecture: +- Model snapshot: +- Foreground protocol: +- Renderer: +- Loop: +- Internal Judge: +- Evaluation Judge: +- Dataset / sample IDs: +- Seed: +- Exact command: +- Output directory: +- Prompt hashes: +- Schema versions: +- 成本與 wall time: +- Completion / errors / skipped: +- 指標: +- 結論: +- 是否通過 gate: +- 後續決策: +``` + +--- + +## 4. A3-00:完整 code audit(read-only) + +**日期:** 2026-07-10 +**Repository:** `/home/hui0705/MetaGPT` +**HEAD:** `fd81922a88fba111700258f768652cd2081523d2` +**範圍:** 實際 executable path、Crello preprocessing、R2/R3 renderer、loop、trace/provenance、tests。 +**修改性質:** 只追加本 audit;未修改核心程式、未執行 LLM/API、未修改論文或舊 log。 + +### 4.1 實際 executable architecture + +目前有兩條入口,但不能視為完全等價: + +```text +LayoutPipeline.run(主要、較新的 orchestrator) + user_brief + List[AssetInput(asset_ref/content)] + -> AnalyzeBrief [text-only LLM, DesignSpec, parse retry x3] + -> AssetAnalyzer [deterministic importance + semantic_relevance=0.5] + -> PlanAssets [text-only LLM, LayoutTree, parse/coverage retry x3] + -> resolve_background [deterministic CV] + -> ComposeConcept [background image only, normally 3 concepts, retry x3/fallback] + -> for each concept: GenerateLayout [background image only, 1 candidate, + retry x3; vision refusal adds text-only retry] + -> deterministic QC + any pass: keep all passing candidates + none pass: rank and keep least-violating up to k_valid + -> JudgeAesthetic [all rendered candidates, combined rank+score+feedback, + parse retry x3] + optional reject-only visual observer [feature flag, retry x2] + -> ACCEPT: mandatory CoordinateMapper polish; two consecutive ACCEPTs stop + REJECT design/innovation: CompositionDirector -> Mapper + REJECT after routing budget: Analyst -> re-plan -> Director -> Mapper + other REJECT: Mapper + -> at max_total_rounds=5: return most recent ACCEPT, otherwise PipelineError +``` + +```text +Team/Role path + AnalystRole -> AssetPlannerRole -> CompositionDirectorRole + -> LayoutGeneratorRole -> AestheticJudgeRole -> IterationStateRole + -> retry routing / IterationStop +``` + +Role path mirrors the broad stages but has separate state/control code and is not proven byte-for-byte equivalent to `LayoutPipeline`. A3 should freeze one canonical runner; otherwise fixes must be duplicated and can drift. + +The old `layout_agent/run_demo.py` is only a wrapper around +`layout_agent/output/step74_n1897_full_trace.py`. That driver contains its own legacy top-up/refinement implementation and calls `GenerateLayout.run()` without the now-required `concept` argument. It is therefore **stale/conflicting with the current CoordinateMapper API** and must not be used as the A3 smoke runner. + +### 4.2 Agent-by-Agent contract audit + +| Stage | Actual input | Actual output | Image attachment | Retry / fallback | Model/config status | A3 status | +| --- | --- | --- | --- | --- | --- | --- | +| Analyst (`AnalyzeBrief`) | brief, serialized `AssetInput` paths/content, optional old Judge feedback | `DesignSpec`; then deterministic GT-calibrated photo-size prior is injected | none; asset paths are text only | same prompt up to 3 parse/schema attempts | inherits global MetaGPT LLM; no per-Agent frozen snapshot/effort/detail/token manifest | **conflicting**: not MLLM; cannot visually identify assets | +| Asset Analyzer | enriched-in-place `DesignSpec` | importance and semantic relevance fields | none | none | Python; semantic relevance is fixed `0.5` | **conflicting** | +| Asset Planner (`PlanAssets`) | enriched `DesignSpec` | `LayoutTree` containing each foreground ID once | none | up to 3 parse/schema/coverage attempts | global LLM; no frozen per-Agent config | **partial**: tree precedes coordinates, but node contract is only `id/children` | +| Composition Director (`ComposeConcept`) | `DesignSpec`, `BackgroundAnalysis`, optional prior concepts/Judge feedback | normally 3 natural-language `CompositionConcept`s | background only, if model supports images | 3 attempts; unsupported temperature kwarg is silently removed; final fallback is one centered concept | global LLM; requests a temperature but actual applied value is not persisted | **partial**: sees background, not foreground contact sheet; diversity is prompted, not verified | +| Coordinate Mapper (`GenerateLayout`) | spec, tree, background analysis, one concept, optional feedback/previous bbox/scores | one-candidate `CandidatesBatch` | background only | 3 parse attempts; vision refusal drops image and adds one text-only attempt | global LLM; actual model parameters not frozen/persisted | **partial/conflicting**: consumes tree, but receives natural bitmap size and no asset thumbnails | +| Deterministic QC | candidate, spec, background analysis | pass/fail violations/warnings | loads background for some diagnostics | no retry; if all fail, pipeline degrades to least-violating candidates | Python thresholds accumulated from legacy experiments | **partial**: reusable checks exist, but A3 hard/warning policy must be frozen | +| Internal Judge (`JudgeAesthetic`) | candidates, spec, tree, background analysis | combined scores, B0 ID, ACCEPT/REJECT and critique | rendered candidate images | 3 parse attempts; optional reject observer x2 | same global LLM; no independent Judge-Select/Critic configs | **conflicting**: selection and critique combined; threshold 35; accept polish mandatory | +| Iteration state | Judge verdict/feedback and accumulated state | retry target or stop | none | up to legacy cap | duplicated between pipeline and Role path | **conflicting**: multi-round, Analyst reroute, consecutive accepts | + +No action defines a model snapshot itself. `Action.llm` inherits runtime/global configuration; only `ComposeConcept` attempts an explicit temperature and silently falls back if unsupported. Exact reasoning effort, max tokens, image detail, response schema mode and actual temperature are not recorded. + +### 4.3 Schema and Layout Tree gap + +Implemented and reusable: + +- typed Pydantic contracts for canvas, element, DesignSpec, LayoutTree, concepts, candidates, feedback, judgement and iteration state; +- validation that the current tree has root `root`, no duplicate IDs, and exactly covers non-background spec elements; +- stable IDs are carried through spec/tree/candidate/QC in the core path. + +Missing/conflicting for A3: + +- no explicit schema-version constants or versions persisted with objects; +- `LayoutTreeNode` only carries `id` and `children`; no semantic role, group label, relation type, ordering/priority or confidence; +- no T0/T1/T2/T3 contract switch and no human-reference-tree input path; +- decorative exclusions/coverage policy is not versioned; +- current semantic metrics can consume a predicted tree, but this is not valid primary evidence under the A3 protocol. + +### 4.4 Crello input and GT leakage trace + +The active legacy SEGA-style entrance is +`tools/crello_preprocessor.preprocess_sample(sample_dir, out_dir)`, reading cached +`layout_agent/output/crello_/meta.json`. + +Direct GT use found: + +- `_paste_layer`: reads each non-text element's GT `left`, `top`, `width`, `height`, resizes the asset and composites it at that position; +- `BAKED_KINDS = background_candidate, image, underlay`: all non-text foreground is removed from placement and baked into `bg_composite.png`; +- `_clamped_bbox`: derives GT LTRB from the same four geometry fields; +- `text_bboxes`: reads GT text bbox for every text element; +- `_holds_gt_text`: uses those GT text bboxes to decide whether an underlay is a text holder; +- `UnderlayRegion.bbox`: exports the designer-positioned underlay bbox downstream; +- `text_assets`: exports each text bitmap plus the designer `width` and `height` as its “natural canvas size”. + +Therefore the old preprocessing is intentionally SEGA-compatible but **conflicts with P-Full and A3 leakage rules**. Both the precomposed background and the underlay hints reveal designer placement. P-Full needs a new deterministic classifier/extractor that selects only a base background without using candidate output or GT geometry, preserves every placeable foreground asset separately, and writes an asset manifest. + +The cache snapshot script `step80_snapshot_text_assets.py` mutates cached `meta.json` to attach rendered text assets. These caches are legacy inputs, not immutable A3 source-of-truth assets, and must be isolated. + +### 4.5 Renderer / R3 audit + +Current bitmap path treats a pre-rendered text PNG as a generic image because Analyst labels it `visual_type=image`: + +- no alpha-tight crop; +- no fixed padding; +- no fixed long-edge normalization; +- no normalized-size/hash manifest; +- Mapper prompt opens the file, reveals its native pixel dimensions, explicitly asks for `0.8x-1.2x` natural-size placement, and locks aspect ratio; +- reject observer also reports natural bitmap size; +- renderer independently resizes width and height to the predicted bbox, so aspect ratio is **not actually locked**; +- generic image renderer caps each axis independently at `MAX_UPSCALE=2`, centers the smaller raster in the declared bbox, and can therefore leave transparent/empty bbox area; +- renderer does not crop source alpha before scaling. + +This is **conflicting**, not partial R3: it preserves bitmap typography but leaks GT size and does not guarantee aspect-preserving fit. A3 R3 requires preprocessing the RGBA bitmap once (tight alpha crop + fixed padding + deterministic long-edge), removing all original/natural size cues from prompts, and using a contain/fit rule that derives one scale factor from the Mapper bbox. + +Plain text (non-bitmap legacy path) uses predicted bbox/font metadata, word-wrap and iterative shrink-to-fit down to 8 px. This code may remain useful for diagnostics but is outside the frozen R3 bitmap protocol. + +### 4.6 Candidate generation, QC and loop findings + +- `PipelineConfig.k_valid` and `max_topup_rounds` remain in schema/config, but the current pipeline no longer tops up. It maps one candidate per concept and degrades to least-violating candidates only when **all** candidates fail QC. +- `LayoutGeneratorRole` has the same no-top-up approach, while Step74 still implements the old top-up loop. Documentation/driver claims about top-up are stale and version-dependent. +- There is no guarantee of exactly three judgeable candidates: Director can fall back to one concept; individual Mapper calls can fail; QC passes are not topped up. This violates A3 smoke expectations unless candidate completeness is made explicit. +- Judge prompt still requires scores and structured suggestions for both accept and reject, defines best score `>=35` as ACCEPT, and performs ranking plus critique in one call. +- ACCEPT is not terminal: it routes to mandatory Mapper polish. Termination normally requires two consecutive ACCEPTs. +- REJECT can recreate concepts, re-run Analyst/Planner after reject budget, or micro-adjust Mapper; issue ledger and regression reopening persist across rounds. +- `max_total_rounds` defaults to five. If the cap contains any ACCEPT, the pipeline returns the most recent accepted result even without convergence; otherwise it raises with the last rejected best candidate attached. + +### 4.7 Minimal L0 / L1-Gated intervention points + +Recommended minimal boundaries, in dependency order: + +1. Add an explicit A3 run/config object before `LayoutPipeline.run`; reject ambiguous legacy defaults. +2. Freeze Analyst and tree once before concepts; remove runtime Analyst/Planner rerouting. +3. Make `_generate_from_concepts` return an explicit R0 bundle with exactly three slots and per-slot failure/QC records; define whether a missing slot aborts or gets a reliability retry. +4. Split `JudgeAesthetic` into `JudgeSelect` (three renders -> B0/ranking only) and `JudgeCritic` (B0 only -> at most two actionable issues). +5. **L0:** stop immediately after JudgeSelect and persist B0. +6. **L1-Gated:** deterministic/actionability gate -> one routed repair -> verifier -> B0/B1 guard -> unconditional stop. +7. Reuse `feedback_verifier` and QC comparisons where their issue types match, but replace the multi-round ledger with a single repair record plus KEEP constraints. +8. Keep Role path disabled for A3 until it either delegates to the same orchestration service or has parity tests. + +### 4.8 Provenance, trace, prompt and cost reuse audit + +Reusable pieces: + +- `layout_agent/output2/provenance.py`: HEAD, tracked diff SHA-256, selected untracked paths, global model config, AGENTLAYOUT env flags and Python version; +- pipeline `TraceEntry`: round, decision, route, candidate count, QC filtered count, ledger/compliance summary; +- Step74 artifact layout: inputs/spec, per-round candidates/renders/selection, raw Judge JSON, QC violations, timing and sample status; +- prompts are module constants and can be hashed deterministically; +- MetaGPT runtime owns LLM instances and may expose usage/cost, but current A3 path does not persist per-call usage. + +Insufficient/missing: + +- provenance watches only two legacy roots, ignores untracked file **contents**, and hashes only tracked diff; a dirty run is not reconstructible when relevant code/config is untracked; +- no immutable `run_id`, atomic/non-overwrite directory creation, run-level/sample-level manifest schema or manifest version; +- no exact resolved model snapshot per call, model parameters, image detail, structured-output mode, prompt hash map or schema version map; +- no canonical sample-ID file copied/hashed into a run; +- no uniform error/skipped/cost record; streamed vision usage was explicitly reported unavailable in an old driver; +- trace is returned in memory and drivers selectively serialize it; pipeline does not guarantee artifact persistence; +- old Step74 trace predates the current concept API and cannot be promoted directly. + +### 4.9 Specification compliance matrix + +| A3 requirement | Status | Evidence / gap | +| --- | --- | --- | +| training-free | implemented | no training path found in AgentLayout core | +| explicit tree before coordinates | partial | ordering exists; contract lacks roles/relations/confidence/version | +| P-Full | conflicting | legacy preprocessor bakes all non-text at GT geometry | +| R3 bitmap typography | partial/conflicting | bitmap preserved, but GT size leak/no crop/no normalization/non-uniform scaling | +| Analyst MLLM sees background + all foreground | missing | Analyst is text-only; paths are not images | +| Background Analyzer | implemented/partial | deterministic saliency/safe zones/palette exist; version/provenance not frozen | +| 3 spatially distinct concepts | partial | asks for 3; no diversity verifier; fallback/mapper failures reduce count | +| exactly 3 complete R0 renders | missing | no slot-completeness contract/top-up policy | +| versioned Layout Tree | missing | no schema version or required semantic fields | +| deterministic QC | implemented/partial | extensive checks exist; threshold set is legacy and unversioned | +| Judge-Select separated from Critic | missing | one combined verdict/scoring/feedback call | +| L0 | missing | ACCEPT still forces polish; no stop-after-select mode | +| L1-Gated | missing | old open multi-round loop only | +| Analyst/tree frozen per sample | conflicting | reject routing can rerun both | +| B0/B1 best-so-far guard | partial/conflicting | legacy score/layout guard exists, not specified one-repair verifier guard | +| immutable A3 run manifest | missing | legacy provenance/trace fragments only | +| matched offline evaluation | outside core / missing A3 runner | old evaluators exist but are not bound to A3 manifests | +| human reference tree / T0-T3 | missing | no canonical annotation/arm interface | + +### 4.10 Dirty worktree freeze record + +At audit time: + +- tracked modifications: `layout_agent/IMPLEMENTATION_LOG.md`, `layout_agent/output2/step91_o4mini_ab.py`, `metagpt/provider/constant.py`; +- untracked top-level status entries: 17, including A3 documents, demo/output data and drivers; +- tracked diff summary before this audit: 3 files, 26 insertions, 1 deletion; +- `A3_EXPERIMENT_LOG.md` itself was already untracked and is the only file changed by this audit; +- no reset, checkout, clean, commit or overwrite was performed. + +All are treated as user-owned. A3-01 must capture both tracked and relevant untracked content hashes without copying legacy output into the new run. + +### 4.11 Freeze plan: expected files and tests (no core edit yet) + +Likely new files: + +- `metagpt/ext/agentlayout/a3_config.py` — explicit architecture/protocol/model/loop versions; +- `metagpt/ext/agentlayout/run_manifest.py` — immutable manifest and per-sample status contracts; +- `metagpt/ext/agentlayout/tools/a3_crello_preprocessor.py` — P-Full extraction and asset manifest; +- `metagpt/ext/agentlayout/tools/text_bitmap_normalizer.py` — R3 crop/pad/normalize/hash; +- `metagpt/ext/agentlayout/actions/judge_select.py` and `judge_critic.py`; +- `metagpt/ext/agentlayout/a3_pipeline.py` or a sharply isolated A3 branch in `pipeline.py`; +- `layout_agent/run_a3.py` — sole A3 CLI with `--dry-run`, explicit run ID/config/sample IDs; +- versioned schemas under `layout_agent/schemas/a3/` if JSON Schema artifacts are required. + +Likely modified files: + +- `schema.py`, `analyze_brief.py`, `plan_assets.py`, `compose_concept.py`, `generate_layout.py`, `renderer.py`, `quality_checker.py`, `feedback_verifier.py`, and package exports; +- `pipeline.py` only if a separate `a3_pipeline.py` is not used; +- Role/team files only after the canonical orchestrator is stable. + +Required tests: + +- manifest validation, non-overwrite/atomic creation, dirty/untracked hashes and failure records; +- P-Full: all placeable IDs preserved, only allowed base background selected, no GT x/y/bbox passed or baked; +- R3: alpha-tight crop, fixed padding/long edge, deterministic hash, no natural-size prompt leak, aspect-preserving render; +- Analyst image/contact-sheet attachment and asset-ID mapping; +- Layout Tree vA3 validity/coverage/roles/relations/confidence plus T0/T1/T2/T3 adapters; +- exactly-three R0 candidate slot contract, diversity diagnostics and missing-slot behavior; +- Judge-Select/Critic prompt and schema separation; +- L0 immediate stop; L1 maximum one repair; frozen Analyst/tree; actionable gate; verifier; completeness/hard-violation B0 guard; unconditional stop; +- per-call prompt/model/config/usage artifact persistence; +- parity tests if Team/Role remains supported. + +Existing tests under `tests/metagpt/ext/agentlayout/` cover many legacy prompts, schemas, QC, renderer, feedback verifier and routing cases. They should remain as regression evidence but several encode legacy behavior and must not define A3 acceptance criteria. + +### 4.12 Planned N=5 smoke contract (not executable until A3-01..A3-07) + +No paid smoke was run. The current repository has **no valid A3 CLI**, and the apparent `run_demo.py` command is API-stale. The exact command to freeze during A3-01 is: + +```bash +python layout_agent/run_a3.py plan \ + --config layout_agent/configs/a3_smoke_l0.json \ + --sample-ids layout_agent/sample_ids/a3_smoke_n5.json \ + --run-id a3-smoke-n5-l0- + +python layout_agent/run_a3.py run \ + --config layout_agent/configs/a3_smoke_l0.json \ + --sample-ids layout_agent/sample_ids/a3_smoke_n5.json \ + --run-id a3-smoke-n5-l0- + +python layout_agent/run_a3.py run \ + --config layout_agent/configs/a3_smoke_l1_gated.json \ + --sample-ids layout_agent/sample_ids/a3_smoke_n5.json \ + --reuse-r0-from layout_agent/runs/a3/a3-smoke-n5-l0- \ + --run-id a3-smoke-n5-l1- +``` + +Planned input is one frozen N=5 ID file plus per-sample P-Full `asset_manifest.json`; planned output is a newly created, non-overwritable `layout_agent/runs/a3//` containing run manifest, copied/hashed ID list, per-sample inputs/agent outputs/tree/R0 renders/QC/Judge/B0/B1/final/error and cost records. + +Call budget for L0, assuming no reliability retries: 5 samples x (Analyst 1 + Planner 1 + Director 1 + Mapper 3 + Judge-Select 1) = **35 system calls**. L1 adds Critic for each B0 and at most one repair plus optional B0/B1 selection; maximum planned incremental budget is 15 calls if every sample triggers and needs pairwise selection. Actual dollar cost is **TBD, not safely estimable from current code**, because the exact snapshot price, token/image usage and supported parameters are neither frozen nor metered. The `plan` command must calculate an estimate from explicit price inputs before `run` is permitted; actual usage and retry calls must be recorded separately. + +### 4.13 A3-00 conclusion + +**A3-00 status: complete.** The current code is a useful legacy substrate but not an A3 implementation. The highest-risk blockers are GT geometry leakage in preprocessing/R3, text-only Analyst, absent versioned manifest, combined Judge, and the old multi-round loop. Per the dependency order, the next allowed stage is **A3-01 manifest/provenance infrastructure**; no model run should occur before A3-08. + +--- + +## 5. A3-01:Manifest / provenance infrastructure + +**日期:** 2026-07-10 +**HEAD:** `fd81922a88fba111700258f768652cd2081523d2`(dirty worktree) +**性質:** infrastructure only;0 API calls、0 paid tokens、未建立正式 A3 run。 + +### 5.1 新增 contracts + +- `metagpt/ext/agentlayout/a3_config.py` + - `a3.run-config.v1`; + - 明確記錄 architecture、model stages、P-Full、R3、L0/L1-Gated、Judge、dataset split、seed、image normalization、schema versions 與 price-table version; + - `extra=forbid`,L0/L1 會驗證必要 model stages; + - model call contract 可記錄 exact model、reasoning effort、temperature、max tokens、image detail 與 structured-output mode。 +- `metagpt/ext/agentlayout/run_manifest.py` + - `a3.run-manifest.v1`、`a3.sample-record.v1`、`a3.error-record.v1`; + - config/sample ID frozen snapshots 和 canonical SHA-256; + - run completion、cost、error、prompt hashes、schema versions 欄位; + - 每個 sample 初始化獨立 `sample_record.json`; + - JSON Schema 自動落盤。 + +### 5.2 不可覆寫與 provenance 規則 + +- run ID 只允許安全字元,run directory 使用 `mkdir(exist_ok=False)`;已存在即失敗; +- artifact 以 temporary file + hard link 原子發布,目的檔存在即拒絕覆寫; +- 初始化中途失敗不刪除 partial directory,run ID 視為已消耗,保留 forensic evidence; +- sample IDs 禁止空值、重複與 path traversal; +- provenance 記錄 UTC、HEAD、branch、tracked binary diff hash、相關 untracked file **content hashes**、Python/runtime/platform 與 `AGENTLAYOUT_*` flags; +- 不讀取或寫入 API key / secret config value; +- watched untracked scope限制在 A3 code/config/sample-ID roots,避免把舊 demo/output cache 混入 manifest。 + +### 5.3 Zero-cost CLI + +新增 `layout_agent/run_a3.py`: + +```bash +python layout_agent/run_a3.py plan \ + --config \ + --sample-ids \ + --run-id + +python layout_agent/run_a3.py init \ + --config \ + --sample-ids \ + --run-id +``` + +`plan` 只驗證並輸出 `api_calls=0` 的計畫,不建立目錄;`init` 只建立 immutable skeleton,尚未啟動 pipeline。`run` 子命令刻意保留到後續 pipeline stages,避免 A3-01 誤跑 legacy flow。 + +### 5.4 Tests + +新增 `tests/metagpt/ext/agentlayout/test_a3_run_manifest.py`,涵蓋: + +- L1 必要 model stages; +- duplicate/unsafe sample IDs; +- artifact overwrite refusal; +- config/IDs/schema/sample-record 落盤; +- duplicate run ID refusal; +- non-Git graceful degradation; +- Git untracked content hash; +- CLI `plan` zero-cost 且不建立 run。 + +執行: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run --with pytest --with 'pydantic>=2' \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py +``` + +結果:`9 passed in 0.69s`。 + +完整 repo 的預設 pytest bootstrap 在此執行環境缺少 `aiohttp`,且 `pytest.ini` 預設需要 `pytest-cov`;本階段因此以 isolated pure-unit suite 執行,沒有把環境缺依賴誤記為產品測試失敗。 + +靜態檢查: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run --with ruff ruff check \ + metagpt/ext/agentlayout/a3_config.py \ + metagpt/ext/agentlayout/run_manifest.py \ + layout_agent/run_a3.py \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py +``` + +結果:`All checks passed`。另執行 `py_compile` 與 `git diff --check`,均通過。 + +### 5.5 邊界與下一步 + +- 本階段只提供 provenance-bearing config/store;legacy `LayoutPipeline` 尚未接上 A3 config; +- prompt-hash/schema-version 欄位與落盤能力已存在,但 A3 prompts/contracts 尚未在 A3-04..A3-07 freeze,因此目前不製造假的 hashes; +- cost record schema 已存在,實際 per-call usage capture 要在模型呼叫整合時接入; +- 沒有建立 `layout_agent/runs/a3/` 正式 run,避免在 P-Full/R3 尚未完成前產生可被誤認為 A3 的 artifacts。 + +**A3-01 status: complete。下一階段:A3-02 P-Full input protocol。** + +--- + +## 6. A3-02:P-Full input protocol + +**日期:** 2026-07-10 +**起始 commit:** `1ec0d05ad8f57017f12c4db90e15ebca4472073e` +**性質:** deterministic input infrastructure;0 API calls、0 paid tokens。 + +### 6.1 實作 + +新增 `metagpt/ext/agentlayout/tools/pfull_preprocessor.py`: + +- `a3.pfull-asset-manifest.v1` 與 `pfull.crello.pixel-only-background.v1`; +- 每個 source element 以 `asset_` 建立穩定 ID; +- raster 原始 bytes 逐一 snapshot 到新 run 的 sample asset directory,保存 SHA-256、MIME 與原始 raster dimensions; +- text 同時保留 `content` 與可用 bitmap snapshot; +- 所有非 background asset 都標為 `placeable`,不得因 decorative/underlay 或分類困難消失; +- `PFullPreparedInput` 提供未來 A3 Analyst/pipeline 的 stable-ID boundary; +- 缺少/損壞 non-text asset 直接失敗,不做 silent skip; +- output directory 與 manifest 不可覆寫;partial failure 保留 forensic evidence。 + +`layout_agent/run_a3.py` 新增: + +```bash +python layout_agent/run_a3.py prepare-pfull \ + --run-dir layout_agent/runs/a3/ \ + --crello-root layout_agent/output +``` + +此命令只處理 initialized run 的 frozen sample IDs。每個 sample 輸出至: + +```text +samples//inputs/pfull/ + asset_manifest.json + assets/asset_NNNN. +``` + +並寫入 run-level `pfull_preparation.json`;任何 sample failure 都另寫 versioned `ErrorRecord` 並使 CLI 非零退出。 + +### 6.2 GT leakage boundary + +Extractor 明確不讀取或輸出: + +- `left` / `top` / `width` / `height`; +- x/y/bbox/font size; +- legacy `classifier_signals.area_ratio`; +- legacy `kind=background_candidate`; +- GT-derived underlay regions; +- designer z-order compositing。 + +舊 `kind` 只用來和 `type_code==1` 共同識別 text(向後相容);對所有 raster 的 background/image/underlay 分類完全不信任舊 kind/classifier。 + +### 6.3 Conservative base-background rule + +Crello cache 沒有可靠的 explicit background semantic label;舊 `full_canvas` 是用 GT bbox area 判斷,不能沿用。凍結規則如下: + +1. 只看原始 raster pixels 與公開 canvas dimensions; +2. raster native size 必須 **恰等於 canvas size**; +3. alpha 必須至少 98% 幾乎全不透明; +4. 多個符合者取最小 source index 作唯一 base background;其他仍是 placeable foreground; +5. 沒有符合者使用 blank/solid base,所有 raster 保持 placeable。 + +這是刻意偏低 recall 的規則:寧可沒有 background,也不能用 designer placement 把 product/logo/decoration 誤當背景。背景規則若要放寬,必須在 gate 前另立 policy version,不能根據生成結果調整。 + +### 6.4 Tests + +新增 `tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py`,連同 A3-01 tests 執行: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py +``` + +結果:`17 passed in 1.16s`。 + +涵蓋: + +- 全 foreground coverage 與 stable IDs; +- 不預合成; +- manifest 不含 GT geometry/area; +- 任意改變 GT geometry/kind 不影響 raster classification; +- 多 background candidate 固定 tie-break; +- 無 background fallback; +- missing asset fail-closed; +- output non-overwrite; +- initialized run 的 `prepare-pfull` CLI integration。 + +Ruff:`All checks passed`。`py_compile` 與 `git diff --check` 通過。 + +### 6.5 Real cached-sample smoke(zero API) + +使用 cached sample `5d9720b1abc8ea6d1c37b8d8`,輸出只寫 `/tmp/a3_pfull_real_smoke_5d9720`: + +```text +sample_id=5d9720b1abc8ea6d1c37b8d8 +source elements=11 +manifest assets=11 +placeable foreground=11 +background_asset_id=None +``` + +該 sample 的舊 `asset_00_background.png` 是以 GT bbox `area_ratio=4.7395` 分成 background,但 native raster 為 1024x508、canvas 為 1590x400,不符合新 pixel-only rule,因此正確地保持 placeable,沒有依舊 label 預合成。 + +### 6.6 邊界與下一步 + +- P-Full manifest 必須記錄 original raster dimensions 供 provenance,但 text bitmap original size 在 R3 runtime input 中仍是 leakage risk;A3-03 必須正規化後才能交給 Analyst/Mapper,且不得把 manifest 的 text native dimensions帶進 prompt; +- 本階段未改 legacy Crello/SEGA preprocessor;A3 runner 只允許新 `prepare-pfull` path,舊 cache/output 不得成為正式 run artifact; +- 尚未把 P-Full assets 交給現行 text-only Analyst,依正式順序等待 A3-03/A3-04。 + +**A3-02 status: complete。下一階段:A3-03 R3 normalization、renderer 與 leakage tests。** + +--- + +## 7. A3-03:R3 normalization、renderer 與 leakage tests + +**日期:** 2026-07-10 +**起始 commit:** `cd61fc8ff3c4daf696d3b8bcc56f58de4a498033` +**性質:** deterministic bitmap/renderer infrastructure;0 API calls、0 paid tokens。 + +### 7.1 Frozen R3 normalization + +新增 `metagpt/ext/agentlayout/tools/text_bitmap_normalizer.py`: + +- manifest schema:`a3.r3-asset-manifest.v1`; +- normalization policy:`r3.alpha-tight-long-edge.v1`; +- 預設/A3 config frozen values: + - final long edge:512 px; + - final transparent padding:8 px; + - alpha threshold:1; + - resize filter:Lanczos; +- 對 alpha channel 做 tight crop; +- 先將 tight content 等比例縮放到 `long_edge - 2*padding`,再加固定 final padding,因此輸出 long edge 恰為 512; +- normalized PNG 使用固定 RGBA、PNG compress level 9、無 optimize metadata,並保存 SHA-256; +- 全透明、缺檔、無 content 或沒有 bitmap 的 text asset fail-closed,不退回 re-typeset/plain text; +- R3 output directory 與 manifest 不可覆寫。 + +R3 runtime asset contract保留:stable `asset_id`、文字 `content`、normalized bitmap ref、normalized width/height/aspect、hash。它刻意不包含 original text width/height、GT bbox 或 font size。原 bitmap hash只作 provenance,不提供可反推字級的尺寸。 + +### 7.2 Renderer contract + +`renderer.py` 對 `_r3_text.png` 使用獨立 contain path: + +1. Mapper 仍預測 final bbox; +2. renderer 以單一 scale factor 將 bitmap 放入 bbox; +3. 水平/垂直置中; +4. 不分別拉伸 width/height; +5. 不套用 generic image 的 `MAX_UPSCALE=2`,因 512px 是 protocol normalization,不是 natural size; +6. legacy generic image/text renderer 行為維持不變。 + +### 7.3 Prompt leakage removal + +`GenerateLayout._format_element_list` 現在先辨識 R3 bitmap: + +- 只提供 fixed normalized bitmap 的 aspect ratio; +- 明確要求 Mapper 依 design context 自行決定 final bbox scale/position; +- 不提供 512px normalized dimensions; +- 不提供 original/natural dimensions; +- 不再套用 legacy `0.8x-1.2x natural size` 指令。 + +`JudgeAesthetic` reject observer 也排除 R3 bitmap 的 legacy natural-size報告。R3 suffix check 位於一般 `_text.png` branch 之前,避免 `_r3_text.png` 被 suffix overlap 誤導到舊路徑。 + +### 7.4 CLI integration + +`layout_agent/run_a3.py` 新增: + +```bash +python layout_agent/run_a3.py normalize-r3 \ + --run-dir layout_agent/runs/a3/ +``` + +命令從 immutable run config 讀取 normalization values,逐 sample 讀取 P-Full manifest,輸出: + +```text +samples//inputs/r3/ + r3_asset_manifest.json + assets/asset_NNNN_r3_text.png +``` + +run level 寫 `r3_normalization.json`;所有失敗寫 versioned `ErrorRecord`,任何 sample 失敗皆非零退出。 + +### 7.5 Tests + +新增 `tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py`,連同 A3-01/A3-02 suite: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py +``` + +結果:`26 passed in 1.46s`。 + +涵蓋: + +- alpha-tight bbox、fixed padding 與 exact long edge; +- 相同 glyph 放在不同原始 canvas/offset 時產生 byte-identical normalized PNG; +- R3 runtime manifest 不含 original dimensions/GT geometry/font size; +- text-only fallback 拒絕; +- prompt descriptor 只有 aspect ratio,沒有 pixel/natural size; +- Generator/observer 確實繞過 legacy natural-size branch; +- contain size 的橫/直向 aspect preservation; +- end-to-end renderer 將 4:1 bitmap 放進 1:1 bbox 後仍為 4:1; +- transparent bitmap fail-closed; +- initialized run 的 `normalize-r3` CLI integration。 + +Ruff:`All checks passed`。`py_compile` 通過。順帶移除 `generate_layout.py` 既有 unused `Any` import 與三個無插值 f-string,行為不變。 + +### 7.6 Real cached-sample smoke(zero API) + +使用含 cached text bitmap 的 sample `5888cbf695a7a863ddcc214f`,輸出只寫 `/tmp`: + +```text +P-Full/R3 assets:4 +R3 text bitmaps:2 +asset_0002:512x92,aspect=5.5652 +asset_0003:512x245,aspect=2.0898 +``` + +兩個 text asset 都有相同 frozen long edge,但依自身 glyph 保留不同 aspect ratio;未沿用 meta.json 的 GT bbox/字級作 final scale。 + +### 7.7 邊界與下一步 + +- P-Full manifest 仍保留 original raster dimensions 作 input provenance;A3 runtime/Analyst 必須只讀 R3 manifest,不能把 P-Full text dimensions 放入 prompt; +- 本階段只為 R3 suffix接入現有 renderer/prompt,尚未把 stable-ID R3 contact sheet 交給 Analyst; +- Mapper 預測 bbox 後的 bitmap contain 已凍結,但 typography/readability效果只能在 N=5 smoke 後評估,不能由 unit test 宣稱美學提升; +- 沒有修改 legacy R2 artifacts 或重新評估舊結果。 + +**A3-03 status: complete。下一階段:A3-04 Analyst MLLM、background overview 與 asset contact sheet。** + +--- + +## 8. A3-04:Analyst MLLM、background overview 與 asset contact sheet + +**日期:** 2026-07-10 +**起始 commit:** `59f9dcbeca90fdcdc9a8599a3589d08cff6d55f2` +**性質:** MLLM contract + deterministic visual input infrastructure;本階段 0 API calls、0 paid tokens。 + +### 8.1 Vision packet + +新增 `metagpt/ext/agentlayout/tools/analyst_vision.py`: + +- vision packet:`a3.analyst-vision-packet.v1`; +- Analyst output:`a3.analyst-output.v1`; +- 第一張 attachment 永遠是 background overview; +- 後續 attachment 是 foreground contact-sheet pages; +- 每頁最多 20 個 assets、4 columns;超量自動分頁; +- 每個 cell 使用相同 240x220 frame 與 208x158 thumbnail box; +- bitmap 只做 aspect-preserving contain,原始相對 scale 不進 contact sheet; +- checkerboard 顯示 alpha,stable `asset_id` 與 `IMAGE` / `TEXT BITMAP` 標籤固定放在 cell 下方; +- foreground 順序完全沿用 R3 manifest stable-ID order; +- background overview 只讀唯一 base background,不 composite foreground;沒有 base 時輸出明確 `NO BASE BACKGROUND — blank canvas` overview; +- prompt 與所有 images 可離線落盤,prompt 保存 SHA-256。 + +Prompt只提供:asset ID、media type、text content、normalized bitmap aspect ratio。它不提供 asset path、original/native dimensions、GT x/y/bbox/font size。Contact sheet uniform cells 也不提供 designer placement/relative scale。 + +### 8.2 Analyst semantic output contract + +`A3AnalystOutput` 包含: + +- background summary; +- design intent; +- style keywords / language; +- 每個 foreground 的 stable asset ID、semantic type、description、semantic role、key message 與 semantic constraints。 + +驗證規則: + +- `extra=forbid`,不能偷偷輸出 geometry/path; +- 每個 P-Full foreground ID 必須 exactly once; +- 不得 invent/rename/drop ID; +- placeable foreground 不得被 Analyst 重新分類成 background; +- `analyst_output_to_design_spec` 只從 immutable R3 manifest 注入 asset refs/canvas,LLM 無權回寫路徑; +- 所有 R3 text bitmap 仍以 `visual_type=image` 進 renderer,同時保留 `content` 供語意理解。 + +### 8.3 Vision-required MLLM Action + +新增 `metagpt/ext/agentlayout/actions/analyze_a3.py`: + +- `AnalyzeA3Brief` 必須 `support_image_input()`;不支援即失敗,禁止 text-only fallback; +- runtime model 必須等於 manifest/config 傳入的 exact expected snapshot;alias 或不同 model 直接失敗; +- 每次呼叫同時附 background overview 與所有 contact pages; +- schema/coverage parse 最多 3 次; +- retry 會把前次 validation error 加入原 prompt,屬 reliability retry,不是 aesthetic refinement; +- 可將真正送出的 prompt/images 先落盤,便於 prompt hash 與 artifact audit; +- fenced JSON 或周圍 prose 可防禦性解析,最後仍由 Pydantic schema與 coverage驗證。 + +本階段沒有實際呼叫模型;Action 已就緒,正式 MLLM call 要等 A3-08 N=5 smoke。 + +### 8.4 CLI integration + +`layout_agent/run_a3.py` 新增: + +```bash +python layout_agent/run_a3.py prepare-analyst-vision \ + --run-dir layout_agent/runs/a3/ +``` + +逐 sample 讀 immutable P-Full + R3 manifests,輸出: + +```text +samples//inputs/analyst_vision/ + background_overview.png + asset_contact_sheet_01.png + asset_contact_sheet_NN.png + analyst_request.json +``` + +run level 寫 `analyst_vision_preparation.json`;錯誤使用 versioned `ErrorRecord`,任何 sample failure 非零退出。 + +### 8.5 Tests + +新增 `tests/metagpt/ext/agentlayout/test_analyst_vision.py`,並擴充 A3 CLI integration test。執行 A3-01~04 suite: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py +``` + +結果:`35 passed in 2.70s`。 + +涵蓋: + +- overview 只有 background、沒有 foreground pixels; +- no-background 明確 blank overview; +- 23 foreground 分成兩頁且 stable order 不變; +- prompt 含 content/aspect 但無 path/GT geometry/native size; +- packet prompt hash、artifacts 與 non-overwrite; +- exact stable-ID coverage、duplicate/omission/invention防護; +- foreground 禁止重分類為 background; +- Analyst result -> DesignSpec 的 ID/ref 注入; +- fenced JSON parsing; +- Action source強制 vision、exact model、images與error-aware retry; +- initialized run 依序完成 `prepare-pfull -> normalize-r3 -> prepare-analyst-vision`。 + +Ruff:`All checks passed`。`py_compile` 與 scoped `git diff --check` 通過。 + +### 8.6 Real cached-sample visual smoke(zero API) + +使用 `5888cbf695a7a863ddcc214f` 的 R3 manifest,輸出只寫 `/tmp/a3_analyst_vision_smoke_5888cbf6`: + +```text +foreground assets:4 +attachments:2 + 1. background_overview.png + 2. asset_contact_sheet_01.png +prompt_sha256:a54493fc56a1a18f7c2ad9659f51b01d06d755956ddc60899150601ec98273ef +``` + +人工檢視結果: + +- overview 正確顯示 blank canvas,未混入 Eiffel/image/text foreground; +- contact sheet 有 `asset_0000`~`asset_0003` 四個 cell; +- Eiffel raster、透明線框圖與兩個 R3 text bitmap 均完整可見; +- ID/media labels 清楚,text bitmap aspect preserved; +- 未呈現 designer GT layout 或元素相對位置。 + +### 8.7 邊界與下一步 + +- A3 Analyst 已能看 background 與所有 foreground,但本階段沒有付費執行,不能宣稱 vision 改善 semantic accuracy;該因果問題留給 N=20 Gate A; +- output semantic roles/descriptions 已準備給 Planner,A3-05 必須建立 versioned Layout Tree role/relation/confidence contract; +- `DesignSpec` 是 legacy-compatible rendering boundary,A3 Planner 應以 `A3AnalystOutput` 為主要 semantic input,而不是退回固定 `semantic_relevance=0.5`; +- image detail/reasoning effort/actual model settings必須由 A3 run caller按 A3 config記錄,若 provider不支援要 fail或明記,不得默默替代。 + +**A3-04 status: complete。下一階段:A3-05 Layout Tree versioned contract。** + +--- + +## 9. A3-05:Layout Tree versioned contract + +**日期:** 2026-07-10 +**起始 commit:** `d6f2f84bb66eeaf30a63dc9fd7e5c06a6d104dba` +**性質:** structured semantic contract + Planner Action;0 API calls、0 paid tokens。 + +### 9.1 Versioned Layout Tree + +新增 `metagpt/ext/agentlayout/layout_tree_v3.py`: + +- schema:`a3.layout-tree.v1`; +- request:`a3.layout-tree-request.v1`; +- tree source:`predicted` 或 `human_oracle`; +- 每個 foreground asset 對應一個 normalized node; +- 每個 node 必須包含: + - stable `asset_id`; + - `semantic_type`; + - `semantic_role`; + - `group_id` / `group_label`; + - `parent_id`; + - `relation_to_parent`; + - `ordering_priority`; + - `confidence`(0..1)。 +- relation vocabulary:root、contains、supports、qualifies、identifies、calls-to-action、decorates、sequence-after、peer; +- groups 另有 versioned records:group ID/label、完整 member IDs、ordering priority、confidence。 + +這個 normalized node/edge contract 同時供 predicted tree、human reference tree、tree metrics 與 Mapper ablation 使用,避免各 arm 自訂不相容 schema。 + +### 9.2 Structural validation + +Pydantic + cross-object validation涵蓋: + +- asset IDs unique; +- parent 必須是 root 或現存 asset; +- self-parent 禁止; +- root/non-root relation一致; +- DFS parent-chain cycle detection; +- group IDs unique; +- group members 必須存在且不得重複; +- 每個 asset 必須 exactly one group; +- node `group_id/group_label` 必須和 group record一致; +- group/node confidence 範圍; +- tree 必須 exactly cover Analyst foreground IDs。 + +Predicted T2 tree 額外必須忠實保留 Analyst 的 semantic type 與 semantic role;Planner只能建立 grouping/edges/order/confidence,不能靜默改寫 Analyst semantics。 + +Human T3 oracle 只要求相同 stable-ID coverage,不被迫沿用 Analyst predicted type/role。這是必要的因果邊界:oracle 必須能糾正 Analyst,否則 T3 無法定位 tree-inference bottleneck。 + +### 9.3 Planner Action + +新增 `metagpt/ext/agentlayout/actions/plan_assets_a3.py`: + +- `PlanAssetsA3` 只讀 `A3AnalystOutput`,不看 coordinates/layout; +- exact runtime model 必須符合 expected snapshot; +- structured schema / semantic coverage 最多 retry 3 次; +- retry 帶前次 validation error,屬 reliability retry; +- Planner 是 text/structured call,不附 images,避免和 Analyst vision變因混合; +- prompt禁止 geometry、bbox、size、font size、z-index與asset paths; +- request prompt + SHA-256、逐 attempt raw response、final tree都可 write-once落盤; +- artifacts directory不可覆寫。 + +### 9.4 T0/T1/T2/T3 adapters + +新增 typed `TreeCondition`: + +- `T0`:只有 asset IDs,禁止 roles/tree; +- `T1`:asset IDs + flat semantic type/role,禁止 groups/edges; +- `T2`:必須是 `source=predicted` 的完整 tree,並驗證 Analyst semantic fidelity; +- `T3`:必須是 `source=human_oracle` 的完整 tree,只共享 stable IDs,可糾正 Analyst semantics。 + +四個 arms 均保持相同 asset ID/order;後續 Mapper adapter只能改 tree information,不得改 dataset、renderer、loop或candidate budget。 + +### 9.5 Tests + +新增 `tests/metagpt/ext/agentlayout/test_layout_tree_v3.py`,執行 A3-01~05 suite: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py \ + tests/metagpt/ext/agentlayout/test_layout_tree_v3.py +``` + +結果:`49 passed in 2.50s`。 + +涵蓋: + +- 完整 role/group/edge/order/confidence contract; +- missing parent、cycle、self/root relation; +- exact/non-overlapping group partition; +- group label consistency; +- confidence bounds; +- Analyst ID/type/role fidelity; +- versioned prompt/hash 與無 geometry/path input; +- fenced JSON parsing; +- request artifact non-overwrite; +- T0/T1/T2/T3 payload isolation; +- wrong predicted/oracle source拒絕; +- T3 可糾正 Analyst semantics但不可改 asset coverage; +- Planner exact-model、error-aware retry與no-image wiring。 + +Ruff:`All checks passed`。`py_compile` 與 scoped `git diff --check` 通過。 + +### 9.6 邊界與下一步 + +- 本階段沒有實際呼叫 Planner,不能宣稱 predicted tree accuracy;human reference annotation與Gate B仍是必要證據; +- normalized contract 已能計算 same-group pairs與parent-child edges,但正式 SGC/TLC/PCA 必須使用同一份 human reference tree評估所有 arms; +- A3-06 應將 Coordinate Mapper 的 T0/T1/T2/T3 input adapter與 Judge-Select/Critic分離接到 canonical A3 pipeline; +- legacy `LayoutTreeNode(id/children)` 不升級為 A3證據,也不應由 adapter悄悄轉回舊 self-consistency protocol。 + +**A3-05 status: complete。下一階段:A3-06 L0、Judge-Select 與 Judge-Critic 分離。** + +--- + +## 10. A3-06:L0、Judge-Select 與 Judge-Critic 分離 + +**日期:** 2026-07-10 +**起始 commit:** `25ed3716e1aecdada791e3767980f3f821c2028b` +**性質:** canonical orchestration + Judge 分離 contract;0 API calls、0 paid tokens、未執行任何 N=5/N=20/N=100。 + +### 10.1 Judge-Select(獨立 schema/prompt/Action/artifact) + +新增 `metagpt/ext/agentlayout/tools/judge_select.py`: + +- result schema:`a3.judge-select-result.v1`;request schema:`a3.judge-select-request.v1`; +- `JudgeSelectResult` 只有 `ranking`(恰 3 個、不重複)與 `selected_candidate_id`(必須等於 ranking[0]); +- `extra=forbid`:score、total、verdict、feedback、suggestions 等欄位一律 ValidationError,critique 在結構上不可表示,而不是只靠 prompt 禁止; +- 沒有 ACCEPT/REJECT、沒有任何 acceptance threshold;每次呼叫必定選出一個 B0; +- prompt 同時看 3 個 R0 renders(附件順序=候選清單順序)並附 per-candidate deterministic QC 摘要作 structured context;明文禁止輸出 critique/建議/分數; +- `validate_selection` 強制 ranking 是提交候選的 exact permutation; +- request 保存 prompt、prompt SHA-256、candidate IDs、3 個 render refs 與各自 SHA-256;`save_judge_select_request` write-once。 + +新增 `metagpt/ext/agentlayout/actions/judge_select_a3.py`(`JudgeSelectA3`): + +- 必須 `support_image_input()`,禁止 text-only fallback; +- runtime model 必須 exact match expected snapshot,alias/替代模型直接失敗; +- 強制恰好 3 個 rendered candidates,並以 base64 附上 3 張 render; +- schema/permutation parse 最多 retry 3 次,retry 把前次 validation error 附回原 prompt(reliability retry,不是 aesthetic refinement); +- artifacts:`judge_select_request.json`、逐 attempt `attempt_NN_response.txt`(`open("x")`)、`judge_select_result.json`,全部 write-once。 + +### 10.2 Judge-Critic(獨立 schema/prompt/Action/artifact) + +新增 `metagpt/ext/agentlayout/tools/judge_critic.py`: + +- result schema:`a3.judge-critic-result.v1`;request schema:`a3.judge-critic-request.v1`; +- `JudgeCriticResult` 只有 `issues`(0–2 個);沒有 overall score、ranking、verdict 欄位;空 issues list 是合法結果; +- 每個 `ActionableIssue` 必須有:`target_asset_ids`(≥1、不可重複)、closed `issue_type`、`observation`、`desired_change`; +- closed issue-type enum 直接取自 new_plam.md §4.5 repair gate 允許清單:overlap / clipping / out_of_bounds / misalignment / spacing / lockup / text_too_small / illegible_text / poor_contrast / text_on_busy_region / hierarchy_error / tree_inconsistency; +- 「不夠漂亮」「缺少創意」不在 enum 內,parse 階段即 ValidationError——模糊意見在結構上不可成為 actionable issue; +- `validate_critic_targets` 強制 target 必須是版面中實際存在的 asset ID; +- request 保存 prompt、prompt SHA-256、B0 candidate ID、B0 render ref 與 SHA-256、known asset IDs;write-once。 + +新增 `metagpt/ext/agentlayout/actions/judge_critic_a3.py`(`JudgeCriticA3`): + +- 只附一張圖:B0 render;prompt 明示「selection 已結束,禁止 re-rank/re-select」; +- vision-required、exact model match、error-aware retry 3 次,artifacts write-once,同 Select 模式; +- 本階段只建立 gate-ready contract;真正消費 issues 的一次 targeted repair 在 A3-07。 + +### 10.3 Canonical L0 orchestrator + +新增 `metagpt/ext/agentlayout/a3_pipeline.py`(`A3L0Pipeline`): + +```text +Analyst (once, frozen) + -> Asset Planner (once, frozen; 只有 T2 呼叫) + -> Composition Director (恰 3 concepts) + -> Coordinate Mapper (每 concept 一個 candidate) + -> deterministic QC (逐 candidate 記錄,不過濾、不丟棄) + -> Judge-Select 選 B0 + -> unconditional stop +``` + +- pipeline version:`a3.l0-pipeline.v1`;R0 bundle:`a3.r0-bundle.v1`;candidate policy:`a3.l0-candidate-policy.v1`; +- 不走 legacy `LayoutPipeline`:新 orchestrator 原始碼中不存在 ACCEPT/REJECT、threshold、consecutive accepts、max_total_rounds、issue ledger、polish、Analyst reroute 或任何 while loop(有 source-level test 鎖定); +- stage 全部以注入 callables 提供,離線 fake Actions 即可驗證 orchestration contract,0 API; +- L1-Gated config 直接 `NotImplementedError`(明確標注 A3-07),不會靜默把 L1 當 L0 跑; +- **exactly-three contract**:Director 不是 3 個 concepts → versioned `ConceptCountMismatch` ErrorRecord 落盤並 fail-closed;任一 slot 的 Mapper/render 失敗記入該 slot,完成數 <3 → versioned `CandidateShortfall` ErrorRecord(含逐 slot 失敗原因)落盤、不呼叫 Judge、不降級; +- **all-QC-fail 不降級**:3 個候選帶著明確 `qc_passed=false` 標記進 Judge-Select,結果標 `degradations=["all_qc_failed"]`,永遠不會變成未標記的正式候選; +- **tree ablation boundary**:T2 呼叫 Planner 一次後 freeze;T0/T1/T3 完全不呼叫 Planner;T0/T1 的 `TreeCondition` 不含 tree(T1 只有 flat roles),三個 slot 共用同一個 condition 物件、budget/protocol 一致;T3 必須外部提供 human oracle tree; +- artifacts(write-once):`analyst_output.json`、`tree_condition.json`、`r0_bundle.json`(含每 slot render SHA-256 與 QC 結果)、`judge_select_result.json`、`l0_result.json`、`errors/error_NNNN.json`;artifacts 目錄 `mkdir(exist_ok=False)`,同一目錄不可重用。 + +### 10.4 Selection 與 critique 是兩次獨立呼叫 + +- 兩個 result schema 除 `schema_version` 外欄位完全 disjoint(select 無 `issues`;critic 無 `ranking`/`selected_candidate_id`); +- 兩個 prompt 各自獨立建構、SHA-256 不同、角色名稱不同(Judge-Select / Judge-Critic); +- 兩個 Action 各自獨立 artifacts 目錄與 request/response 檔案; +- L0 pipeline 只呼叫 Judge-Select 一次,orchestrator 沒有任何 critic hook(test 以 call counter + `hasattr` 驗證);critique 只能是對 B0 的第二次獨立呼叫。 + +### 10.5 Tests + +新增: + +- `tests/metagpt/ext/agentlayout/test_judge_select_a3.py`(9 tests); +- `tests/metagpt/ext/agentlayout/test_judge_critic_a3.py`(11 tests); +- `tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py`(10 tests)。 + +執行 A3-01~06 全套: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py \ + tests/metagpt/ext/agentlayout/test_layout_tree_v3.py \ + tests/metagpt/ext/agentlayout/test_judge_select_a3.py \ + tests/metagpt/ext/agentlayout/test_judge_critic_a3.py \ + tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py +``` + +結果:`79 passed in 2.88s`(基準 49 + 新增 30)。 + +涵蓋: + +- selection schema 純 ranking、無 score/verdict/critique 欄位、extra 欄位拒絕; +- ranking 唯一性、selected=ranking[0]、exact permutation; +- select prompt 無 ACCEPT/REJECT/threshold/35、恰 3 候選強制; +- critic 最多 2 issues、模糊 issue type 結構性拒絕、target/desired_change 必填、 + targets 必須存在、空 issues 合法、無 overall score 欄位; +- 兩個 contract 欄位 disjoint、prompt hash 不同、pipeline 只呼叫 select 一次; +- L0 happy path:Analyst/Planner 各 1 次、Mapper 3 次、Judge 1 次、B0 選定後 + unconditional stop; +- Director ≠3 concepts 與 candidate shortfall 的 versioned fail-closed 紀錄, + Judge 不被呼叫; +- all-QC-fail 標記 degradation、仍全數帶標記送 Judge; +- 非法 judge permutation 拒絕; +- T0/T1 不呼叫 Planner、無 tree、三 slot 同一 condition;T3 需外部 oracle; +- artifacts write-once、目錄不可重用;L1-Gated 明確 defer A3-07; +- a3_pipeline.py source 無任何 legacy loop constructs。 + +Ruff:`All checks passed`(新檔)。`py_compile` 與 `git diff --check` 通過。 + +### 10.6 成本 + +- API calls:0;paid tokens:0;所有驗證皆 fake Actions + 合成 PNG。 + +### 10.7 邊界與下一步 + +- 本階段未實際呼叫任何 MLLM,不能宣稱 Judge-Select 的選擇品質或 Critic 的 issue 精準度;那是 A3-08 N=5 smoke 與 A3-09C Gate C 的問題; +- `A3L0Pipeline` 的 Director/Mapper/QC stage 目前以 callables 注入;A3-07/A3-08 需把真實 Actions(`ComposeConcept`/`GenerateLayout` 的 A3 版與 `quality_checker`)綁定到此 boundary,並接上 `run_a3.py` 的 `run` 子命令與 per-call usage/cost capture; +- Judge-Critic 已是 gate-ready contract,但 repair gate、targeted repair routing、verifier 與 B0/B1 best-so-far guard 全部屬於 A3-07; +- concept 的 spatial-diversity 驗證仍未實作(audit §4.9 既知 partial),不在本階段範圍。 + +**A3-06 status: complete。下一階段:A3-07 L1-Gated、targeted repair、verifier 與 B0/B1 guard——入口是把 `JudgeCriticA3` 的 actionable issues 接上 deterministic gate 與單次修復路由,並在 `A3L0Pipeline` 旁建立 L1 variant(維持 unconditional stop 與 best-so-far guard)。** + +--- + +## 11. A3-07:L1-Gated 單次修復、verifier 與 B0/B1 guard + +**日期:** 2026-07-10 +**起始 commit:** `8fa67aa4981ed1d8bb45b3466b66496993a3a447` +**性質:** gated single-revision orchestration;0 API calls、0 paid tokens、未執行任何 N=5/N=20/N=100。 + +### 11.1 Repair gate 與 routing(tools/repair_gate.py) + +- gate policy version:`a3.l1-repair-gate.v1`;guard policy version:`a3.b0b1-guard.v1`; +- `evaluate_repair_gate(critic, known_asset_ids)` 產生 versioned `RepairDecision`: + - critic 0 issues → `no_actionable_issue`(model validator 禁止此 outcome 攜帶 route/instruction); + - 有 issues → `one_targeted_repair`,恰一個 route、一份 revision instruction、KEEP constraints(= 非 target 的全部 asset IDs); + - target 不存在 → `validate_critic_targets` 直接拒絕; +- **routing table 完整覆蓋 12 個 closed issue types**(test 鎖定 `set(ISSUE_ROUTING)==set(CriticIssueType)`): + - bbox/spacing/alignment/scale/contrast 類 10 種 → `coordinate_mapper`; + - `hierarchy_error`、`tree_inconsistency` → `director_then_mapper`;混合 issues 時 Director 路由優先; + - semantic role / tree 推論錯誤依 new_plam §4.6 不進 runtime loop——因為 Judge-Critic 的 closed enum 根本無法表示這類 issue,結構上不可路由; +- revision instruction 明文:「exactly ONE revision pass」、逐 issue 的 targets/observation/desired change、KEEP 清單、「semantic roles 與 Layout Tree frozen」;單輪 KEEP constraints 存在但無跨輪 ledger。 + +### 11.2 Deterministic verifier 與 B0/B1 guard + +- `IssueVerification`:每個 gated issue 一筆 `issue_index`/`improved`/`evidence`; +- `check_b1_against_b0` 實作 new_plam §4.7 條件 1–3,全部 fail-closed: + 1. verifier 覆蓋必須恰等於 issue 集合(缺漏=`verifier_coverage_mismatch`)且每項 `improved`; + 2. B1 不得新增 hard violation(`set(b1)-set(b0)` 非空即拒); + 3. completeness 不得下降;B0 有訊號而 B1 缺訊號也拒(`completeness_signal_missing`); +- `resolve_winner` 實作條件 4:pairwise internal selection **只能把 B1 降回 B0,不能救回未通過 deterministic check 的 B1**;deterministic check 未過時 pairwise 完全不執行; +- `B0B1GuardResult` versioned 落盤:deterministic verdict、全部 reasons、pairwise 是否使用、winner。 + +### 11.3 A3L1GatedPipeline(a3_pipeline_l1.py) + +- pipeline version:`a3.l1-pipeline.v1`;`LOOP="L1-Gated"`; +- 繼承 `A3L0Pipeline` 並共用同一 `_run_r0_phase`(本階段將 L0 的 R0+Select 流程抽成 `R0PhaseOutcome`,`A3L0Result` 行為不變;`QCVerdict`/`R0SlotRecord` 增加 optional `completeness`/`qc_completeness` 供 guard 用); +- L0/L1 class 都以 `LOOP` classvar 驗證 config:loop 不符即 `ValueError`(取代 A3-06 的 NotImplementedError,deferred 已兌現); +- 完整流程:R0 phase → `judge_critic(B0, known_asset_ids)` 一次 → gate → + - 無 issue:直接輸出 B0,`repair_attempted=False`,b1/guard/verifications 全 None; + - 有 issue:`_revise_once` 恰一次(repair callable → render → QC)→ verifier → guard → keep B0 or B1 → unconditional stop; +- **repair 失敗不毀 sample**:B0 已存在,寫 versioned `RepairExecutionFailed` ErrorRecord、B1 記為 `status=failed`、guard 直接判 B0; +- revision 消費**同一個 frozen tree condition**(test 以 object identity 鎖定);Analyst/Planner/Director/R0 Mapper 呼叫數在 L1 全程維持 1/1/1/3; +- artifacts(write-once):L0 全套之外新增 `judge_critic_result.json`、`repair_decision.json`、`b1_candidate.json`、`issue_verifications.json`、`b0b1_guard.json`、`l1_result.json`;不寫 `l0_result.json`; +- source-level test 鎖定 a3_pipeline_l1.py 無 ACCEPT/REJECT/threshold/consecutive/max_total_rounds/ledger/polish/reroute/while。 + +### 11.4 Tests + +新增: + +- `tests/metagpt/ext/agentlayout/test_a3_repair_gate.py`(11 tests); +- `tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py`(12 tests); +- 更新 `test_a3_l0_pipeline.py` 的 deferred-L1 測試為 loop-mismatch 測試。 + +執行 A3-01~07 全套(10 個測試檔): + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py \ + tests/metagpt/ext/agentlayout/test_layout_tree_v3.py \ + tests/metagpt/ext/agentlayout/test_judge_select_a3.py \ + tests/metagpt/ext/agentlayout/test_judge_critic_a3.py \ + tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py \ + tests/metagpt/ext/agentlayout/test_a3_repair_gate.py \ + tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py +``` + +結果:`102 passed in 3.11s`(A3-06 基準 79 + 新增 23)。 + +涵蓋: + +- routing table 恰覆蓋 12 個 closed types、mapper/director 路由與混合 dominance; +- no-issue outcome 無 route/instruction;decision model outcome consistency; +- unknown target 拒絕;KEEP constraints 與 revision instruction 內容; +- guard:全通過、not-improved、coverage gap、新 hard violation、completeness 下降、 + completeness 訊號缺失各自拒絕;pairwise 只能 demote 不能 rescue; +- L1 happy path 選 B1、unimproved/violation/completeness 各自守回 B0; +- 上游 stage frozen(Analyst/Planner/Director 各 1、Mapper 3、critic 1、repair ≤1); +- repair 失敗 fallback B0 + ErrorRecord;invalid critic targets 拒絕; +- L1 artifacts write-once、目錄不可重用;L0/L1 loop-config 互斥; +- 兩個 pipeline source 都無 legacy loop constructs。 + +Ruff:`All checks passed`。`py_compile` 與 `git diff --check` 通過。 + +### 11.5 成本 + +- API calls:0;paid tokens:0;全部 fake stage callables + 合成 PNG。 + +### 11.6 邊界與下一步 + +- pairwise internal selection 的實際 MLLM prompt/Action 尚未建立(L1 允許 `pairwise_select=None` 跳過);若 A3-08 要用 pairwise,需另立獨立 request/artifact contract,同 Select/Critic 模式; +- verifier 目前是注入 callable;A3-08 前應把 `feedback_verifier.py` 的幾何 predicates 適配到 `IssueVerification`(issue type → deterministic check 的映射要 versioned); +- repair callable 尚未綁定真實 `GenerateLayout`/`ComposeConcept` A3 版;`director_then_mapper` 路由的實際兩段呼叫留待 stage binding; +- L1 對品質的因果效果完全未測——那是 A3-09C Gate C 的問題;若 Gate C 未過,最終配置退回 L0。 + +**A3-07 status: complete。下一階段:A3-08 N=5 smoke——入口是把真實 Actions(AnalyzeA3Brief/PlanAssetsA3/Director/Mapper A3 版/JudgeSelectA3/JudgeCriticA3)綁定到 A3L0Pipeline/A3L1GatedPipeline 的 stage boundary,接上 run_a3.py `run` 子命令與 per-call usage/cost capture,凍結 N=5 sample IDs 與 config 後才允許第一次付費呼叫。** + +--- + +## 12. A3-08a:Director/Mapper A3 Actions 與 deterministic issue verifier + +**日期:** 2026-07-10 +**起始 commit:** `24ffb8bea2fa7c7c37c1a3272940082ea8174779` +**性質:** N=5 smoke 前置的 stage contracts;0 API calls、0 paid tokens。 + +### 12.1 缺口盤點 + +A3-07 結束時 pipeline 的 Director/Mapper/verifier 仍是注入 callables;repo 中只有 legacy `ComposeConcept`/`GenerateLayout`(吃 DesignSpec/舊 LayoutTree,audit §4.2 判 partial/conflicting),沒有消費 `A3AnalystOutput`+`TreeCondition` 的 A3 版。本階段補齊三個 contract。 + +### 12.2 Tree condition prompt boundary + +`layout_tree_v3.py` 新增 `condition_prompt_payload(condition)`:T0 只輸出 asset IDs、T1 加 flat roles、T2/T3 加完整 tree JSON——Director/Mapper 共用同一 serializer,四個 ablation arms 在 prompt 層面**只差 tree 資訊**(test 鎖定 payload key set)。 + +### 12.3 A3 Composition Director + +- `tools/director_contract.py`:`a3.concept-set.v1`(恰 3 個 `CompositionConcept`、名稱必須 distinct)+`a3.director-request.v1`(prompt hash+tree arm);`validate_concepts_against_assets` 強制 focal_element 是已知 asset ID;prompt 要求三個概念空間上明顯不同、禁止輸出座標/bbox/字級/路徑; +- `actions/compose_concept_a3.py`(`ComposeConceptA3`):vision-required(附 background overview)、exact model match、error-aware retry ×3、request/attempt/concept_set artifacts write-once。 + +### 12.4 A3 Coordinate Mapper + +- `tools/mapper_contract.py`:`a3.mapper-request.v1`(mode=`r0`/`revision`);輸出沿用 pixel `Candidate` schema;`validate_candidate_coverage` 強制每個 foreground asset 恰一次; +- **R3 leakage 邊界**:prompt 對 bitmap 只給 `bitmap_aspect_ratio`,不給 normalized/original pixel sizes、無 legacy natural-size 指令(test 鎖定);唯一 pixel 數字是 canvas; +- **revision mode**:同一 contract 承載 L1 單次修復——附 B0 elements 作 editing base+gate 的 revision instruction,明示「apply ONLY the requested change」;`revision_instruction` 與 `base_elements` 必須成對提供; +- `actions/generate_layout_a3.py`(`GenerateLayoutA3`):vision-required、exact model、retry ×3、write-once artifacts。 + +兩個 action 依 repo 慣例拆薄殼:純 contract(schema/prompt/parse/validate)在 tools、`metagpt.actions.Action` 依賴只出現在 action 檔,isolated uv suite 不需拉 tenacity/aiohttp 等重依賴。 + +### 12.5 Deterministic issue verifier + +`tools/issue_verifier.py`(policy `a3.issue-verifier.v1`)把 12 個 closed critic issue types 分兩類(test 鎖定 partition 完整互斥): + +- **STRICT(幾何可嚴格量測)**:overlap(target 交疊面積必須縮小)、clipping/out_of_bounds(出界面積縮小)、text_too_small/illegible_text(最小 target 面積增大)、misalignment(到最近 guide 的距離縮小); +- **PROXY(需像素/語意,誠實標注 acted-upon proxy)**:spacing/lockup/poor_contrast/text_on_busy_region/hierarchy_error/tree_inconsistency——只驗證所有 target 確實移動/改尺寸;evidence 字串明示 proxy 性質,感知品質由 Gate C 判定,不由 verifier 宣稱; +- target 缺失 fail-closed(improved=False);輸出 `IssueVerification` 直接餵 A3-07 `check_b1_against_b0`(integration test 驗證)。 + +### 12.6 Tests + +新增 `test_a3_director_mapper.py`(10 tests)與 `test_a3_issue_verifier.py`(10 tests)。全套: + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py \ + tests/metagpt/ext/agentlayout/test_layout_tree_v3.py \ + tests/metagpt/ext/agentlayout/test_judge_select_a3.py \ + tests/metagpt/ext/agentlayout/test_judge_critic_a3.py \ + tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py \ + tests/metagpt/ext/agentlayout/test_a3_repair_gate.py \ + tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py \ + tests/metagpt/ext/agentlayout/test_a3_director_mapper.py \ + tests/metagpt/ext/agentlayout/test_a3_issue_verifier.py +``` + +結果:`122 passed in 3.48s`(A3-07 基準 102 + 新增 20)。 + +Ruff:`All checks passed`。`py_compile` 與 `git diff --check` 通過。 + +### 12.7 成本 + +- API calls:0;paid tokens:0。 + +### 12.8 邊界與下一步(A3-08b) + +- Director 的 spatial diversity 仍靠 prompt 要求+名稱 distinct 驗證,沒有幾何 diversity verifier(audit 既知 partial,非本階段範圍); +- verifier 的 PROXY 類型只證明「修復有被執行」,不證明感知改善——這個限制已寫進 evidence 字串與本節,論文引用時不得拔高; +- **A3-08b 剩餘工作**:stage binding factory(把 6 個真實 Actions+renderer/QC 接到 pipeline callables、per-call usage/cost capture)、`run_a3.py run` 子命令、凍結 N=5 sample IDs 與 smoke config;之後的第一次付費呼叫需使用者確認成本後才執行。 + +**A3-08a status: complete。** + +--- + +## 13. A3-08b:stage binding、run CLI、cost capture 與 smoke freeze + +**日期:** 2026-07-11 +**起始 commit:** `39a4e86d46e8dfb657d0105b9e6a1650b2ea978a` +**性質:** 付費 smoke 前最後一段 zero-API 綁定;0 API calls、0 paid tokens。 + +### 13.1 Stage binding(a3_stage_binding.py) + +`A3StageBinding`(一個 instance 服務一個 sample)把六個真實 Actions+deterministic renderer/QC 接到 A3L0Pipeline/A3L1GatedPipeline 的 callables: + +- analyst → `AnalyzeA3Brief`(R3 manifest+write-once artifacts dir);輸出凍結後立刻導出 rendering `DesignSpec`; +- planner → `PlanAssetsA3`;director → `ComposeConceptA3`(canvas 字串+background overview base64); +- mapper → `GenerateLayoutA3`,三次 R0 呼叫各自獨立 `mapper_NN` artifacts dir,回傳 `Candidate.model_dump()`; +- renderer → 既有 `render_to_file`(R3 contain path)+frozen DesignSpec; +- qc → 既有 `check_candidate`,violations 序列化為 `type: detail` 字串、completeness=非背景元素覆蓋率;Analyst 未跑前 renderer/QC fail-closed; +- judge_select → `JudgeSelectA3`(context 只帶 design_intent);judge_critic → `JudgeCriticA3`(B0 render only); +- repair → 同一 `GenerateLayoutA3` 的 revision mode,concept 取 **B0 slot 對應的原 concept**(R0_SLOT_IDS index),帶 gate revision instruction+B0 elements 作 base; +- verifier → `issue_verifier.verify_issues`(manifest canvas 尺寸)。 + +**Per-call cost capture**:每個 LLM stage 呼叫記一筆 `a3.stage-call-record.v1`(stage、wall seconds、cost manager 的 token/cost delta;provider 無 cost manager 時誠實記 `usage=null` 而非 0)。`write_call_records` write-once 落盤 `stage_calls.json`。 + +Binding 對 Action 採 duck-typing,離線測試用 fake actions 驗證 wiring,不需拉 `metagpt.actions` 重依賴鏈。 + +### 13.2 run CLI(fail-closed 授權) + +`run_a3.py` 新增 `run` 子命令: + +```bash +python layout_agent/run_a3.py run \ + --run-dir layout_agent/runs/a3/ \ + --tree-arm T2 \ + [--allow-api-calls] +``` + +- **無 `--allow-api-calls`:只印 call budget JSON(authorized=false)、exit 2、不建立任何輸出、不 import LLM 機件**; +- 有 flag 才 lazy import 六個 Actions;per-sample 建 binding+pipeline(L0/L1 依 run config.loop)、失敗寫 versioned ErrorRecord、run level write-once `a3_run_summary.json`; +- call budget(不含 schema retry):L0+T2=7 calls/sample;L1-Gated+T2=9 calls/sample(critic+至多一次 revision)。 + +### 13.3 Smoke freeze(config 與 sample IDs) + +- `layout_agent/configs/a3_smoke_l0.json`、`a3_smoke_l1_gated.json`:全 stage 固定 `gpt-5.4-mini-2026-03-17`、image_detail=high、seed=42、schema version map 完整; +- `layout_agent/sample_ids/a3_smoke_n5.json`:**選樣規則(凍結)**=cache `layout_agent/output/crello_*` 依字典序,取前 5 個能離線通過 `prepare_pfull_sample`+`prepare_r3_sample` 且(≥2 placeable foregrounds、≥1 text bitmap)的 IDs;只讀 input metadata/assets、不看 GT coordinates 或任何 model output。掃描結果:前 5 個 ID 直接全數合格(tried=5, selected=5): + `5888a28d95a7a863ddcc1c82, 5888a54d95a7a863ddcc1d0c, 5888b64795a7a863ddcc1d6d, 5888bb2995a7a863ddcc1f74, 5888c54095a7a863ddcc2082`。 + +### 13.4 Tests + +新增 `test_a3_stage_binding.py`(6 tests): + +- binding+fake actions+**真 renderer/真 QC** 跑完整 L0:三張 800x600 render 落地、completeness=1.0、Director 收到 canvas/b64、三個 mapper artifacts dir 互異、Judge context 來自凍結 Analyst 輸出; +- call records 恰 7 筆(stage 順序鎖定)、fake 無 cost manager 時 usage=None、寫檔 write-once; +- L1 整鏈:critic 只看 B0、revision 用 B0 的原 concept(slot 02→"Top banner")+gate instruction+base elements、verifier evidence 帶 `a3.issue-verifier.v1`; +- QC 缺元素→passed=False、completeness=0.5;Analyst 未跑前 QC 拒絕; +- **CLI subprocess 測試**:無 `--allow-api-calls` 時 exit 2、budget JSON(L0+T2=7/sample、N=2=14 total)、stderr 明示 flag、無任何 run 輸出被建立。 + +全套(13 個測試檔):`128 passed in 3.91s`(A3-08a 基準 122+新增 6)。 + +Ruff:`All checks passed`。`py_compile` 與 `git diff --check` 通過。 + +### 13.5 成本 + +- API calls:0;paid tokens:0(選樣掃描與所有測試皆本地 deterministic)。 + +### 13.6 N=5 smoke 的 exact commands 與 call budget(待使用者授權) + +```bash +python layout_agent/run_a3.py init \ + --config layout_agent/configs/a3_smoke_l0.json \ + --sample-ids layout_agent/sample_ids/a3_smoke_n5.json \ + --run-id a3-smoke-n5-l0-01 +python layout_agent/run_a3.py prepare-pfull --run-dir layout_agent/runs/a3/a3-smoke-n5-l0-01 --crello-root layout_agent/output +python layout_agent/run_a3.py normalize-r3 --run-dir layout_agent/runs/a3/a3-smoke-n5-l0-01 +python layout_agent/run_a3.py prepare-analyst-vision --run-dir layout_agent/runs/a3/a3-smoke-n5-l0-01 +python layout_agent/run_a3.py run --run-dir layout_agent/runs/a3/a3-smoke-n5-l0-01 --tree-arm T2 # 印 budget 後拒絕 +python layout_agent/run_a3.py run --run-dir layout_agent/runs/a3/a3-smoke-n5-l0-01 --tree-arm T2 --allow-api-calls +``` + +Budget:L0 N=5 最多 35 model calls(無 retry 時);L1-Gated 另一 run 最多 45 calls。實際 dollar 成本取決於 runtime 可用的 exact snapshot 與其牌價,未凍結前不虛報。 + +### 13.7 邊界與剩餘阻塞 + +- **模型阻塞**:config 凍結 `gpt-5.4-mini-2026-03-17`(new_plam §3.2),Actions 的 exact-model guard 會在 runtime model 不符時 fail-closed。執行前需確認 `~/.metagpt/config2.yaml` 指向該 snapshot(或由使用者決定改凍其他 snapshot 並重寫兩份 config+log);repo 歷史顯示 cost log 從來是 0(step91 觀察),stage-call usage 欄位屆時可能為 null,wall time 仍會記錄; +- pairwise B0/B1 internal selection 仍為 None(未建 MLLM Action);smoke 不需要; +- `sample_record.json` 是 init 時 write-once 的 v1 契約,run 結果存於 `a3_run_summary.json`+per-sample pipeline artifacts,不回寫 sample_record(v2 再議); +- 第一次付費呼叫依規範停在授權門口,等使用者確認。 + +**A3-08b status: complete(zero-API 部分)。A3-08 剩餘=實際 N=5 付費 smoke,需使用者授權 `--allow-api-calls` 與 model snapshot 確認。** + +--- + +## 14. A3-08c:N=5 付費 smoke 執行(L0 三輪+L1-Gated 一輪) + +**日期:** 2026-07-11 +**起始 commit:** `ff41bf34ce055639587688887220ce456f440b0e`(dirty worktree) +**授權:** 使用者 2026-07-11 口頭授權(L0 ≤35 calls+L1 ≤45 calls) +**Model snapshot:** `gpt-5.4-mini-2026-03-17`(runtime config 已相符,exact-model guard 全程通過;`MULTI_MODAL_MODELS` 已含 `gpt-5.4-mini` substring,vision 正常) + +### 14.1 Run 1(a3-smoke-n5-l0-01):0/5,三個 contract 缺陷現形 + +Prep(init/prepare-pfull/normalize-r3/prepare-analyst-vision)5/5 全過;budget gate 驗證正常(未授權 exit 2)。付費執行 **0/5 completed**,機制全部正確(fail-closed、versioned ErrorRecord、單 sample 失敗不中斷): + +| 缺陷 | 樣本數 | 根因 | +| --- | --- | --- | +| Analyst 把 placeable 全畫布材質標成 `background_image`,retry 3 次仍堅持 | 2/5 | P-Full pixel-only 規則把舊背景降級為 placeable,schema 卻仍允許該值,coverage 驗證只在事後拒絕 | +| Planner root child 用非 `root` relation,retry 3 次不收斂 | 1/5 | root child 只有一個合法 relation 值,卻交給 LLM 重試 | +| Planner semantic_role 與 Analyst 逐字不符 | 2/5 | A3-05 prompt 寫「Assign a concise semantic_role」但 T2 fidelity 驗證要求逐字相同——prompt 與 contract 直接矛盾 | + +另發現 run CLI 缺陷:stage_calls 只在成功時落盤,失敗 sample 的付費呼叫(本輪 ~18 次)沒有 cost trail。 + +### 14.2 修正(全部 versioned、131 tests 全綠) + +1. `A3AssetUnderstanding` schema 層禁止 `background_image`(指名 asset 的 actionable error 進 retry loop)+Analyst prompt 明文規則;coverage 驗證保留為第二層防護; +2. `parse_layout_tree` 正規化:root child 的 relation 一律 coerce 為 `root`(唯一合法值、零資訊損失);反向錯誤(非 root parent 用 `root`)維持硬錯誤; +3. `apply_analyst_semantics`:Planner 輸出的 semantic_type/role 由 Analyst 輸出**確定性覆寫**(T2 fidelity by construction),Planner 只貢獻 grouping/edges/ordering/confidence;tree prompt 同步改為 VERBATIM 指令; +4. run CLI `finally` 落盤 stage_calls(成功失敗都留 cost trail); +5. (Run 2 後追加)`validate_candidate_coverage` 重複 ID 錯誤指名重複的 IDs+Mapper prompt 明文「視覺相同的資產仍是不同 asset ID」。 + +新增 3 個測試鎖定修正 1–3;修正 5 由既有測試覆蓋(錯誤訊息 phrase 不變)。 + +### 14.3 Run 2(a3-smoke-n5-l0-02):4/5 + +- 4 samples completed,各恰 7 stage calls、B0 選定、unconditional stop; +- render 視覺抽查:R3 text bitmap 保留設計師字型/顏色、aspect 正確、無 GT 位置洩漏; +- 1 sample `CandidateShortfall`(fail-closed 正確):Mapper 對兩個視覺相同的 coupon strip 重複同一 asset ID、retry 3 次不收斂 → 修正 5; +- 失敗 sample 的 stage_calls 正確落盤(修正 4 生效)。 + +### 14.4 Run 3(a3-smoke-n5-l0-03):**5/5,L0 smoke 通過** + +- 5/5 completed,每 sample 恰 7 calls(總 35,零 retry 燒穿); +- per-sample wall time 20.0–56.6s,run 總計 176.9s; +- B0 分佈:4× `r0_candidate_03`、1× `r0_candidate_01`——**觀察:Judge-Select 可能有 attachment 順序偏好(末位偏好)**,樣本太小不能下結論,記為 Gate C/正式 run 前值得做 position-shuffle 的候補檢查; +- 視覺抽查(先前失敗樣本):西裝照、雙 coupon 疊成 -40%/SALE lockup、材質塊全部就位;**白色文字 bitmap 放白底上會隱形(poor_contrast)**——品質問題非 smoke 阻塞,正是 Judge-Critic issue types 的靶子。 + +### 14.5 Run 4(a3-smoke-n5-l1-01):**5/5,L1-Gated smoke 通過** + +- 5/5 completed,每 sample 恰 9 calls(總 45); +- 整條 L1 鏈全部開火:Critic 每 sample 輸出 1–2 個 closed-type issues(spacing/misalignment/clipping/lockup/text_on_busy_region/illegible_text——全在 closed enum 內,零模糊意見)→ gate 觸發 → 單次 revision → deterministic verifier → **guard 5/5 守回 B0**(unimproved 或 revision 引入新 hard violation,如 out_of_bounds、text_obscured_by_overlay)→ unconditional stop; +- guard 防退化行為與歷史 refinement-negative 結果(step 20b/step89)方向一致;「L1 是否有淨效益」是 A3-09C Gate C 的問題,smoke 只驗證機制。 + +### 14.6 Phase 1 smoke checklist(new_plam §8) + +| 檢查項 | 結果 | +| --- | --- | +| Analyst 確實看到 background 與所有 foreground | ✓(vision packet+exact model) | +| Asset IDs 全 pipeline 一致 | ✓(coverage 驗證層層把關) | +| Layout Tree 在座標前產生 | ✓(planner 一次、freeze) | +| 3 concepts spatially distinct | ✓(名稱 distinct 驗證;幾何 diversity 仍靠 prompt) | +| 3 candidates 完整 render | ✓(run-03/L1 全數) | +| R3 字型可讀、alpha crop、無 GT bbox leakage | ✓(視覺抽查+contract tests) | +| L0 與 L1-Gated 都能停止 | ✓(全部 unconditional stop) | +| trace/cost/model ID/prompt hash 落盤 | ✓(stage_calls、per-stage request+sha256、exact-model guard;token usage 為 provider 回報 0——已知 repo 級缺口,wall time 有記錄) | + +### 14.7 成本 + +- 付費呼叫:run1 ~18(失敗前)+run2 ~33+run3 35+run4 45 ≈ **131 calls**(gpt-5.4-mini-2026-03-17,含 vision); +- provider usage 回報全 0(與 step91 歷史觀察一致),實際 dollar 成本無法從 runtime 取得;wall time 全程記錄; +- artifacts 落於 `layout_agent/runs/a3/a3-smoke-n5-{l0-01,l0-02,l0-03,l1-01}/`(write-once,未 commit——依 repo output 慣例留在 worktree,四個 run 目錄互不覆蓋、失敗 run 保留 forensic 證據)。 + +### 14.8 結論與下一步 + +**A3-08 status: complete。** Pipeline 資料與管線驗證通過;smoke 期間修正的 5 個缺陷全部 versioned+測試鎖定。已知觀察(非阻塞):Judge-Select 疑似末位偏好、白字白底 contrast、concept 幾何 diversity 未驗證、provider token usage=0。 + +下一階段 **A3-09 N=20 gates**(Phase 2):Gate A(Analyst vision ablation)、Gate B(Crello-Relation T0/T2/T3,需 human reference tree annotation)、Gate C(L0 vs L1-Gated,同一批 R0)。三個 gate 都是付費實驗,執行前需凍結各自 sample IDs/config/評估協定並取得授權;Gate B 另有 human annotation 前置依賴(new_plam §5.3)。 + +--- + +## 15. A3-09C:Gate C(L0 vs L1-Gated,N=20,同一批 R0) + +**日期:** 2026-07-11 +**起始 commit:** `fe4cef54`(infra commit `f6f99805`) +**授權:** 使用者「繼續下一階段」;Gate A/B 因 human reference tree annotation 前置依賴而未跑,Gate C 是唯一無人工依賴的 gate。 + +### 15.1 協定與基礎設施 + +Gate C 核心要求(new_plam §8):兩臂共用**同一批 R0 candidates 與同一個 B0**,只差 revision tail。實作: + +- `A3L1GatedPipeline.run_from_r0(outcome)`:把 L1 拆成 R0 phase+tail,tail 可吃 persisted L0 run 的 `analyst_output/tree_condition/r0_bundle/judge_select_result`; +- `A3StageBinding.hydrate_from_r0`:從 L0 artifacts 還原 per-sample 狀態(DesignSpec、concept order),Analyst/Planner/Director/Select 四個 stage 零重呼叫; +- CLI `run-l1-tail --reuse-r0-from `:同樣 fail-closed 授權,budget 2 calls/sample; +- 測試 133 全綠(`run_from_r0` 上游零呼叫+binding hydration 各有測試鎖定)。 + +### 15.2 Sample 凍結 + +`layout_agent/sample_ids/a3_gatec_n20.json`:規則=cache IDs 排序後以 `random.Random(42)` 洗牌、排除 5 個 smoke IDs、依序取前 20 個離線通過 P-Full+R3 prep 的樣本(tried=473、failed=453)。**資料覆蓋發現**:失敗主因是 step80 text bitmap snapshot 只覆蓋部分 cache(`asset_NNNN has no bitmap; R3 forbids text-only fallback`),可用池約 4%——**N=100 正式實驗前必須擴大 text bitmap snapshot 覆蓋**。選樣只讀 input metadata/assets。 + +### 15.3 執行 + +- **L0 臂** `a3-gatec-n20-l0-01`:**20/20 completed**,恰 140 calls(7×20)、wall 10.2 min;B0 分佈 `01:5 / 02:7 / 03:8`——smoke 觀察到的末位偏好在 N=20 未重現,分佈健康; +- **L1 tail 臂** `a3-gatec-n20-l1-tail-01`:**20/20 completed**,39 calls(19×2+1 sample critic-only)、wall 1.6 min。 + +### 15.4 結果 + +| 指標 | 數值 | +| --- | --- | +| Critic 觸發 repair | 19/20(1 sample 無 actionable issue → 直接 B0) | +| Critic issue types(38 issues 全在 closed enum,零模糊意見) | spacing 13、out_of_bounds 5、clipping 4、overlap 3、hierarchy_error 3、text_on_busy_region 3、misalignment 3、illegible_text 2、poor_contrast 2 | +| **B1 存活(guard 判 B1 勝)** | **3/20(15%)** | +| B0 保留 | 16/19(guard reject 原因:issues_not_improved 16、new_hard_violations 3) | +| **Verifier compliance(issue 判定改善比例)** | **mean 34.2%**(per-sample 0–1.0) | +| Completion | 兩臂皆 20/20,L1 零 sample 損失(guard fallback 有效) | +| 幾何退化 | 無:guard by construction 擋掉新 hard violation 與 completeness 下降 | +| 成本 | L1 增量 ~2 calls/sample(+28% vs L0 的 7) | + +3 個 B1 存活樣本細節:僅 1 筆是 STRICT 幾何改善(alignment error 26→13),其餘驗證都是 PROXY(targets moved/resized)——嚴格可證的改善其實只有 1/20。 + +### 15.5 Gate C 判定 + +升級條件逐項(new_plam §8 Gate C): + +| 條件 | 結果 | +| --- | --- | +| L1 win > loss | 形式上成立(guard 使 loss=0),但實質只有 3/20 樣本輸出改變、其中僅 1 筆 strict 改善 | +| completion 不下降 | ✓(20/20 vs 20/20) | +| alignment/overlap/completeness 無系統性退化 | ✓(guard by construction) | +| **修復問題 compliance 高** | **✗(34.2%)** | +| 每 sample 成本可接受 | ✓(+2 calls) | + +**Gate C verdict:未通過(compliance 條件不成立)。依 new_plam §8「若未通過,最終配置改成 L0,不保留 loop 只為符合原始構想」——A3 最終 loop 配置定為 L0。** 此結果與整條歷史 refinement-negative 證據鏈(Step 20b、Step 89 §11.3、A2 negative)方向一致,且這次是在乾淨的 gated 單輪協定下取得:即使把修復限制在 closed-type、element-level、單次、有 deterministic guard 的最有利條件,Mapper 的修復執行力(34%)仍不足以讓 loop 產生淨效益。 + +**正面資產**:guard 機制證明能以零 completion 損失、零幾何退化的方式安全地嘗試修復——L1-Gated 作為「無害但低效」的機制記錄,論文可誠實引用為 controlled negative。 + +### 15.6 成本 + +- 付費呼叫:L0 140+L1 tail 39=**179 calls**(gpt-5.4-mini-2026-03-17);wall 合計 ~11.8 min;provider token usage 仍回報 0,wall time 全記錄; +- artifacts:`layout_agent/runs/a3/a3-gatec-n20-{l0-01,l1-tail-01}/`(write-once、未 commit)。 + +### 15.7 A3-09 剩餘 + +- **Gate A**(Analyst vision ablation):主要指標是 human-tree same-group F1/edge F1/role accuracy——**blocked on human reference tree annotation**; +- **Gate B**(Crello-Relation T0/T2/T3):同樣 blocked on annotation(T3 oracle+所有 arms 的 SGC/TLC/PCA 都要用 human reference tree);Crello-Relation 候選池可從 step97 N=100 subset 出發,但該 subset 是舊 SEGA 協定時代選的,需檢查與 A3 P-Full/R3 離線 prep 的交集; +- annotation 是人工工作(每 sample ≥2 標註者+adjudication,new_plam §5.3),無法由本 session 代做;可先做的零成本前置=annotation 工具/格式(human oracle tree 已有 `source="human_oracle"` contract)與 Crello-Relation×bitmap-cache 交集盤點。 + +**A3-09C status: complete(L0 定案)。** + +--- + +## 16. A3-09 前置:text bitmap sidecar 補齊與 human annotation contract + +**日期:** 2026-07-11 +**起始 commit:** `5f00a46b`(sidecar infra commit `fbe41f42`) +**性質:** Gate A/B 資料與標註前置;0 LLM calls(HF dataset 串流下載,非付費 API)。 + +### 16.1 阻塞盤點 + +- step97 Crello-Relation N=100 中僅 **6/100** 通過 A3 離線 prep——其餘 94 個樣本的全部 text elements 都沒有 cached bitmap(step80 snapshot 只覆蓋 demo ids); +- legacy step80 script 有兩個問題不能直接沿用:(a) 會**改寫 cache 的 meta.json**(違反不動舊 cache 的原則);(b) 把 bitmap **resize 到 GT canvas size**(GT geometry 進入資產本體)。 + +### 16.2 Text bitmap sidecar(fbe41f42) + +- 新 contract:`a3_text_bitmaps.json`(`a3.text-bitmap-sidecar.v1`)+`a3_text_NNNN.png` 放在 cache 目錄內的 A3 命名空間,**meta.json 一個 byte 都不動**(測試以 read_bytes 比對鎖定); +- bitmap 存 HF dataset 的 **raw render size**,不做 GT resize;R3 normalizer 的 tight-crop+512 長邊本來就會消除尺寸訊號; +- `pfull_preprocessor` 解析順序:text element 先查 sidecar、後退 legacy `asset_ref`(sidecar 優先,因 legacy 可能帶 step80 的 GT-size resize);不支援的 sidecar version fail-closed; +- CLI:`run_a3.py snapshot-text-bitmaps --ids --crello-root `(lazy import `datasets`、串流 `cyberagent/crello` test split、sidecar per-sample write-once、incremental skip)。 + +### 16.3 Snapshot 執行結果 + +```text +targets: 100(relation100_ids.json 全量) +done: 100/100、bitmaps_saved: 542、mismatches: 0(scanned≈1954) +``` + +重跑審計:**relation-100 現在 100/100 通過 P-Full+R3 離線 prep**——Gate B 樣本池與(該池內的)N=100 資料阻塞解除。Gate C 曾量到的「cache 可用池 ~4%」對一般池仍成立;一般 N=100 凍結前需對該池再跑一次 snapshot。 + +### 16.4 Human annotation contract(tools/annotation.py) + +依 new_plam §5.3 建立標註工具鏈(Gate A/B 評估的共同依賴): + +- `AnnotationPacket`(`a3.annotation-packet.v1`):標註者**只看** brief、asset IDs、media type、text content+contact sheet 檔名——無 GT geometry、無檔案路徑、**連 base background 都不給**(分組判斷純憑素材語意);packet hash 落盤、write-once,附空白 `annotation_form.json`; +- `HumanAnnotation`(`a3.human-annotation.v1`):per-asset semantic_type/role、group、parent/relation、uncertain flag;coverage/duplicate 驗證; +- `compute_agreement`:same-group pair Jaccard、edge Jaccard、type agreement、分歧資產清單——驅動 adjudication 佇列; +- `AdjudicationRecord`(`a3.annotation-adjudication.v1`):**強制 ≥2 標註者**+adjudicator+agreement 快照,分歧不可靜默解決; +- `annotation_to_oracle_tree`:合議後標註 → `A3LayoutTree(source="human_oracle")`,直接餵 T3 arm(測試驗證 `make_tree_condition("T3", ...)` 可用);uncertain 資產 confidence=0.5。 + +### 16.5 Tests + +新增 `test_a3_annotation.py`(7 tests)+pfull sidecar 3 tests。全套:**143 passed in 4.00s**。Ruff/py_compile/`git diff --check` 通過。 + +### 16.6 成本與剩餘 + +- LLM calls:0;HF 串流下載一次 test split(~1954 樣本掃描); +- **A3-09 剩餘阻塞只剩人工**:Gate A/B 需要真人對 Crello-Relation pilot(N=20)做雙標註+adjudication。工具鏈(packet/form/agreement/adjudication/oracle-tree 轉換)已就緒,产生 annotation packets 只差一個對已 prep run 的批次命令(可在標註開始前補); +- Gate A 另需 text-only Analyst ablation 臂(Action 未建,工作量小、zero-cost 可先建)。 + +--- + +## 17. A3-09 前置收尾:text-only 臂、annotation 批次命令與 pilot 標註包 + +**日期:** 2026-07-11 +**起始 commit:** `b155af5d` +**性質:** Gate A/B 最後零成本前置;0 LLM calls。 + +### 17.1 Gate A text-only Analyst 臂 + +- `analyst_vision.build_text_only_analyst_prompt`:與 vision 臂**同一 output schema/coverage/background_image 禁令**,prompt 明示「NO visual access」且要求不得虛構視覺細節(背景描述只能來自 brief); +- `actions/analyze_a3_text_only.py`(`AnalyzeA3TextOnly`):不附任何 image、exact-model guard、error-aware retry ×3、request(`a3.analyst-text-only-request.v1`,image_labels=[])與 attempts write-once; +- `run_a3.py run --analyst-arm vision|text-only`:binding 層換 Action,其餘 stage/budget/protocol 完全一致;`analyst_arm` 記入 run summary。Gate A 兩臂只差 Analyst 可見性一個變因。 + +### 17.2 prepare-annotation 批次命令 + +`run_a3.py prepare-annotation --run-dir `:逐 sample 輸出自足標註包至 `samples//annotation/`: + +```text +annotation_packet.json (brief+asset IDs/media/content+packet hash) +annotation_form.json (空白表單,標註者填 role/group/parent/uncertain) +asset_contact_sheet_NN.png(只複製 contact sheets——不含 background overview、 + 不含任何 GT 產物) +``` + +run level `annotation_preparation.json`;失敗寫 versioned ErrorRecord。 + +### 17.3 Gate A/B pilot N=20 凍結 + +`layout_agent/sample_ids/a3_gateab_pilot_n20.json`+`configs/a3_gateab_pilot_l0.json`: + +- **選樣規則(凍結)**:依 step97 `relation100_ids.json` 的 stored 順序,取前 10 個 tier=rich+前 10 個 tier=medium(維持 step97 tier-stratified、pre-generation、model-blind 性質); +- 註記:其中 2 個 ID(5888bb29…、5888c540…)與 N=5 smoke 重疊——smoke 只驗管線未做任何評估,標註只看 input,無汙染; +- pilot run `a3-gateab-pilot-n20-01` 已完成 init→prepare-pfull→normalize-r3→prepare-analyst-vision→**prepare-annotation 20/20**(全 zero-cost);標註包落於 `layout_agent/runs/a3/a3-gateab-pilot-n20-01/samples/*/annotation/`。 + +### 17.4 Tests + +新增 text-only prompt/action 測試(無 image、宣告無視覺、同 leakage 規則)。全套:**144 passed in 3.59s**。Ruff/py_compile 通過。 + +### 17.5 A3-09 待辦與依賴(快照) + +| 事項 | 狀態 | +| --- | --- | +| Gate C | ✅ complete(L0 定案) | +| Gate B 資料(bitmap sidecar) | ✅ relation-100 全 ready | +| Annotation 工具鏈+pilot 標註包 | ✅ 20 份已產出待分發 | +| Gate A text-only 臂 | ✅ 已建 | +| **Human annotation(pilot N=20 雙標註+adjudication)** | ⏸ **等真人**——分發 `samples/*/annotation/`,每位標註者填回 `annotation_form.json`(annotator_id 各自唯一),回收後以 `compute_agreement`+`AdjudicationRecord`+`annotation_to_oracle_tree` 合成 T3 oracle | +| Gate A 兩臂付費 run(vision vs text-only,各 N=20×7 calls) | 標註回收後執行(tree metrics 需 human trees) | +| Gate B T0/T2/T3 付費 runs(L0、各 N=20) | 同上;T3 需 oracle trees | + +**A3-09 前置全部完成;關鍵路徑現在完全在人工標註上。** + +--- + +## 18. A3-09M:human-tree evaluation metrics + +**日期:** 2026-07-11 +**起始 local HEAD:** `91793a30`(upstream `6493e3e1`;本階段開始前已有一筆未 push 的 handoff 文件 commit) +**性質:** deterministic evaluation infrastructure;0 API calls、0 paid tokens;未修改任何既有 run artifact。 + +### 18.1 A3 human-tree SGC / TLC / PCA + +新增 `metagpt/ext/agentlayout/tools/human_tree_metrics.py`。輸入介面明確要求: + +- 一棵呼叫端注入的 `A3LayoutTree(source="human_oracle")`;不讀取 arm 自己的 predicted tree 或任何 global tree state; +- legacy `Candidate` 的 pixel `left/top/width/height` 與 canvas width/height;bbox 先分別除以 canvas width/height,再建立一次共用距離矩陣; +- tree 以 stable asset ID 對 Candidate;tree 外元素(含 legacy `bg_*`)忽略,tree element 缺漏或重複則整筆記 `None`+`layout:*` skip reason,不做猜測式對齊。 + +共用距離為外框 L1 間隙: + +```text +d(i,j) = max(0, gap_x) + max(0, gap_y) +gap_x = max(x_i,x_j) - min(x_i+w_i,x_j+w_j) +``` + +重疊或相貼為 0。三個 metric 的實作與邊界: + +- **SGC**:每個 non-singleton group 先算組內 pair mean,再對 group mean 取平均(group-level `D_intra`);`D_inter` 是所有跨 group pair 的 pair-level mean;`SGC = D_inter / (D_intra + D_inter + 1e-6)`。單 group → `sgc:single_group`;全部 groups singleton → `sgc:all_groups_singleton`;均為 `None`。 +- **TLC**:列舉所有 anchor-ordered `(i,j,l)`,`i,j` 同 group、`i,l` 異 group;近者得 1、平手得 0.5、否則 0。無 triplet → `None`+`tlc:no_triplets`。 +- **PCA**:每個 non-root `(parent, child)` 檢查 `d(parent,child) <= median_{j!=parent} d(parent,j)`;無 non-root edge → `None`+`pca:no_edges`。 + +**與 `Metrics.md` legacy 定義的唯一結構差異(A3 contract 規定):** group 不再由 legacy tree 的 root 直接子樹推導,而是逐字使用 `A3LayoutTree.groups[*].member_ids` 的 explicit exact partition;PCA edge 直接讀 `A3TreeNode.parent_id`,排除 `parent_id == "root"`。舊 `semantic_group_metrics.py` 完全未修改,保留作 Step-90 predicted-tree 自我一致性歷史實作。 + +### 18.2 Tree prediction metrics + +`evaluate_tree_prediction(predicted, human_oracle)` 強制兩棵 tree stable-ID coverage 完全一致,輸出: + +- same-group unordered pair Precision / Recall / F1; +- directed parent-child edge Precision / Recall / F1; +- `semantic_type` accuracy; +- `semantic_role` **case-sensitive exact-string** accuracy(不另報 normalized role score); +- P/R/F1 同時保存 TP、predicted-set size、reference-set size;雙方 relation set 都空時定義為 exact match `1/1/1`,只有單側為空則依 zero-division rule 記 0。 + +Human oracle 中 `confidence == 0.5` 的 uncertain node 不強迫算錯:所有涉及該 node 的 pair/edge,以及其 type/role,從 primary metrics 排除;另報 uncertain node IDs、uncertain-only pair/edge P/R/F1、uncertain type/role accuracy,以及排除的 relation counts。 + +### 18.3 Tests 與驗收 + +先建立測試並確認因新模組不存在而 collection error,再實作至全綠。新增 `tests/metagpt/ext/agentlayout/test_human_tree_metrics.py`(18 tests),涵蓋: + +1. `d` 的重疊/相貼/水平/垂直/對角五種案例; +2. 同組緊貼異組遠離(SGC > 0.999、TLC=1、PCA=1)與同組打散(SGC<0.5、TLC<0.5); +3. 全部重疊 TLC=0.5;single-group、all-singleton、no-triplet、no-edge 與 missing/duplicate ID skip; +4. 固定 `random.Random(20260711)` 的 1000 次 Monte Carlo,TLC mean 落在 `0.5±0.05`; +5. SGC group-level mean 的數值反例、pixel normalization scale invariance、tree 外元素排除與 PCA median criterion; +6. tree prediction perfect/partial/zero-overlap/uncertain,以及 source/coverage fail-closed。 + +完整 A3 suite(原 144 tests+本階段 18 tests): + +```bash +UV_CACHE_DIR=/tmp/uv-cache uv run \ + --with pytest --with 'pydantic>=2' --with pillow \ + pytest -q -o addopts='' \ + --confcutdir=tests/metagpt/ext/agentlayout \ + tests/metagpt/ext/agentlayout/test_a3_run_manifest.py \ + tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py \ + tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py \ + tests/metagpt/ext/agentlayout/test_analyst_vision.py \ + tests/metagpt/ext/agentlayout/test_layout_tree_v3.py \ + tests/metagpt/ext/agentlayout/test_judge_select_a3.py \ + tests/metagpt/ext/agentlayout/test_judge_critic_a3.py \ + tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py \ + tests/metagpt/ext/agentlayout/test_a3_repair_gate.py \ + tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py \ + tests/metagpt/ext/agentlayout/test_a3_director_mapper.py \ + tests/metagpt/ext/agentlayout/test_a3_issue_verifier.py \ + tests/metagpt/ext/agentlayout/test_a3_stage_binding.py \ + tests/metagpt/ext/agentlayout/test_a3_annotation.py \ + tests/metagpt/ext/agentlayout/test_human_tree_metrics.py +``` + +結果:**162 passed in 3.94s**。新檔 Ruff `All checks passed`;conda `meta` 的 `py_compile` 與三個 staged phase files 的 scoped `git diff --cached --check` 均通過。 + +### 18.4 Pilot annotation 條件驗收(read-only) + +`a3-gateab-pilot-n20-01` 已出現三位 annotator(`T`、`hui`、`neiji`)各 20 份 annotation。本階段唯讀執行指定驗收: + +- `HumanAnnotation.model_validate`+`validate_annotation_coverage`:**60/60 valid,0 invalid**;sample ID、filename annotator suffix 亦一致; +- 額外結構防線 `annotation_to_oracle_tree`:**60/60 可形成合法 A3 oracle tree**; +- 每 sample 三組 annotator pair 均跑 `compute_agreement`:共 60 reports,**58/60 至少一項不完全一致**; +- `sample_uncertain` 三位均為 0;uncertain nodes:T=18、hui=26、neiji=0。 + +Pairwise mean(現有 `compute_agreement.role_type_agreement` 實際只比較 `semantic_type`;不等同本階段新增的 exact free-text role accuracy): + +| Pair | N | same-group Jaccard | edge Jaccard | semantic-type agreement | 三項完全一致 | +| --- | ---: | ---: | ---: | ---: | --- | +| T / hui | 20 | 0.3282 | 0.1911 | 0.9095 | 0 | +| T / neiji | 20 | 0.7853 | 0.5083 | 0.9209 | 1(`58ab189395a7a863ddcc7847`) | +| hui / neiji | 20 | 0.3507 | 0.2927 | 0.8862 | 1(`5952934395a7a863ddcdff21`) | + +分歧清單如下;asset 欄是三組 `compute_agreement.disagreeing_assets` 的聯集(只代表 semantic-type 分歧),pair 欄另涵蓋 grouping/edge/type 任一分歧。即使其中一組 pair 完全一致,只要第三位不同仍需 adjudication。 + +| sample_id | semantic-type 分歧 assets(union) | 有分歧 pairs | +| --- | --- | --- | +| `5888bb2995a7a863ddcc1f74` | asset_0001,asset_0003,asset_0005,asset_0006,asset_0007,asset_0008,asset_0009,asset_0010,asset_0011,asset_0013,asset_0016 | T/hui, T/neiji, hui/neiji | +| `5888c54095a7a863ddcc2082` | asset_0005 | T/hui, T/neiji, hui/neiji | +| `5888dd7995a7a863ddcc2e86` | asset_0001,asset_0003,asset_0004,asset_0011,asset_0012,asset_0013,asset_0015,asset_0018 | T/hui, T/neiji, hui/neiji | +| `5889bc5995a7a863ddcc3b97` | — | T/hui, T/neiji, hui/neiji | +| `589b457b95a7a863ddcc5331` | asset_0004,asset_0005,asset_0010,asset_0011 | T/hui, T/neiji, hui/neiji | +| `58ab17ba95a7a863ddcc77bf` | asset_0009 | T/hui, T/neiji, hui/neiji | +| `58ab189395a7a863ddcc7847` | — | T/hui, hui/neiji | +| `58cbc44595a7a863ddccc20b` | asset_0013,asset_0015 | T/hui, T/neiji, hui/neiji | +| `5909cfb695a7a863ddcd37cb` | asset_0009 | T/hui, T/neiji, hui/neiji | +| `5914233f95a7a863ddcd777c` | asset_0000,asset_0002,asset_0009 | T/hui, T/neiji, hui/neiji | +| `592d1a2b95a7a863ddcd97aa` | asset_0004,asset_0008 | T/hui, T/neiji, hui/neiji | +| `592fdd7e95a7a863ddcdbe67` | — | T/hui, T/neiji, hui/neiji | +| `5930177f95a7a863ddcdc313` | asset_0004,asset_0009 | T/hui, T/neiji, hui/neiji | +| `5931132c95a7a863ddcdc5d3` | — | T/hui, T/neiji, hui/neiji | +| `59313e5495a7a863ddcdc9ac` | asset_0006,asset_0007,asset_0010,asset_0011,asset_0012,asset_0014 | T/hui, T/neiji, hui/neiji | +| `5952704d95a7a863ddcdecb5` | asset_0005,asset_0006 | T/hui, T/neiji, hui/neiji | +| `5952934395a7a863ddcdff21` | — | T/hui, T/neiji | +| `59b2809c1350e8329300dbe4` | asset_0000 | T/hui, T/neiji, hui/neiji | +| `59bb96701350e8329301120a` | — | T/hui, T/neiji, hui/neiji | +| `5a21848dd8141396fe9a33eb` | asset_0016 | T/hui, T/neiji, hui/neiji | + +**結論:20/20 samples 都需使用者 adjudication。** 本階段沒有自行裁決、沒有產生 final oracle、沒有寫回 write-once run 目錄。 + +### 18.5 成本與下一步 + +- API calls:**0**;paid tokens / dollar cost:**0**;所有 metric、tests、annotation validation/agreement 都是 local deterministic Python。 +- A3-09M status:**complete**。 +- 下一入口:使用者 adjudication → `AdjudicationRecord`+final `annotation_to_oracle_tree` → Gate A(vision vs text-only,各約 140 calls)與 Gate B(T0/T2/T3;L0)付費 runs。任何 paid run 仍須先逐 arm 報 budget 並取得明確授權;Gate C 的 L0 決策不重啟。 + +--- + +## 19. A3-09H:human adjudication queue 與 T3 oracle handoff + +**日期:** 2026-07-11 +**起始 commit:** `1b40fa569cd759434cf39a0e0f17aa5e103523ea` +**性質:** zero-cost human-work handoff infrastructure;0 API calls、0 paid tokens;未做任何自動 adjudication。 + +### 19.1 發現的 contract 缺口 + +Pilot 現有 `T`、`hui`、`neiji` 三份獨立 annotation/sample,但原本只有: + +- pairwise `compute_agreement(a,b)`; +- 只容納單一 `AgreementReport` 的 `AdjudicationRecord`; +- `annotation_to_oracle_tree`,沒有 queue、比較 packet、完成表單、批次 validator 或 T3 CLI oracle input。 + +直接選其中一位當 base/winner 會構成未授權的自動裁決;三位 annotations 也不能只保留任意一組 pairwise report。因此本階段建立 evidence-only packet:保留所有來源與 pairwise 結果,最終選擇仍完全由使用者作成。 + +### 19.2 Adjudication packet contract + +新增 `metagpt/ext/agentlayout/tools/adjudication.py`: + +- `a3.adjudication-packet.v1`;每份 source annotation 保存 filename+raw SHA-256; +- load 時逐份執行 `HumanAnnotation.model_validate`、manifest coverage、filename/annotator identity,以及 `annotation_to_oracle_tree` 的 parent/cycle/group structural validation; +- N 位 annotator 產生全部 `N choose 2` pairwise `AgreementReport`;三位即 3 份; +- `aggregate_agreement` 明確定義為各 pair 的 defined Jaccard/semantic-type agreement arithmetic mean,`disagreeing_assets` 取 union;原欄位 `role_type_agreement` 仍只代表既有 contract 的 semantic-type agreement; +- per-asset comparison 同時呈現每位 annotator 的 semantic type、exact free-text role、same-group member set、group ID/label、parent/relation、uncertain; +- 不存在 selected/winner 欄位;`requires_adjudication` 只標示是否有差異,不作決策; +- `annotation_adjudicated_form.json` 與 `adjudication_record_form.json` 只預填**所有 annotator 逐字一致**的欄位;任何分歧保持空字串/`null`,故在使用者填完前刻意無法通過 schema; +- `validate_adjudication_submission` 強制 packet sample/provenance、annotator IDs、frozen aggregate、adjudicator identity、asset coverage 及完整 A3 tree validity一致,才回傳 `source="human_oracle"` tree。 + +### 19.3 CLI 與 real pilot materialization + +`layout_agent/run_a3.py` 新增: + +```bash +python layout_agent/run_a3.py prepare-adjudication \ + --run-dir layout_agent/runs/a3/a3-gateab-pilot-n20-01 +``` + +輸出使用全新的 write-once namespace,沒有修改任何既有 `annotation_*.json`: + +```text +adjudication/ + ADJUDICATION_GUIDE.md + FINALIZATION_GUIDE.md + adjudication_queue.json + samples// + adjudication_packet.json + annotation_adjudicated_form.json + adjudication_record_form.json +``` + +Real execution:**20/20 prepared、0 failed**。目前 namespace 共 63 files(CLI 62+finalization supplement 1);20 packets 全部 schema-valid,60 個 source hashes 全吻合。每 sample 有 8–24 個需決定 assets,總計 **298 assets** 至少一欄有分歧;因此沒有產生任何 completed form、record 或 oracle tree。 + +使用者完成每 sample 的兩份 copy-before-edit 表單後,執行: + +```bash +python layout_agent/run_a3.py finalize-adjudication \ + --run-dir layout_agent/runs/a3/a3-gateab-pilot-n20-01 +``` + +Finalizer 採 two-phase all-or-nothing:先驗 20/20 completed forms、record、來源 hash與 tree contract,任一錯誤即 exit 1 且不寫任何 oracle。全數通過才 write-once 發布: + +```text +adjudication/oracle_trees/.json +adjudication/adjudication_finalization.json +``` + +缺少 human completed forms 的實際 preflight 結果:0 valid/20 `FileNotFoundError`、exit 1;確認 `oracle_trees/` 與 finalization summary 均未建立。 + +### 19.4 Gate B T3 fail-closed input + +`run_a3.py run` 新增 `--oracle-trees-from `: + +- `--tree-arm T3` 缺此參數立即 exit 1; +- 非 T3 禁止帶此參數; +- 在任何 Action/paid call 前,一次載入全部 sample tree,驗證 `source="human_oracle"`,並和該 Gate run 的 R3 foreground stable IDs 做 exact coverage preflight; +- 只有全部 oracle 合法時才進既有 `--allow-api-calls` budget gate;無授權仍 exit 2,不產生 run output; +- pipeline 明確收到對應 sample 的 `oracle_tree`,不再以 `None` 進 T3 後才失敗。 + +### 19.5 Tests 與成本 + +新增 `test_a3_adjudication.py`(8 tests)並擴充 `test_a3_stage_binding.py` 1 test,涵蓋:三位 annotator 全 pairwise+aggregate、逐 asset disagreement、unanimous-only forms、schema/coverage/source hash、duplicate/sample mismatch、write-once、human-only guide、completed submission validation、oracle source check、T3 complete-set/coverage preflight 與 paid gate refusal。 + +完整 A3 suite(A3-09M 162+本階段 9):**171 passed in 4.77s**。Ruff、conda `meta` py_compile 與 scoped diff check 另行通過。 + +- API calls:**0**;paid tokens/dollar cost:**0**。 +- A3-09H infrastructure:**complete**。 +- 人工作業:**blocked on 使用者 adjudication 20/20**;此狀態不授權 Gate A/B 付費 calls。 +- 下一入口:使用者依 `adjudication/ADJUDICATION_GUIDE.md` 填完 20 組 completed forms → zero-cost `finalize-adjudication` → 報 Gate A/B 各 arm budget並等待明確授權。 + +--- + +## 20. A3-09O:human adjudication 完成與 T3 oracle finalization + +**日期:** 2026-07-11 + +### 20.1 裁決形式:adjudicator 全量重新標註 + +使用者(adjudicator `nina`)未逐欄調停三位標註者,而是對 20/20 pilot samples 做完整獨立重新標註,寫入各 `samples//annotation/annotation_nina.json`(HumanAnnotation v1,全欄位含中文 semantic_role)。此為 ADJUDICATION_GUIDE 允許的合法裁決:每一項 per-asset 決定皆由人類做出,且不以 T/hui/neiji 任一位為自動 winner。三份原始標註(frozen SHA-256)全程未動。 + +### 20.2 唯讀預驗證與人工修正 + +finalize 前先以唯讀腳本驗證 nina 20 份標註(HumanAnnotation schema+packet coverage+`annotation_to_oracle_tree` 結構檢查): + +- 首輪 **10/20 失敗**:9 個 sample 用了非 enum 的 `semantic_type`(`text`/`heading`/`footer`/`footnote`);`5914233f95a7a863ddcd777c` assets 4/5 四欄全空。錯誤逐欄交回使用者,由使用者本人修正(無代填)。 +- 次輪 19/20:`5889bc5995a7a863ddcc3b97` 檔內 `sample_id` 為 `5899bc59…`(單字元 typo,asset coverage 與 packet 完全吻合、內容屬於該目錄);由本 session 修正該單一欄位。 +- 終輪 **20/20 valid**:298 assets、`uncertain` assets **4**、`sample_uncertain` **0**。 + +### 20.3 機械轉錄與 finalizer + +每個 sample 的兩份 completed 檔以零決策方式產生:`annotation_adjudicated.json` = `annotation_nina.json` 逐位元組複製;`adjudication_record.json` = 預填 record form + `adjudicator_id: "nina"` + 事實性 provenance note。template forms、packets、queue、raw annotations 均未修改。 + +```bash +python layout_agent/run_a3.py finalize-adjudication \ + --run-dir layout_agent/runs/a3/a3-gateab-pilot-n20-01 +``` + +結果:**20/20 valid、failed 0**。`adjudication/oracle_trees/*.json` = **20**,每棵 `source == "human_oracle"`;`adjudication/adjudication_finalization.json` 存在且 `failed == 0`(含每 sample annotation/record/oracle-tree SHA-256)。 + +### 20.4 成本與狀態 + +- API calls:**0**;paid tokens/dollar cost:**0**(全程 schema 驗證與檔案操作)。 +- A3-09O status:**complete**。Gate B T3 的 `--oracle-trees-from` 輸入已就緒。 +- 下一入口:Gate A/B 各 arm budget 已回報(nominal 合計 660 calls,不含 reliability retries),等待使用者逐 arm 付費授權;未授權前不帶 `--allow-api-calls`。 + +--- + +## 21. A3-09AB:Gate A/B 五臂付費執行與 human-oracle 指標 + +**日期:** 2026-07-11 + +### 21.1 授權與執行協定 + +使用者逐字授權「授權全部五個 arm 帶 --allow-api-calls 執行」。五臂各建獨立 run-id,共用 `a3_gateab_pilot_l0.json`(L0、gpt-5.4-mini-2026-03-17)與 `a3_gateab_pilot_n20.json`(N=20,與 human oracle 同一批)。每臂先各自 `init → prepare-pfull → normalize-r3 → prepare-analyst-vision`(zero-cost、failed 0),再跑無 flag preflight(五臂 budget 與提案完全一致、exit 2),最後依序帶 `--allow-api-calls` 執行。 + +| Arm | Run-id | Calls | Wall | 完成 | +| --- | --- | ---: | ---: | --- | +| Gate A vision T2 | `a3-gatea-t2-vision-n20-01` | 140 | 771s | 20/20、failed 0 | +| Gate A text-only T2 | `a3-gatea-t2-textonly-n20-01` | 140 | 652s | 20/20、failed 0 | +| Gate B T0 | `a3-gateb-t0-n20-01` | 120 | 628s | 20/20、failed 0 | +| Gate B T2 | `a3-gateb-t2-n20-01` | 140 | 786s | 20/20、failed 0 | +| Gate B T3 | `a3-gateb-t3-n20-01` | 120 | 656s | 20/20、failed 0 | + +實際 model calls 合計 **660**=nominal(零 schema-retry)。T3 oracle preflight 通過並記錄 `oracle_trees_from`。provider 回報 cost 仍為 0(已知現象),實際美元成本無法自 runtime 取得。 + +### 21.2 Gate A:predicted tree vs human oracle(A3-09M 指標,certain nodes) + +| Arm | same-group F1 | edge F1 | type acc | exact-role acc | +| --- | ---: | ---: | ---: | ---: | +| vision | 0.4684 | 0.3088 | 0.6785 | 0.0 | +| text-only | 0.5142 | 0.1818 | 0.5743 | 0.0 | + +Paired sign test(vision − text-only):**edge F1 13W/4L/3T p=0.049、type acc 12W/2L/6T p=0.0129,vision 顯著較好**;same-group F1 8W/12L p=0.50(text-only 均值略高但不顯著)。exact-role accuracy 兩臂皆 0——模型自由文字 role 與人類中文 role 逐字比對本質上不可能命中,此軸只能當 lower bound,不具鑑別力。**Gate A 判讀:保留 vision Analyst**(層級結構與語意型別顯著優於 text-only;分組軸無差異證據)。 + +### 21.3 Gate B:B0 layout vs 同一棵 human reference tree(SGC/TLC/PCA) + +三臂 20/20 全部 defined、零 skip;不做 predicted-tree 自評。 + +| Arm | SGC | TLC | PCA | +| --- | ---: | ---: | ---: | +| T0 | 0.6375 | 0.6075 | 0.6817 | +| T2 | 0.6373 | 0.6385 | 0.7188 | +| T3(human tree 注入) | **0.7528** | 0.6467 | **0.8534** | + +Paired sign tests:**T3−T0 PCA 12W/0L/8T p=0.0005 顯著**;T3−T2 SGC 14W/6L p=0.115(方向有利未顯著);其餘(含 T2−T0 全軸)皆不顯著。**Gate B 判讀:human tree 注入(T3)在 parent-child adjacency 上有顯著、乾淨的提升,SGC 方向有利;T2 predicted tree 相對 T0 無可辨識增益**——tree 條件的價值目前主要來自 tree 的品質(human > predicted),而非 tree 通道本身。 + +### 21.4 成本與狀態 + +- 付費 model calls:**660**(授權範圍內、零 retry);provider 回報 token/cost 0。 +- 分析全程 zero-cost(`human_tree_metrics.py` 唯讀聚合);run artifacts 不 commit。 +- A3-09 全部 gates:**complete**。下一決策點:A3-10 N=100 設計(text bitmap 池已備 100/100,但 human tree annotation 只覆蓋 pilot N=20,T3 臂與 Gate 指標在 N=100 的 reference tree 來源需先定案)。 + +### 21.5 A3-10 前置:relation-100 剩餘 80 sample 標註包 + +同日使用者要求準備 N=100 剩餘標註。relation-100(`output2/step97_relation_subset/relation100_ids.json`)扣除 pilot 20(真子集、oracle 直接沿用)=**80 個**,凍結為 `layout_agent/sample_ids/a3_relation_annot_n80.json`。新 run `a3-relation-annot-n80-01` 走 `init → prepare-pfull → normalize-r3 → prepare-analyst-vision → prepare-annotation`:**80/80 prepared、failed 0**(packet+空白 form+contact sheets,部分 sample 兩張),全程 **0 API calls**。80 個的標註/裁決協定(幾位標註者、是否沿用單人 oracle 模式)為使用者待決事項。 + +--- + +## 22. A3-10P:relation-100 剩餘 80 的三人標註、人工裁決與 oracle 發布 + +**日期:** 2026-07-11 + +### 22.1 三人標註與唯讀驗證 + +三位標註者(hui、neiji、nina)各完成 80 份,**240/240** 通過 HumanAnnotation schema、annotator/sample id 一致性、packet coverage(每位 1,045 assets)與樹結構檢查。`uncertain` 分布極不均:nina 0、hui 23、**neiji 527(50.4%)**——使用者確認 neiji 屬誠實不確定、維持現狀(uncertain 依協定排除於 primary agreement 之外另計)。 + +### 22.2 Adjudication queue 與人工裁決 + +`prepare-adjudication`(write-once):**80/80 packets、failed 0**;80/80 sample 皆有分歧、合計 **485 個 disagreeing assets**;三人 aggregate agreement 平均 same-group Jaccard **0.571**、edge Jaccard **0.357**、role-type agreement **0.658**。使用者選擇**逐分歧裁決**(非單人 oracle 模式):逐 sample 對照三人 decisions 完成 `annotation_adjudicated.json`+`adjudication_record.json`(adjudicator=`nina`,80/80)。 + +### 22.3 Finalization + +`finalize-adjudication` all-or-nothing:**80/80 valid、failed 0**。`adjudication/oracle_trees/` 80 棵、全部 `source="human_oracle"`;`adjudication_finalization.json` 存在且 `failed == 0`。裁決後最終 uncertain assets **23**(neiji 的 527 個不確定絕大多數已由裁決者定案)。 + +### 22.4 成本與狀態 + +- API calls:**0**(標註、裁決、驗證、finalization 全程零付費)。 +- **Human reference tree 覆蓋達 relation-100 全數 100/100**(pilot 20+本批 80),Phase 3 的 T3 臂與 human-reference SGC/TLC/PCA 指標來源已就緒。 +- 剩餘 Phase 3 前置:Gate B 升級條件 2(T2 vs T0 human semantic-grouping preference)仍未驗證;N=100 各臂付費 budget 需另行提案與授權。 + +--- + +## 23. A3-10R:Crello-Relation N=100 T0/T2/T3 正式實驗 + +**日期:** 2026-07-11 + +### 23.1 升級決定與協定 + +使用者明文決定**豁免 Gate B 升級條件 2(human semantic-grouping preference)**,直接進 Phase 3(「這可以先跳過先讓你跑N100」);條件 1(幾何方向)與 3(T3 upper bound)已於 §21 滿足。T1 依 new_plam §8「預算不足可省」未跑。前置:ids 凍結 `sample_ids/a3_relation_n100.json`(=relation100_ids);兩批 oracle 逐位元組合併至 `runs/a3/relation100_oracle_trees/`(100 棵、含 `MERGE_PROVENANCE.json` 記錄來源與 SHA-256)。三臂獨立 run-id、四步 zero-cost prep(3×100 failed 0)、無 flag preflight(T0 600/T2 700/T3 600)皆通過後,使用者逐字授權執行。 + +### 23.2 執行結果 + +| Arm | Run-id | 完成 | Calls | Wall | +| --- | --- | --- | ---: | ---: | +| T0 | `a3-rel100-t0-01` | 100/100 | 600 | 3153s | +| T2 | `a3-rel100-t2-01` | **98/100** | 692 | 3782s | +| T3 | `a3-rel100-t3-01` | **99/100** | 598 | 3214s | + +失敗 3 例(皆 per-sample、error record 落盤、non-retryable):T2 `5d67ed46`+T3 `5da04604` 為 CandidateShortfall(3 render 只完成 2);T2 `5f644f40` 為 Planner 連 3 attempt 輸出重複 asset ID。實際 calls 合計 **1,890**(nominal 1,900,失敗提早中止);provider 回報 cost 0(已知現象)。 + +### 23.3 Human-reference SGC/TLC/PCA(全臂同一棵 human tree;配對檢定取兩臂皆完成之交集) + +| Arm | SGC | TLC | PCA | +| --- | ---: | ---: | ---: | +| T0(n=100) | 0.6465 | 0.6277 | 0.6930 | +| T2(n=98) | 0.7037 | 0.6711 | 0.7614 | +| T3(n=99) | **0.7779** | **0.7271** | **0.8215** | + +Paired sign tests(two-sided): + +- **T2 vs T0:三軸全顯著**——SGC 64W/34L p=0.0032、TLC 63W/32L p=0.0019、PCA 47W/25L p=0.0128。 +- **T3 vs T0:三軸全極顯著**——SGC 74W/25L p≈3e-6、TLC 70W/29L p=5e-5、PCA 55W/18L p=2e-5。 +- **T3 vs T2**:SGC 64W/33L p=0.0022、TLC 60W/35L p=0.0134 顯著;PCA 46W/29L p=0.064 邊緣。 + +### 23.4 判讀 + +- **N=20 的「T2 無增益」結論在 N=100 被推翻**:predicted tree 相對無 tree 在三軸全部顯著改善;N=20 只見方向與本結果一致(統計功效不足)。引用 tree ablation 一律以本節為準、不可再引 §21.3 的 T2−T0 null。 +- 三臂呈乾淨的 tree 品質梯度 **T0 < T2 < T3**:tree 通道有效(T2>T0),tree 品質進一步加分(T3>T2,SGC/TLC 顯著)。T3 同時是可解釋的 upper bound。 +- Caveat:Gate B 升級條件 2 之 human preference 未驗證即升級(使用者決定),論文引用時幾何指標主張成立、human-perceived 分組偏好主張仍需補人測。 +- A3-10R status:**complete**。Phase 3 剩餘項目(Crello-General N=100 final system、matched judge evaluation、human preference study、failure analysis 等)另行規劃。 + +### 23.5 SEGA/PKU 幾何六軸(Phase 3 必跑項 4;zero-cost、`sega_metrics.py` PKU 忠實移植) + +cls 對映:text/text_bitmap→1、image→2;Und_l/Und_s **0 by design**(A3 不產 cls=3 underlay)。Rea/Occ 只有 14/100 sample 有像素底圖可算;該 14 張底圖全為平坦填色,Sobel 梯度為 0 → **Rea 三臂全 0、全平手(無訊號)**。 + +| Arm | Ali↓ | Ove↓ | Rea↓(n=14) | Occ↓(n=14) | +| --- | ---: | ---: | ---: | ---: | +| T0 | 0.00029 | 0.1142 | 0.0 | 0.0156 | +| T2 | 0.00106 | 0.1151 | 0.0 | 0.0157 | +| T3 | 0.00090 | 0.1414 | 0.0 | 0.0167 | + +Paired sign tests:全部不顯著。僅兩個邊緣趨勢(tree 臂略差):T2−T0 Ali p=0.057(Ali 大多平手:87–79% ties)、T3−T2 Ove 58W/39L p=0.067。**判讀:tree 條件在幾何整潔軸持平——§23.3 的語意組織增益(SGC/TLC/PCA 全顯著)不是用幾何品質換來的**;T3 Ove 邊緣上升與「相關元素放近」一致,屬可解釋的 trade-off 方向但未達顯著。 + +**協定警告**:本表在 A3 P-Full 協定(text+image 全部為 placeable、pixel-only background)下計算,**不可**與 Step 89/92 的 text-as-image 協定表或 SEGA Table 3 同表比較;僅供三臂內部對照。S_DL/S_QL/S_TV/S_IO/S_mean4(matched COLE judge,Phase 3 必跑項 7)為付費項目,budget 另行提案。 + +### 23.6 Failure、cost 與 latency 分析(Phase 3 必跑項 9;zero-cost) + +失敗 3/300(1.0%):CandidateShortfall ×2(T2 `5d67ed46`、T3 `5da04604`——3 個 mapper candidate 只有 2 個完整 render)、Planner 重複 asset ID ×1(T2 `5f644f40`——3 attempts 全數輸出重複 ID,屬 T2 特有失敗模式:T0/T3 無 Planner call)。全部 error record 落盤、fail-loud、無靜默跳過。 + +Latency(per-call mean):analyst ~11s(最重,含 vision)、director ~6.6–6.9s、planner 6.6s(僅 T2)、mapper ~3.6–3.8s(×3/sample)、judge_select ~2.8s。Per-sample 端到端約 31–38s;T2 較 T0 多一個 planner call(+6.6s、+100 calls/100 samples)。三臂 calls 600/692/598;provider 回報 token/cost 0(已知現象)、wall time 3153/3782/3214s。 + +### 23.7 執行決策記錄(2026-07-12,使用者裁示) + +1. **所有需要人力的實驗永久跳過**(含 human semantic-grouping preference study)——時程考量;論文相應主張列 limitation,不補人測。 +2. **指標修訂由使用者本人接手**——本 session 不再改動任何 metric 定義。 +3. **舊架構(pre-A3 pipeline,Step 1–97 線)視為不存在**——論文不引舊表、不維護舊協定可比性;A3 為唯一架構。COLE judge 換用 gpt-5.4-mini 的「與 Step 70/92 不可比」顧慮隨之失效(舊表不進論文)。 + +### 23.8 Formal SEGA/PKU 六軸重評(hardened evaluator、BASNet+ISNet Occ、zero-cost;2026-07-12) + +以強化後的可重現評測器(`layout_agent/evaluate_a3_sega.py` + `metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py`,Phase 1 hardening 於 commit `7bc92845`)對 Relation N=100 三臂做正式評測。評測 ID `a3-relation-n100-t0-t2-t3-sega-v1`,原子發布於 `layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/`。執行 2617.50s(43m37s)、exit 0、**0 LLM/API call、0 下載、$0.00**。執行指令(含 API-key unset、offline flags、loopback proxy、單執行緒): + +```bash +env -u OPENAI_API_KEY -u ANTHROPIC_API_KEY -u GEMINI_API_KEY \ + -u GOOGLE_API_KEY -u AZURE_OPENAI_API_KEY \ + HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 HF_DATASETS_OFFLINE=1 \ + WANDB_MODE=offline http_proxy=http://127.0.0.1:9 \ + https_proxy=http://127.0.0.1:9 ALL_PROXY=socks5://127.0.0.1:9 \ + NO_PROXY=localhost,127.0.0.1 OMP_NUM_THREADS=1 \ + /usr/bin/time -p conda run --no-capture-output -n meta \ + python layout_agent/evaluate_a3_sega.py \ + --run-dir layout_agent/runs/a3/a3-rel100-t0-01 \ + --run-dir layout_agent/runs/a3/a3-rel100-t2-01 \ + --run-dir layout_agent/runs/a3/a3-rel100-t3-01 \ + --evaluation-id a3-relation-n100-t0-t2-t3-sega-v1 \ + --saliency-mode basnet-isnet +``` + +結果(cell = `value; applicable_n/valid_n/skipped_n/source_skipped_n/not_applicable_n`;所有軸 `metric_skipped_n=0`): + +| Arm | Ali↓ | Ove↓ | Und_l | Und_s | Rea↓ | Occ↓ | +| --- | --- | --- | --- | --- | --- | --- | +| T0 | `0.00039344577614799106; 100/100/0/0/0` | `0.11029703455008535; 100/100/0/0/0` | `N/A; 0/0/0/0/100` | `N/A; 0/0/0/0/100` | `0; 100/100/0/0/0` | `0.005604150408513137; 100/100/0/0/0` | +| T2 | `0.0010906792273481; 98/98/2/2/0` | `0.11855469211026877; 98/98/2/2/0` | `N/A; 0/0/2/2/98` | `N/A; 0/0/2/2/98` | `0; 98/98/2/2/0` | `0.005628733500349222; 98/98/2/2/0` | +| T3 | `0.0006464536794323366; 99/99/1/1/0` | `0.15041344770396506; 99/99/1/1/0` | `N/A; 0/0/1/1/99` | `N/A; 0/0/1/1/99` | `0; 99/99/1/1/0` | `0.005972501210145759; 99/99/1/1/0` | + +Source failures 保留為顯式 `source_skipped` rows(與 §23.2 的 3 例一致):T2 `5d67ed46cf657b21ef7bdad9`(CandidateShortfall 2/3)、T2 `5f644f40a637ee11e3669a1c`(Planner 重複 asset ID)、T3 `5da04604abc8ea6d1cbe2935`(CandidateShortfall 2/3)。 + +**與 §23.5 舊表的差異(引用一律以本節為準)**: + +1. Occ 改為 frozen **BASNet(revision `c04f6d78a10d2d558260629c3b00a9ed0568dbc6`、本地 snapshot)+ ISNet(`rembg.sessions.dis_general_use.DisSession`、`CPUExecutionProvider`)pixel-wise max**,對全部樣本計算(背景無 raster asset 時重建 R3 的不透明白畫布),非 §23.5 的 n=14 子集; +2. Und_l/Und_s 由「0 by design」更正為 **N/A**——P-Full v1 無合法 underlay 欄位、raster asset 不猜測為 underlay,故 applicable_n=0; +3. Rea 三臂全 0 與 §23.5 一致(平坦填色底圖 Sobel 梯度為 0,無訊號)。 + +**協定警告**:ISNet 取代 PKU PosterLayout 的 PFPN branch,Occ 只能在「同一 matched pipeline 重評的方法之間」直接比較;published SEGA 數值僅為文獻參考。本表亦不可與 Step 89/92 text-as-image 協定表同表比較。 + +**獨立驗證(read-only、50 項檢查全過)**:三 artifact SHA-256 與發布記錄一致(manifest `c96937a6…`、aggregate `5eeed54f…`、per_sample `a70121e4…`);`validate_evaluation_bundle()` 重載通過(records=300, runs=3);四個適用軸的聚合平均值由 per-sample rows 獨立重算並逐格吻合(rel_tol 1e-12)、zero-contribution/skipped 計數吻合;三臂 per-sample 順序與 manifest 的 100-ID 快照(sha256 `840347c0…`)逐位一致;來源 run trees 前後 hash 不變、無 staging 殘留。 + +**Status**:Phase 3 必跑項 4(幾何六軸)以本節為 final。付費 matched COLE judge 四軸(S_DL/S_QL/S_TV/S_IO)仍在授權邊界外,須先提 judge snapshot、matched-pair 協定、call 數與預算。 + +### 23.9 Matched COLE judge 四軸(付費項;gpt-5.4-mini;2026-07-12 使用者授權執行) + +依 §23.8 後提交並獲授權的提案執行。腳本 `layout_agent/judge_a3_cole.py`:輸入直接由已驗證的 SEGA sidecar 解析(`b0_slot_id`+`b0_render_sha256` 逐檔 pin、付費前 preflight 重驗);COLE prompt/parser 逐字沿用 `step21_phaseb_eval.py`(prompt SHA-256 記錄於 aggregate);judge=`gpt-5.4-mini-2026-03-17`(絕對評分、每圖單 call、無 arm 標籤=blind by construction)。**398 calls(含 1 參數探針)、cap 420 未觸、397/397 全部解析成功、零 retry 耗損、wall 113.3s**。結果原子發布於 `layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/`。實際帳單以 provider dashboard 為準(提案估 <$2);本腳本未記 per-call token usage(已知 limitation)。 + +**Arm means(S_mean4 = SDL/SQL/STV/SIO 平均;SGI 另列)**: + +| Arm | n | SDL | SQL | STV | SIO | SGI | S_mean4 | % of GT | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| GT | 100 | 7.01 | 7.45 | 6.86 | 5.63 | 7.33 | **6.738** | — | +| T0 | 100 | 5.22 | 5.85 | 5.05 | 4.79 | 5.77 | 5.228 | 77.6% | +| T2 | 98 | 5.47 | 5.99 | 5.19 | 4.77 | 6.05 | 5.355 | 79.5% | +| T3 | 99 | 5.43 | 5.88 | 5.24 | 4.80 | 6.02 | 5.338 | 79.2% | + +**Paired sign tests(S_mean4;two-sided)+ bootstrap 95% CI(seed 20260712、10k)**: + +| 比較 | n | W/L/T | p | Δmean [CI] | +| --- | ---: | --- | --- | --- | +| T0 vs GT | 100 | 4/88/8 | 1.2e-21 | −1.510 [−1.730, −1.300] | +| T2 vs GT | 98 | 6/83/9 | 2.0e-18 | −1.375 [−1.571, −1.176] | +| T3 vs GT | 99 | 7/86/6 | 2.1e-18 | −1.389 [−1.604, −1.174] | +| T2 vs T0 | 98 | 46/34/18 | 0.219 | +0.112 [−0.099, +0.329] | +| T3 vs T0 | 99 | 45/39/15 | 0.586 | +0.131 [−0.081, +0.341] | +| T3 vs T2 | 97 | 43/42/12 | 1.0 | +0.026 [−0.186, +0.232] | + +Per-axis:三臂 vs GT 四軸全部極顯著落後(p ≤ 1.4e-12)。臂間四軸全不顯著;唯一邊緣趨勢 T2−T0 SDL 42W/26L p=0.068(方向有利 tree)。 + +**判讀**: + +1. **三臂在 COLE 美學評分全面顯著輸設計師 GT**(77.6–79.5% of GT)——A3 架構的美學天花板與 tree 條件無關。 +2. **tree 通道不動美學軸**:T2/T3 vs T0 的 S_mean4 與全部 per-axis 皆不顯著。與 §23.5/23.8(幾何六軸持平)合併成一致敘事:**predicted/oracle tree 帶來的是語意組織增益(§23.3 SGC/TLC/PCA 全顯著),不以幾何或美學品質為代價、也不帶來美學增益**。 +3. T3(oracle tree)與 T2(predicted tree)在美學上無差(p=1.0)——tree 品質梯度只反映在語意軸,進一步支持「語意組織」與「美學」是正交通道。 +4. **協定警告**:本表為 A3-only、GT-referenced、gpt-5.4-mini judge;不可與 Step 70/92 舊架構 COLE 表(gpt-4o judge)同表或互相換算(2026-07-12 裁示:舊架構視為不存在)。 + +**Status**:Phase 3 必跑項 7(matched judge evaluation)complete。SEGA/PKU+COLE 兩條評測線至此全部結案。 + +## 24. A3-11G:Crello-General N=100 final system(2026-07-12) + +### 24.1 Model-blind sample freeze 與零成本 preflight + +依 `new_plam.md` §5.1/§8 Phase 3,自 1,902 個本機可用 Crello test +cache(官方 raw test split 1,971;69 筆未在本地,明列 availability +limitation)以 seed 42 做固定 random N=100。抽樣在任何 A3 generation +前完成,不使用 semantic richness、元素數、geometry、model output、 +candidate 或 score filter。正式 ID 檔 +`layout_agent/sample_ids/a3_general_n100.json` SHA-256 為 +`0e5401fb45cb83c573c82be458508e6ace003482b027b667556dfd876aed052c`; +完整母體/meta snapshot/演算法 provenance 存於相鄰 +`a3_general_n100.provenance.json`。 + +零成本準備結果:補齊 91 個 sample sidecar、369 張 text bitmap +(100/100 ready、mismatch 0、missing 0,原始 `meta.json` aggregate +hash 不變);run `a3-general-n100-t2-l0-01` 的 +`prepare-pfull`、`normalize-r3`、`prepare-analyst-vision` 均 +100/100、failed 0。未授權 paid gate 正確 exit 2,印出 T2+L0 nominal +budget 7 calls/sample=700 calls,且在 import/call LLM 前停止。 + +### 24.2 使用者授權與正式生成 + +使用者逐字授權: + +> 授權執行 a3-general-n100-t2-l0-01,最多 2100 calls、10M input +> tokens、2.25M output tokens、US$20。 + +凍結配置:A3-MLLM、P-Full、R3、vision Analyst、T2 predicted tree、 +L0、三個 spatial concepts/candidates、internal blind selection;所有 +stage 固定 `gpt-5.4-mini-2026-03-17`。正式命令: + +```bash +conda run -n meta python layout_agent/run_a3.py run \ + --run-dir layout_agent/runs/a3/a3-general-n100-t2-l0-01 \ + --tree-arm T2 \ + --analyst-arm vision \ + --allow-api-calls +``` + +結果:**100/100 completed、failed 0、exit 0**。執行時間 +07:10:10–08:02:33 CST,約 **3,143 秒(52m23s)**;成功 stage records +700,落盤的 model attempts 714(含 reliability retries),遠低於授權 +2,100 cap。request JSON 合計 8,512,166 bytes,raw response+Analyst +output 合計 1,845,357 bytes;以 chars/4 僅能粗估約 2.13M text input+ +0.46M output tokens,image tokens 另計。MetaGPT 對此 snapshot 的 +tiktoken/usage conversion 不支援,runtime cost 仍不可採信,實際帳單 +須以 provider dashboard 為準;本 run 未啟動任何 evaluation judge。 + +stdout 出現兩類非致命 warning:未知 snapshot 的 token-counter fallback, +以及逐 sample `asyncio.run` 後 HTTPX client cleanup 報 +`RuntimeError: Event loop is closed`。兩者均未造成 sample failure, +但後者應列為後續 runtime hygiene 修補,不能誤報成生成失敗。 + +### 24.3 零成本 postcheck 與狀態 + +以正式 hardened evaluator 對完整 run 做 `--validate-only`:100 筆 +`validated_only`、source skipped 0、LLM/API calls 0、source artifacts +modified 0;sidecar 僅寫於 +`/tmp/a3-general-postrun-20260712/a3.sega-pku-protocol.v1/a3-general-n100-postrun-validate-v1`。 + +**Status:Crello-General N=100 final generation complete。** 下一步是 +零成本 deterministic geometry/completion/failure/latency evaluation; +General-vs-designer-GT 的 paid COLE judge 當時不在 generation 授權內; +其後另提精確 call/token/cost budget 並取得明確授權,結果見 §24.5。 + +### 24.4 Formal SEGA/PKU 六軸與 failure/latency 診斷(zero-cost) + +以 hardened evaluator、frozen BASNet+ISNet 對 General N=100 正式重評; +evaluation ID `a3-general-n100-sega-v1`,原子發布於 +`layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/`。 +為保證零外連,執行時 unset API keys、啟用 HF/Transformers offline flags +並將 proxy 指向 loopback;**LLM/API calls 0、paid cost $0.00、source +artifacts modified 0**。managed filesystem 下 `conda run` 無法建立環境內 +暫存檔,direct interpreter 第一次又因 Numba 嘗試寫 read-only +site-packages cache 而在 inference 前停止;最終以 `TMPDIR=/tmp` 與 +`NUMBA_CACHE_DIR=/tmp/a3-numba-cache` 成功完成: + +```bash +env -u OPENAI_API_KEY -u ANTHROPIC_API_KEY -u GEMINI_API_KEY \ + -u GOOGLE_API_KEY -u AZURE_OPENAI_API_KEY \ + TMPDIR=/tmp NUMBA_CACHE_DIR=/tmp/a3-numba-cache \ + HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 HF_DATASETS_OFFLINE=1 \ + WANDB_MODE=offline http_proxy=http://127.0.0.1:9 \ + https_proxy=http://127.0.0.1:9 ALL_PROXY=socks5://127.0.0.1:9 \ + NO_PROXY=localhost,127.0.0.1 OMP_NUM_THREADS=1 \ + /home/hui0705/.conda/envs/meta/bin/python \ + layout_agent/evaluate_a3_sega.py \ + --run-dir layout_agent/runs/a3/a3-general-n100-t2-l0-01 \ + --evaluation-id a3-general-n100-sega-v1 \ + --output-root layout_agent/evaluations/a3-sega \ + --saliency-mode basnet-isnet +``` + +結果:100 selected、100 source-valid、100 evaluated、source/metric skipped +皆 0。Und_l/Und_s 因 P-Full v1 無合法 underlay 欄位,維持 N/A: + +| Ali↓ | Ove↓ | Und_l | Und_s | Rea↓ | Occ↓ | +| ---: | ---: | --- | --- | ---: | ---: | +| 0.0019674 | 0.1001687 | N/A (0/100 applicable) | N/A (0/100 applicable) | 0.0003544 | 0.0055606 | + +生成完成率 100%、failed 0;700 個成功 stage records、714 persisted model +attempts,generation wall 3,143s(約 31.43s/sample)。per-call latency +mean/median:Analyst 8.80/8.21s、Asset Planner 4.95/4.44s、Composition +Director 6.18/5.94s、Coordinate Mapper 2.88/2.48s(300 calls)、blind +Judge Select 2.26/1.93s。 + +既有 selected-B0 QC 診斷為 31/100 passed、completeness mean 1.0;67 筆 +帶 `all_qc_failed` degradation。主要 violation sample counts: +low_text_contrast 44、title_undersized 31、out_of_bounds 20、 +missing_element 17、text_obscured_by_overlay 9、decorative_image_oversized 8。 +其中 17 個 `missing_element` 全部只指向 `asset_0000`,且各 R3 manifest +均將它標為 `background_asset_id`;這是 QC 對「刻意排除於 foreground +coverage 的背景」之 false positive,不是實際前景遺漏。formal evaluator +的 exact foreground coverage 100/100 全過,因此不得把這 17 筆誤報為 +completion failure。 + +部分空白 canvas 觸發 rembg divide/cast runtime warning,但 finite/range +contracts 與 bundle publication gate 均通過。獨立 read-only reload 亦通過 +`validate_evaluation_bundle()`;100 筆 per-sample rows 的適用軸平均值以 +rel_tol 1e-12 重算吻合。artifact SHA-256:manifest `ee6f4d3284c9…`、 +aggregate `dc5dfe244693…`、per_sample `a72c699ff4ea…`。 + +**Status:General deterministic geometry、completion、failure、latency +evaluation complete。** Generation 授權未涵蓋 General-vs-GT paid COLE; +該 judge 後來以獨立授權完成(§24.5)。可選下一個零成本工程任務是修復 +HTTPX event-loop cleanup 與 Numba cache/runtime hygiene。 + +### 24.5 General-vs-designer-GT matched COLE judge(付費項;2026-07-12) + +使用者另行逐字授權: + +> 授權執行 a3-general-n100-cole-v1,judge=gpt-5.4-mini-2026-03-17,最多 +> 220 calls(含 probe/retry)、3M input tokens、150k output tokens、US$4。 + +專用 runner `layout_agent/judge_a3_general_cole.py` 僅讀取 §24.4 正式 +SEGA sidecar 所 pin 的 100 張 General B0 render,並配對同 100 個 sample ID +的 designer GT preview。付費前後均重驗 200 張影像與順序;input snapshot +SHA-256 固定為 +`aa7c5b236bc8655bf182cfe8fc898266fbb8e136b30c3f8ae2e7e89bbcb5fa72`。 +COLE prompt/parser 沿用 `step21_phaseb_eval.py`;judge 固定 +`gpt-5.4-mini-2026-03-17`,每圖絕對評分,prompt 無 arm label,blind by +construction。 + +checkpoint 11 的 network-isolated 首次 probe 無回應後已中止,未建立 staging +或 final;為不超出跨 session 的原始授權,本次 runner 預先保留該 1 call、 +1,000 input 與 600 output tokens,只允許最多 219 個新 attempts。確認 OpenAI +網路可達、Git 可寫、無 concurrent runner、write-once targets 皆不存在後, +僅執行一次: + +```bash +TMPDIR=/tmp /home/hui0705/.conda/envs/meta/bin/python \ + layout_agent/judge_a3_general_cole.py --allow-api-calls +``` + +結果:**exit 0、200/200 `ok`、無 scoring retry、wall 61.59s** +(約 09:00:13–09:01:14 CST)。參數 probe 選用 +`max_completion_tokens=600`;累計 ledger 202 calls(先前保留 1+本次 probe +1+200 scores),312,795 input、41,653 output、估算 `$0.422035`,全部低於 +授權上限。200 個成功 scoring calls 有 provider usage telemetry;扣除先前 +保守 reserve 後為 311,795 input、41,053 output。實際帳單仍以 provider +dashboard 為準。 + +結果原子發布於 +`layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/`; +staging 不存在。artifact SHA-256:aggregate +`f4ea72902a598996687240074be255d13c188304342169470084b56dda42fcb8`、 +per_sample +`56671d43916762c85c7ae30aa11dd91ed1151a12741a0f2e2fa376edb45706b7`。 + +**Arm means(S_mean4 = SDL/SQL/STV/SIO 平均;SGI 另列)**: + +| Arm | n | SDL | SQL | STV | SIO | SGI | S_mean4 | % of GT | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| Designer GT | 100 | 6.98 | 7.35 | 6.77 | 5.59 | 7.43 | **6.6725** | — | +| General B0 | 100 | 5.63 | 6.01 | 5.38 | 4.85 | 6.08 | **5.4675** | 81.94% | + +**Paired General-vs-GT(S_mean4;two-sided sign test+bootstrap 95% CI, +seed 20260712、10k)**:100 pairs,10W/85L/5T,`p=5.7623e-16`, +mean delta `-1.205`,95% CI `[-1.420, -0.9925]`。四個報告軸亦全顯著 +落後 GT:SDL 6W/75L/19T(`p=2.91e-16`)、SQL 2W/75L/23T +(`p=3.98e-20`)、STV 10W/72L/18T(`p=1.02e-12`)、SIO +8W/59L/33T(`p=1.02e-10`)。 + +**判讀**:General final system 的 COLE 四軸平均為 designer GT 的 81.94%, +且 paired deficit 的 bootstrap CI 完全低於 0;本結果量化的是同一批 sample +上的美學差距,不改變 §24.4 deterministic geometry/completion 已完成的結論。 +協定為 A3-only、GT-referenced、gpt-5.4-mini judge,不可與舊架構 gpt-4o +COLE 表互換。 + +**Status:General-vs-GT matched COLE judge complete。** General N=100 的 +generation、formal SEGA/PKU 與 separately authorized COLE 評測均已完成; +不得重跑既有 write-once artifact。 + +--- + +## 25. A3-12S:Relation N=100 tree 直接準確度 + SGC/TLC/PCA 統計重分析(2026-07-12;zero-cost) + +兩項皆 read-only、0 LLM/API call、無版面重生成;全部輸入為凍結 run artifacts(`a3-rel100-t0/t2/t3-01` + `relation100_oracle_trees/`)。新程式:`metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py`、`a3_relation_stats.py`,CLI `layout_agent/evaluate_a3_tree_accuracy.py`、`layout_agent/analyze_a3_relation_stats.py`;測試 `tests/metagpt/ext/agentlayout/test_a3_tree_accuracy.py`(11)+ `test_a3_relation_stats.py`(13),agentlayout 全套 753 passed。 + +### 25.1 T2 predicted Layout Tree vs human oracle(直接準確度) + +Bundle:`layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/`(write-once;manifest 記 input/程式/sample-ID hash 與 bootstrap 設定)。Denominators:**evaluated 99/100、planner failure 1/100(`5f644f40`,明列不靜默)、coverage mismatch 0**;certain nodes 1,284、uncertain(conf=0.5)27(14 個 samples),uncertain 全部從 primary 指標排除並另行分列。Bootstrap 95% CI = sample-level percentile、seed 20260712、10,000 次、每統計量獨立 fresh RNG。 + +| 指標 | macro mean [95% CI] | pooled/micro | +| --- | --- | --- | +| **Same-group P** | 0.7495 [0.6953, 0.8022] | 0.7380 | +| **Same-group R** | 0.5770 [0.5216, 0.6337] | 0.6243 | +| **Same-group F1(primary)** | **0.6044 [0.5578, 0.6512]** | 0.6764 | +| Parent-child P | 0.3199 [0.2800, 0.3605] | 0.3065 | +| Parent-child R | 0.3810 [0.3340, 0.4289] | 0.3590 | +| Parent-child F1 | 0.3394 [0.2980, 0.3820] | 0.3307 | +| Semantic-type acc | 0.7437 [0.7113, 0.7762] | 0.7578 (1,284 nodes) | +| Semantic-role exact acc(lower bound only) | 0.0000 | 0.0000 | + +判讀:Planner 的分組還原(same-group F1 0.60)與 semantic-type(0.74)有實質訊號;parent-child 邊還原顯著較弱(F1 0.34)——與 §23.3「T3 仍大幅優於 T2」一致。semantic-role exact 為 0 是預期中的 degenerate lower bound(oracle 角色為中文自由文字、predicted 為英文自由文字,exact case-sensitive 字串比對必然不匹配),僅作 lower bound 陳述、不得引為主要指標。 + +### 25.2 SGC/TLC/PCA 統計重分析(Holm + Bonferroni + bootstrap CI) + +Bundle:`layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/`(含 `results.md`/`results.tex` 論文可用表與保守 Results 段落)。Per-sample SGC/TLC/PCA 由凍結 artifacts 決定性重算(`evaluate_layout_realization`,final selected candidate + P-Full canvas + 同一棵 human oracle),三臂 means 與 §23.3 逐位吻合(T0 .6465/.6277/.6930、T2 .7037/.6711/.7614、T3 .7779/.7271/.8215);W/L 計數亦逐格吻合。Generation failures 3/300 明列(T2 `5d67ed46`、`5f644f40`;T3 `5da04604`);每檢定用兩臂皆成功之交集(paired N = 98/99/97)。 + +9 檢定 Holm 校正後:**8/9 仍顯著**(T2vsT0 三軸、T3vsT0 三軸、T3vsT2 SGC/TLC);唯一不顯著 = **T3vsT2 PCA**(46W/29L/22T,raw p=0.0639、Holm p=0.0639)——僅能寫「未偵測到差異」,不得解讀為 equivalence(未做 equivalence test)。Bonferroni sensitivity:T2vsT0 PCA(0.115)與 T3vsT2 TLC(0.120)在 Bonferroni 下越過 0.05,引用時如採最保守口徑須註記。精確 p 修正:§23.3 的 T3vsT0 SGC「p≈3e-6」實為 **8.5e-07**(74W/25L exact binomial),其餘 8 個 raw p 與 §23.3 一致;引用一律以本節 bundle 為準。 + +Artifact SHA-256(前 12 碼):tree-accuracy aggregate `ffb9fcbe8c0e` / per_sample `f60c4910ecd5`;stats aggregate `c71b8d708149` / per_sample `d4db77a05684` / results.md `a435ba7f7cb9` / results.tex `69e4269d2c95`。獨立驗證:artifact hash 對帳、arm means 與 macro F1 由 per-sample rows 重算吻合(rel_tol 1e-12)、JSONL 每 sample 恰一行(100/300 rows)。 + +**Status:A3-12S complete。** 兩 bundle write-once、不得重跑覆蓋;後續引用 Relation N=100 tree ablation 統計一律以 §25.2 的 Holm-adjusted 表為準。 + +--- + +## 26. A3-13P:AI annotation replacement protocol 凍結提案(2026-07-12;zero-cost) + +依 `CODEX_HANDOFF.md` §5/§6 第 1 列(研究設計/評估方法角色)產出 +`layout_agent/AI_REFERENCE_PROTOCOL.md`:三個獨立 MLLM annotators(輸入嚴格 +等於 human annotation packet、黑名單 fail-loud)、deterministic consensus+blind +第四模型 escalation、`ai_reference.v1` provenance 與全新 artifact namespace +(human 100/100 oracle 與 raw annotations 位元組不動作 calibration set)、 +Alternative Annotator Test(same-group/edge Jaccard 為 primary、ε=0.2 主值+ +0.1/0 敏感度、ρ≥0.5)、downstream stability gate(`T025 元素樣本超出 E2D 訓練範圍,其失敗按協定明列不剔除亦不修補。 + +Bundles(write-once,manifest 含 input/code/artifact hash): +`layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/`、 +`.../a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/`(含 `results.md`)。 +Run artifacts(raw five-turn outputs、renders、candidate/error per sample)在 `layout_agent/runs/external/elem2design-rel100-v1/`(不入 git)。 + +**Status:A3-13E complete。** + +### 26.1 Selection-asymmetry sensitivity(zero-cost 重算;2026-07-12) + +移除 A3 的三候選 selection 優勢後重新配對(同 93 對、同統計機件;bundle +`a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/`): + +| 變體 | SGC | TLC | PCA | Ali↓ | Ove↓ | +| --- | --- | --- | --- | --- | --- | +| **first candidate**(單發、無 selection) | 77/16 +0.182 p=2.9e-10 | 75/18 +0.177 p=3.8e-09 | 49/21 +0.122 p=1.1e-03 | 8/3/82 +0.0005 p=0.23(ns) | 11/82 −0.128 p=2.8e-14 | +| **mean over 3**(單發期望值) | 77/16 +0.172 p=1.9e-10 | 82/11 +0.161 p=4.3e-14 | 55/30 +0.112 p=8.8e-03 | 27/3/63 +0.0011 p=8.4e-06(E2D 較好) | 7/86 −0.124 p=4.2e-18 | + +**判讀**:語意三軸的優勢**完全不依賴 candidate selection**——單發 A3-T2 對單發 E2D 仍全軸 Holm 顯著,且效果量與 B0 版相當甚至略大(selection 並未挑高語意指標)。Ali 在 first-candidate 下不顯著、mean3 下顯著但幅度 +0.001 級。論文可直接寫「即使無 selection,A3-T2 仍在全部語意軸顯著優於 baseline」,原不對稱 caveat 降級為 minor note。 + +--- + +## 27. Full-Crello batch 001 續跑完成 + 六軸評測(2026-07-12) + +**續跑授權**(使用者逐項確認):沿用原 envelope(850 calls/4.5M in/800k out/US$7.00)之**剩餘額度**、兩筆 validation 耗盡樣本(`5d0cf30b`、`5e7c7124`)**不重試**。 + +**先補齊兩個未實作的 resume 機制**(checkpoint 48 只寫了規格):(1) `run_a3.py` 新增 completed-skip(有 `l0_result.json` 直接列入、絕不重花錢)與 `--skip-sample`(operator 顯式跳過、記為 explicit failed row);(2) `A3PaidBudget` 新增 `--resume-ledger` 模式——replay append-only ledger 還原累計消費、驗證授權 hash 一致、拒絕未結清 reservation,**上限永不重置**。新增 3 測試(`test_a3_paid_budget.py` 7/7 綠)。中斷樣本 `592d211c` 的 write-once 殘檔搬至 `*.interrupted-20260712` 保存後乾淨重跑。 + +**結果**:100 processed=**98 completed + 2 OperatorSkip**;stop_reason None;零 in-flight。累計 ledger:**720 calls/2,563,813 input/471,763 output/估 US$4.045793**(本次續跑增量 351 calls/≈US$1.91),全數在原授權 envelope 內。 + +**六軸**(`a3-crello-test-batch-001-n100-sega-v1`,BASNet+ISNet、offline、0 API、$0): +Ali 0.000964、Ove 0.09106、Rea 0.002248、Occ 0.006894(98/98 applicable);Und_l/Und_s N/A(P-Full v1 無合法 underlay);2 筆 source_skipped 顯式列出。與 General N=100(Ali 0.00197/Ove 0.1002)同量級。 + +**Status:batch 001 complete(98/100+2 explicit failure)。** 下一批(002)開跑前仍須依協定提出新的精確付費授權。CODEX_HANDOFF.md 有使用者未提交的既有修改,本節即為 batch 001 的權威記錄。 + +### 26.2 Rea/Occ 補齊(zero-cost;2026-07-13) + +原 deferred 的兩軸以「同一 per-sample 背景+凍結 BASNet+ISNet stack、A3-T2 值逐字取自凍結 formal bundle、E2D 只換框」補齊(PKU 協定的 Rea/Occ 是背景+框的函數,無需渲染 candidate)。Bundle: +`a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/`(含 93 對)。 + +| 軸 | A3-T2 | E2D | W/L/T | mean diff | Holm(4) p | +| --- | ---: | ---: | --- | --- | ---: | +| Rea↓ | 0.0 (98) | 0.0 (93) | 0/0/93 全平手 | 0 | 無資訊軸(本協定平坦背景、Sobel 零訊號,與三臂內部比較一致) | +| Occ↓ | 0.005629 | 0.007339 | 16/75/2 | −0.00166 [−0.00216, −0.00114] | **5.3e-10**(A3 較好) | + +同 bundle 重算**完整幾何家族 Holm(4)**(取代主 bundle 的暫行 Holm(2)):Ove 6.5e-16(A3)、Occ 5.3e-10(A3)、Ali 0.0213(E2D、幅度 +0.001 級)、Rea 無資訊。**六軸至此全數交代:語意三軸+Ove+Occ 顯著利 A3、Ali 微幅利 E2D、Rea 無訊號、Und 依協定 N/A。** diff --git a/layout_agent/AGENT_PROMPTS.md b/layout_agent/AGENT_PROMPTS.md new file mode 100644 index 000000000..75a517bac --- /dev/null +++ b/layout_agent/AGENT_PROMPTS.md @@ -0,0 +1,349 @@ +# A3 Pipeline — 各 Agent Prompt 總覽 + +> 整理日期:2026-07-15。本文件列出 A3 架構(目前論文主線 pipeline)中每一個 LLM Agent 實際收到的 prompt 原文模板。 +> 原文以程式碼為準;此處為逐字複製,`{...}` 為 f-string 佔位符,每節後附佔位符說明。 +> 所有 prompt 皆存有 `prompt_sha256`,實際送出的完整文字也會落盤在各 run 的 `*_request.json` 中,可直接稽核。 + +## 呼叫順序與模型輸入一覽 + +L0 pipeline 每個 sample 的 LLM 呼叫順序(見 `layout_agent/run_a3.py` 的 `_call_budget`): + +| # | Agent | Prompt builder(定義位置) | 視覺附件 | 條件 | +|---|-------|---------------------------|----------|------| +| 1 | Analyst | `build_analyst_prompt` — `metagpt/ext/agentlayout/tools/analyst_vision.py:194` | 背景 overview 圖 + 前景 contact sheets | 每次 | +| 1' | Analyst(text-only ablation) | `build_text_only_analyst_prompt` — 同檔 `:229` | 無 | Gate A ablation 臂才用 | +| 2 | Asset Planner | `build_tree_prompt` — `metagpt/ext/agentlayout/layout_tree_v3.py:210` | 無(純文字) | T2 臂才有 | +| 3 | Composition Director | `build_director_prompt` — `metagpt/ext/agentlayout/tools/director_contract.py:65` | 背景圖 1 張 | 每次 | +| 4–6 | Coordinate Mapper ×3 | `build_mapper_prompt` — `metagpt/ext/agentlayout/tools/mapper_contract.py:63` | 背景圖 1 張 | 每 concept 一次 | +| 7 | Judge-Select | `build_judge_select_prompt` — `metagpt/ext/agentlayout/tools/judge_select.py:84` | 3 張 R0 render | 每次 | +| 8 | Judge-Critic | `build_judge_critic_prompt` — `metagpt/ext/agentlayout/tools/judge_critic.py:93` | B0 render 1 張 | L1-Gated 臂才有 | +| 9 | Mapper(revision mode) | 同 Mapper,帶 `revision_instruction` + `base_elements` | 背景圖 1 張 | L1-Gated 修訂時 | + +**共通 retry 機制**:每個 stage 上限 3 次(`A3_*_MAX_RETRIES = 3`,定義在 `metagpt/ext/agentlayout/actions/*_a3.py`)。parse/validation 失敗時,重試 prompt = 原 prompt 附加: + +``` +# Previous response validation error +{error} +Return a corrected complete JSON object. +``` + +--- + +## 1. Analyst(vision 版,預設) + +- **Builder**:`build_analyst_prompt(manifest, user_brief)` — `tools/analyst_vision.py:194` +- **附件**:第 1 張為背景 overview(最長邊 768px);其後為前景 contact sheets(每頁最多 20 個 asset,統一 240×220 cell,刻意抹除原始位置與比例)。 +- **輸出 schema**:`A3AnalystOutput`(semantic-only;禁止座標/尺寸/路徑)。 + +``` +Role: You are the semantic design Analyst in AgentLayout A3. + +You MUST inspect BOTH the first attached background overview and every following +foreground contact-sheet page. The contact-sheet labels are authoritative stable +asset IDs. Uniform cells deliberately remove original placement and scale. + +# User brief +{user_brief} + +# Canvas +{canvas_width}x{canvas_height} + +# Foreground assets (same IDs/order as contact sheets) +{assets_json} + +# Responsibilities +- Describe the background's visual content, saliency/quiet regions and palette. +- Assign every foreground asset a semantic type and semantic role. +- semantic_type must NEVER be "background_image": every listed asset is + placeable foreground by contract, even full-canvas textures or panels. + Use "decorative_image" for texture/panel-like assets. +- Use text `content` for meaning and inspect its bitmap for visual style. +- State semantic constraints only. Do NOT output coordinates, bbox, x/y, width, + height, font size, original scale, z-index or file paths. +- Include every listed asset ID exactly once; never invent or rename IDs. +- The theme/brief is context, not permission to invent new foreground assets. + +# Output JSON Schema +{A3AnalystOutput.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +**佔位符**: +- `{user_brief}`:使用者 brief 原文。 +- `{canvas_width}x{canvas_height}`:畫布尺寸,如 `1080x1080`。 +- `{assets_json}`:每個前景 asset 的 `{asset_id, media_type, content, bitmap_aspect_ratio}` 陣列(R3 規則:只暴露長寬比,不暴露像素尺寸)。 + +--- + +## 1'. Analyst(text-only ablation,Gate A 用) + +- **Builder**:`build_text_only_analyst_prompt(manifest, user_brief)` — `tools/analyst_vision.py:229` +- **附件**:無。輸出 contract 與 vision 版完全相同,唯一差異是宣告零視覺存取。 + +``` +Role: You are the semantic design Analyst in AgentLayout A3. + +You have NO visual access in this configuration: no background image and no +foreground thumbnails are attached. Reason from the brief, each asset's text +content and its media type alone. + +# User brief +{user_brief} + +# Canvas +{canvas_width}x{canvas_height} + +# Foreground assets +{assets_json} + +# Responsibilities +- Assign every foreground asset a semantic type and semantic role. +- semantic_type must NEVER be "background_image": every listed asset is + placeable foreground by contract. Use "decorative_image" when unsure + about a non-text asset. +- background_summary must describe only what the brief implies; do not + invent visual details you cannot see. +- State semantic constraints only. Do NOT output coordinates, bbox, x/y, + width, height, font size, original scale, z-index or file paths. +- Include every listed asset ID exactly once; never invent or rename IDs. + +# Output JSON Schema +{A3AnalystOutput.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +--- + +## 2. Asset Planner(T2 臂限定) + +- **Builder**:`build_tree_prompt(analyst)` — `layout_tree_v3.py:210` +- **附件**:無(純文字)。 +- **輸出 schema**:`A3LayoutTree`(source 必為 `"predicted"`)。 +- **注意**:parse 後 `apply_analyst_semantics` 會以 Analyst 輸出**強制覆寫** `semantic_type` / `semantic_role`,Planner 實際只貢獻 grouping、parent/relation 邊、ordering 與 confidence。 + +``` +Role: You are the Asset Planner in AgentLayout A3. + +Build an explicit semantic Layout Tree BEFORE any coordinates are generated. + +# Analyst semantic output +{payload_json} + +# Rules +- Include every foreground asset ID exactly once. Never invent or rename IDs. +- Copy each asset's semantic_type and semantic_role from the Analyst output + VERBATIM; both are enforced deterministically after parsing. +- Assign exactly one semantic group, a parent, relation, ordering priority + and confidence per asset — grouping and edges are your only judgement. +- Use parent_id="root" and relation_to_parent="root" for top-level assets. +- Every non-root parent must be another supplied asset ID; no cycles. +- Decorative assets remain represented and grouped; never drop them. +- Do NOT output coordinates, bbox, size, font size, z-index or asset paths. +- source MUST be "predicted". + +# Output JSON Schema +{A3LayoutTree.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +**佔位符**: +- `{payload_json}`:`{design_intent, style_keywords, assets:[Analyst 的每個 asset dump]}`。 + +--- + +## 3. Composition Director + +- **Builder**:`build_director_prompt(analyst, condition, canvas)` — `tools/director_contract.py:65` +- **附件**:背景 canvas 圖 1 張。 +- **輸出 schema**:`A3ConceptSet`(恰好 3 個名稱互異的 concept)。 + +``` +Role: You are the Composition Director in AgentLayout A3. + +The attached image is the base background canvas. Propose exactly +3 spatially DISTINCT composition concepts in natural +language; a separate Coordinate Mapper will turn each concept into exact +pixels afterwards. + +# Canvas +{canvas} + +# Semantic context +{payload_json} + +# Rules +- The three concepts must place the focal element and the text group in + clearly different canvas regions; do not emit three variations of one idea. +- focal_element must be one of the supplied asset IDs. +- Describe placements in natural language only. Do NOT output coordinates, + bbox, x/y, width, height, font size or file paths. +- Respect the provided tree/grouping information when present; never invent + assets or roles. + +# Output JSON Schema +{A3ConceptSet.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +**佔位符**: +- `{canvas}`:畫布尺寸字串。 +- `{payload_json}`:`{design_intent, background_summary, style_keywords, assets, **condition_prompt_payload(condition)}` — 最後一項依 T0/T1/T2/T3 臂注入 flat roles 或 Layout Tree。 + +--- + +## 4. Coordinate Mapper(R0 模式,每個 concept 呼叫一次,共 3 次) + +- **Builder**:`build_mapper_prompt(concept, condition, manifest, ...)` — `tools/mapper_contract.py:63` +- **附件**:背景 canvas 圖 1 張。 +- **輸出 schema**:`Candidate`(每個 asset 恰一個 bbox)。 + +``` +Role: You are the Coordinate Mapper in AgentLayout A3. + +The attached image is the base background canvas. Translate the composition +concept into exact pixel coordinates for every foreground asset. + +# Canvas (top-left origin) +{canvas_width}x{canvas_height} + +# Composition concept +{concept_json} + +# Foreground assets +{assets_json} + +# Structure +{condition_prompt_payload_json} +{revision_block(R0 模式為空字串)} +# Rules +- Output one bbox per asset ID, each asset exactly once; never invent IDs. +- Visually similar or identical assets are still DISTINCT asset IDs: place + every listed asset_id exactly once and never repeat an ID. +- Choose each element's size from the design context and the canvas; keep + each bitmap's aspect ratio (width/height must match bitmap_aspect_ratio). +- Keep every bbox fully inside the canvas. +- Assign z_index so overlapping elements stack intentionally. +- candidate_id must be "candidate". + +# Output JSON Schema +{Candidate.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +**佔位符**: +- `{concept_json}`:Director 給的單一 `CompositionConcept` dump。 +- `{assets_json}`:同 Analyst 的 asset 清單(只含 `bitmap_aspect_ratio`,無像素尺寸)。 +- `{condition_prompt_payload_json}`:依臂別注入的結構資訊(T2 = Layout Tree)。 + +### 4'. Mapper — Revision 模式(L1-Gated 修訂呼叫) + +同一模板,在 `# Structure` 與 `# Rules` 之間插入以下區塊: + +``` +# Revision mode +You are revising an already-selected layout. Start from the base elements +below and apply ONLY the requested change. + +## Base elements (B0) +{base_elements_json} + +## Revision instruction +{revision_instruction} +``` + +`{revision_instruction}` 來自 Judge-Critic issue 經 repair gate 轉譯後的單一修訂指令;`{base_elements_json}` 為 B0 的元素座標。 + +--- + +## 5. Judge-Select(選擇,與批評解耦) + +- **Builder**:`build_judge_select_prompt(candidates, context)` — `tools/judge_select.py:84` +- **附件**:3 張 R0 render,附件順序 = 清單順序。 +- **輸出 schema**:`JudgeSelectResult` — **只有 ranking 與 selected_candidate_id**,schema 層面就不存在 score/verdict/feedback 欄位(new_plam.md §4.4 的結構性解耦)。 + +``` +Role: You are Judge-Select in AgentLayout A3. + +You are shown exactly three rendered R0 layout candidates as image +attachments. Attachment order matches the candidate list below. + +Task: compare the three candidates as complete layouts and rank them from +best to worst overall. Exactly one candidate is always selected; selection +is unconditional. + +# Rules +- Output ONLY the ranking and the selected candidate ID. +- Do NOT write critique, defect lists, improvement suggestions or feedback. +- Do NOT output scores, grades or verdicts of any kind. +- Judge holistically from the rendered images and the structured context. + +# Candidates (attachment order) +{listing_json} + +# Structured context +{context_json} + +# Output JSON Schema +{JudgeSelectResult.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +**佔位符**: +- `{listing_json}`:每個候選的 `{candidate_id, deterministic_qc_passed, deterministic_qc_violations}`。 +- `{context_json}`:結構化上下文(可為 `{}`)。 + +--- + +## 6. Judge-Critic(批評,L1-Gated 臂限定) + +- **Builder**:`build_judge_critic_prompt(b0_candidate_id, known_asset_ids, context)` — `tools/judge_critic.py:93` +- **附件**:已選出的 B0 render 1 張(看不到其他候選)。 +- **輸出 schema**:`JudgeCriticResult` — 至多 2 條 `ActionableIssue`,`issue_type` 限定 12 種封閉詞彙(overlap / clipping / out_of_bounds / misalignment / spacing / lockup / text_too_small / illegible_text / poor_contrast / text_on_busy_region / hierarchy_error / tree_inconsistency);無 score/ranking/verdict 欄位。 + +``` +Role: You are Judge-Critic in AgentLayout A3. + +You are shown ONLY the already-selected best candidate (B0) as a single +image attachment. Selection is finished; do not re-rank, re-select or +compare against other candidates. + +Task: report at most 2 element-level actionable issues. + +# Rules +- Each issue must name at least one existing target asset ID, exactly one + closed issue_type from the schema, and a desired change precise enough to + become one verifier check or one revision instruction. +- Vague opinions such as "not beautiful enough" or "lacks creativity" are + not actionable issues; omit them entirely. +- Do NOT output an overall score, grade, ranking or verdict of any kind. +- If nothing is actionable, return an empty issues list. + +# B0 candidate +{"candidate_id": "..."} + +# Known asset IDs +{known_asset_ids_json} + +# Structured context +{context_json} + +# Output JSON Schema +{JudgeCriticResult.model_json_schema() 的 JSON dump} + +Output one JSON object only, without markdown fences. +``` + +--- + +## 附註 + +- **評測用 judge prompt 不在本文件範圍**:COLE 評分 / pairwise 比較等評測 prompt 分別在 `layout_agent/judge_a3_cole.py`、`judge_a3_general_cole.py` 與各 step 腳本內,屬評測協定而非 pipeline agent。 +- **AI 標註 prompt**:`metagpt/ext/agentlayout/tools/annotation.py` / `adjudication.py`(Gate A/B 標註),亦不屬生成 pipeline。 +- **舊版(pre-A3)pipeline prompt**:`metagpt/ext/agentlayout/actions/{analyze_brief, plan_assets, compose_concept, compose_sketch, generate_layout, judge_aesthetic}.py`,已被 A3 取代,僅供歷史對照。 +- 每次實際呼叫的完整 prompt(佔位符已展開)都會存檔:`analyst_request.json` / `planner_request.json` / `director` / `mapper_request.json` / `judge_select_request.json` / `judge_critic_request.json`,位於各 run 的 artifacts 目錄(`layout_agent/runs/a3//...`)。 diff --git a/layout_agent/AI_REFERENCE_PROTOCOL.md b/layout_agent/AI_REFERENCE_PROTOCOL.md new file mode 100644 index 000000000..dbe0f13ea --- /dev/null +++ b/layout_agent/AI_REFERENCE_PROTOCOL.md @@ -0,0 +1,333 @@ +# A3 AI Annotation Replacement Protocol(SUPERSEDED — 僅作歷史記錄) + +> ⚠️ **2026-07-12 作廢**:本檔全部建立在「既有 100 份標註為人類所做、可作 +> calibration set」的前提上。同日使用者揭露該前提不成立——全部標註與裁決 +> 本來就是 AI 模型(GPT-5.6 sol/Claude Fable 5/Gemini+GPT 裁決)做的, +> 專案不存在任何人類標註。§1 calibration set、§5 Alternative Annotator Test、 +> §6 gate、§10 預算、§11 待批事項全部作廢。現行正確版本見 +> `layout_agent/ANNOTATION_PROVENANCE_CORRECTION.md` 與 `A3_EXPERIMENT_LOG.md` §27。 +> 本檔保留不刪,作為 A3-13P 提案的歷史記錄。 + +> 建立日期:2026-07-12 +> 作者角色:研究設計/評估方法(CODEX_HANDOFF §6 第 1 列) +> 原狀態:PROPOSED / 0 code / 0 new calls(現:SUPERSEDED) +> 依據:`CODEX_HANDOFF.md` §5 九點最低協定;`new_plam.md` §5–§8;`A3_EXPERIMENT_LOG.md` §20–§25。 + +--- + +## 0. 目標與不變條件 + +**目標**:建立一條平行、可驗證的 AI reference tree 路徑,用既有 100 份多人 human +annotation 校驗「AI annotators 能否取代新增人工標註」。**不是**把 `human_oracle` +改名,也不是重寫任何歷史 artifact。 + +**不變條件(違反任一即整個 run 作廢)**: + +1. 既有 100 份 human oracle trees(`runs/a3/relation100_oracle_trees/`、兩個來源 + run 的 `adjudication/`)與所有 raw annotations(pilot 20:`annotation_T/hui/neiji.json` + +裁決 `annotation_nina.json`;n80:`annotation_hui/neiji/nina.json`)位元組不動, + 作為封存 calibration set。 +2. 所有新 artifact 寫入新 namespace(§4),provenance 一律 `ai_reference.v1`; + 任何檔案不得寫入 `human_oracle` source 字串。 +3. 不重跑、不覆蓋任何 write-once artifact(含 T0/T2/T3 run、兩條 evaluation 線)。 +4. Gate 未全數通過前,論文中 AI reference 只能作 secondary/scaling analysis, + human reference 仍是 primary。 + +--- + +## 1. 封存 calibration set 與既有基線 + +| 項目 | 值 | 出處 | +| --- | --- | --- | +| Human reference trees | 100/100(pilot 20 + n80 80) | log §20、§22 | +| 每 sample raw 標註 | 3 份(pilot:T/hui/neiji;n80:hui/neiji/nina) | log §20.1、§22.1 | +| 三人 agreement(n80) | same-group Jaccard 0.571、edge Jaccard 0.357、role-type 0.658 | log §22.2 | +| T2 predicted tree vs human oracle | same-group macro F1 0.6044、edge F1 0.3394、type acc 0.7437 | log §25.1 | +| Downstream 結論 | Holm 後 9 檢定 8 顯著(T3vsT2 PCA 唯一未偵測差異)、`T0.json`、adjudication、oracle trees)、designer GT preview/ +座標、R3 normalized geometry、T0/T2/T3 layouts 與 renders、任何 metric/score、 +其他 annotator 的輸出。 + +### 2.3 輸出 schema 與 provenance + +輸出 `annotation_ai_.json`,欄位對齊 HumanAnnotation v1(semantic_type +enum、semantic_role 自由文字、same-group、parent-child、per-asset `uncertain`、 +`sample_uncertain`),另加: + +```json +{ + "source": "ai_reference.v1", + "annotator_id": "A1", + "provider": "", + "model_snapshot": "", + "prompt_sha256": "", + "packet_sha256": "...", + "contact_sheet_sha256": ["..."], + "request_id": "", + "sampling": {"temperature": "...", "seed": "..."} +} +``` + +三個 annotators 使用**同一份 frozen prompt**(翻譯自現行 ANNOTATION_GUIDE 的機器 +可讀版),prompt 於實作階段產出、由使用者批准後凍結 SHA-256;執行期任何字元變更 +即中止。 + +--- + +## 3. Consensus 與 adjudication + +### 3.1 第一層:預先凍結的 deterministic consensus 規則(zero-cost) + +逐 sample 對三份 AI 標註套用,全部規則此刻凍結: + +1. **semantic_type**:三者取眾數;三方互異 → 該 asset 進 escalation。 +2. **same-group**:對每一 asset pair,≥2 位 annotators 同組即 majority pair。 + 以 majority pairs 建圖;若該圖已傳遞閉合(每個連通分量都是 clique), + 各連通分量即 consensus groups;否則整個 sample 進 escalation。 +3. **parent-child edges**:≥2 票的邊入選;若入選邊集合違反樹約束 + (cycle、多父、指向不存在 asset)→ 整個 sample 進 escalation。 +4. **uncertain**:asset 層級 ≥2 票 uncertain 即 consensus uncertain; + `sample_uncertain` 同規則。 +5. **semantic_role(自由文字,非 primary 軸)**:取「semantic_type 與 consensus + 一致」的 annotators 中,annotator_id 字典序最小者的 role 文字。零決策、可重現。 + +### 3.2 第二層:blind escalation adjudicator(第四模型,付費) + +- 只處理 §3.1 標記 escalation 的 samples/assets。 +- 使用**未參與生成的第四個 model snapshot**(待批准;優先第四家族或同家族更大杯型)。 +- 輸入=原 annotation packet + 三份**匿名化**(去除 provider/model 欄位、隨機 + 重排為 X/Y/Z)的 AI 標註;同樣禁止 §2.2 黑名單內容。 +- 輸出逐分歧決定+理由;寫入 `ai_adjudication_record.json`(含所有 §2.3 provenance + 欄位與 per-decision 來源)。 +- 所有 disagreement(位置、三方票型、最終決定)完整落盤,對齊 human 線的 + `adjudication_record.json` 粒度。 + +### 3.3 產出 + +每 sample 一份 `annotation_ai_consensus.json` + `ai_oracle_trees/.json` +(`source: "ai_reference.v1"`),經與 human 線相同的 `annotation_to_oracle_tree` +結構檢查;all-or-nothing finalize,任何 sample 失敗即整批不發布。 + +--- + +## 4. Artifact namespace(全部新建,不觸碰 human 線) + +```text +layout_agent/runs/a3/a3-airef-annot-n100-01/ + manifest.json # frozen providers/snapshots/prompt hash/budget + samples//annotation_ai/ + annotation_ai_A1.json / A2 / A3 + annotation_ai_consensus.json + ai_adjudication_record.json # 僅 escalated samples + ai_adjudication/ + ai_oracle_trees/.json # source="ai_reference.v1" + ai_finalization.json # 含全檔 SHA-256 +layout_agent/evaluations/a3-alt-test/a3.alt-test.v1// +layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/ + a3-relation-n100-sgc-tlc-pca-stats-airef-v1/ # AI-ref 重算(§6) +layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/ + a3-relation-n100-t2-tree-accuracy-airef-v1/ +``` + +sample 集合=`sample_ids/a3_relation_n100.json`(與 human reference 同 100 ID, +逐位元組沿用、hash 記入 manifest)。annotation packets 逐位元組沿用兩個既有 +annotation run 的 `annotation_packet.json` 與 contact sheets(記 SHA-256), +不重新生成,保證 AI 與人類看到完全相同的輸入。 + +--- + +## 5. Alternative Annotator Test(primary 驗證) + +依 alt-test 方法(Calderon et al. 2025)改寫到 tree annotation:**AI(consensus 前 +的單一 annotator,非 consensus 結果)逐一頂替每位 human annotator,檢驗它與其餘 +human 的對齊是否不劣於被頂替者。** + +### 5.1 程序(每批分開跑:pilot 20 與 n80 80 的 annotator 集合不同) + +對每個 sample s、每位 human annotator j(該批 3 位): + +1. `align_AI(s,j)` = AI annotator 與「其餘兩位 human」的平均 agreement; +2. `align_H(s,j)` = human j 與同樣那兩位的平均 agreement; +3. instance 差值 `d(s,j) = align_AI(s,j) − align_H(s,j) + ε`。 + +對每位 j 做 one-sided paired test(exact sign test 為主、Wilcoxon 敏感度分析), +H0: `d ≤ 0`。AI「勝過」j 若 p < 0.05。**winning rate ρ = 勝過的 human 比例; +通過準則 ρ ≥ 0.5**(3 位中至少 2 位)。三個 AI annotators 各自報告,主結論用 +表現中位的 annotator(避免挑最好的 cherry-pick);consensus 版另列參考。 + +### 5.2 凍結參數 + +- **Agreement 函數(primary 兩軸)**:same-group pairwise Jaccard、parent-child + edge Jaccard——與 log §22.2 human 基線同定義同實作(`human_tree_metrics.py` + 的 agreement 路徑)。semantic-type agreement 為 secondary。 + **free-text exact role 不作 primary**(degenerate lower bound,log §25.1)。 +- **ε(cost-advantage margin)**:primary ε=0.2(沿 alt-test 原文),敏感度分析 + ε=0.1 與 ε=0 全部報告。若只有 ε=0.2 通過而 ε=0 明顯不通過,論文措辭必須寫 + 「在成本優勢邊際下不劣於」而非「達到人類水準」。 +- **uncertain 處理**:任一方標 uncertain 的 asset 排除於該 pair 的 primary + agreement(沿 human 協定),排除量逐批報告。 +- **通過定義**:same-group 與 parent-child **兩軸都** ρ ≥ 0.5 才算 Gate-R2 通過; + semantic-type 只報告不設門檻。 + +--- + +## 6. Downstream stability gate + +以 `ai_oracle_trees` 取代 human oracle,對**凍結的** T0/T2/T3 layouts( +`a3-rel100-t0/t2/t3-01`,不重生成)決定性重算,與 §25.2 bundle 逐項對照: + +1. **方向**:SGC/TLC/PCA 三軸 arm means 維持 `T0 < T2 < T3`。 +2. **統計結論**:§25.2 Holm 後 8 個顯著比較,在 AI reference 下重跑同一 + 9 檢定 Holm 程序,**8 個全部同方向且 Holm p < 0.05**; + T3vsT2 PCA 維持「未偵測到差異」或變為同方向顯著(不得反向顯著)。 +3. **Tree accuracy 一致性(secondary,僅報告)**:T2 predicted tree 對 AI reference + 的 same-group/edge F1,與對 human reference 的 per-sample 值之 Spearman 相關; + 以及 AI-ref 與 human-ref 的 per-sample SGC/TLC/PCA 相關。無硬門檻, + 低相關(<0.5)須在論文 discussion 揭露。 + +1+2 全過=**Gate-R3 通過**。任何一項不過即 gate 失敗:AI reference 降級為 +secondary analysis,不得宣稱可取代人工。 + +**Gate 總表**: + +| Gate | 內容 | 通過準則 | 成本 | +| --- | --- | --- | --- | +| R1(diagnostic) | AI–AI inter-annotator agreement(same-group/edge Jaccard) | 無門檻,與 human 0.571/0.357 並列報告 | $0 | +| R2(primary) | Alternative Annotator Test §5 | 兩 primary 軸 ρ≥0.5(ε=0.2) | $0(用已買標註) | +| R3(primary) | Downstream stability §6 | 方向+8/9 Holm 結論穩定 | $0 | + +**論文措辭規則**:R2+R3 全過 → 可寫「AI-generated annotations 經既有 +multi-human calibration set 驗證,downstream conclusions stable」。任一未過 → +AI reference 僅 secondary/scaling analysis。**無論結果如何**,不得稱現有 T3 +(human-tree 生成)為 human-free;要宣稱 oracle arm 去人工化必須另跑 +`T3-AI` 新 generation run(本協定範圍外,另行提案)。 + +--- + +## 7. MLLM-panel preference protocol(獨立階段,可延後) + +替代已永久跳過的 human preference study(log §23.7 裁示 1);結果一律稱 +**MLLM-panel preference**,不得寫成 human preference。 + +- **配對**:50 pairs=25 Relation(T2 vs T0,凍結 render)+ 25 General + (final B0 vs designer GT),sample 以凍結 seed 自各自 N=100 抽取、抽樣先於 + 任何 judge call。 +- **Panel**:3 個獨立 MLLM judges(優先不同家族、且與 §2 annotators 及生成 + pipeline 的 `gpt-5.4-mini` 不同 snapshot;至少不得與被評 arm 的生成模型相同)。 +- **Blind A/B +位置交換**:每 pair 每 judge 問兩次(A/B 與 B/A),無方法名稱、 + 無 arm 標籤;同 judge 兩次矛盾記為 position-sensitive tie。 +- **三問**:overall preference、readability、semantic grouping clarity + (對齊 new_plam §7.4)。 +- **報告**:逐 judge win/tie/loss + exact sign test + bootstrap CI; + 另報 judge 間一致性(pairwise agreement/Fleiss κ)。不得只報 pooled 結果。 + +--- + +## 8. 預計新增/修改檔案(實作角色範圍,全部離線可測) + +新增: + +| 檔案 | 用途 | +| --- | --- | +| `metagpt/ext/agentlayout/tools/annotation_ai.py` | AiAnnotation schema、packet 白名單載入、黑名單 fail-loud guard、AI annotator runner(付費 gate 沿 `a3_paid_budget.py`) | +| `metagpt/ext/agentlayout/tools/ai_consensus.py` | §3.1 deterministic consensus+escalation 判定+§3.2 adjudicator runner+finalizer | +| `metagpt/ext/agentlayout/evaluation/a3_alt_test.py` | §5 alt-test(複用 `human_tree_metrics.py` agreement 函數) | +| `layout_agent/evaluate_a3_alt_test.py` | alt-test CLI(read-only、write-once bundle) | +| `tests/metagpt/ext/agentlayout/test_annotation_ai.py`、`test_ai_consensus.py`、`test_a3_alt_test.py` | 離線測試(§9) | + +修改(最小侵入): + +| 檔案 | 變更 | +| --- | --- | +| `layout_agent/run_a3.py` | 新增 `prepare-ai-annotation`/`run-ai-annotation`/`finalize-ai-adjudication` 子命令(重用既有 preflight/budget/write-once 骨架) | +| `metagpt/ext/agentlayout/tools/human_tree_metrics.py` | 若 agreement 函數為私有則抽出可重用介面(行為不變,既有 24+ tests 全綠為前提) | +| `layout_agent/evaluate_a3_tree_accuracy.py`、`analyze_a3_relation_stats.py` | 新增 `--oracle-trees-from` 指向 ai_oracle_trees 的參數(預設不變) | + +**不動**:`annotation.py`、`adjudication.py` 的 human 路徑行為;`layout_tree_v3.py`; +所有既有 run/evaluation artifacts。 + +## 9. 離線測試計畫(zero-cost,實作完成的驗收條件) + +1. AiAnnotation schema round-trip 與 provenance 必填欄位驗證。 +2. 黑名單 guard:packet 目錄含 `annotation_hui.json`/oracle tree/R3 geometry + 時 runner 拒絕啟動(fail-loud)。 +3. Consensus 決定性:同輸入雙跑 byte-identical;眾數/majority-pair 傳遞閉合/ + 樹約束/uncertain 各規則的正反 fixture。 +4. Escalation 判定:三方互異 type、非傳遞 same-group 圖、cycle edge 各觸發。 +5. alt-test 數學:手工可驗的合成 fixture(已知 align 值 → 已知 ρ 與 p); + ε 掃描單調性。 +6. `--oracle-trees-from` 切換不影響 human 預設路徑(既有 753 tests 全綠)。 +7. Write-once:對已存在 bundle 重跑必須 fail、不覆蓋。 +8. 預算 gate:無 `--allow-api-calls` 時 preflight 印 budget 後 exit 2、零網路呼叫。 + +--- + +## 10. 精確預算提案(每 stage 各自授權,未批准前一律 0 call) + +估算依據:packet 平均 1.4KB/max 3.2KB;contact sheets 1–2 張/sample(n80 實測 +89 張/80 samples);human 標註輸出平均 4.1KB/max 11.5KB(≈1,100/3,000 tokens); +影像以 2,500 tokens/張、指示+schema 以 2,000 tokens 計。 + +| Stage | 內容 | Calls(nominal→cap) | Input cap | Output cap | USD 估算→cap | +| --- | --- | --- | ---: | ---: | --- | +| S1 | 3 annotators × 100 samples | 300 → **390**(1.3× retry) | **3.2M** | **0.9M** | ~$2.5–6 → **$8** | +| S2 | blind escalation adjudicator(估 ≤50 samples) | 50 → **65** | **0.75M** | **0.25M** | ~$0.6–1.5 → **$2** | +| S3 | consensus/finalize/R1 | 0 | 0 | 0 | $0 | +| S4 | alt-test(R2) | 0 | 0 | 0 | $0 | +| S5 | downstream 重算(R3) | 0 | 0 | 0 | $0 | +| S6 | MLLM preference panel(§7,可延後) | 300 → **330**(50×3×2+probe/retry) | **2.1M** | **0.2M** | ~$2.5–4 → **$5** | + +- USD 估算基於 gpt-5.4-mini-class 有效混合單價(§23.9/§24.5 ledger ≈US$1.2–1.35/M + blended);跨家族 annotators 單價可能 2–5×,**USD cap 於 provider 凍結時逐 + provider 換算後重新提交確認**。 +- 全案付費上限提案:**S1+S2 ≤ US$10;S6 另案 ≤ US$5**。任一 cap(calls/input/ + output/USD)觸頂即中止、保留 write-once 進度,不自動追加。 + +## 11. 待使用者批准事項(實作前必須逐項定案) + +1. **三個 annotator providers/model snapshots**(是否跨家族;若否,接受 + single-model ensemble 降級命名)。 +2. **第四 adjudicator model**。 +3. **是否允許將 Crello contact sheets 上傳至 OpenAI 以外的供應商** + (Anthropic/Google 等;資料授權與隱私由使用者判斷)。 +4. frozen prompt 文本(實作階段產出草稿後、付費前送批)。 +5. §10 各 stage 預算與啟動順序(建議:S1→S2→S3–S5 出 gate 結果後,再決定 S6)。 +6. alt-test ε 主值 0.2 是否接受(保守替代:0.1 為主值)。 + +--- + +## 12. 建議執行順序 + +```text +使用者批准 §11 → 實作角色(§8 檔案、§9 測試全綠、零付費) +→ 方法審核角色(bias/leakage/統計 audit) +→ 使用者授權 S1+S2 預算 → AI annotation run(write-once) +→ S3–S5 zero-cost gates(R1/R2/R3) +→ gate 結果回報 → 使用者決定 S6 與論文措辭層級 +``` diff --git a/layout_agent/ANNOTATION_PROVENANCE_CORRECTION.md b/layout_agent/ANNOTATION_PROVENANCE_CORRECTION.md new file mode 100644 index 000000000..6137de8a6 --- /dev/null +++ b/layout_agent/ANNOTATION_PROVENANCE_CORRECTION.md @@ -0,0 +1,130 @@ +# Annotation Provenance 更正(authoritative correction sidecar) + +> 日期:2026-07-12 +> 揭露者:使用者本人(nina16448),於本日 session 口述 +> 效力:本檔與 `A3_EXPERIMENT_LOG.md` §27 為 annotation provenance 的**唯一正確版本**, +> 覆蓋所有既有紀錄(log §16–§22 的敘述、oracle tree 檔內的 `source="human_oracle"` +> 字串、`CODEX_HANDOFF.md` 舊版 §3.2)。凍結 artifacts 本身位元組不動 +> (保持 finalization SHA-256 鏈完整);更正以本 sidecar 為準。 + +--- + +## 1. 更正內容 + +**專案中不存在任何人類標註。** 先前記錄為「人工/三人標註」的全部 reference tree +標註與裁決,實際均為使用者在**各自全新的 chat session** 中操作 AI 模型產生, +指示內容為 `a3-gateab-pilot-n20-01/ANNOTATION_GUIDE.md`,輸入僅有 +annotation packet(brief、asset IDs、文字內容)與 asset contact sheets +(依 guide 設計,無設計師成品圖、無座標、無背景圖;此點為操作者自述, +無機器層級 log 可稽核)。 + +### 代號 → 實際模型對照表(2026-07-12 使用者二次確認後定稿) + +| 代號 | n80(`a3-relation-annot-n80-01`) | pilot(`a3-gateab-pilot-n20-01`) | +| --- | --- | --- | +| `hui` | GPT-5.6 sol | GPT-5.6 sol | +| `neiji` | Claude Fable 5 | Claude Fable 5 | +| `nina` | Gemini 3.5 Flash | —(raw 標註者為 T/hui/neiji) | +| `T` | — | GPT-5.6 sol | +| 裁決(pilot `annotation_nina.json` 全量重標;n80 逐分歧裁決) | GPT-5.6 sol | GPT-5.6 sol | + +**pilot 組成警告**:pilot 三個 raw 標註者中兩個(T、hui)為**同一模型** +GPT-5.6 sol,第三個為 Fable 5,且 oracle=GPT-5.6 sol 全量重標——pilot 20 棵 +oracle trees 實質上是 **GPT-5.6 sol 單模型 reference**(雙 GPT 票+GPT 裁決)。 +「跨三家族多模型 consensus」的描述**只適用 n80 的 80 棵**;引用 pilot 20 或 +合併後的 100 棵時必須分開陳述兩批組成。各 session 的 sampling 參數仍未記錄。 + +### 既有紀錄中因此失效的陳述 + +1. log §16–§22 中所有「人工標註」「三位標註者」「human adjudication」 + 「使用者(adjudicator nina)完整獨立重新標註」等**把標註主體描述為人類**的 + 文字——實際主體是 AI 模型,人類角色是操作者(開 session、貼入 packet、 + 轉錄輸出、修正 schema 錯誤)。 +2. 120 棵 oracle trees(pilot 20+n80 80,合併於 `relation100_oracle_trees/` + 100 棵)檔內 `source="human_oracle"` 字串——為歷史誤標。本檔定義正確語意: + `human_oracle`(legacy 字串)實際 ≡ **`ai_reference.multi-model.v0`** + (組成依上表:n80=跨三家族+GPT 裁決;pilot=GPT-5.6 sol 主導雙家族; + 均為人類操作)。 +3. `CODEX_HANDOFF.md` §3.2「human reference trees 100/100」與 + `AI_REFERENCE_PROTOCOL.md` §1「封存 human calibration set」的前提。 + +## 2. 不受影響的部分 + +- **所有實驗數值不變、不重跑**:T0/T2/T3 generation、SGC/TLC/PCA(§23.3、§25.2)、 + tree accuracy(§25.1)、Gate A/B(§21)、SEGA/PKU 與 COLE 兩條評測線 + (§23.8/23.9/§24,均不依賴 reference tree 的來源性質)。 +- 所有 write-once artifacts、hash、finalization records 位元組不動。 +- 標註流程的盲測設計本身(不看 GT、不看彼此、獨立 session)仍成立。 + +## 3. 重新解讀規則(論文與後續引用一律遵守) + +1. **T3 臂**:由「human tree oracle 上限」改稱 + 「**跨家族多模型 consensus reference tree 注入**」。`T0 < T2 < T3` 梯度 + (§23.3、§25.2 Holm 8/9 顯著)仍為真實結果,新敘事為: + 單模型即時預測的 tree(T2, gpt-5.4-mini 單次)<三個跨家族模型獨立標註 + +裁決形成的 consensus tree(T3)——**tree 品質(ensemble/consensus)帶來 + 顯著語意組織增益**。 +2. **標註者間一致性**(n80:same-group Jaccard 0.571、edge Jaccard 0.357、 + role-type 0.658):由「三人 agreement」改稱 **inter-model agreement + (GPT-5.6 sol × Fable 5 × Gemini)**。這是 reference 可信度的主要證據。 +3. **uncertain 分布**(nina 0、hui 23、neiji 527):屬**模型別行為差異** + (Gemini 從不標 uncertain、Fable 50.4% uncertain),論文引用時不得描述為 + 標註者個性。 +4. **Alternative Annotator Test 永久取消**:無人類標註可作基準, + `AI_REFERENCE_PROTOCOL.md` §5 作廢。論文**不得**宣稱 + 「AI 標註經人類校準驗證」或任何 human-annotated/human-validated 字眼。 +5. 建議論文措辭(英文): + *"reference layout trees were produced by three independent cross-family + MLLM annotators (GPT-5.6 sol, Claude Fable 5, Gemini), each operating in an + isolated session on identical annotation packets (brief, asset IDs, text + content, contact sheets; no designer ground truth or coordinates), with + disagreements consolidated by a GPT-based adjudication pass; the pipeline + was operated and curated by the authors."* + +## 4. 必須揭露的 limitations + +1. **裁決模型不獨立**:裁決由 GPT 執行,與標註者之一(GPT-5.6 sol)同家族, + 存在 self-preference bias 風險;裁決傾向哪一票未做統計(可事後補算: + 裁決結果與三票的逐項吻合率,zero-cost)。 +2. **Provenance 不完整**:各 session 的確切 prompt 全文、模型 snapshot 版號、 + sampling 參數未存檔;指示以 ANNOTATION_GUIDE.md 為準之陳述不可機器稽核。 +3. **輸入合規為操作者自述**:模型只見 packet+contact sheet 一事無 API log 佐證。 +4. **reference 非人類金標**:所有以此 reference 計算的指標(SGC/TLC/PCA、 + tree accuracy)衡量的是「與跨家族模型共識的一致性」,不是「與人類語意 + 判斷的一致性」。 + +## 5. 後續動作 + +- [x] 本 sidecar 建立;log §27 更正條目;handoff §3.2/§3.4/§5 改寫。 +- [x] 使用者補充對照表(見 §1 定稿表;Gemini=3.5 Flash、T/裁決=GPT-5.6 sol)。 +- [x] 裁決採票統計已執行(log §28/A3-15B),結果見 §6——結論比預期嚴重。 +- [ ] 論文寫作角色依 §3(經 §6 修正後)措辭規則全面替換 human 字眼。 + +## 6. 裁決採票分析結果(2026-07-12,A3-15B;覆蓋 §3 的部分解讀) + +`analyze_a3_adjudication_bias.py`(read-only、$0)對 n80 全部 contested +decision units(semantic_type 485、parent_id 710、same-group pairs 2,130) +的結果:裁決值與 hui(GPT-5.6 sol)一致率 **99.0%/99.7%/99.8%**; +hui 落單時裁決採 hui **97.5%/100%/99.7%**,neiji/nina 落單被採 **≈0%**。 +結構比對:**75/80 份 `annotation_adjudicated.json` 與 `annotation_hui.json` +全欄位相同**,餘 5 份各差 1–2 assets。 + +**因此**: + +1. 「多模型 consensus reference」的解讀(§3 第 1 點原文)**不成立**。 + 全部 100 棵 reference trees 的有效來源=**GPT-5.6 sol 單模型** + (pilot oracle=GPT-5.6 sol 全量重標;n80 裁決≈逐字採用 GPT-5.6 sol 標註)。 +2. 論文措辭改為:*"reference layout trees were annotated by GPT-5.6 sol; + annotations from two additional models (Claude Fable 5, Gemini 3.5 Flash) + were collected and used for inter-model agreement analysis + (same-group Jaccard 0.571 / edge Jaccard 0.357 / type 0.658), but the + final reference adopted the GPT-5.6 sol annotations nearly verbatim + (99.0–99.8% of contested decisions)."* 不得使用 consensus/multi-model + reference/human 任一說法描述最終 oracle。 +3. T3 敘事=「**較強模型(GPT-5.6 sol)離線標註的 tree** 注入」vs T2= + gpt-5.4-mini 即時預測;`T0/{a,b}/final.png` + `output/crello_/ground_truth_preview.jpg`(三者皆已確認 100/100 存在) +- 寫 `output2/step92_cole_h2h/per_sample/.json`(可續跑的工作單元)+ `aggregate.{json,md}` + +**統計(順帶補上 Tier-1 的 error bar 缺口,零 scipy 依賴)**: +- `_sign_test_p`:非平手配對的**精確**二項檢定(`math.comb`,雙尾) +- `_bootstrap_ci`:配對 delta 均值的 percentile bootstrap,10,000 次、`seed=20260709` 寫死 → 可重現 +- 逐軸(SDL/SQL/STV/SGI/SIO)與 Smean4/Smean5 各報 Δ mean [95% CI]、W/T/L、sign p +- `--arms a,b,gt` 時另出 B−A 配對比較,回答「深審棧到底有沒有幫助」 + +**安全設計(避免重蹈 Step 91 的 token 記帳踩雷)**: +- `--dry-run`:印計畫+成本,**零 API 呼叫**(實測 `samples=100 arms=['a','gt'] calls=200 cost=$2.50`) +- pre-flight 檢查所有圖檔存在才開始花錢;缺圖記錄不評分 +- `--skip-existing` 續跑;`--aggregate-only` 純重算報表、零呼叫 +- judge parse 失敗 → 記 `parse_failed` 並排除該配對,**絕不以 0 分充數** + +**驗證(合成資料,零 API)**:`sign(5,5)=1.0`、`sign(10,0)=0.00195`、`sign(0,0)=None`;常數 delta 的 bootstrap CI 塌縮到該常數;同 seed 兩次結果 bit-identical;`_paired_block` 端到端算出 `pct_of_gt_smean4=87.1`、`STV Δ=−2.0`(合成 A/GT 分數手算相符)。 + +**執行結果(2026-07-09,N=100 全數完成、200 calls、$2.50、零 parse 失敗)**: + +| | Smean4 | Smean5 | Δ Smean4 [95% CI] | W/T/L | sign p | +|---|---|---|---|---|---| +| A 基線 | 7.120 | 7.256 | **−0.680 [−0.853, −0.512]** | 11/25/64 | <0.001 | +| designer GT | 7.800 | 7.866 | — | — | — | + +→ **A 基線 = 91.3% of designer Smean4**(Smean5 92.2%)。 + +逐軸(agent / GT / Δ mean / W-T-L / sign p): + +| axis | agent | GT | Δ [95% CI] | W/T/L | p | +|---|---|---|---|---|---| +| SDL | 7.25 | 8.03 | −0.780 [−0.970, −0.600] | **0/48/52** | <0.001 | +| SQL | 7.93 | 8.64 | −0.710 [−0.940, −0.490] | 7/46/47 | <0.001 | +| STV | 6.68 | 7.67 | **−0.990 [−1.220, −0.760]**(最大 gap) | 4/37/59 | <0.001 | +| SGI | 7.80 | 8.13 | −0.330 [−0.500, −0.170] | 11/56/33 | 0.001 | +| SIO | 6.62 | 6.86 | −0.240 [−0.400, −0.070] | 14/53/33 | 0.008 | + +**發現一(convergent validity,方法學價值)**:兩個獨立評測管道給出幾乎同一個勝場數——Step 89 blind pairwise overall `cand 12 / tie 7 / gt 81` vs 本步 COLE Smean4 `11/25/64`。比較式與絕對打分兩種協定收斂,**大幅削弱「結論是 judge 協定產物」的質疑**。 + +**發現二(SDL 零勝,已驗非 bug)**:design_layout 軸 agent **100 樣本零勝**(48 平 52 負)。原始分數分布:GT SDL 幾乎是常數 8(79/100 給 8、12 個 9、9 個 7),agent 散佈 3–9(49 個 8、32 個 7、尾巴到 3)。agent 兩次拿到 9 時 GT 也是 9 → delta=0。**judge 對 designer GT 的 SDL 給分近乎飽和**,agent 只能追平不能超越。這是 Generator-bounded 在絕對分軸上的新形式證據,且與 STV(typography)最大 gap −0.99 一致。 + +**發現三(協定切換的真實增益)**:text-as-image 下 91.3% vs Step 70 舊協定 86.6%。**兩者不可同表**(renderer 版本+輸入協定雙變因),但方向支持 Step 54/55/56 的 render-channel 假說:把字型/尺寸 fidelity 交還設計師素材後,殘餘 gap 縮小約 4.7 pts,剩下的才是純 placement 品質差距。 + +**B 臂補跑(同日)**:先把 resume 粒度從「樣本」降到「臂」(`_existing_arms()` 只重用 `status==ok` 的臂,`parse_failed` 會重試),使 `--arms a,b,gt --skip-existing` 只需 **98 calls / $1.23** 而非 300 calls / $3.75。驗證:重跑後 A 臂數字 bit-identical(7.120 / 7.800 / 91.3%)=a、gt 確實零重評。pre-flight 抓到 2 樣本缺 `b/final.png`(=Step 89 已記錄的 B 臂 1 error+1 crash),記錄後排除 → B 臂 n=98。 + +| | Smean4 | Δ vs GT [95% CI] | W/T/L | sign p | +|---|---|---|---|---| +| A 基線 (n=100) | 7.120 | −0.680 [−0.853, −0.512] | 11/25/64 | <0.001 | +| B 深審 (n=98) | 6.997 | −0.798 [−0.997, −0.620] | 6/22/70 | <0.001 | + +B = 89.8% of designer,逐軸全面劣於 A(SDL −0.888、SQL −0.888、STV −1.051、SIO −0.367),SDL 亦零勝(0/43/55)。 + +**B − A 配對(n=98)**:Δ Smean4 = **−0.145 [−0.316, +0.026]**;B 較好 26 / 平 27 / **A 較好 45,sign p=0.032**。 + +**推論(本步最大收穫)**:Step 89 的 blind pairwise 判 B vs A 為「方向相反但 n.s.」(B 8 / A 13)。本步以**獨立第二管道**(COLE 絕對打分)在同批樣本得**同方向且顯著**(A 45 / B 26,p=0.032)。深審棧 net negative 的結論因此跨協定成立,是 Generator-bounded 反證鏈**唯一達顯著**的負向效果。 + +**誠實註記(避免超譯)**:sign test 顯著但 mean Δ 的 bootstrap CI `[−0.316, +0.026]` 跨 0——兩者衡量不同量。正確陳述=「**B 更常輸給 A(顯著),但平均劣勢幅度小(~0.15 分、CI 含 0)**」,**不可**寫成「B 顯著拉低 Smean」。歸因見 Step 89 §11.3 結果四(後期輪次單元素搬移拆散對齊群)。 + +**證據檔**:`output2/step92_cole_h2h/{aggregate.json, aggregate.md, per_sample/.json}`。總計 298 calls / $3.73。 + +--- + +## Step 93(2026-07-09):逐輪增益曲線正式化(E2,零新生成) + +**動機**:論文 5.8 引用的 +0.45/−0.19/−0.03/−0.12 出自 result.md §11.4 行文,從未以獨立表格+樣本數+顯著性落盤。Step 92 把 B 軸主表遷到 Step 89 同批樣本後,這條曲線已與 headline 同協定,唯一缺口是出處正式化。 + +**實作**:`output2/step93_perround_curve.py`(純 stdlib)讀 `step89_n100//{a,b}/rounds/round*.json`(pipeline 內建 JudgeAesthetic 5 軸 total,run 當下落盤),零 API 呼叫: +- `transition_stats`:Δ(k)=同樣本 `total(k)−total(k−1)` 配對;輸出 n/mean/median/improved-tied-worsened/精確 sign p,並內建 `PUBLISHED` 對照欄——與 §11.4 已發布值差 >0.005 直接印 MISMATCH。 +- `round0_cross_arm`:A.R0−B.R0 配對(§11.4 口述的 best-of-3 +1.6 正式量測)。 +- `per_round_means`:每輪描述性平均(total 進 md;5 軸僅進 JSON,遵守 Finding 2 紀律)。 + +**結果(100 樣本全數有 trace)**: +| arm | 輪 | n | mean Δ | W/T/L | sign p | +|---|---|---|---|---|---| +| A | R0→R1 | 100 | **+0.440** | 30/54/16 | 0.054 | +| A | R1→R2 | 94 | +0.138 | 21/50/23 | 0.88 | +| B | R0→R1 | 99 | +0.455 | 29/47/23 | 0.49 | +| B | R1→R2 | 95 | −0.189 | 16/57/22 | 0.42 | +| B | R2→R3 | 93 | −0.032 | 16/55/22 | 0.42 | +| B | R3→R4 | 91 | −0.121 | 19/54/18 | 1.00 | + +R0 跨臂:**A−B = +1.590(median +1.0;A 勝 84/平 9/B 勝 7;sign p=7.1e-18)**。 + +**對帳**:B 臂四值與 §11.4 全中;唯一差異=§11.4 把兩臂 R1 合寫「均 +0.45」,精確值 A +0.440 / B +0.455——論文 5.8 應引本表精確值。 + +**新發現(5.8 措辭紀律)**:**沒有任何單一輪 transition 顯著**(最佳 A R1 p=0.054,其餘 ≥0.42);唯一強顯著的是 R0 的 best-of-3 效果。可辯護的主張排序:(1) best-of-3 選擇承載絕大多數增益(顯著);(2) 第一輪修復是小幅正向 drift(+0.44,邊緣);(3) B 後期輪次負向趨勢為**描述性**陳述、單輪皆 n.s.。「R3 起淨害」不可寫成推論性結論。 + +**證據檔**:`output2/step93_perround/perround.{json,md}`。 + +--- + +## Step 94(2026-07-09):Step 71 Ali 65/100 精確 sign test 正式化(E3,零 API) + +**實作**:`output2/step94_signtest.py` 讀 `output/b1_root_cause_n100.json`(Step 71 per-sample 勝負計數,先 assert W+L+T=n_total),對三軸各算兩種精確二項雙尾 p(`math.comb`,與 Step 92/93 同慣例):decisive-only(排除 ties)與保守版(ties 算進 n=100)。 + +**結果**: +| axis | W/L/T | decisive p | 保守 p | +|---|---|---|---| +| alignment | 65/3/32 | **3.56e-16** | **3.52e-03** | +| readability | 21/41/38 | 1.51e-02(GT 方向顯著) | 1.00 | +| occlusion | 45/55/0 | 0.368(n.s.) | 0.368 | + +**口試一行答案**:Ali 65 勝 3 敗——即使把全部 32 個 tie 都算成不利(保守版 p=3.5e-03)仍遠超隨機;排除 ties 的精確雙尾 p=3.6e-16。N=100 對這條 claim 綽綽有餘。論文引保守版、decisive 版放註腳(依使用者指示)。**Caveat 照舊**:sign test 只講勝場數、不涉 mean margin,Step 71 的 3 個 banner outlier 撐 aggregate 的問題不因此消失;readability 是真實系統性落後(decisive 顯著、GT 方向)。 + +**證據檔**:`output2/step94_signtest/signtest.{json,md}`。 + +--- + +## Step 95(2026-07-09):跨協定一致性聲明表(E4,純整理零實驗) + +**動機**:E1(Step 92)後論文同時存在舊協定(N=20/100/1,897+N=178)與新協定(Step 89/92 text-as-image N=100)兩批數字,需要附錄級的「數字→run→協定→renderer」溯源表杜絕混用。 + +**產出**:`output2/step95_protocol_map/PROTOCOL_MAP.md`—— +- 版本代號:renderer R1(初版)/R2(Step 55 升級)/R3(text-as-image);協定 GEO/WJ4/H2H5/PAIR/PIPE 五類。 +- 主表 17 列:Step 20/21b/22/23/29/70/71/73-74/75/89/90/92/93/94 每個論文數字的 N、協定、renderer、證據檔、論文引用節(引用節欄需在 Overleaf 逐一核對,已標明)。 +- 禁止同表清單 6 條:91.3% vs 86.6%(雙變因)、WJ4 vs H2H5(軸數+單邊/成對)、PIPE total vs Smean(量綱)、GEO 跨 renderer 可比但樣本集不同、12/100 不可宣稱總體勝、逐輪曲線單輪皆 n.s.(Step 93 新增紀律)。 +- 遺留事項:86.6%→91.3% 全域替換時「跨規模穩定性」敘事需改寫——91.3% 只有 N=100 R3 單一規模,建議行文拆成 WJ4 跨規模穩定(64.8%→65.8%)與 H2H5 R3 91.3%(N=100)兩句。 + +*最後更新:2026/07/09(Step 93–95 完成:E2 逐輪曲線正式落盤——B 臂四值與 §11.4 全中、A R1 精確值 +0.440、單輪皆 n.s. 而 R0 best-of-3 +1.59 p=7e-18 才是顯著效果;E3 Ali sign test 保守 p=3.5e-03 / decisive p=3.6e-16;E4 跨協定溯源表 17 列+禁止同表 6 條)* + +--- + +## Step 96(E2')— legacy 管線逐輪配對增益曲線(零 API) + +**動機**:Step 93 的曲線量在 step89/text-as-image/R3 renderer 上。論文 5.8 節描述的是 **legacy 管線**(raw-asset 輸入 + refinement loop、R2 renderer),引 step89 數字=引錯管線的證據。使用者指示 5.8 改引本表。 + +**新增**:`layout_agent/output2/step96_legacy_perround_curve.py`(純 stdlib、零 API、無人 import)。編號跳 96 是因平行 session 已把 Step 95 用於 `step95_protocol_map/`;撞號當下改號,未觸碰對方任何檔案。 + +**方法**:讀 `full_result//trace/per_round_judge.json`。每輪 total =該輪 `best_candidate_id` 對應候選的 5 軸 PIPE total(5–50,與 Step 93 同量綱、同軸)。抽查五輪確認 `best_candidate_id` 恆為 argmax,故此值等同「pipeline 實際帶往下一輪的分數」;id 缺席時退回 argmax 並計入 `fallback_to_argmax`(本次 **0 次**)。統計沿用 Step 92/93/94 慣例(`math.comb` 精確雙尾 sign test),另附 95% percentile bootstrap CI(10,000 次、seed=20260709)。 + +**結果(n=161 個有 judge trace 的樣本)**: + +| transition | n pairs | mean Δ | 95% CI | W/T/L | sign p | +|---|---|---|---|---|---| +| R0→R1 | 160 | **−0.075** | [−0.475, +0.325] | 49/57/54 | 0.694 | +| R1→R2 | 142 | +0.169 | [−0.275, +0.606] | 37/64/41 | 0.734 | +| R2→R3 | 133 | +0.361 | [−0.098, +0.827] | 51/46/36 | 0.133 | +| R3→R4 | 126 | +0.151 | [−0.333, +0.635] | 48/45/33 | 0.119 | + +mean total 五輪持平:33.553 / 33.487 / 33.127 / 33.383 / 33.317。 + +**核心發現(影響論文論點,非例行補數字)**: +1. **legacy 的 R0→R1 是 −0.075(p=0.694),不是 +0.45。**「價值集中在第一輪」是 **step89 專屬現象**,在 legacy 管線上不成立。§11.4「可寫」第 2 條(best-of-3+一輪修復+停)若隨 5.8 改引本表,**必須同步撤下或明確改綁 step89**。 +2. 四個 transition 全部 n.s.、四條 CI 全部跨 0 → **legacy refinement loop 逐輪零可測增益**,與 Step 20b/31/32/74 的 net-negative 結論同向且互相加強。 +3. 合併 Step 93 看:「逐輪修復無顯著增益」是**跨兩個管線、兩個協定**的一致發現(step89 最佳 p=0.054、legacy 最佳 p=0.119)。 + +**不可寫**:R2→R3 的 +0.361 不可解讀為「第三輪最有價值」——p=0.133、CI 跨 0,且 n_pairs 已因存活者偏誤自 160 降至 133。 + +**交叉驗證(讀取邏輯正確性)**:本步算出的 n_pairs `160/142/133/126` 與 `full_result/_aggregate/per_round_convergence.md` 的 `rounds_observed` **逐格吻合**——該檔由另一支程式於數月前獨立產生。 + +**樣本數誠實註記**:179 個樣本目錄 → 1 個無 `per_round_judge.json`、**17 個 trace 為空 list**(pipeline 未產出任何 judge 判決=crash/QC catastrophic)→ 可算增益者 **161**。論文若寫 N=178 須附此差額來源。n_pairs 隨輪次遞減是存活者偏誤(在 R(k−1) 已 accept 的樣本停在該輪),非缺資料。 + +**證據檔**:`output2/step96_legacy_perround/{curve.json, curve.md}`(curve.json 內含 provenance 區塊)。 + +*最後更新:2026/07/09(Step 96 完成:legacy 逐輪曲線 R0→R1 −0.075、四輪全 n.s.;「價值集中第一輪」證實為 step89 專屬;n_pairs 與既有 aggregate 逐格交叉驗證)* + +--- + +## Step 97:Crello-RelationSemantic-rich N=100 診斷子集(2026/07/10) + +**目的**:為 Layout Tree(Full Tree vs No Tree)ablation 建一個「生成前、模型盲」的診斷子集;目標論證是劑量反應——樣本語意關係越複雜,Tree 相對 No Tree 的增益越大——而非單一平均數。selection criterion 與任何模型輸出無關,非 cherry-picking。 + +**三階段協定**(`output2/step97_relation_subset.py`,--stage 1/2/3): +1. **Stage 1 metadata 初篩**(離線):1,902 個本地快照 → **800 進池**。門檻:fg(`kind != background_candidate`)≥5、非空且互異文字 ≥3、`kind=="image"` 語意素材 ≥1(純 underlay 形狀視為裝飾不算)。淘汰漏斗:fg<5=238、text<3=383、互異 text<3=19、無 image=462。 +2. **Stage 2 雙標註者**(live,gpt-5.4-mini):每樣本兩個去相關 LLM pass(元素順序隨機化+指示改寫),只看 title+canvas 尺寸+文字原文+逐層素材圖(512px);**不給任何幾何、不用 SEGA 半成品海報**(其照片在 GT 位置會洩漏 layout)。全池 seed=97 隨機順序跑到 keeps≥130 停(順序隨機故提前停止不引入偏差)。結果:標註 150、**共識 keeps 135**(keep 率 90%)、解析失敗 1。 +3. **Stage 3 共識+抽樣**:keep 需兩位皆判「≥2 groups(含 implicit singletons)且 ≥1 組 ≥2 元素」。keep 一致率 94.6%、**Cohen's κ=0.572**(註:兩位 keep 基率皆 ~93%,prevalence 效應壓低 κ 上限);tier 一致率 67.4%。keep 池 tier:medium=68、rich=67。按共識 tier 比例分層(seed=97)抽 **N=100:medium=50/rich=50**,與 eval100 重疊 6。 + +**Tier 定義**(共識取兩位較低者):Simple=全 singleton 或單一 group 蓋全部;Medium=恰 1 個 non-trivial group(≥2 元素);Rich=≥2 non-trivial groups 或 depth≥2(child group ≥2 元素)。 + +**誠實揭露**:「兩位標註者」是同一 config 模型的兩個去相關 pass,非兩位人類;`stage2_annotations.jsonl` 保留完整 group 結構,人工重標可直接替換(同 Step 90 `--tree-dir` 可插拔精神)。本地快照覆蓋 1,902/1,971(96.5%)test split,缺的 69 個不在抽樣母體。 + +**證據檔**:`output2/step97_relation_subset/{stage1_pool.json, stage2_annotations.jsonl, relation100_ids.json, stage3_report.md, RUN_METADATA.json}`。 + +**下一步**:以 `relation100_ids.json` 跑 Full Tree vs No Tree A/B,按 medium/rich 分層報增益差。 + +*最後更新:2026/07/10(Step 97 完成:模型盲三階段篩選;800 池→135 keeps→N=100(medium 50/rich 50);κ=0.572;子集就緒待 Tree ablation)* + +--- + +## Step 98:A3 pipeline 逐階段 walkthrough 文件(論文用,2026/07/24) + +**目的**:論文需要一個「單一樣本走完整條 A3 pipeline、每階段輸出逐字呈現」的英文 walkthrough。**零 API 費用**——所有產物直接取自已完成的 batch-001 run(`runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1`)持久化目錄,未重跑、未改寫任何模型輸出。 + +**樣本選擇**:從 batch-001 已完成樣本中篩 foreground ≤5,得 13 個候選。逐一檢視後選 **`5f885a9aa637ee11e3498504`**(Christmas Offer Girl in Headphones with Gift,851×315,4 素材:3 raster+1 text bitmap)。選擇理由:(1) 素材數 4 明確符合 ≤5;(2) 視覺最豐富(真人照片+緞帶+wordmark);(3) 敘事最乾淨——QC 對候選 1/3 各報一項 `out_of_bounds`、候選 2 零違規,judge 獨立視覺排序恰好把 QC-clean 的候選 2 排第一,QC 與 judge 交叉印證。落選者:有真實背景的樣本(5db16f87/5da735de 等)皆為白底 logo 型、背景分析太單調;TRECITY(5dc93d43)每個候選都被 QC 報 `missing_element`(背景另行合成的協定性誤報)+對比度檢查誤用白底假設,放論文需額外解釋兩個 QC 特例。 + +**取捨註記**:選中樣本無底圖(blank canvas),Background Analyzer 一節展示的是 no-background 分支(全畫布 quiet region、調色權轉移給前景)——這是 A3 對 Crello 大宗 blank-canvas 樣本的真實行為,誠實呈現。 + +**產出**:`output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH.md` + `images/`(9 張:背景 placeholder、contact sheet、4 張輸入素材、3 張候選 render)。文件依序含:inputs(背景/素材/brief)→ Analyst 的 background_summary → Design Spec(intent/keywords/per-asset constraints)→ T2 Layout Tree(全 JSON+ASCII 樹)→ 3 個 composition concepts 全文 → 3 組 Coordinate Mapper 座標表 → QC 結果表 → 3 張候選圖 → Judge-Select 排序與最終選擇;附錄為 per-stage token/成本/延遲表(7 次 LLM 呼叫、$0.0301、22.0s,均由 `stage_calls.json` 加總核對)。 + +*最後更新:2026/07/24(Step 98 完成:batch-001 樣本 5f885a9a 零成本 walkthrough 文件,QC↔judge 交叉印證敘事)* + +--- + +## Step 98b:第二份 walkthrough——真實背景+非平凡 layout tree 樣本(2026/07/24) + +**目的**:使用者要求補一個同時滿足四條件的樣本:(1) 實際背景影像、(2) 背景有可辨識主體或留白、(3) ≥1 個 group 含 ≥2 素材、(4) 有 parent-child dependency。仍為**零 API 費用**,產物取自 batch-001 持久化目錄。 + +**篩選過程**:掃描 98 個已完成樣本,條件=有 background_asset+tree 含多成員 group+非 root parent → 13 個符合;再以背景 128×128 像素 std 區分真實影像 vs 純色 → 只剩 3 個(std>0):Sewing day(20 前景,太多)、Electronics circuit(10 前景)、**`58ac638c95a7a863ddcc7c2b`「Softest Pillows Ad with Tender Dandelion Seeds」(std 27.2,6 前景)← 選定**。蒲公英微距背景有明確主體(中央/右側種子頭)與留白(左下 bokeh)。 + +**Tree 結構**(選樣理由):兩個 3 成員 group(`group_typography_main`/`group_decorative_soft`)+三層 `sequence_after` 鏈 `SOFTEST→pillows→EVER` +三條 `decorates` 邊,共 5 條非 root 邊。勝出候選 1 把文字鏈實現為左側留白區的垂直堆疊(x=48/62/56),與 Analyst 留白判讀、Director Concept 1 全鏈一致。 + +**QC 誠實揭露**(文件內以 † 標注):有背景樣本的兩類協定性誤報——`missing_element: asset_0000`(背景由 renderer 合成、mapper 不放置)與 `low_text_contrast vs canvas_bg=#FFFFFF`(對比規則用白畫布預設而非實際攝影背景);有鑑別力的違規只有候選 2/3 的 `out_of_bounds` 與候選 3 的 `title_peripheral`。三候選全未過 → `degradations: ["all_qc_failed"]`,L0 政策下 judge 照常三選一,判決 01>03>02 與 QC 鑑別性違規方向一致。 + +**產出**:`output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH_2.md` + `images2/`(5 張);成本表 7 呼叫、$0.0252、27.1s,由 `stage_calls.json` 加總核對。 + +*最後更新:2026/07/24(Step 98b 完成:58ac638c 真實背景 walkthrough;QC 協定誤報 vs 鑑別違規已明確區分)* diff --git a/layout_agent/new_experiment.md b/layout_agent/Metrics.md similarity index 99% rename from layout_agent/new_experiment.md rename to layout_agent/Metrics.md index dd94b6b72..3e55ef08f 100644 --- a/layout_agent/new_experiment.md +++ b/layout_agent/Metrics.md @@ -12,6 +12,7 @@ schema 定義,複用現有的資料結構,不要另造平行格式。 ## 輸入 每個樣本需要兩份資料: + 1. 一棵 LayoutTree(該樣本的語意分組來源) 2. 一份最終版面:元素列表,每個元素有 id 和 bounding box(x, y, width, height, 像素座標)以及畫布 canvas_width, canvas_height @@ -56,6 +57,7 @@ SGC = D_inter / (D_intra + D_inter + 1e-6) 值域 [0, 1),越接近 1 越好;0.5 代表分組沒有反映在版面上。 邊界情況: + - 全部 group 都是 singleton → D_intra 無定義 → 該樣本 SGC 記為 None 並計入 skipped_sgc 統計。 - 只有一個 group → D_inter 無定義 → 同上,計入 skipped_sgc。 diff --git a/layout_agent/QUALITY_CHECKER_RULES.md b/layout_agent/QUALITY_CHECKER_RULES.md new file mode 100644 index 000000000..8025f7b0c --- /dev/null +++ b/layout_agent/QUALITY_CHECKER_RULES.md @@ -0,0 +1,139 @@ +# Quality Checker — Complete Rule Reference + +> Compiled 2026-07-16. Source of truth: `metagpt/ext/agentlayout/tools/quality_checker.py` (1,719 lines). +> Single public entry point: `check_candidate()` (`quality_checker.py:213`). Batch wrapper: `filter_valid()` (`:269`). +> All rules always run (no fail-fast); `passed = (no violation recorded)`. `warnings` never affect `passed`. +> Every violation is a structured `Violation` record (`type` + `targets` + `detail`); the detail string carries +> concrete numbers because it feeds the Generator's retry feedback loop. + +--- + +## Phase 1 — Element Completeness (`quality_checker.py:325`) + +| Violation | Condition | +|-----------|-----------| +| `MISSING_ELEMENT` | An element ID present in the DesignSpec is absent from the candidate. | +| `EXTRA_ELEMENT` | An element ID present in the candidate does not exist in the DesignSpec (inventing elements is forbidden). | + +## Phase 2 — Boundary Check (`quality_checker.py:353`) + +| Violation | Condition | +|-----------|-----------| +| `OUT_OF_BOUNDS` | Any of: `left < 0`, `top < 0`, `left + width > canvas.width`, `top + height > canvas.height`. | + +## Phase 3 — Hard Constraints (iterates `spec.hard_constraints`, `quality_checker.py:386`) + +| Violation | Threshold | Calibration provenance | +|-----------|-----------|------------------------| +| `POSITION_PREFERENCE` (`:401`) | The element **center** must fall inside the hinted cell of a 3×3 canvas grid; each band edge is widened by **10%** of the canvas dimension (`POSITION_BAND_TOLERANCE = 0.10`), with a **16 px absolute floor**. | Step 10c: on a 600 px-tall canvas the strict center band is only 200 px, which hard-failed 5/5 candidates. | +| `NO_OVERLAP` (`:515`) | AABB intersection area / **smaller** box area must be ≤ **5%** (`NO_OVERLAP_TOLERANCE = 0.05`). Rotation is ignored. | Step 10: LLM rounding produced 1–20 px overlaps that failed 15/15 candidates under zero tolerance. | +| `Z_ORDER` (`:1598`) | Each target's `z_index` must be **strictly greater** than the reference element's. Accepts the explicit form `params={"above": }` or a semantic hint from a 5-alias set (`above_background`, `above_bg`, `over_background`, `above_the_background`, `front_of_background`); the reference is resolved via `SemanticType.BACKGROUND_IMAGE`. If the spec has no background element the constraint is vacuously satisfied (graceful skip). | Step 12: the first content-aware live run crashed with 0 candidates passing because the Analyst emits the semantic hint form. | +| `SIZE_PREFERENCE` (`:1677`) | `element_area / canvas_area` must be ≥ the bucket's lower bound (table below). | — | +| `UNKNOWN_HINT` / `UNKNOWN_TARGET` | The hint is outside the known vocabulary, or a constraint target ID does not exist in the candidate. The position vocabulary contains 21 spellings, including reversed word-order aliases (`center_top`, `left_bottom`, …). | Step 9: the Analyst emitted `center_top` instead of `top_center`, causing `UNKNOWN_HINT` on every candidate. | + +### Size bucket lower bounds (`SIZE_HINT_LOWER_BOUND`, `quality_checker.py:76`) + +| Hint | Min area ratio | Note | +|------|----------------|------| +| `full-canvas` | 0.95 | | +| `hero` | 0.60 | | +| `large` | 0.30 | | +| `photo-prominent` | 0.20 | Step 60: GT-calibrated photo bucket (designer GT photo area ratio p50 = 0.213, N=2,374 elements); injected programmatically for `product_image` elements, never emitted by the Analyst. | +| `prominent` | 0.10 | 0.20 was too strict for one-line poster headlines. | +| `medium` | 0.08 | | +| `small` | 0.08 | | +| `caption` | 0.03 | | + +**Deliberate asymmetry (Step 67 audit):** these values are the *QC acceptance floor*, NOT the Generator's +target. The Layout Generator prompt intentionally quotes higher numbers as stretch targets (e.g. prompt +"prominent ≥ 20%" vs QC floor 0.10) to counteract the LLM size-timidity documented in Steps 58/60. The two +sets of numbers must **not** be aligned — all Step 22–66 calibration was done against this gap. + +## Step 35/36 — Visual-quality rules (2026-06-09, from the Step 34 N=20 failure audit) + +| Violation | Threshold | Rationale | +|-----------|-----------|-----------| +| `TEXT_OBSCURED_BY_OVERLAY` (`:659`) | A non-text element with `z_index` **≥** the text's covers ≥ **20%** of the text bbox (`TEXT_OBSCURED_RATIO_THRESHOLD = 0.20`). | Step 37 tightened 0.30 → 0.20 and added the same-z case (render order undefined at equal z), after "FIND" rendered as "F.YD" under a mountain shape. | +| `LOW_TEXT_CONTRAST` (`:1531`) | WCAG 2.1 contrast ratio between the text color and the canvas background color < **4.5** (AA, `MIN_TEXT_CONTRAST_RATIO`). Skipped when the element carries no `color`. v1 compares against the canvas plate only; resolving the effective background through under-z elements is a known v2 item. | Light-gray-on-white unreadable body copy. | +| `DECORATIVE_IMAGE_OVERSIZED` (`:733`) | A single `decorative_image` covers > **40%** of the canvas area (`DECORATIVE_IMAGE_MAX_AREA_RATIO = 0.40`). | Dominant Step 34 failure mode (7/17): underlay shapes inflated to canvas size, burying the photo/text. True full-canvas plates use `background_image`, so 0.40 sits safely above legitimate underlays. | +| `TITLE_UNDERSIZED` (`:759`) | A `title` bbox smaller than **2.5%** of the canvas area (`TITLE_MIN_AREA_RATIO = 0.025`). | Titles rendered as tiny corner captions. | +| `TITLE_PERIPHERAL` (`:782`) | The `title` bbox center has `x ∉ [0.10, 0.90]`, or `y > 0.85` (pinned to the bottom), or `y < 0.05` (pinned to the top edge, likely cropped). | Step 36c added the top cutoff after a title landed in the extreme top-right corner. | + +## Step 43 / F2 — Safe-zone & saliency rules — **downgraded to WARNINGS** (they no longer block acceptance) + +Since the "think-then-draw" refactor (2026-06-25, `CheckResult` docstring `:192`), both rules are recorded in +`warnings` for analytics/feedback only: the art director may deliberately place text off the calm bands, and +rejecting that would kill the bold, asymmetric compositions the refactor targets. + +| Warning | Threshold | Preconditions | +|---------|-----------|---------------| +| `PRIMARY_OUTSIDE_SAFE_ZONE` (`:948`) | A primary element (`title`/`subtitle`/`body_text`/`product_image`/`logo`) overlaps its best safe zone by < **50%** of its own area (`PRIMARY_SAFE_ZONE_MIN_OVERLAP = 0.50`). Safe-zone bboxes are decoded as **LTRB** (a Step 43 bug-fix — the first cut mis-read them as LTWH). | Requires a `BackgroundAnalysis`; **fully defers** when `spec.composition` is present (Step 63 deference contract — enforcing both gates reproduced the Step 62 double-bind). | +| `TEXT_ON_HIGH_SALIENCY` (`:888`) | Mean background saliency inside a text primary's bbox > **0.5** (`TEXT_ON_HIGH_SALIENCY_TAU`). Calibrated on Crello N=100 designer GT: text mean-saliency p95 = 0.38, only 1.3% of designer text exceeds 0.5 → ~1.3% false-positive rate. | Gated by feature flag `AGENTLAYOUT_F2_SALIENCY`, **default OFF** (Step 72 N=100 showed net-negative aesthetic impact). Also skips when the saliency map is absent or a composition directive exists. | + +## Step 57 — Degenerate-layout guardrails (GT-calibrated degradation guards, not aesthetic rules) + +| Violation | Threshold | GT calibration | +|-----------|-----------|----------------| +| `CANVAS_COVERAGE_LOW` (`:1088`) | Union coverage of foreground elements (everything except `background_image`), estimated on a **100×100** raster, < **10%** of the canvas (`CANVAS_COVERAGE_MIN = 0.10`). | Designer minimum is 0.129 (minimalist layouts are legitimate), so 0.10 passes every GT layout with margin; 10/70 Step 56 candidates fell below it. | +| `DEAD_BAND_EXCESSIVE` | Largest contiguous blank band (no foreground element) along either axis, leading/trailing margins included, > **60%** of that axis (`DEAD_BAND_MAX = 0.60`). | Designer GT maxima are v=0.503 / h=0.548; Step 56 candidates regularly hit 0.66–0.79 ("bottom half blank" degenerate compositions). | + +## Step 59 — Text on busy texture (`quality_checker.py:1195`) + +| Violation | Threshold | +|-----------|-----------| +| `TEXT_ON_BUSY_TEXTURE` | Mean normalised Sobel gradient of the background under a text element's **exposed pixels** (pixels not shielded by a `decorative_image` underlay bbox) > **0.065** (`TEXT_GRADIENT_MAX`). GT-calibrated: all 20 designer GT layouts pass — the worst exposed GT element is 0.0454, threshold = GT max + 0.02 margin (Step 58 lesson: gates hugging the GT max kill GT-style solutions). At 0.065 the rule catches 23% (74/327) of replayed live candidates. Text classification uses `visual_type == text` (not the semantic-type set) so CTA buttons are covered. Under a `text-on-photo` directive the focal photo's bbox counts as an underlay (the background gradient beneath it is invisible). The per-background Sobel map is cached per `(asset_ref, w, h)`; missing images or an unavailable `cv2` degrade to a silent skip (the "never crash" philosophy). | + +## Step 62 — Composition Director contract (active only when `spec.composition` is set; otherwise bit-identical no-op) + +| Violation | Threshold | +|-----------|-----------| +| `COMPOSITION_MISMATCH` (`:1384`) | Four sub-checks: (1) the focal photo's center must fall inside the directive's 3×3 grid cell, with **5%**-per-axis slack (`COMPOSITION_CELL_TOLERANCE = 0.05`); (2) the photo's area ratio must be inside the directive's size bucket ± **0.02** (`COMPOSITION_SIZE_MARGIN`); (3) the area-weighted **text mass center** must fall inside the directive's text cell (same 5% slack); (4) the candidate's photo-text relation must classify as the directive's relation. Relation classifier (mirrors the Step 61 GT signature): ≥ **30%** of text area overlapping the photo → `text-on-photo`; centroid offset < **1/6** of the axis → `centered-mix`; otherwise `stacked` (vertical) or `side-by-side` (horizontal). The focal photo = the largest `product_image` element. | +| `TEXT_ON_PHOTO_NO_UNDERLAY` (`:1482`) | Under a `text-on-photo` directive, every text element riding the focal photo (≥ 30% overlap) must have a `decorative_image` underlay covering ≥ **80%** of its own bbox (`TEXT_ON_PHOTO_UNDERLAY_MIN_COVER = 0.80`; 100% is not demanded because GT underlays often inset slightly — 8/20 GT layouts shield every text element this way). Skipped entirely when the spec contains no `decorative_image`: completeness forbids inventing elements, so the demand would be unsatisfiable. This is the conditional-exemption deal from Step 62: text riding the photo is no longer rejected by safe-zone/busy-texture rules, but readability must then be protected the designer way. | + +## Graceful degradation (`rank_candidates_by_violations`, `quality_checker.py:298`) + +When **no** candidate passes QC (e.g. an out-of-vocabulary hint failing every candidate identically, or a +genuinely over-constrained spec), the legacy pipeline does not hard-crash: candidates are ranked +fewest-violations-first (stable sort) and the least-broken layouts still reach the Aesthetic Judge, keeping the +reject loop alive so feedback can route the spec back to the Analyst. + +--- + +## ⚠️ What actually fires in the A3 pipeline (the current thesis architecture) + +A3 binds QC at `metagpt/ext/agentlayout/a3_stage_binding.py:207` — it calls the same +`check_candidate(parsed, spec)` but **without `bg`**, and the A3 spec is built by +`analyst_output_to_design_spec` (`tools/analyst_vision.py:319`), which produces **no `hard_constraints`, no +`composition`, and sets every foreground element's `visual_type` to `IMAGE`** (R3 text is a bitmap). +Consequently: + +**Rules that fire in A3** (semantic types still come from the Analyst, so type-keyed rules work): + +- Phase 1 completeness (`MISSING_ELEMENT` / `EXTRA_ELEMENT`) +- Phase 2 boundary (`OUT_OF_BOUNDS`) +- `TEXT_OBSCURED_BY_OVERLAY` +- `DECORATIVE_IMAGE_OVERSIZED` +- `TITLE_UNDERSIZED` +- `TITLE_PERIPHERAL` +- `CANVAS_COVERAGE_LOW` +- `DEAD_BAND_EXCESSIVE` + +**Rules that never fire in A3:** + +- All Phase 3 hard constraints — the A3 spec carries no `hard_constraints`. +- `PRIMARY_OUTSIDE_SAFE_ZONE` / `TEXT_ON_HIGH_SALIENCY` — no `BackgroundAnalysis` is passed (and F2 is flag-off anyway). +- `TEXT_ON_BUSY_TEXTURE` — requires `visual_type == text`; every A3 foreground element is `IMAGE`. +- `COMPOSITION_MISMATCH` / `TEXT_ON_PHOTO_NO_UNDERLAY` — the A3 spec has no `composition` directive. +- `LOW_TEXT_CONTRAST` — in practice never: the A3 Mapper contract does not ask for a `color` field, and the rule skips colorless elements. + +**QC's role is different in A3.** The legacy pipeline used `filter_valid` to **reject** candidates and drive +retry/top-up rounds. The A3 pipeline **never rejects on QC**: all three rendered R0 candidates go to +Judge-Select regardless, and the QC outcome is provided as structured context inside the Judge-Select prompt +(`deterministic_qc_passed` / `deterministic_qc_violations`) plus run provenance. If all three fail QC, the run +only records a `DEGRADATION_ALL_QC_FAILED` flag (`a3_pipeline.py:292`) — nothing is silently promoted. The A3 +binding additionally computes `qc_completeness` = fraction of expected non-background elements present. + +**One-line summary:** `quality_checker.py` is a rule library of 22 violation types accumulated across +Steps 10–72, every threshold backed by GT calibration or a live-run post-mortem; the A3 architecture demotes +it from a rejection gate to deterministic evidence handed to Judge-Select, and — given the shape of the A3 +spec — only 8 rule categories can actually fire. diff --git a/layout_agent/analyze_a3_adjudication_bias.py b/layout_agent/analyze_a3_adjudication_bias.py new file mode 100644 index 000000000..13bfc1ed7 --- /dev/null +++ b/layout_agent/analyze_a3_adjudication_bias.py @@ -0,0 +1,172 @@ +"""A3-15B: adjudication vote analysis (self-preference bias diagnostic). + +Read-only over frozen annotation runs; zero API calls. + +n80 (primary): for every decision unit where the three annotators disagree, +record which annotator(s) the adjudicated value matches. Decision units: + - semantic_type per asset + - parent_id per asset + - same-group boolean per unordered asset pair +Key bias metric: P(adjudication sides with annotator j | j is the lone +dissenter in a 2-1 split). Adjudicator model (GPT-5.6 sol) == annotator +`hui`'s model, so a markedly higher side-with rate for hui than for +neiji/nina indicates self-preference. + +pilot (secondary): the oracle is a full independent re-annotation (also +GPT-5.6 sol); report its overall per-annotator alignment instead +(T/hui = GPT-5.6 sol, neiji = Fable 5). +""" + +import json +from collections import defaultdict +from itertools import combinations +from pathlib import Path + +RUNS = Path(__file__).resolve().parent / "runs" / "a3" +N80 = RUNS / "a3-relation-annot-n80-01" +PILOT = RUNS / "a3-gateab-pilot-n20-01" +OUT = ( + Path(__file__).resolve().parent + / "evaluations" + / "a3-adjudication-bias" + / "a3.adjudication-bias.v1" + / "a3-n80-adjudication-vote-v1" +) + +N80_ANNOTATORS = {"hui": "gpt-5.6-sol", "neiji": "claude-fable-5", "nina": "gemini-3.5-flash"} +PILOT_ANNOTATORS = {"T": "gpt-5.6-sol", "hui": "gpt-5.6-sol", "neiji": "claude-fable-5"} +ADJUDICATOR_MODEL = "gpt-5.6-sol" + + +def load(path): + with open(path, encoding="utf-8") as f: + return json.load(f) + + +def asset_map(annotation): + return {a["asset_id"]: a for a in annotation["assets"]} + + +def units_for(annotations): + """Yield (axis, unit_key, {annotator: value}) for every decision unit.""" + names = list(annotations) + ids = sorted(asset_map(annotations[names[0]])) + maps = {n: asset_map(annotations[n]) for n in names} + for aid in ids: + yield "semantic_type", aid, {n: maps[n][aid]["semantic_type"] for n in names} + yield "parent_id", aid, {n: maps[n][aid]["parent_id"] for n in names} + for a, b in combinations(ids, 2): + yield ( + "same_group", + f"{a}|{b}", + {n: maps[n][a]["group_id"] == maps[n][b]["group_id"] for n in names}, + ) + + +def analyze_n80(): + stats = { + axis: { + "contested": 0, + "adj_matches": defaultdict(int), + "adj_matches_none": 0, + "splits_2_1": 0, + "splits_1_1_1": 0, + "minority_cases": defaultdict(int), + "adj_sides_with_minority": defaultdict(int), + } + for axis in ("semantic_type", "parent_id", "same_group") + } + n_samples = 0 + for sdir in sorted((N80 / "samples").iterdir()): + adj_path = N80 / "adjudication" / "samples" / sdir.name / "annotation_adjudicated.json" + if not adj_path.exists(): + raise FileNotFoundError(adj_path) + annos = {k: load(sdir / "annotation" / f"annotation_{k}.json") for k in N80_ANNOTATORS} + adjudicated = load(adj_path) + adj_map = asset_map(adjudicated) + n_samples += 1 + for axis, key, votes in units_for(annos): + if len(set(votes.values())) == 1: + continue # unanimous + st = stats[axis] + st["contested"] += 1 + if axis == "semantic_type": + adj_val = adj_map[key]["semantic_type"] + elif axis == "parent_id": + adj_val = adj_map[key]["parent_id"] + else: + a, b = key.split("|") + adj_val = adj_map[a]["group_id"] == adj_map[b]["group_id"] + matched = [n for n, v in votes.items() if v == adj_val] + for n in matched: + st["adj_matches"][n] += 1 + if not matched: + st["adj_matches_none"] += 1 + counts = defaultdict(list) + for n, v in votes.items(): + counts[repr(v)].append(n) + if len(counts) == 2: + st["splits_2_1"] += 1 + minority = min(counts.values(), key=len)[0] + st["minority_cases"][minority] += 1 + if votes[minority] == adj_val: + st["adj_sides_with_minority"][minority] += 1 + else: + st["splits_1_1_1"] += 1 + for axis, st in stats.items(): + st["adj_matches"] = dict(st["adj_matches"]) + st["minority_cases"] = dict(st["minority_cases"]) + st["adj_sides_with_minority"] = dict(st["adj_sides_with_minority"]) + st["side_with_minority_rate"] = { + n: st["adj_sides_with_minority"].get(n, 0) / c + for n, c in st["minority_cases"].items() + } + return {"n_samples": n_samples, "annotator_models": N80_ANNOTATORS, "axes": stats} + + +def analyze_pilot(): + totals = {axis: defaultdict(lambda: [0, 0]) for axis in ("semantic_type", "parent_id", "same_group")} + n_samples = 0 + for sdir in sorted((PILOT / "samples").iterdir()): + annos = {k: load(sdir / "annotation" / f"annotation_{k}.json") for k in PILOT_ANNOTATORS} + oracle = load(sdir / "annotation" / "annotation_nina.json") + o_map = asset_map(oracle) + n_samples += 1 + for axis, key, votes in units_for(annos): + if axis == "semantic_type": + o_val = o_map[key]["semantic_type"] + elif axis == "parent_id": + o_val = o_map[key]["parent_id"] + else: + a, b = key.split("|") + o_val = o_map[a]["group_id"] == o_map[b]["group_id"] + for n, v in votes.items(): + pair = totals[axis][n] + pair[1] += 1 + if v == o_val: + pair[0] += 1 + out = {"n_samples": n_samples, "annotator_models": PILOT_ANNOTATORS, "oracle_model": ADJUDICATOR_MODEL, "alignment": {}} + for axis, per in totals.items(): + out["alignment"][axis] = {n: {"agree": a, "total": t, "rate": a / t} for n, (a, t) in per.items()} + return out + + +def main(): + result = { + "analysis_id": "a3-n80-adjudication-vote-v1", + "adjudicator_model": ADJUDICATOR_MODEL, + "n80": analyze_n80(), + "pilot_secondary": analyze_pilot(), + } + OUT.mkdir(parents=True, exist_ok=True) + out_path = OUT / "aggregate.json" + if out_path.exists(): + raise SystemExit(f"refusing to overwrite existing bundle: {out_path}") + with open(out_path, "w", encoding="utf-8") as f: + json.dump(result, f, ensure_ascii=False, indent=2) + print(json.dumps(result, ensure_ascii=False, indent=2)) + print(f"\nwritten: {out_path}") + + +if __name__ == "__main__": + main() diff --git a/layout_agent/analyze_a3_relation_stats.py b/layout_agent/analyze_a3_relation_stats.py new file mode 100644 index 000000000..b07fb01b7 --- /dev/null +++ b/layout_agent/analyze_a3_relation_stats.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Read-only statistical reanalysis of Relation N=100 T0/T2/T3 SGC/TLC/PCA. + +No LLM/API code path and no layout regeneration: per-sample metrics are +recomputed deterministically from frozen run artifacts and the human oracle +trees. The only writes are new files below +``--output-root/a3.relation-stats.v1/``; an existing evaluation +directory is never overwritten. +""" +from __future__ import annotations + +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_relation_stats import main # noqa: E402 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/authorizations/a3-crello-test-batch-001-n100-t2-l0-v1.json b/layout_agent/authorizations/a3-crello-test-batch-001-n100-t2-l0-v1.json new file mode 100644 index 000000000..d86d2c907 --- /dev/null +++ b/layout_agent/authorizations/a3-crello-test-batch-001-n100-t2-l0-v1.json @@ -0,0 +1,29 @@ +{ + "schema_version": "a3.paid-authorization.v1", + "authorized": true, + "authorized_by": "user", + "authorized_at": "2026-07-12 17:03:40 CST (+0800)", + "authorization_text": "授權執行 a3-crello-test-batch-001-n100-t2-l0-v1,model=gpt-5.4-mini-2026-03-17,最多 850 actual HTTP calls、4.5M input tokens、800k output tokens、US$7。", + "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", + "model": "gpt-5.4-mini-2026-03-17", + "tree_arm": "T2", + "analyst_arm": "vision", + "limits": { + "max_http_calls": 850, + "max_input_tokens": 4500000, + "max_output_tokens": 800000, + "max_usd": "7.00" + }, + "input_usd_per_m": "0.75", + "output_usd_per_m": "4.50", + "stage_max_completion_tokens": { + "analyst": 4096, + "asset_planner": 4096, + "composition_director": 2048, + "coordinate_mapper": 2048, + "judge_select": 512 + }, + "image_detail": "high", + "reasoning_effort": "none", + "service_tier": "default" +} diff --git a/layout_agent/configs/a3_crello_test_l0_v1.json b/layout_agent/configs/a3_crello_test_l0_v1.json new file mode 100644 index 000000000..71b914014 --- /dev/null +++ b/layout_agent/configs/a3_crello_test_l0_v1.json @@ -0,0 +1,23 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-official-test-n1971-batched-v1", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "annotation_packet": "a3.annotation-packet.v1", + "human_annotation": "a3.human-annotation.v1", + "adjudication": "a3.annotation-adjudication.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_gateab_pilot_l0.json b/layout_agent/configs/a3_gateab_pilot_l0.json new file mode 100644 index 000000000..866abfdc3 --- /dev/null +++ b/layout_agent/configs/a3_gateab_pilot_l0.json @@ -0,0 +1,23 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-relation-pilot", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "annotation_packet": "a3.annotation-packet.v1", + "human_annotation": "a3.human-annotation.v1", + "adjudication": "a3.annotation-adjudication.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_gatec_l0.json b/layout_agent/configs/a3_gatec_l0.json new file mode 100644 index 000000000..6bb9bd3b9 --- /dev/null +++ b/layout_agent/configs/a3_gatec_l0.json @@ -0,0 +1,21 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-cached-gatec-general", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "issue_verifier": "a3.issue-verifier.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_gatec_l1_tail.json b/layout_agent/configs/a3_gatec_l1_tail.json new file mode 100644 index 000000000..0e4035071 --- /dev/null +++ b/layout_agent/configs/a3_gatec_l1_tail.json @@ -0,0 +1,25 @@ +{ + "loop": "L1-Gated", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-cached-gatec-general", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_critic": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "judge_critic_result": "a3.judge-critic-result.v1", + "l1_pipeline": "a3.l1-pipeline.v1", + "repair_gate": "a3.l1-repair-gate.v1", + "b0b1_guard": "a3.b0b1-guard.v1", + "issue_verifier": "a3.issue-verifier.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_general_n100_l0.json b/layout_agent/configs/a3_general_n100_l0.json new file mode 100644 index 000000000..cb7ad88b0 --- /dev/null +++ b/layout_agent/configs/a3_general_n100_l0.json @@ -0,0 +1,23 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-general-random-n100-v1", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "annotation_packet": "a3.annotation-packet.v1", + "human_annotation": "a3.human-annotation.v1", + "adjudication": "a3.annotation-adjudication.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_smoke_l0.json b/layout_agent/configs/a3_smoke_l0.json new file mode 100644 index 000000000..e0799edca --- /dev/null +++ b/layout_agent/configs/a3_smoke_l0.json @@ -0,0 +1,21 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-cached-smoke", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "issue_verifier": "a3.issue-verifier.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/configs/a3_smoke_l1_gated.json b/layout_agent/configs/a3_smoke_l1_gated.json new file mode 100644 index 000000000..5c4c4ba39 --- /dev/null +++ b/layout_agent/configs/a3_smoke_l1_gated.json @@ -0,0 +1,25 @@ +{ + "loop": "L1-Gated", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-cached-smoke", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_critic": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "judge_critic_result": "a3.judge-critic-result.v1", + "l1_pipeline": "a3.l1-pipeline.v1", + "repair_gate": "a3.l1-repair-gate.v1", + "b0b1_guard": "a3.b0b1-guard.v1", + "issue_verifier": "a3.issue-verifier.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/evaluate_a3_sega.py b/layout_agent/evaluate_a3_sega.py new file mode 100644 index 000000000..671385395 --- /dev/null +++ b/layout_agent/evaluate_a3_sega.py @@ -0,0 +1,479 @@ +#!/usr/bin/env python3 +"""Versioned, read-only SEGA/PKU evaluation harness for persisted A3 runs. + +This command has no LLM/API code path. Its only writes are new files below +``--output-root//``; an existing evaluation +directory is never overwritten. +""" +from __future__ import annotations + +import argparse +import copy +import ctypes +import errno +import hashlib +import json +import os +import shlex +import shutil +import sys +import tempfile +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, Callable, Dict, List, Optional, Sequence + +REPO_ROOT = Path(__file__).resolve().parent.parent +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_sega_evaluator import ( # noqa: E402 + A3EvaluationError, + PROTOCOL_VERSION, + SALIENCY_MODE_FROZEN, + SALIENCY_MODE_SKIP, + SCHEMA_VERSION, + aggregate_metric_records, + assert_output_is_sidecar, + evaluate_sample, + evaluation_code_runtime_lineage, + extract_b0_sample, + frozen_detector_lineage, + load_run_summary, + protocol_lineage, + validate_evaluation_bundle, + verify_source_artifacts_unchanged, +) + +DEFAULT_OUTPUT_ROOT = REPO_ROOT / "layout_agent" / "evaluations" / "a3-sega" + + +def _parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--run-dir", + action="append", + required=True, + type=Path, + help="A3 source run directory; repeat for T0/T2/T3.", + ) + parser.add_argument( + "--evaluation-id", + required=True, + help="New sidecar identifier. Existing directories are rejected.", + ) + parser.add_argument( + "--output-root", + type=Path, + default=DEFAULT_OUTPUT_ROOT, + help=f"Evaluation sidecar root (default: {DEFAULT_OUTPUT_ROOT}).", + ) + parser.add_argument( + "--saliency-mode", + choices=(SALIENCY_MODE_FROZEN, SALIENCY_MODE_SKIP), + default=SALIENCY_MODE_FROZEN, + help=( + "Occ detector mode. basnet-isnet is frozen/local-only and fails closed; " + "skip explicitly records Occ as skipped (never substitutes Sobel)." + ), + ) + parser.add_argument( + "--validate-only", + action="store_true", + help="Validate/extract B0 sources without computing metrics or loading detectors.", + ) + parser.add_argument( + "--max-samples", + type=int, + default=None, + help="Diagnostic prefix limit per run; omit for a formal complete evaluation.", + ) + return parser + + +def _validate_evaluation_id(value: str) -> str: + if not value or value in {".", ".."}: + raise A3EvaluationError("evaluation-id must be non-empty") + allowed = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.") + if any(char not in allowed for char in value): + raise A3EvaluationError( + "evaluation-id may contain only ASCII letters, digits, dash, underscore, and dot" + ) + return value + + +def _source_skipped(run_id: str, entry: Dict[str, Any]) -> Dict[str, Any]: + return { + "run_id": run_id, + "sample_id": str(entry.get("sample_id") or ""), + "status": "source_skipped", + "source_status": entry.get("status"), + "reason": "A3 summary did not mark sample completed", + "summary_entry": entry, + "metrics": {}, + "source_artifacts": [], + } + + +def _validated_record(sample: Dict[str, Any]) -> Dict[str, Any]: + record = { + key: value + for key, value in sample.items() + if key not in {"layout", "_background_payload"} + } + record["status"] = "validated" + record["metrics"] = {} + return record + + +def _run_counts(records: Sequence[Dict[str, Any]]) -> Dict[str, int]: + return { + "selected_n": len(records), + "source_valid_n": sum( + record.get("status") in {"validated", "evaluated"} for record in records + ), + "source_skipped_n": sum(record.get("status") == "source_skipped" for record in records), + "evaluated_n": sum(record.get("status") == "evaluated" for record in records), + "validated_only_n": sum(record.get("status") == "validated" for record in records), + } + + +def _command_argv( + args: argparse.Namespace, run_dirs: Sequence[Path], evaluation_id: str +) -> List[str]: + argv = [sys.executable, str(Path(__file__).resolve())] + for run_dir in run_dirs: + argv.extend(["--run-dir", str(run_dir)]) + argv.extend( + [ + "--evaluation-id", + evaluation_id, + "--output-root", + str(args.output_root.expanduser().resolve()), + "--saliency-mode", + args.saliency_mode, + ] + ) + if args.validate_only: + argv.append("--validate-only") + if args.max_samples is not None: + argv.extend(["--max-samples", str(args.max_samples)]) + return argv + + +def _write_json(path: Path, data: Dict[str, Any]) -> None: + path.write_text( + json.dumps(data, ensure_ascii=False, indent=2, allow_nan=False) + "\n", + encoding="utf-8", + ) + + +def _path_lexists(path: Path) -> bool: + """Like exists(), but a broken symlink also consumes the output ID.""" + return os.path.lexists(os.fspath(path)) + + +def _rename_directory_noreplace(source: Path, destination: Path) -> None: + """Atomically publish a directory without ever replacing a competing path.""" + libc = ctypes.CDLL(None, use_errno=True) + renameat2 = getattr(libc, "renameat2", None) + if renameat2 is None: + raise A3EvaluationError( + "safe sidecar publication requires renameat2(RENAME_NOREPLACE)" + ) + renameat2.argtypes = [ + ctypes.c_int, + ctypes.c_char_p, + ctypes.c_int, + ctypes.c_char_p, + ctypes.c_uint, + ] + renameat2.restype = ctypes.c_int + at_fdcwd = -100 + rename_noreplace = 1 + result = renameat2( + at_fdcwd, + os.fsencode(source), + at_fdcwd, + os.fsencode(destination), + rename_noreplace, + ) + if result == 0: + return + error_number = ctypes.get_errno() + if error_number == errno.EEXIST: + raise A3EvaluationError(f"evaluation directory already exists: {destination}") + raise OSError(error_number, os.strerror(error_number), os.fspath(destination)) + + +def _load_strict_json(path: Path) -> Any: + return json.loads( + path.read_text(encoding="utf-8"), parse_constant=_reject_json_constant + ) + + +def _reject_json_constant(value: str): + raise ValueError(f"non-finite JSON constant {value}") + + +def _verify_staging_round_trip( + staging_dir: Path, + manifest: Dict[str, Any], + records: Sequence[Dict[str, Any]], + aggregate: Dict[str, Any], +) -> None: + loaded_manifest = _load_strict_json(staging_dir / "evaluation_manifest.json") + loaded_aggregate = _load_strict_json(staging_dir / "aggregate.json") + loaded_records = [] + lines = (staging_dir / "per_sample.jsonl").read_text(encoding="utf-8").splitlines() + for line in lines: + loaded_records.append(json.loads(line, parse_constant=_reject_json_constant)) + validate_evaluation_bundle(loaded_manifest, loaded_records, loaded_aggregate) + if ( + loaded_manifest != manifest + or loaded_aggregate != aggregate + or loaded_records != list(records) + ): + raise A3EvaluationError("sidecar JSON round-trip changed the validated bundle") + + +def _write_results( + output_dir: Path, + manifest: Dict[str, Any], + records: Sequence[Dict[str, Any]], + aggregate: Dict[str, Any], + pre_publish_check: Optional[Callable[[], None]] = None, +) -> None: + """Write a complete staging tree, then publish it with one directory rename.""" + staging_dir: Optional[Path] = None + try: + validate_evaluation_bundle(manifest, records, aggregate) + output_dir.parent.mkdir(parents=True, exist_ok=True) + if _path_lexists(output_dir): + raise A3EvaluationError(f"evaluation directory already exists: {output_dir}") + staging_dir = Path( + tempfile.mkdtemp( + prefix=f".{output_dir.name}.staging-", + dir=str(output_dir.parent), + ) + ) + _write_json(staging_dir / "evaluation_manifest.json", manifest) + _write_json(staging_dir / "aggregate.json", aggregate) + with (staging_dir / "per_sample.jsonl").open("x", encoding="utf-8") as handle: + for record in records: + handle.write( + json.dumps( + record, + ensure_ascii=False, + sort_keys=True, + allow_nan=False, + ) + + "\n" + ) + _verify_staging_round_trip(staging_dir, manifest, records, aggregate) + if pre_publish_check is not None: + pre_publish_check() + _rename_directory_noreplace(staging_dir, output_dir) + staging_dir = None + except A3EvaluationError: + raise + except (OSError, TypeError, ValueError) as exc: + raise A3EvaluationError( + f"cannot publish evaluation sidecar {output_dir}: {exc}" + ) from exc + finally: + if staging_dir is not None: + shutil.rmtree(staging_dir, ignore_errors=True) + + +def run(args: argparse.Namespace) -> Path: + if args.max_samples is not None and args.max_samples <= 0: + raise A3EvaluationError("--max-samples must be positive") + evaluation_id = _validate_evaluation_id(args.evaluation_id) + run_dirs = [path.expanduser().resolve() for path in args.run_dir] + if len(run_dirs) != len(set(run_dirs)): + raise A3EvaluationError("duplicate --run-dir values are not allowed") + for run_dir in run_dirs: + if not run_dir.is_dir(): + raise A3EvaluationError(f"run directory is missing: {run_dir}") + + output_dir = ( + args.output_root.expanduser().resolve() / PROTOCOL_VERSION / evaluation_id + ) + assert_output_is_sidecar(output_dir, run_dirs) + if _path_lexists(output_dir): + raise A3EvaluationError(f"evaluation directory already exists: {output_dir}") + + code_runtime_before = evaluation_code_runtime_lineage(Path(__file__).resolve()) + loaded_runs = [] + run_ids = set() + expected_sample_ids: Optional[List[str]] = None + for run_dir in run_dirs: + source_run, entries = load_run_summary(run_dir) + run_id = source_run["run_id"] + if run_id in run_ids: + raise A3EvaluationError(f"duplicate run_id across inputs: {run_id}") + run_ids.add(run_id) + summary_is_complete = bool(source_run["summary_counts"]["formal_complete"]) + if args.max_samples is None and not summary_is_complete: + raise A3EvaluationError( + f"formal evaluation requires a complete summary for {run_id}: " + f"{source_run['summary_counts']}" + ) + sample_ids = [entry["sample_id"] for entry in entries] + if expected_sample_ids is None: + expected_sample_ids = sample_ids + elif sample_ids != expected_sample_ids: + raise A3EvaluationError( + "matched evaluation requires identical sample IDs in identical order; " + f"{run_id} differs from {loaded_runs[0][1]['run_id']}" + ) + loaded_runs.append((run_dir, source_run, entries, summary_is_complete)) + if expected_sample_ids is None: + raise A3EvaluationError("at least one --run-dir is required") + + detector: Optional[Dict[str, Any]] = None + detector_artifacts_before: Optional[Dict[str, Any]] = None + if not args.validate_only and args.saliency_mode == SALIENCY_MODE_FROZEN: + # The frozen contract must never trigger a model download. Both local + # detector files are verified and hashed before the first inference. + os.environ["HF_HUB_OFFLINE"] = "1" + os.environ["TRANSFORMERS_OFFLINE"] = "1" + detector_artifacts_before = frozen_detector_lineage() + detector = copy.deepcopy(detector_artifacts_before) + + all_records: List[Dict[str, Any]] = [] + source_runs: List[Dict[str, Any]] = [] + aggregates: Dict[str, Any] = {} + for run_dir, source_run, full_entries, summary_is_complete in loaded_runs: + run_id = source_run["run_id"] + entries = full_entries + if args.max_samples is not None: + entries = entries[: args.max_samples] + run_records: List[Dict[str, Any]] = [] + for entry in entries: + if entry.get("status") != "completed": + record = _source_skipped(run_id, entry) + else: + extracted = extract_b0_sample(run_dir, run_id, entry) + record = ( + _validated_record(extracted) + if args.validate_only + else evaluate_sample(extracted, args.saliency_mode) + ) + run_records.append(record) + source_run["selection"] = { + "max_samples": args.max_samples, + "selected_n": len(entries), + "formal_complete_run": args.max_samples is None and summary_is_complete, + } + source_run["observed_counts"] = _run_counts(run_records) + source_runs.append(source_run) + aggregates[run_id] = { + "sample_counts": source_run["observed_counts"], + "metrics": aggregate_metric_records(run_records) if not args.validate_only else {}, + } + all_records.extend(run_records) + + def verify_executable_lineage_unchanged() -> None: + code_runtime_after = evaluation_code_runtime_lineage(Path(__file__).resolve()) + if code_runtime_after != code_runtime_before: + raise A3EvaluationError( + "evaluation source code or dependency/runtime identity changed " + "during execution" + ) + if ( + detector_artifacts_before is not None + and frozen_detector_lineage() != detector_artifacts_before + ): + raise A3EvaluationError("frozen detector artifacts changed during evaluation") + + def verify_all_integrity_before_publish() -> None: + verify_executable_lineage_unchanged() + root_artifacts = [ + source_run[key] + for source_run in source_runs + for key in ("summary", "manifest", "sample_ids") + ] + verify_source_artifacts_unchanged( + [*all_records, {"source_artifacts": root_artifacts}] + ) + + verify_executable_lineage_unchanged() + if detector is not None: + from metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet import ( + detector_runtime_identity, + ) + + try: + detector["runtime_identity"] = detector_runtime_identity( + require_loaded=any( + record.get("status") == "evaluated" for record in all_records + ) + ) + except RuntimeError as exc: + raise A3EvaluationError(f"detector runtime identity unavailable: {exc}") from exc + + now = datetime.now(timezone.utc).isoformat() + command_argv = _command_argv(args, run_dirs, evaluation_id) + lineage = protocol_lineage( + args.saliency_mode, + detector, + code_runtime=code_runtime_before, + ) + matched_ids_json = json.dumps( + expected_sample_ids, ensure_ascii=False, separators=(",", ":") + ).encode("utf-8") + manifest = { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "evaluation_id": evaluation_id, + "created_at": now, + "mode": "validate-only" if args.validate_only else "evaluate", + "command": shlex.join(command_argv), + "command_argv": command_argv, + "source_runs": source_runs, + "matched_samples": { + "count": len(expected_sample_ids), + "ordered_sample_ids": expected_sample_ids, + "ordered_sample_ids_sha256": hashlib.sha256(matched_ids_json).hexdigest(), + }, + "protocol_lineage": lineage, + "write_policy": { + "source_runs_read_only": True, + "output_is_versioned_sidecar": True, + "existing_output_overwrite": False, + "atomic_staging_publish": True, + "atomic_no_replace_publish": "renameat2(RENAME_NOREPLACE)", + }, + "cost": {"llm_api_calls": 0, "llm_cost_usd": 0.0, "model_downloads": 0}, + } + aggregate = { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "evaluation_id": evaluation_id, + "runs": aggregates, + } + _write_results( + output_dir, + manifest, + all_records, + aggregate, + pre_publish_check=verify_all_integrity_before_publish, + ) + return output_dir + + +def main(argv: Optional[Sequence[str]] = None) -> int: + parser = _parser() + args = parser.parse_args(argv) + try: + output_dir = run(args) + except A3EvaluationError as exc: + parser.error(str(exc)) + print(f"wrote {output_dir}") + print("LLM/API calls: 0; LLM cost: $0.00; source A3 artifacts modified: 0") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/evaluate_a3_tree_accuracy.py b/layout_agent/evaluate_a3_tree_accuracy.py new file mode 100644 index 000000000..cfd0e2445 --- /dev/null +++ b/layout_agent/evaluate_a3_tree_accuracy.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +"""Read-only tree-prediction accuracy evaluation for a persisted A3 run. + +No LLM/API code path. The only writes are new files below +``--output-root/a3.tree-accuracy.v1/``; an existing evaluation +directory is never overwritten. +""" +from __future__ import annotations + +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import main # noqa: E402 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/evaluations/a3-adjudication-bias/a3.adjudication-bias.v1/a3-n80-adjudication-vote-v1/aggregate.json b/layout_agent/evaluations/a3-adjudication-bias/a3.adjudication-bias.v1/a3-n80-adjudication-vote-v1/aggregate.json new file mode 100644 index 000000000..216269b04 --- /dev/null +++ b/layout_agent/evaluations/a3-adjudication-bias/a3.adjudication-bias.v1/a3-n80-adjudication-vote-v1/aggregate.json @@ -0,0 +1,149 @@ +{ + "analysis_id": "a3-n80-adjudication-vote-v1", + "adjudicator_model": "gpt-5.6-sol", + "n80": { + "n_samples": 80, + "annotator_models": { + "hui": "gpt-5.6-sol", + "neiji": "claude-fable-5", + "nina": "gemini-3.5-flash" + }, + "axes": { + "semantic_type": { + "contested": 485, + "adj_matches": { + "hui": 480, + "neiji": 145, + "nina": 151 + }, + "adj_matches_none": 1, + "splits_2_1": 407, + "splits_1_1_1": 78, + "minority_cases": { + "hui": 118, + "nina": 142, + "neiji": 147 + }, + "adj_sides_with_minority": { + "hui": 115 + }, + "side_with_minority_rate": { + "hui": 0.9745762711864406, + "nina": 0.0, + "neiji": 0.0 + } + }, + "parent_id": { + "contested": 710, + "adj_matches": { + "hui": 708, + "nina": 96, + "neiji": 216 + }, + "adj_matches_none": 1, + "splits_2_1": 551, + "splits_1_1_1": 159, + "minority_cases": { + "hui": 238, + "neiji": 98, + "nina": 215 + }, + "adj_sides_with_minority": { + "hui": 238, + "neiji": 1 + }, + "side_with_minority_rate": { + "hui": 1.0, + "neiji": 0.01020408163265306, + "nina": 0.0 + } + }, + "same_group": { + "contested": 2130, + "adj_matches": { + "hui": 2126, + "nina": 372, + "neiji": 624 + }, + "adj_matches_none": 0, + "splits_2_1": 2130, + "splits_1_1_1": 0, + "minority_cases": { + "hui": 1142, + "neiji": 368, + "nina": 620 + }, + "adj_sides_with_minority": { + "hui": 1138 + }, + "side_with_minority_rate": { + "hui": 0.9964973730297724, + "neiji": 0.0, + "nina": 0.0 + } + } + } + }, + "pilot_secondary": { + "n_samples": 20, + "annotator_models": { + "T": "gpt-5.6-sol", + "hui": "gpt-5.6-sol", + "neiji": "claude-fable-5" + }, + "oracle_model": "gpt-5.6-sol", + "alignment": { + "semantic_type": { + "T": { + "agree": 212, + "total": 298, + "rate": 0.7114093959731543 + }, + "hui": { + "agree": 213, + "total": 298, + "rate": 0.714765100671141 + }, + "neiji": { + "agree": 208, + "total": 298, + "rate": 0.697986577181208 + } + }, + "parent_id": { + "T": { + "agree": 114, + "total": 298, + "rate": 0.3825503355704698 + }, + "hui": { + "agree": 136, + "total": 298, + "rate": 0.4563758389261745 + }, + "neiji": { + "agree": 95, + "total": 298, + "rate": 0.3187919463087248 + } + }, + "same_group": { + "T": { + "agree": 1728, + "total": 2340, + "rate": 0.7384615384615385 + }, + "hui": { + "agree": 2168, + "total": 2340, + "rate": 0.9264957264957265 + }, + "neiji": { + "agree": 1797, + "total": 2340, + "rate": 0.767948717948718 + } + } + } + } +} \ No newline at end of file diff --git a/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/aggregate.json b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/aggregate.json new file mode 100644 index 000000000..13d19cd8d --- /dev/null +++ b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/aggregate.json @@ -0,0 +1,92 @@ +{ + "arm_means": { + "general": { + "SDL": 5.63, + "SGI": 6.08, + "SIO": 4.85, + "SQL": 6.01, + "STV": 5.38, + "n": 100, + "pct_of_gt_smean4": 81.94080179842638, + "smean4": 5.4675 + }, + "gt": { + "SDL": 6.98, + "SGI": 7.43, + "SIO": 5.59, + "SQL": 7.35, + "STV": 6.77, + "n": 100, + "smean4": 6.6725 + } + }, + "authorization": { + "call_cap": 220, + "input_token_cap": 3000000, + "output_token_cap": 150000, + "usd_cap": 4.0 + }, + "evaluation_id": "a3-general-n100-cole-v1", + "input_snapshot_sha256": "aa7c5b236bc8655bf182cfe8fc898266fbb8e136b30c3f8ae2e7e89bbcb5fa72", + "judge_model": "gpt-5.4-mini-2026-03-17", + "matched_ids_count": 100, + "paired": { + "general_vs_gt": { + "n_pairs": 100, + "per_axis": { + "SDL": { + "losses": 75, + "sign_p": 2.91096598559025e-16, + "ties": 19, + "wins": 6 + }, + "SIO": { + "losses": 59, + "sign_p": 1.016748503966658e-10, + "ties": 33, + "wins": 8 + }, + "SQL": { + "losses": 75, + "sign_p": 3.975760896174872e-20, + "ties": 23, + "wins": 2 + }, + "STV": { + "losses": 72, + "sign_p": 1.0224592793857492e-12, + "ties": 18, + "wins": 10 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": -0.9925, + "ci95_low": -1.42, + "mean_delta": -1.205 + }, + "losses": 85, + "sign_p": 5.762323641301719e-16, + "ties": 5, + "wins": 10 + } + } + }, + "prompt_sha256": "457bb05ccc0c0bec7d23daaa5267185f1f66b7ea187fcc95b488405c6c1396f1", + "schema_version": "a3.cole-judge.v1", + "source_sidecar": "a3-general-n100-sega-v1", + "status_counts": { + "ok": 200 + }, + "usage": { + "calls": 202, + "estimated_usd": 0.422035, + "input_tokens": 312795, + "output_tokens": 41653, + "prior_input_token_reserve": 1000, + "prior_interrupted_calls": 1, + "prior_output_token_reserve": 600, + "usage_reported_calls": 200 + }, + "wall_seconds": 61.59 +} diff --git a/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/per_sample.jsonl b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/per_sample.jsonl new file mode 100644 index 000000000..41b93d957 --- /dev/null +++ b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-general-n100-cole-v1/per_sample.jsonl @@ -0,0 +1,200 @@ +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/renders/r0_candidate_01.png", "render_sha256": "a3500008f6ee80bef3d82b7477b092ba74760df3b89c814569ebb2000ada6cda", "sample_id": "59526eab95a7a863ddcdeb6c", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 213}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7380974b3890eb0747d5c4/renders/r0_candidate_02.png", "render_sha256": "04fdf9c009690407050db7bd4378f3f35fce1fee6d37690b8710d16060772595", "sample_id": "5e7380974b3890eb0747d5c4", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_03.png", "render_sha256": "06557b62f097edc5b313476e58da718de79cc79c3af54f1259df6d23dc1d34c0", "sample_id": "5da04604abc8ea6d1cbe2935", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 226}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4799b9a637ee11e3cda600/renders/r0_candidate_03.png", "render_sha256": "529e227eff96d88ca60c47240e0c080d1491e330faf9997edf965c39124043b2", "sample_id": "5f4799b9a637ee11e3cda600", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 1449, "output_tokens": 186}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/renders/r0_candidate_03.png", "render_sha256": "b742a6ba3ce38b6219805df0548969e9bab7641f38f905063a7487d565a845a7", "sample_id": "595298e195a7a863ddce04c2", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 209}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/renders/r0_candidate_03.png", "render_sha256": "a60a4bbc9b751788b76fbd478cb40f90c27af21c43120f766fbf84ed1cb06c29", "sample_id": "592fdcc595a7a863ddcdbde1", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 215}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d68df79e79a2a634ea55321/renders/r0_candidate_01.png", "render_sha256": "be8ec02850a4df9df1c6ee503e60b2bd7410c8d95267c5716267e0669cb5fd7b", "sample_id": "5d68df79e79a2a634ea55321", "scores": {"SDL": 5, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1869, "output_tokens": 222}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e2e71133a78539266d649/renders/r0_candidate_03.png", "render_sha256": "674430cf1c67e15eb19f0f3c6e50efb62102cd05c0559923e949fcf850412520", "sample_id": "5c1e2e71133a78539266d649", "scores": {"SDL": 5, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 189}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbe1dc7a637ee11e37e5003/renders/r0_candidate_02.png", "render_sha256": "53ef034be5c035515ce21e42267122128d6bfdac6d9a6748f4315003d18c3272", "sample_id": "5fbe1dc7a637ee11e37e5003", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 2}, "smean4": 3.75, "status": "ok", "usage": {"input_tokens": 1677, "output_tokens": 205}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/renders/r0_candidate_02.png", "render_sha256": "21330913437c73d8d07709e82330d98e72ccbe3546976d7271955ecdb7da8fdf", "sample_id": "5a21a25cd8141396fe9a3ddd", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 8}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 220}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21793fd8141396fe9a2b83/renders/r0_candidate_03.png", "render_sha256": "e04ed316b2f522fc927cd908ba2b57779fb8f46acd22b9c5b7a1a2574ed6fd73", "sample_id": "5a21793fd8141396fe9a2b83", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 182}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e235d133a78539251c177/renders/r0_candidate_01.png", "render_sha256": "4ac1319d8336aa2e4bac42049ad64a048cb225b3e5c11455cfe38a777c3374b7", "sample_id": "5c1e235d133a78539251c177", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 209}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b10aa95a7a863ddcc47e9/renders/r0_candidate_02.png", "render_sha256": "4c8d60545dd217a0ba8c27fb855102e9775fe959d010d1df64c466cdaf119b9f", "sample_id": "589b10aa95a7a863ddcc47e9", "scores": {"SDL": 5, "SGI": 4, "SIO": 5, "SQL": 4, "STV": 5}, "smean4": 4.75, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1c4f95a7a863ddcd99a0/renders/r0_candidate_03.png", "render_sha256": "184db8f4e9ae15a34f1b2dccae0a33e8bea47c92c4f6c0886ce6dfc16370216c", "sample_id": "592d1c4f95a7a863ddcd99a0", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.75, "status": "ok", "usage": {"input_tokens": 861, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_01.png", "render_sha256": "c870adfffffd3a41162e857ac354c77d9583e476003e079ade6e3959b49977de", "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1677, "output_tokens": 225}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2addfabc8ea6d1c333fbc/renders/r0_candidate_03.png", "render_sha256": "18d25eeafb02732b295b6fe281f091439a8ffb6158e340f7bf34bbcecc7834f4", "sample_id": "5db2addfabc8ea6d1c333fbc", "scores": {"SDL": 5, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a328987d8141396fe9b856b/renders/r0_candidate_03.png", "render_sha256": "785b001842a1eeaadc74f73d6a5fa9dd8010e2e23bd65cccc1eceea38b9ccc09", "sample_id": "5a328987d8141396fe9b856b", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 1631, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96895da637ee11e38af71a/renders/r0_candidate_03.png", "render_sha256": "f7749283953d7b8f010bc403311363983c530d5dc1bb8102fa4af4e310fc004e", "sample_id": "5f96895da637ee11e38af71a", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 1117, "output_tokens": 217}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59158b7095a7a863ddcd869c/renders/r0_candidate_02.png", "render_sha256": "69adc5faf3ea6cd10f9b4d8c851b62ff65a28e1350c5d94038ef8c6d77f20f4a", "sample_id": "59158b7095a7a863ddcd869c", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f881e9fa637ee11e348d19b/renders/r0_candidate_03.png", "render_sha256": "1b960200222a2e55b39d12ac69e3a82426174210ee8c1c7a4ff415d690883c24", "sample_id": "5f881e9fa637ee11e348d19b", "scores": {"SDL": 6, "SGI": 6, "SIO": 6, "SQL": 7, "STV": 5}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 183}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b031ab95a7a863ddcc9590/renders/r0_candidate_02.png", "render_sha256": "6fa04f20acf2a16caa8baa6affe29c376384ea2c92ffc95dcf11de1f64e32b0b", "sample_id": "58b031ab95a7a863ddcc9590", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4176f95a7a863ddcc6f46/renders/r0_candidate_03.png", "render_sha256": "d06cc18b0dab45d63896bb6abe98214bade2e0d77d6e9a3a3977b3df606f7efa", "sample_id": "58a4176f95a7a863ddcc6f46", "scores": {"SDL": 8, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1667, "output_tokens": 233}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/renders/r0_candidate_03.png", "render_sha256": "d2cca49d3cb630b3827938612006de5c3076b544dab81180315281a9f941bcc4", "sample_id": "58dbb63195a7a863ddccf77a", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/renders/r0_candidate_03.png", "render_sha256": "7c725d229d0150e71b7d42374eb85c14ea482321cd3572106c661e759960bde8", "sample_id": "592fd54295a7a863ddcdb8e3", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 221}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4e0040a637ee11e3bec594/renders/r0_candidate_01.png", "render_sha256": "5d324be48ae46e38a3b1dbdb2fd90ddde67c84b3696e8b86cc411da4c25559a6", "sample_id": "5f4e0040a637ee11e3bec594", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 213}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "render_sha256": "1496539aea250385c3df5447ac8ec97257c6667c8d02a0abd2152c426b3646a8", "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 4, "SGI": 7, "SIO": 7, "SQL": 5, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 208}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8f0039499b85dcc77d42f6/renders/r0_candidate_02.png", "render_sha256": "b34e69c2fd71c1f973df378bbddba8883da7959899c0bafab7cadd887c76ff62", "sample_id": "5e8f0039499b85dcc77d42f6", "scores": {"SDL": 5, "SGI": 3, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b856b601cc8aa54294702eb/renders/r0_candidate_03.png", "render_sha256": "d00acc0a750794fc09e8e7560fc75bb09f2fed24f0a6efa5045d34754d88aea4", "sample_id": "5b856b601cc8aa54294702eb", "scores": {"SDL": 4, "SGI": 3, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok", "usage": {"input_tokens": 847, "output_tokens": 197}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aba3fb6f07aee69771b82ba/renders/r0_candidate_02.png", "render_sha256": "ccc3d1e4c16998a7e7414718935ac006cf1214dfeae9e90ce74894d8f2aa60dc", "sample_id": "5aba3fb6f07aee69771b82ba", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fc4a73aa637ee11e335eb3e/renders/r0_candidate_02.png", "render_sha256": "7901731aa113e108b2f58b46561d168b33b1b51adb87156054f803c339cb9aa8", "sample_id": "5fc4a73aa637ee11e335eb3e", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 1677, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b407f331eb1c99e2a9c842a/renders/r0_candidate_03.png", "render_sha256": "9a917e5f87b610669d61cadb6c224d1e992090e002ac1a9dfdaea5d03e882f43", "sample_id": "5b407f331eb1c99e2a9c842a", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 217}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f50b4f1a637ee11e35331dc/renders/r0_candidate_03.png", "render_sha256": "3be95cb669e6852fde1494f59c834707bc0bc6f6d7a9bffdd2f0519f24b093f8", "sample_id": "5f50b4f1a637ee11e35331dc", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 916, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/renders/r0_candidate_01.png", "render_sha256": "3a8c1e5bc8e9918a9f9e5e8f532e0afaa2a2304624b057f5a16e4900000269b1", "sample_id": "5bf823e88caf671e1c07e8f0", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 220}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5947c48595a7a863ddcddb2e/renders/r0_candidate_03.png", "render_sha256": "83d98e998bf868bda10165f7da4898e9ffc3231327b642b67852485e81c78e83", "sample_id": "5947c48595a7a863ddcddb2e", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 156}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_02.png", "render_sha256": "7688ff00aefbb0c0e6b17d78a02704e56e83a4e8e45712fc29fce08252bf767a", "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a6395a7a863ddcc737e/renders/r0_candidate_03.png", "render_sha256": "b08277dd52ffc210e684f9e8f8c8b1bb4daab5955fb8ba7cef3e943f4010c251", "sample_id": "58ab0a6395a7a863ddcc737e", "scores": {"SDL": 6, "SGI": 6, "SIO": 6, "SQL": 7, "STV": 5}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 3269, "output_tokens": 192}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cb89d0dadbc796055f8979f/renders/r0_candidate_01.png", "render_sha256": "287d902ae390dfb335edc59161593eb9180f44b17785adfed503c4ede867e9d0", "sample_id": "5cb89d0dadbc796055f8979f", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 217}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b8d554818654940f7f6384d/renders/r0_candidate_03.png", "render_sha256": "abcfcdfaacbd93acb34d6f1b0f23ef4bc0343059db1a81cdac4e1873aef0867e", "sample_id": "5b8d554818654940f7f6384d", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 193}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc0ac6978e1194aa673953f/renders/r0_candidate_03.png", "render_sha256": "a40a88f2e135a4cedbdb1816bf3455b4676e80c9744565dd80311366b778df8d", "sample_id": "5bc0ac6978e1194aa673953f", "scores": {"SDL": 4, "SGI": 4, "SIO": 3, "SQL": 3, "STV": 2}, "smean4": 3, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 197}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f85a97fa637ee11e360ac15/renders/r0_candidate_02.png", "render_sha256": "cd88d4a480aa7cddc0a751cebc9c74130a8b3d447dcd53d9c061b202296d7d40", "sample_id": "5f85a97fa637ee11e360ac15", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 8}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b2e12d91eb1c99e2a182b41/renders/r0_candidate_02.png", "render_sha256": "905743c1773115113461209b0852da8a8e34d963ace32e9d359837e384b2678c", "sample_id": "5b2e12d91eb1c99e2a182b41", "scores": {"SDL": 6, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 156}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ca5cf0023c829c821fceeaf/renders/r0_candidate_03.png", "render_sha256": "0b415c1a132dd845c3618f9bd57d0626ac69815a0d368b727c8c2200303bef2d", "sample_id": "5ca5cf0023c829c821fceeaf", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_03.png", "render_sha256": "8f11326e7f6e27fdafd32cc29d393875ec8b5c4fdcaffa9e131f6f79c6076310", "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 170}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7a36214b3890eb072fb652/renders/r0_candidate_02.png", "render_sha256": "06b233e76d0441ee2dd473d740aa76974a93d3414bc2ae59d5d8a30b0f2fe6ae", "sample_id": "5e7a36214b3890eb072fb652", "scores": {"SDL": 6, "SGI": 5, "SIO": 6, "SQL": 5, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1dd995a7a863ddcd9b7d/renders/r0_candidate_03.png", "render_sha256": "c953a0d0f81d6f33fee8f2518e2ba3110e6ac0c3765d9146375fcaacb0f14412", "sample_id": "592d1dd995a7a863ddcd9b7d", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 924, "output_tokens": 230}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59527b2495a7a863ddcdf4c5/renders/r0_candidate_03.png", "render_sha256": "60f3113753e07ecd27fdcbc2609675b3f0387d59db131da949848d82d9c6f3a2", "sample_id": "59527b2495a7a863ddcdf4c5", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 179}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e68e281b04a3d1f19b3ab85/renders/r0_candidate_03.png", "render_sha256": "09ef2918c265df1e882f6971a343a34454d83e9724775362383f1d211e8d1146", "sample_id": "5e68e281b04a3d1f19b3ab85", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1545, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f718be2a637ee11e33eb689/renders/r0_candidate_02.png", "render_sha256": "4770812ac215610e55a69fad6e59819b6d0d5f1efd93e6a2fa41d8c34f980ec2", "sample_id": "5f718be2a637ee11e33eb689", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 3456, "output_tokens": 188}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b130695a7a863ddcc4876/renders/r0_candidate_02.png", "render_sha256": "0d20bb3d748006a3ed34ca3028214f57cc4367c869c9558bc3faf33cfe823414", "sample_id": "589b130695a7a863ddcc4876", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855d491cc8aa5429cfba88/renders/r0_candidate_03.png", "render_sha256": "75e2635bfdbabe79a5d628a05a8dccee276bf32356c94746e9ef140617352a89", "sample_id": "5b855d491cc8aa5429cfba88", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 1631, "output_tokens": 204}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96de4aa637ee11e3f23147/renders/r0_candidate_02.png", "render_sha256": "143130556e0ac887c1929e03645a692615992a93b7a8bfa0a90420ff932acaff", "sample_id": "5f96de4aa637ee11e3f23147", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 3}, "smean4": 4, "status": "ok", "usage": {"input_tokens": 1869, "output_tokens": 190}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1e93f78e1194aa6b847de/renders/r0_candidate_02.png", "render_sha256": "d056313daf46c7f549d5bf5a092a47fe5850e8f483a8687cfe72b3bc3b38a976", "sample_id": "5bd1e93f78e1194aa6b847de", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 167}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df9fcaa9fea0cc37404d2d2/renders/r0_candidate_02.png", "render_sha256": "e0c6dab209f3e4ed3ed1c0befe47157345b5a201bfca75c8857ca3a15096f779", "sample_id": "5df9fcaa9fea0cc37404d2d2", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 3}, "smean4": 3.75, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 181}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dd69895a7a863ddcc5c93/renders/r0_candidate_02.png", "render_sha256": "bfc69e3160e58aa0c6a34d280294f010a763d2707dcafca9478da4f637e4a0a2", "sample_id": "589dd69895a7a863ddcc5c93", "scores": {"SDL": 5, "SGI": 6, "SIO": 6, "SQL": 5, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 3269, "output_tokens": 197}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df218709fea0cc374bd7e9f/renders/r0_candidate_03.png", "render_sha256": "b5557d64fcc088364e450f92799503a2ef632c8a58fd29ce4be62a9c76637c35", "sample_id": "5df218709fea0cc374bd7e9f", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ab0f6f7f07aee69772a1f1d/renders/r0_candidate_02.png", "render_sha256": "859b9cf099f2cdea90c65dcf06da15c41a0ffb1cd16dfaee55d5ab63ad76f316", "sample_id": "5ab0f6f7f07aee69772a1f1d", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 4, "STV": 6}, "smean4": 4.75, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 215}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/renders/r0_candidate_02.png", "render_sha256": "49246e299ea732eb7125833aba2badfea8fd7108fbab1b9ba95368ce2f33eda5", "sample_id": "5bc09e2c78e1194aa64f905f", "scores": {"SDL": 3, "SGI": 4, "SIO": 2, "SQL": 5, "STV": 3}, "smean4": 3.25, "status": "ok", "usage": {"input_tokens": 813, "output_tokens": 193}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fa157eba637ee11e309840c/renders/r0_candidate_03.png", "render_sha256": "91b2d2d813a563d3b88d212e32b0aaee0167abfe8fee959cefd057ef03fad595", "sample_id": "5fa157eba637ee11e309840c", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 201}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/591589eb95a7a863ddcd84d7/renders/r0_candidate_03.png", "render_sha256": "9508ae7d45f58b22addc12c8ad2f558b614887db6fdffa623841c4b630875969", "sample_id": "591589eb95a7a863ddcd84d7", "scores": {"SDL": 8, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 8}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1545, "output_tokens": 201}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c89040985ea3c16f9b71287/renders/r0_candidate_02.png", "render_sha256": "11f064a67fffd67c7f742506ccba0dc9b43a07203c6c53f0a89afa11db97a880", "sample_id": "5c89040985ea3c16f9b71287", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cf14cf58cba87f9434f1d6f/renders/r0_candidate_02.png", "render_sha256": "91687cad84aeeb3c5977076af72cca98d3b922e605d3fa805c5003a5312dcb21", "sample_id": "5cf14cf58cba87f9434f1d6f", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1731, "output_tokens": 217}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5930135495a7a863ddcdc0ac/renders/r0_candidate_02.png", "render_sha256": "1c46ea57e74dd5bfb2e447599b71b502a9dafdb604eaba2e0f79cfbabf834247", "sample_id": "5930135495a7a863ddcdc0ac", "scores": {"SDL": 3, "SGI": 3, "SIO": 5, "SQL": 4, "STV": 3}, "smean4": 3.75, "status": "ok", "usage": {"input_tokens": 2531, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ea2a28b499b85dcc726d7d6/renders/r0_candidate_01.png", "render_sha256": "1ad5897f6015951ef8640e4a8c57ea7205ea7c9b949be65b5951a1ea15e2e92b", "sample_id": "5ea2a28b499b85dcc726d7d6", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 228}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f994d42a637ee11e3dddca6/renders/r0_candidate_02.png", "render_sha256": "417a4bddb4fa1f1563f252516a25c2cbb3b4fc2c937ab0f800c07203679f09d0", "sample_id": "5f994d42a637ee11e3dddca6", "scores": {"SDL": 6, "SGI": 7, "SIO": 3, "SQL": 5, "STV": 6}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_01.png", "render_sha256": "d7c0723d295400a94b54924b9259486fa1bbb4e4d7f316e519f033e3f4dbade1", "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 197}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2bcf8abc8ea6d1c4c9cb8/renders/r0_candidate_02.png", "render_sha256": "b5b49584b8ab2078b2a1f5e223054b413b4a30ba96eaea87f317bf81dcc0e26c", "sample_id": "5db2bcf8abc8ea6d1c4c9cb8", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1731, "output_tokens": 208}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_02.png", "render_sha256": "8c56bce38ef6592c297e31bb98961a7e1d3f0b8323af472f8e0af4e0f18ab91a", "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 152}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd68c8b7d4459dfe1341b4b/renders/r0_candidate_02.png", "render_sha256": "c5e1f178a467ff8cbd254bd6e2a067198c526f223948b63e61281add591b1727", "sample_id": "5cd68c8b7d4459dfe1341b4b", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8ece9d4b3890eb0711d458/renders/r0_candidate_01.png", "render_sha256": "134421a8976887a0af826184397d62bb53cfa46313385e3ec8aace786115eddc", "sample_id": "5e8ece9d4b3890eb0711d458", "scores": {"SDL": 6, "SGI": 4, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 221}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a3288d4d8141396fe9b8539/renders/r0_candidate_01.png", "render_sha256": "1d967c623898b25175e5f9a28209e2f743f5bef5f76c358aa7620ea829aacf29", "sample_id": "5a3288d4d8141396fe9b8539", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_02.png", "render_sha256": "264415463d7137d330200296f43f62d7e6338c1d2e1052eaa12b7f38ece5ea35", "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 3456, "output_tokens": 221}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/renders/r0_candidate_02.png", "render_sha256": "d828f8a499a873a16b475bade697a8f76f6d3880d38f1a9f1b96570d46eeb4c6", "sample_id": "5931159f95a7a863ddcdc76c", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 1295, "output_tokens": 219}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e45421a1cc98b350acda05c/renders/r0_candidate_03.png", "render_sha256": "8f275b8f65d8388c66f29e5892df38193c5edcb7d3029f9d31415a3a69bc0d27", "sample_id": "5e45421a1cc98b350acda05c", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 237}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d234fcd8cba87f94325280c/renders/r0_candidate_03.png", "render_sha256": "e113171faf13d093f46a33b297fb80320393a63cde10b812b625a00777dc7e13", "sample_id": "5d234fcd8cba87f94325280c", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 210}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/renders/r0_candidate_03.png", "render_sha256": "246879ffaeaef79aa89397fd1b7ab33a70bb03deaf29ff2834a1f172c8f8a3f4", "sample_id": "58a4172995a7a863ddcc6eb8", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 169}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f6af7baa637ee11e3909ab1/renders/r0_candidate_03.png", "render_sha256": "523b552290b7a466285512ce0e42c80534e6ddde59594cf851b17736245e2e91", "sample_id": "5f6af7baa637ee11e3909ab1", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 6, "STV": 5}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 3569, "output_tokens": 219}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f48b9b9a637ee11e341870b/renders/r0_candidate_03.png", "render_sha256": "5a0d846ee062433c1e8bb870bdaabffbbe8ffe777369ecc71361fab43bec6b9e", "sample_id": "5f48b9b9a637ee11e341870b", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 4, "STV": 6}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 193}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5abd0af44b568b8eec968c46/renders/r0_candidate_03.png", "render_sha256": "4d411fcff30e5c534b971af6829b9816c220a88026a1200a153bf822d561d2b6", "sample_id": "5abd0af44b568b8eec968c46", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/renders/r0_candidate_03.png", "render_sha256": "eb3c2aed00a167aac67304db5fbf8b15d0a14762427ce708f989c381ac65dc34", "sample_id": "5aab8c95f07aee69776b2742", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 166}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbb62b5a637ee11e3cce210/renders/r0_candidate_02.png", "render_sha256": "9e6b83978c854dd9b4f88a151702201ebb6e53185620e4679336c537b3b4fe05", "sample_id": "5fbb62b5a637ee11e3cce210", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 2}, "smean4": 3.5, "status": "ok", "usage": {"input_tokens": 1677, "output_tokens": 198}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dcf6a95a7a863ddcc5a05/renders/r0_candidate_01.png", "render_sha256": "e3601f2098ace887cda9184adb7c9f612a75dbe698bab29fddd0ef02e144df87", "sample_id": "589dcf6a95a7a863ddcc5a05", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ce6d6a47d4459dfe1cd2b44/renders/r0_candidate_03.png", "render_sha256": "32929ce365c763614c83637491c76588052941bb1fe150b0ee27cbc25f5ba879", "sample_id": "5ce6d6a47d4459dfe1cd2b44", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok", "usage": {"input_tokens": 2152, "output_tokens": 203}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df38d389fea0cc374c15178/renders/r0_candidate_01.png", "render_sha256": "d9dca8c52fcdeeefc3641ba57a0c285cd988ec0c8c61af4e96c6b4113e63303f", "sample_id": "5df38d389fea0cc374c15178", "scores": {"SDL": 4, "SGI": 5, "SIO": 2, "SQL": 4, "STV": 2}, "smean4": 3, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 206}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1c85078e1194aa6186300/renders/r0_candidate_02.png", "render_sha256": "9066778dc7cd62781822c3300712a3768e598dd420c03a8a942864bb769f3f85", "sample_id": "5bd1c85078e1194aa6186300", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 213}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b5643195a7a863ddcca2ad/renders/r0_candidate_02.png", "render_sha256": "1de293d86656a2f39f31fa8b0a12cd5cecfc24138532b345d5147bdb11ff9510", "sample_id": "58b5643195a7a863ddcca2ad", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 1631, "output_tokens": 213}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a227705d8141396fe9a4657/renders/r0_candidate_03.png", "render_sha256": "a64af0f8f74edb9a8b3e6601c37c45781c627111d83516a791f3660c2271a7f2", "sample_id": "5a227705d8141396fe9a4657", "scores": {"SDL": 3, "SGI": 4, "SIO": 4, "SQL": 4, "STV": 2}, "smean4": 3.25, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 191}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbc2153abc8ea6d1c4e3c45/renders/r0_candidate_03.png", "render_sha256": "c546ddae3d5c4817f0325271a53c8d878ed412dcffa083294a88e116b74b9fd1", "sample_id": "5dbc2153abc8ea6d1c4e3c45", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 183}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/renders/r0_candidate_01.png", "render_sha256": "15b16e5e67126aa7d904a69fe87929540f4bf690fd3f3e91d4dcf8355125f47e", "sample_id": "5e6f7e1c4b3890eb07240f9b", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1365, "output_tokens": 152}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e86d9124b3890eb0788e268/renders/r0_candidate_01.png", "render_sha256": "2512b1d0b17c57359dd76b16d7ff24cb355c0e7d2a8483cef63770f9a4a17310", "sample_id": "5e86d9124b3890eb0788e268", "scores": {"SDL": 4, "SGI": 4, "SIO": 5, "SQL": 4, "STV": 5}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 211}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "render_sha256": "fab6d2db522932b793b25d8e7c37bbf43f94449317f069c2816a92158da17b0e", "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 6}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8b2b454b3890eb0748ba51/renders/r0_candidate_03.png", "render_sha256": "5163f4a2b5629b6e12fc514fe6945a3f9b798f90f264ec999fcd7b2b1d616639", "sample_id": "5e8b2b454b3890eb0748ba51", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 214}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855e7a1cc8aa5429da23d2/renders/r0_candidate_02.png", "render_sha256": "be842bdebf0e41c9ba4035d2cf1057dc7db37541cb3eea6a441dfb8ee15e2b4a", "sample_id": "5b855e7a1cc8aa5429da23d2", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 879, "output_tokens": 165}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/renders/r0_candidate_03.png", "render_sha256": "963082923343a2cabd4029f59311fae5dd4ea5f73ccfbcb3111e42767676f652", "sample_id": "58e264ae95a7a863ddcd0528", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 879, "output_tokens": 148}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f23d114a637ee11e35f5c9e/renders/r0_candidate_03.png", "render_sha256": "1537eb7ef40215b3e94ab57f78e1308b3ccb195833473cb5a90325f54ea33c7a", "sample_id": "5f23d114a637ee11e35f5c9e", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1869, "output_tokens": 212}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58affed095a7a863ddcc8f6a/renders/r0_candidate_03.png", "render_sha256": "e4e82ceae6a54beeb61b62c44e98bf39a0cc95390c0a671800b993429ec1ef57", "sample_id": "58affed095a7a863ddcc8f6a", "scores": {"SDL": 5, "SGI": 4, "SIO": 3, "SQL": 4, "STV": 5}, "smean4": 4.25, "status": "ok", "usage": {"input_tokens": 3269, "output_tokens": 215}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cab554023c829c8214ab6a6/renders/r0_candidate_03.png", "render_sha256": "7d6733fbc0dc7507908be79bb2fefccbdc44605b7e18df9a1b45b47da54752a7", "sample_id": "5cab554023c829c8214ab6a6", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 3106, "output_tokens": 207}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e41700e9fea0cc37440961e/renders/r0_candidate_01.png", "render_sha256": "52e14ce839da18bd360c8450b22ff0abf192662668780488c01ce94ce69258e4", "sample_id": "5e41700e9fea0cc37440961e", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 218}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fb77b26a637ee11e35420db/renders/r0_candidate_01.png", "render_sha256": "c42e0a4e20e7f9ce397d15422dd78a2a57647d3db19e8c154f88eb1001d52205", "sample_id": "5fb77b26a637ee11e35420db", "scores": {"SDL": 7, "SGI": 8, "SIO": 4, "SQL": 6, "STV": 7}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1677, "output_tokens": 216}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b714f7b1cc8aa542914b74d/renders/r0_candidate_01.png", "render_sha256": "b51e4dfb8d23c292cf77a649a803ef49a1c60788e73a88616aff89149a46ffc2", "sample_id": "5b714f7b1cc8aa542914b74d", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1631, "output_tokens": 218}} +{"arm": "general", "path": "layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/renders/r0_candidate_01.png", "render_sha256": "1b25d831cc7efaac4f914ab09f249b66f7dbe9e17968ccb1cc4d2b0c8634fa7f", "sample_id": "58ab0a9b95a7a863ddcc7397", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 6, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 221}} +{"arm": "gt", "path": "layout_agent/output/crello_59526eab95a7a863ddcdeb6c/ground_truth_preview.jpg", "render_sha256": "760d5fee6fc09a3e4e75869071c73479e4363c0065d0900e6b3864ea1072d745", "sample_id": "59526eab95a7a863ddcdeb6c", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 227}} +{"arm": "gt", "path": "layout_agent/output/crello_5e7380974b3890eb0747d5c4/ground_truth_preview.jpg", "render_sha256": "d0eab6769bf44c1436a653f733e857c48bbe4b8037a08c4d7fda5cb1e1ed7347", "sample_id": "5e7380974b3890eb0747d5c4", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 153}} +{"arm": "gt", "path": "layout_agent/output/crello_5da04604abc8ea6d1cbe2935/ground_truth_preview.jpg", "render_sha256": "a6da04b6a7c8e5f4ff4b03c69f84d88e46a8db751ad7d4ff6c23e0be412a56d4", "sample_id": "5da04604abc8ea6d1cbe2935", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 203}} +{"arm": "gt", "path": "layout_agent/output/crello_5f4799b9a637ee11e3cda600/ground_truth_preview.jpg", "render_sha256": "7801c103cfaa4b072641ac6dbfc915b10f961654d80bf44c7ade97b4ea1206a9", "sample_id": "5f4799b9a637ee11e3cda600", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1264, "output_tokens": 237}} +{"arm": "gt", "path": "layout_agent/output/crello_595298e195a7a863ddce04c2/ground_truth_preview.jpg", "render_sha256": "9020a0a1dbf0e14d866b7ebdb30d8ea85fc0f1759de0967facfec1383b04cf7c", "sample_id": "595298e195a7a863ddce04c2", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 217}} +{"arm": "gt", "path": "layout_agent/output/crello_592fdcc595a7a863ddcdbde1/ground_truth_preview.jpg", "render_sha256": "1bc2071454eeac7e7d07813fda928821f351794f9b71d3be1d1032126f4875a2", "sample_id": "592fdcc595a7a863ddcdbde1", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 164}} +{"arm": "gt", "path": "layout_agent/output/crello_5d68df79e79a2a634ea55321/ground_truth_preview.jpg", "render_sha256": "c5b657edbef8ffef99719e4038f6bb7208abdf2a93a8158ca1023e74ed360f13", "sample_id": "5d68df79e79a2a634ea55321", "scores": {"SDL": 6, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 5}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 206}} +{"arm": "gt", "path": "layout_agent/output/crello_5c1e2e71133a78539266d649/ground_truth_preview.jpg", "render_sha256": "2df64cd9da920c658ae1f07b170be94f94fb34a62f1790f57482fdc4918dca0c", "sample_id": "5c1e2e71133a78539266d649", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 209}} +{"arm": "gt", "path": "layout_agent/output/crello_5fbe1dc7a637ee11e37e5003/ground_truth_preview.jpg", "render_sha256": "c12c2d08e979a815a9def86f78fb85f5c3f7b192596390c11cf6c9a7dfff397f", "sample_id": "5fbe1dc7a637ee11e37e5003", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1417, "output_tokens": 229}} +{"arm": "gt", "path": "layout_agent/output/crello_5a21a25cd8141396fe9a3ddd/ground_truth_preview.jpg", "render_sha256": "3baf76de96a906a2a623ad70f55e6f1d90e9858f2e7c6039d1167d0492cbb9fd", "sample_id": "5a21a25cd8141396fe9a3ddd", "scores": {"SDL": 8, "SGI": 7, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 191}} +{"arm": "gt", "path": "layout_agent/output/crello_5a21793fd8141396fe9a2b83/ground_truth_preview.jpg", "render_sha256": "99a30046ca3972aef87fc3afb4226bce5f1d2ee57bd61498b09f3d4d18468b56", "sample_id": "5a21793fd8141396fe9a2b83", "scores": {"SDL": 8, "SGI": 8, "SIO": 5, "SQL": 9, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 159}} +{"arm": "gt", "path": "layout_agent/output/crello_5c1e235d133a78539251c177/ground_truth_preview.jpg", "render_sha256": "122cd91a6baa3cc1f404c8618d74dd355956e3b911daf909ad56e7324a044d9d", "sample_id": "5c1e235d133a78539251c177", "scores": {"SDL": 8, "SGI": 9, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 207}} +{"arm": "gt", "path": "layout_agent/output/crello_589b10aa95a7a863ddcc47e9/ground_truth_preview.jpg", "render_sha256": "bae8c18890f58209e7e27ed3c1c3113dcb634c2c5081968f4304c5d569189c1e", "sample_id": "589b10aa95a7a863ddcc47e9", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 7, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 204}} +{"arm": "gt", "path": "layout_agent/output/crello_592d1c4f95a7a863ddcd99a0/ground_truth_preview.jpg", "render_sha256": "52c62f8534c81015f6639d703425eb3188f8fc58edc4f8c15d3e93f18b48eddd", "sample_id": "592d1c4f95a7a863ddcd99a0", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 861, "output_tokens": 188}} +{"arm": "gt", "path": "layout_agent/output/crello_5cd6984b7d4459dfe140c0b4/ground_truth_preview.jpg", "render_sha256": "04c7adcf33bdf2e996bb264d19cb26fd42b32d5b16a9202575e8f130c6e399a1", "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1417, "output_tokens": 221}} +{"arm": "gt", "path": "layout_agent/output/crello_5db2addfabc8ea6d1c333fbc/ground_truth_preview.jpg", "render_sha256": "b06def8e7ebd8e6fa78569d53b7b561330391f34fa7058e548d3bcc5c91ed106", "sample_id": "5db2addfabc8ea6d1c333fbc", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 195}} +{"arm": "gt", "path": "layout_agent/output/crello_5a328987d8141396fe9b856b/ground_truth_preview.jpg", "render_sha256": "1d9236238e24ec9cd53aab52c822a4843931486e6c46d3966050ef448641a614", "sample_id": "5a328987d8141396fe9b856b", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 192}} +{"arm": "gt", "path": "layout_agent/output/crello_5f96895da637ee11e38af71a/ground_truth_preview.jpg", "render_sha256": "b1d5a3c9b6fa89354107aa1d894b280c1e06c7ce3ebab5fe8106b141031188d2", "sample_id": "5f96895da637ee11e38af71a", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1117, "output_tokens": 224}} +{"arm": "gt", "path": "layout_agent/output/crello_59158b7095a7a863ddcd869c/ground_truth_preview.jpg", "render_sha256": "189bed9116a694c7abdc4ae3cd3c51238367bcebebf76ff4c626e26889f46287", "sample_id": "59158b7095a7a863ddcd869c", "scores": {"SDL": 8, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 140}} +{"arm": "gt", "path": "layout_agent/output/crello_5f881e9fa637ee11e348d19b/ground_truth_preview.jpg", "render_sha256": "d36786ae708d5a9914ee32fb55d991683aa18db6f5ffc8cdf0cebdd23b1edcdf", "sample_id": "5f881e9fa637ee11e348d19b", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 212}} +{"arm": "gt", "path": "layout_agent/output/crello_58b031ab95a7a863ddcc9590/ground_truth_preview.jpg", "render_sha256": "c8969ae08a840fa3859b602bf4a826f00aa19ec6e6fe88ba91163d4492a52a6c", "sample_id": "58b031ab95a7a863ddcc9590", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_58a4176f95a7a863ddcc6f46/ground_truth_preview.jpg", "render_sha256": "a14c754d812b4ff0aa27b81aedbe6c62e879a4ff788d53403831720fa2c18b98", "sample_id": "58a4176f95a7a863ddcc6f46", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1187, "output_tokens": 202}} +{"arm": "gt", "path": "layout_agent/output/crello_58dbb63195a7a863ddccf77a/ground_truth_preview.jpg", "render_sha256": "fc568c34711f768c74f087df2ab5a8f2a0467c4f30bd7b9c14071d6f83733085", "sample_id": "58dbb63195a7a863ddccf77a", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 198}} +{"arm": "gt", "path": "layout_agent/output/crello_592fd54295a7a863ddcdb8e3/ground_truth_preview.jpg", "render_sha256": "09050178e56b8efc4e10c2cbd65d09ea85f1157020244a0c641b7aa961a9b94d", "sample_id": "592fd54295a7a863ddcdb8e3", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 201}} +{"arm": "gt", "path": "layout_agent/output/crello_5f4e0040a637ee11e3bec594/ground_truth_preview.jpg", "render_sha256": "89b504b81178bc9bb7c878f5afc5ba881ce18e64a102d42d160d2c5483612b46", "sample_id": "5f4e0040a637ee11e3bec594", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 204}} +{"arm": "gt", "path": "layout_agent/output/crello_5d4ae4aecf657b21effa9831/ground_truth_preview.jpg", "render_sha256": "682c7ed2db07223bd76ff49ad4fa25f3560c5dda0545d9f212ef7cdbb1f22737", "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 218}} +{"arm": "gt", "path": "layout_agent/output/crello_5e8f0039499b85dcc77d42f6/ground_truth_preview.jpg", "render_sha256": "132d5990bed8834f05ab3d7739ec8d6241fb04a4eeedcb33dba0078ec5076ff2", "sample_id": "5e8f0039499b85dcc77d42f6", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 199}} +{"arm": "gt", "path": "layout_agent/output/crello_5b856b601cc8aa54294702eb/ground_truth_preview.jpg", "render_sha256": "53e4c8e96b3939b859fa027e61743bf192a69431b43f566742933bd3f9377de8", "sample_id": "5b856b601cc8aa54294702eb", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 847, "output_tokens": 207}} +{"arm": "gt", "path": "layout_agent/output/crello_5aba3fb6f07aee69771b82ba/ground_truth_preview.jpg", "render_sha256": "1e480eb19d9444451b03fcc17e55e6c84160131af70b2ab49e6e2aaa93c88d74", "sample_id": "5aba3fb6f07aee69771b82ba", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 180}} +{"arm": "gt", "path": "layout_agent/output/crello_5fc4a73aa637ee11e335eb3e/ground_truth_preview.jpg", "render_sha256": "e267b50131a7fb11fd6f86142ed739c921126e7b98f75760984002b0f4da572b", "sample_id": "5fc4a73aa637ee11e335eb3e", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1417, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5b407f331eb1c99e2a9c842a/ground_truth_preview.jpg", "render_sha256": "a81f63c74665d721199f6e5b222ef6cfac27a3d70a0cafca9ddecfb705a93941", "sample_id": "5b407f331eb1c99e2a9c842a", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 214}} +{"arm": "gt", "path": "layout_agent/output/crello_5f50b4f1a637ee11e35331dc/ground_truth_preview.jpg", "render_sha256": "162429e92e1afa2804849192c705c535a61252560888bce7172a9c6228c470dc", "sample_id": "5f50b4f1a637ee11e35331dc", "scores": {"SDL": 8, "SGI": 9, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 916, "output_tokens": 209}} +{"arm": "gt", "path": "layout_agent/output/crello_5bf823e88caf671e1c07e8f0/ground_truth_preview.jpg", "render_sha256": "ce9acf0d9a6745d5c90fa2a3e26ef4f470a79ea31dce34ed2e3ac98a8cba70d6", "sample_id": "5bf823e88caf671e1c07e8f0", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 201}} +{"arm": "gt", "path": "layout_agent/output/crello_5947c48595a7a863ddcddb2e/ground_truth_preview.jpg", "render_sha256": "ad870db76778bc419ae7493d0b0259f811ec956b4cb90727e905ff3648ffeb12", "sample_id": "5947c48595a7a863ddcddb2e", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 6, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 216}} +{"arm": "gt", "path": "layout_agent/output/crello_58ab189395a7a863ddcc7847/ground_truth_preview.jpg", "render_sha256": "0f2f001da52bca84595d11295bc9c30cc5b1a187119cc7b47a5a39e6e1bc38ef", "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 194}} +{"arm": "gt", "path": "layout_agent/output/crello_58ab0a6395a7a863ddcc737e/ground_truth_preview.jpg", "render_sha256": "fdda5cbbc8358cfd4a8d3fb44e391b40c86a97b93c23f6fa9cdfa7d44c5d3316", "sample_id": "58ab0a6395a7a863ddcc737e", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 226}} +{"arm": "gt", "path": "layout_agent/output/crello_5cb89d0dadbc796055f8979f/ground_truth_preview.jpg", "render_sha256": "ad2bb7f5d81456b8fb09f46c01480411d1a23d5765ab584ec65fcba806a71abe", "sample_id": "5cb89d0dadbc796055f8979f", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 203}} +{"arm": "gt", "path": "layout_agent/output/crello_5b8d554818654940f7f6384d/ground_truth_preview.jpg", "render_sha256": "bfd5850e4d0b77b7e837a0c7036ada3c18df8e9e7452f2e0b8ed2253d35ca14d", "sample_id": "5b8d554818654940f7f6384d", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 194}} +{"arm": "gt", "path": "layout_agent/output/crello_5bc0ac6978e1194aa673953f/ground_truth_preview.jpg", "render_sha256": "ecbd6ec4fb522042b85560ae82955da5a2c2509f81523e5abec91f7885728c20", "sample_id": "5bc0ac6978e1194aa673953f", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 225}} +{"arm": "gt", "path": "layout_agent/output/crello_5f85a97fa637ee11e360ac15/ground_truth_preview.jpg", "render_sha256": "fbe210a3ced6462368d04a5c295c1bbcacd96c7e7831ebc3651c5c7a21d7157c", "sample_id": "5f85a97fa637ee11e360ac15", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 221}} +{"arm": "gt", "path": "layout_agent/output/crello_5b2e12d91eb1c99e2a182b41/ground_truth_preview.jpg", "render_sha256": "e616a01fead26775cd3df59419d21e2c9e9c63ef5ca59fb7797a100e199ba2c5", "sample_id": "5b2e12d91eb1c99e2a182b41", "scores": {"SDL": 8, "SGI": 9, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 202}} +{"arm": "gt", "path": "layout_agent/output/crello_5ca5cf0023c829c821fceeaf/ground_truth_preview.jpg", "render_sha256": "740335f08e891bbdcc67d01bcc200a5f6e49b1ef477452fd5c5459338ec61211", "sample_id": "5ca5cf0023c829c821fceeaf", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 214}} +{"arm": "gt", "path": "layout_agent/output/crello_5888dd7995a7a863ddcc2e86/ground_truth_preview.jpg", "render_sha256": "edc3862baf6e24a880934a2f25c84e5722b5de3bbec17de3ade8f5a4714f8a75", "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 184}} +{"arm": "gt", "path": "layout_agent/output/crello_5e7a36214b3890eb072fb652/ground_truth_preview.jpg", "render_sha256": "169a3e5c1e3849710d7b066661f670156c8c41a80c02130a7a504e12a0ee0c5d", "sample_id": "5e7a36214b3890eb072fb652", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 155}} +{"arm": "gt", "path": "layout_agent/output/crello_592d1dd995a7a863ddcd9b7d/ground_truth_preview.jpg", "render_sha256": "9f93ec2d8ee625f63c0b9a45d473c6c4fe0042be6b9395e6fda375d47263cf22", "sample_id": "592d1dd995a7a863ddcd9b7d", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 924, "output_tokens": 226}} +{"arm": "gt", "path": "layout_agent/output/crello_59527b2495a7a863ddcdf4c5/ground_truth_preview.jpg", "render_sha256": "e8fbdd59c88d8211d0658313eb438362bd48e7c5eede5c10f4a5da815e3f5bc9", "sample_id": "59527b2495a7a863ddcdf4c5", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 206}} +{"arm": "gt", "path": "layout_agent/output/crello_5e68e281b04a3d1f19b3ab85/ground_truth_preview.jpg", "render_sha256": "5adbc9744f80fcfd1254838f74b35595ab18342da922a23b0b86f6826bc300cc", "sample_id": "5e68e281b04a3d1f19b3ab85", "scores": {"SDL": 7, "SGI": 6, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1110, "output_tokens": 234}} +{"arm": "gt", "path": "layout_agent/output/crello_5f718be2a637ee11e33eb689/ground_truth_preview.jpg", "render_sha256": "2f50538b3d55c12733edab41297fe1f14b3182779fc2f550438c1934688e98a0", "sample_id": "5f718be2a637ee11e33eb689", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_589b130695a7a863ddcc4876/ground_truth_preview.jpg", "render_sha256": "6d3ec200b8fa4adf4c6b0c877b584f6df17fc7abb2f8f448682666613edf4b2e", "sample_id": "589b130695a7a863ddcc4876", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 205}} +{"arm": "gt", "path": "layout_agent/output/crello_5b855d491cc8aa5429cfba88/ground_truth_preview.jpg", "render_sha256": "f1e8f797677b940ac5b8e6e359ea5261a8525ab8786497f82cd80dcff5d79259", "sample_id": "5b855d491cc8aa5429cfba88", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 237}} +{"arm": "gt", "path": "layout_agent/output/crello_5f96de4aa637ee11e3f23147/ground_truth_preview.jpg", "render_sha256": "efe95ef55c4cb535a40d8930d72ceb1761fd87f709fca5e502c23f3a6bcf4a50", "sample_id": "5f96de4aa637ee11e3f23147", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 218}} +{"arm": "gt", "path": "layout_agent/output/crello_5bd1e93f78e1194aa6b847de/ground_truth_preview.jpg", "render_sha256": "32cfe5cc94b3ff064006cbbb8327aa33897572eeb92867fb03cfb90eadc72cd4", "sample_id": "5bd1e93f78e1194aa6b847de", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 222}} +{"arm": "gt", "path": "layout_agent/output/crello_5df9fcaa9fea0cc37404d2d2/ground_truth_preview.jpg", "render_sha256": "3b4f747c1107675b3217e5eeed840954acfcade30ae7bd305d77d7e64952e43d", "sample_id": "5df9fcaa9fea0cc37404d2d2", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 218}} +{"arm": "gt", "path": "layout_agent/output/crello_589dd69895a7a863ddcc5c93/ground_truth_preview.jpg", "render_sha256": "c22f479c56b5e0e95fbb963fe68a91be718d2ade36f4fd2e02f2b10f4b4cded4", "sample_id": "589dd69895a7a863ddcc5c93", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 220}} +{"arm": "gt", "path": "layout_agent/output/crello_5df218709fea0cc374bd7e9f/ground_truth_preview.jpg", "render_sha256": "9c60aa079fab919c874317fadfec3714a1321523c105917ece83957a5ae84a4f", "sample_id": "5df218709fea0cc374bd7e9f", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 217}} +{"arm": "gt", "path": "layout_agent/output/crello_5ab0f6f7f07aee69772a1f1d/ground_truth_preview.jpg", "render_sha256": "f472973e8dbe90ef00a7b21063955edc59628fe2a8718d180215675d50e32588", "sample_id": "5ab0f6f7f07aee69772a1f1d", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 204}} +{"arm": "gt", "path": "layout_agent/output/crello_5bc09e2c78e1194aa64f905f/ground_truth_preview.jpg", "render_sha256": "82a9e5f914ef140cefc8f2d3353a83c0d3441482a3f20303bc349d4818921e6b", "sample_id": "5bc09e2c78e1194aa64f905f", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 813, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5fa157eba637ee11e309840c/ground_truth_preview.jpg", "render_sha256": "328b48536e4e39fa2ea5f5821acf1162ed3bdc56a8cd29ee02364481449182de", "sample_id": "5fa157eba637ee11e309840c", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 229}} +{"arm": "gt", "path": "layout_agent/output/crello_591589eb95a7a863ddcd84d7/ground_truth_preview.jpg", "render_sha256": "9a5e3e798571ac71cd975be2ee5850544dff522b6e25eeccfc6c1bb60d477430", "sample_id": "591589eb95a7a863ddcd84d7", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1072, "output_tokens": 194}} +{"arm": "gt", "path": "layout_agent/output/crello_5c89040985ea3c16f9b71287/ground_truth_preview.jpg", "render_sha256": "696de2cc0968e3eaa1ed790249a3d8e049a8cd7be40506a4611c007493241b80", "sample_id": "5c89040985ea3c16f9b71287", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 221}} +{"arm": "gt", "path": "layout_agent/output/crello_5cf14cf58cba87f9434f1d6f/ground_truth_preview.jpg", "render_sha256": "622243d013d71be9482952fc2445e70c178aa2b934b5e016716f41ee0e4d90ad", "sample_id": "5cf14cf58cba87f9434f1d6f", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 215}} +{"arm": "gt", "path": "layout_agent/output/crello_5930135495a7a863ddcdc0ac/ground_truth_preview.jpg", "render_sha256": "5e6b7109f91f29aeddbca16536f7066afd8bd97c2440e020a2b32b84a11a13cd", "sample_id": "5930135495a7a863ddcdc0ac", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1225, "output_tokens": 198}} +{"arm": "gt", "path": "layout_agent/output/crello_5ea2a28b499b85dcc726d7d6/ground_truth_preview.jpg", "render_sha256": "77c7d5faa5e9beb139de7d16ca0bea58c1fb76b1fecfb8e908bd4d4961f4bbba", "sample_id": "5ea2a28b499b85dcc726d7d6", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 216}} +{"arm": "gt", "path": "layout_agent/output/crello_5f994d42a637ee11e3dddca6/ground_truth_preview.jpg", "render_sha256": "2936f34f01b09ddcf53dfa65f66f2bb29d8eca76e423b578a9a7a39ae9fcfdcd", "sample_id": "5f994d42a637ee11e3dddca6", "scores": {"SDL": 7, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 215}} +{"arm": "gt", "path": "layout_agent/output/crello_5dbbff2eabc8ea6d1c15c382/ground_truth_preview.jpg", "render_sha256": "82c16cb0750bfeb6ccc113cd82bc2873fdd1a3910c21cc1701fd16d86c91cb98", "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 239}} +{"arm": "gt", "path": "layout_agent/output/crello_5db2bcf8abc8ea6d1c4c9cb8/ground_truth_preview.jpg", "render_sha256": "ec4c42c7d6630c1a0306dd1293959983da485700bd37c0d7904afb9113aef55f", "sample_id": "5db2bcf8abc8ea6d1c4c9cb8", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 223}} +{"arm": "gt", "path": "layout_agent/output/crello_5df211c29fea0cc374abbbba/ground_truth_preview.jpg", "render_sha256": "6a636b413cd5ed391d42cfff5d013391e2c9d3377bc8dd4260cd206014c63ee2", "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 200}} +{"arm": "gt", "path": "layout_agent/output/crello_5cd68c8b7d4459dfe1341b4b/ground_truth_preview.jpg", "render_sha256": "b3ef67492ece1f16372a8534435885542d9f22f9893087fee85d56f24d0632fa", "sample_id": "5cd68c8b7d4459dfe1341b4b", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 178}} +{"arm": "gt", "path": "layout_agent/output/crello_5e8ece9d4b3890eb0711d458/ground_truth_preview.jpg", "render_sha256": "ec699a3bb9158c0806670a5f2e66928506840523a52ec016c3843a00485ebe35", "sample_id": "5e8ece9d4b3890eb0711d458", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 213}} +{"arm": "gt", "path": "layout_agent/output/crello_5a3288d4d8141396fe9b8539/ground_truth_preview.jpg", "render_sha256": "c85373ce999a6f654cec019f11cf95a634b21b6cbbe89b884dd6212d1fc1f9f8", "sample_id": "5a3288d4d8141396fe9b8539", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 200}} +{"arm": "gt", "path": "layout_agent/output/crello_5f5b5a3da637ee11e3e5adbf/ground_truth_preview.jpg", "render_sha256": "4f700e0f890f2051b7779f54088e1751b64f61430175d769f46aa5656c63356f", "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1609, "output_tokens": 215}} +{"arm": "gt", "path": "layout_agent/output/crello_5931159f95a7a863ddcdc76c/ground_truth_preview.jpg", "render_sha256": "3345c89954e687d314125e90e4ac3b4543d3ec2fbd8bdf16c910ab70da80dc84", "sample_id": "5931159f95a7a863ddcdc76c", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok", "usage": {"input_tokens": 1295, "output_tokens": 193}} +{"arm": "gt", "path": "layout_agent/output/crello_5e45421a1cc98b350acda05c/ground_truth_preview.jpg", "render_sha256": "4d8a6af413f90256c47432776a053905f412cfc70d685f0cf3b9f411c78cccb7", "sample_id": "5e45421a1cc98b350acda05c", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 152}} +{"arm": "gt", "path": "layout_agent/output/crello_5d234fcd8cba87f94325280c/ground_truth_preview.jpg", "render_sha256": "fc3434dead18ca8b2998b90e6be9eaffc634c227aca555d76941ad286a5cfc37", "sample_id": "5d234fcd8cba87f94325280c", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 230}} +{"arm": "gt", "path": "layout_agent/output/crello_58a4172995a7a863ddcc6eb8/ground_truth_preview.jpg", "render_sha256": "fd05d0f3d9980f71845b6b37cc6a50d7b9422680b40215d2bbe767deb275ef01", "sample_id": "58a4172995a7a863ddcc6eb8", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 883, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5f6af7baa637ee11e3909ab1/ground_truth_preview.jpg", "render_sha256": "13915d9104d419b068109e18f58f23593ef487cc30e00e2694bbb2cd014ecd71", "sample_id": "5f6af7baa637ee11e3909ab1", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5f48b9b9a637ee11e341870b/ground_truth_preview.jpg", "render_sha256": "a4ed4f9cf299a1ace309eb50deb599922abc5f43bb754ec63c86c841cbf119de", "sample_id": "5f48b9b9a637ee11e341870b", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 191}} +{"arm": "gt", "path": "layout_agent/output/crello_5abd0af44b568b8eec968c46/ground_truth_preview.jpg", "render_sha256": "432def1f1a7a72bc01b48783e78b59150f90bee9e924fb4072d66d3d10c9f8f2", "sample_id": "5abd0af44b568b8eec968c46", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 215}} +{"arm": "gt", "path": "layout_agent/output/crello_5aab8c95f07aee69776b2742/ground_truth_preview.jpg", "render_sha256": "c46365df364d6d8abbb07b72ceb637cb1d4bd27fa9b34a8afce058f03b8d2e5d", "sample_id": "5aab8c95f07aee69776b2742", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 206}} +{"arm": "gt", "path": "layout_agent/output/crello_5fbb62b5a637ee11e3cce210/ground_truth_preview.jpg", "render_sha256": "ed9f3dafc638bf07dcbfc1111803f0b0798cc27169f9bf3fc3da5a0811df2ecf", "sample_id": "5fbb62b5a637ee11e3cce210", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 8}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1417, "output_tokens": 195}} +{"arm": "gt", "path": "layout_agent/output/crello_589dcf6a95a7a863ddcc5a05/ground_truth_preview.jpg", "render_sha256": "5dada80695f654a4c4674eda7ba87cde63137eb6257c1d779a6da64cbe884dcc", "sample_id": "589dcf6a95a7a863ddcc5a05", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok", "usage": {"input_tokens": 995, "output_tokens": 206}} +{"arm": "gt", "path": "layout_agent/output/crello_5ce6d6a47d4459dfe1cd2b44/ground_truth_preview.jpg", "render_sha256": "725c39fef5b193191c9d5f0de3e93c8ef45ba1a4c320542059b4865216c69a6a", "sample_id": "5ce6d6a47d4459dfe1cd2b44", "scores": {"SDL": 8, "SGI": 9, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1993, "output_tokens": 219}} +{"arm": "gt", "path": "layout_agent/output/crello_5df38d389fea0cc374c15178/ground_truth_preview.jpg", "render_sha256": "bca9992af1ed8928d5bbd76d6d39226c738101a9d903913c69eecba7ca5c344f", "sample_id": "5df38d389fea0cc374c15178", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 217}} +{"arm": "gt", "path": "layout_agent/output/crello_5bd1c85078e1194aa6186300/ground_truth_preview.jpg", "render_sha256": "2ca4af86603dad3f3c43de7cca18da338af9e6f8f76ee06d6bb0b33557ad7d84", "sample_id": "5bd1c85078e1194aa6186300", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 199}} +{"arm": "gt", "path": "layout_agent/output/crello_58b5643195a7a863ddcca2ad/ground_truth_preview.jpg", "render_sha256": "d315ce35f861267a8a97f4dbd7bb7e148ddf2ba1fa4d714cbf2cd1f2d898d1ac", "sample_id": "58b5643195a7a863ddcca2ad", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 222}} +{"arm": "gt", "path": "layout_agent/output/crello_5a227705d8141396fe9a4657/ground_truth_preview.jpg", "render_sha256": "dcf3e30dc5bee03d210e21b9ec025b2809fc82781332b6805baba1638bb962e7", "sample_id": "5a227705d8141396fe9a4657", "scores": {"SDL": 5, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 5}, "smean4": 5.75, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 210}} +{"arm": "gt", "path": "layout_agent/output/crello_5dbc2153abc8ea6d1c4e3c45/ground_truth_preview.jpg", "render_sha256": "8dbce8f78d095fbcfb3c4d47bccd5a7b5063121dd0e24b2340afe757e2f60828", "sample_id": "5dbc2153abc8ea6d1c4e3c45", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 193}} +{"arm": "gt", "path": "layout_agent/output/crello_5e6f7e1c4b3890eb07240f9b/ground_truth_preview.jpg", "render_sha256": "a4fb86aeb76ae03f4b72c47d17404bae613aadd2a361b2860636cc894969be51", "sample_id": "5e6f7e1c4b3890eb07240f9b", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok", "usage": {"input_tokens": 1365, "output_tokens": 199}} +{"arm": "gt", "path": "layout_agent/output/crello_5e86d9124b3890eb0788e268/ground_truth_preview.jpg", "render_sha256": "4613e1b20b1df78a1971129235176355e11404741dd89ebc0e68cc753f8823ef", "sample_id": "5e86d9124b3890eb0788e268", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 4, "STV": 5}, "smean4": 4.5, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 202}} +{"arm": "gt", "path": "layout_agent/output/crello_5cde64e47d4459dfe1b81863/ground_truth_preview.jpg", "render_sha256": "0b818df63e2575ebabc3acaeefcce9021c28109ba3719d327822e64a755e3198", "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.5, "status": "ok", "usage": {"input_tokens": 1089, "output_tokens": 217}} +{"arm": "gt", "path": "layout_agent/output/crello_5e8b2b454b3890eb0748ba51/ground_truth_preview.jpg", "render_sha256": "8837a13fc792f3ac92a8d683876a2e5f345fde701ad030e73266e20daa7a79fb", "sample_id": "5e8b2b454b3890eb0748ba51", "scores": {"SDL": 7, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 227}} +{"arm": "gt", "path": "layout_agent/output/crello_5b855e7a1cc8aa5429da23d2/ground_truth_preview.jpg", "render_sha256": "349157c1a71857b5d38a19aa60da45b06136916ac38c6f1b3a2709d6760cf467", "sample_id": "5b855e7a1cc8aa5429da23d2", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 879, "output_tokens": 205}} +{"arm": "gt", "path": "layout_agent/output/crello_58e264ae95a7a863ddcd0528/ground_truth_preview.jpg", "render_sha256": "605011aaea9adf4431849eee3f2e892e947f620dd65e041945689c4b6aedba29", "sample_id": "58e264ae95a7a863ddcd0528", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.5, "status": "ok", "usage": {"input_tokens": 879, "output_tokens": 214}} +{"arm": "gt", "path": "layout_agent/output/crello_5f23d114a637ee11e35f5c9e/ground_truth_preview.jpg", "render_sha256": "864f17956b873634f7db2a209b2b1d3906b4797542f002f2d1eca76bf18153ed", "sample_id": "5f23d114a637ee11e35f5c9e", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 208}} +{"arm": "gt", "path": "layout_agent/output/crello_58affed095a7a863ddcc8f6a/ground_truth_preview.jpg", "render_sha256": "02d7ea80112cbfcf4931c6aae286ff595f9a33abd486d44c68bbbc1c670ef4cd", "sample_id": "58affed095a7a863ddcc8f6a", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok", "usage": {"input_tokens": 1686, "output_tokens": 214}} +{"arm": "gt", "path": "layout_agent/output/crello_5cab554023c829c8214ab6a6/ground_truth_preview.jpg", "render_sha256": "85b16576aca61bb18c51c6dcddcebff58993b06727c387aa3b3da64ede5ff036", "sample_id": "5cab554023c829c8214ab6a6", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1456, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5e41700e9fea0cc37440961e/ground_truth_preview.jpg", "render_sha256": "7335884aa31983c29419460f4d6181ebc3a5eacf217391b7f3881d692cf5c1b0", "sample_id": "5e41700e9fea0cc37440961e", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok", "usage": {"input_tokens": 1665, "output_tokens": 209}} +{"arm": "gt", "path": "layout_agent/output/crello_5fb77b26a637ee11e35420db/ground_truth_preview.jpg", "render_sha256": "f0784c7ba9c9344de1b3428d584a938738bf0f3a359d4cc8ec22d25a9ef9e612", "sample_id": "5fb77b26a637ee11e35420db", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok", "usage": {"input_tokens": 1417, "output_tokens": 211}} +{"arm": "gt", "path": "layout_agent/output/crello_5b714f7b1cc8aa542914b74d/ground_truth_preview.jpg", "render_sha256": "85b7fa565152aa5cafc3faf345a90250b6de50951a8422b5a0800a34d4a349bd", "sample_id": "5b714f7b1cc8aa542914b74d", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 1379, "output_tokens": 241}} +{"arm": "gt", "path": "layout_agent/output/crello_58ab0a9b95a7a863ddcc7397/ground_truth_preview.jpg", "render_sha256": "b9475a4467cfb139c4e45b4741822d59c03e89366eeb92e2c3d0d24e1f136234", "sample_id": "58ab0a9b95a7a863ddcc7397", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok", "usage": {"input_tokens": 933, "output_tokens": 207}} diff --git a/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/aggregate.json b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/aggregate.json new file mode 100644 index 000000000..e1adb5f05 --- /dev/null +++ b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/aggregate.json @@ -0,0 +1,297 @@ +{ + "api_calls_used": 398, + "arm_means": { + "gt": { + "SDL": 7.01, + "SGI": 7.33, + "SIO": 5.63, + "SQL": 7.45, + "STV": 6.86, + "n": 100, + "smean4": 6.7375 + }, + "t0": { + "SDL": 5.22, + "SGI": 5.77, + "SIO": 4.79, + "SQL": 5.85, + "STV": 5.05, + "n": 100, + "pct_of_gt_smean4": 77.58812615955473, + "smean4": 5.2275 + }, + "t2": { + "SDL": 5.469387755102041, + "SGI": 6.051020408163265, + "SIO": 4.76530612244898, + "SQL": 5.989795918367347, + "STV": 5.1938775510204085, + "n": 98, + "pct_of_gt_smean4": 79.47446139865966, + "smean4": 5.354591836734694 + }, + "t3": { + "SDL": 5.434343434343434, + "SGI": 6.02020202020202, + "SIO": 4.797979797979798, + "SQL": 5.878787878787879, + "STV": 5.242424242424242, + "n": 99, + "pct_of_gt_smean4": 79.2338974157156, + "smean4": 5.338383838383838 + } + }, + "call_cap": 420, + "evaluation_id": "a3-relation-n100-cole-v1", + "judge_model": "gpt-5.4-mini-2026-03-17", + "matched_ids_count": 100, + "paired": { + "t0_vs_gt": { + "n_pairs": 100, + "per_axis": { + "SDL": { + "losses": 81, + "sign_p": 7.210946989931019e-22, + "ties": 17, + "wins": 2 + }, + "SIO": { + "losses": 64, + "sign_p": 1.2596743309903347e-12, + "ties": 29, + "wins": 7 + }, + "SQL": { + "losses": 81, + "sign_p": 1.0221367431741194e-20, + "ties": 16, + "wins": 3 + }, + "STV": { + "losses": 78, + "sign_p": 5.3617847305687254e-21, + "ties": 20, + "wins": 2 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": -1.3, + "ci95_low": -1.73, + "mean_delta": -1.51 + }, + "losses": 88, + "sign_p": 1.1809998494304827e-21, + "ties": 8, + "wins": 4 + } + }, + "t2_vs_gt": { + "n_pairs": 98, + "per_axis": { + "SDL": { + "losses": 79, + "sign_p": 3.9973254947441296e-19, + "ties": 15, + "wins": 4 + }, + "SIO": { + "losses": 69, + "sign_p": 1.3812783597891096e-12, + "ties": 20, + "wins": 9 + }, + "SQL": { + "losses": 78, + "sign_p": 7.332294385792548e-20, + "ties": 17, + "wins": 3 + }, + "STV": { + "losses": 80, + "sign_p": 1.8057729139211306e-18, + "ties": 13, + "wins": 5 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": -1.1760204081632653, + "ci95_low": -1.5714285714285714, + "mean_delta": -1.375 + }, + "losses": 83, + "sign_p": 2.0200455794640623e-18, + "ties": 9, + "wins": 6 + } + }, + "t2_vs_t0": { + "n_pairs": 98, + "per_axis": { + "SDL": { + "losses": 26, + "sign_p": 0.06811867428409976, + "ties": 30, + "wins": 42 + }, + "SIO": { + "losses": 30, + "sign_p": 1.0, + "ties": 39, + "wins": 29 + }, + "SQL": { + "losses": 29, + "sign_p": 1.0, + "ties": 39, + "wins": 30 + }, + "STV": { + "losses": 25, + "sign_p": 0.20003136851310316, + "ties": 37, + "wins": 36 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": 0.32908163265306123, + "ci95_low": -0.09948979591836735, + "mean_delta": 0.11224489795918367 + }, + "losses": 34, + "sign_p": 0.2185180394787037, + "ties": 18, + "wins": 46 + } + }, + "t3_vs_gt": { + "n_pairs": 99, + "per_axis": { + "SDL": { + "losses": 74, + "sign_p": 1.0078897978938123e-18, + "ties": 22, + "wins": 3 + }, + "SIO": { + "losses": 61, + "sign_p": 7.387402755493211e-12, + "ties": 31, + "wins": 7 + }, + "SQL": { + "losses": 79, + "sign_p": 3.803541892641332e-20, + "ties": 17, + "wins": 3 + }, + "STV": { + "losses": 69, + "sign_p": 1.8345664258432237e-15, + "ties": 25, + "wins": 5 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": -1.1742424242424243, + "ci95_low": -1.6035353535353536, + "mean_delta": -1.3888888888888888 + }, + "losses": 86, + "sign_p": 2.078229307846884e-18, + "ties": 6, + "wins": 7 + } + }, + "t3_vs_t0": { + "n_pairs": 99, + "per_axis": { + "SDL": { + "losses": 27, + "sign_p": 0.14207137942637568, + "ties": 32, + "wins": 40 + }, + "SIO": { + "losses": 26, + "sign_p": 0.5118423084381689, + "ties": 41, + "wins": 32 + }, + "SQL": { + "losses": 30, + "sign_p": 0.2819789217936561, + "ties": 29, + "wins": 40 + }, + "STV": { + "losses": 24, + "sign_p": 0.12373144253809217, + "ties": 38, + "wins": 37 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": 0.3409090909090909, + "ci95_low": -0.08080808080808081, + "mean_delta": 0.13131313131313133 + }, + "losses": 39, + "sign_p": 0.5856467947212246, + "ties": 15, + "wins": 45 + } + }, + "t3_vs_t2": { + "n_pairs": 97, + "per_axis": { + "SDL": { + "losses": 33, + "sign_p": 0.9006532462520331, + "ties": 33, + "wins": 31 + }, + "SIO": { + "losses": 27, + "sign_p": 0.5189580031896518, + "ties": 37, + "wins": 33 + }, + "SQL": { + "losses": 38, + "sign_p": 0.6353076420876662, + "ties": 26, + "wins": 33 + }, + "STV": { + "losses": 34, + "sign_p": 0.6399729317539424, + "ties": 24, + "wins": 39 + } + }, + "smean4": { + "bootstrap": { + "ci95_high": 0.23195876288659795, + "ci95_low": -0.18556701030927836, + "mean_delta": 0.02577319587628866 + }, + "losses": 42, + "sign_p": 1.0, + "ties": 12, + "wins": 43 + } + } + }, + "prompt_sha256": "457bb05ccc0c0bec7d23daaa5267185f1f66b7ea187fcc95b488405c6c1396f1", + "schema_version": "a3.cole-judge.v1", + "source_sidecar": "a3-relation-n100-t0-t2-t3-sega-v1", + "status_counts": { + "ok": 397 + }, + "wall_seconds": 113.29 +} diff --git a/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/per_sample.jsonl b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/per_sample.jsonl new file mode 100644 index 000000000..6f549d36d --- /dev/null +++ b/layout_agent/evaluations/a3-cole/a3.cole-judge.v1/a3-relation-n100-cole-v1/per_sample.jsonl @@ -0,0 +1,397 @@ +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_02.png", "render_sha256": "4dd43b80be423c73c5132439056bb454ed354da68fdb90488329fa7ae7e7852d", "sample_id": "5888bb2995a7a863ddcc1f74", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_02.png", "render_sha256": "719acf86c14b46f54cbd4ff5a9e4727fe300608212a6e0957293795ea8df2803", "sample_id": "5888c54095a7a863ddcc2082", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_01.png", "render_sha256": "35b81904b2144f3f47a8d9b32d54959c04920a804aee0f89da9832bb69b57b0a", "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_03.png", "render_sha256": "5c3b35c83584e5ce55d63f8576eb7cf08df4d82e0bd4ee7e30ddd99b1d2d4772", "sample_id": "5889bc5995a7a863ddcc3b97", "scores": {"SDL": 4, "SGI": 4, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_02.png", "render_sha256": "79b9bb596d35bc6d9daab7a22482bb57d0e13f922c078e74d8f5a28cf818a0e8", "sample_id": "589b457b95a7a863ddcc5331", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_02.png", "render_sha256": "c51d5dd3404af37e175ece93595e7e26e90fd473f60a2641db418a53c6c90ffb", "sample_id": "58ab17ba95a7a863ddcc77bf", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "render_sha256": "24272247f2a82f02a7f962a6f11db765f8ea71f80ef942d4f84e8b6dcb5abb04", "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 4, "SGI": 3, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_03.png", "render_sha256": "ba5315e960a51bba09d72b87ca29f4529f3086621bdb664fa43e9f8d0cfae132", "sample_id": "58cbc44595a7a863ddccc20b", "scores": {"SDL": 6, "SGI": 5, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_03.png", "render_sha256": "9de4bc46563902f4876f2079c812eda3e25987274b47f200eef4ad4bdac892e7", "sample_id": "5909cfb695a7a863ddcd37cb", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "render_sha256": "4b562cd2933ad209ae5b0d8497b672bdeb101efa423ebe75f9c81fb0b0249f46", "sample_id": "5914233f95a7a863ddcd777c", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_03.png", "render_sha256": "6bf6b8dfab9357f62ba3936af72f4a1fe770f529f2dc0e1d9aab214134006e8b", "sample_id": "592d1a2b95a7a863ddcd97aa", "scores": {"SDL": 6, "SGI": 5, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_03.png", "render_sha256": "4e3c40a99f3678fa22566add97c53a1a4938aa88b820d0fe25453465225e179e", "sample_id": "592fdd7e95a7a863ddcdbe67", "scores": {"SDL": 4, "SGI": 4, "SIO": 3, "SQL": 6, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_01.png", "render_sha256": "95f9285b232562f6727ad7303bb6250b32d2cd2feadd170084fc9732cbb95973", "sample_id": "5930177f95a7a863ddcdc313", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_03.png", "render_sha256": "864987533c9cc5d4bc011f856bf3db4ed962b685c07baa68e83d2a7dc5eb985c", "sample_id": "5931132c95a7a863ddcdc5d3", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "render_sha256": "be3b7d5301fe06f0bd5f11a4472b0d7ecf19917a41c2bc8ba0df4097e6ba2125", "sample_id": "59313e5495a7a863ddcdc9ac", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_02.png", "render_sha256": "25920e41db0c6e3f5afe05954762af36317380319e40a5ab3b281a06008e664e", "sample_id": "5952704d95a7a863ddcdecb5", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_03.png", "render_sha256": "9eebc688c49b0ea8a48c92fad4f85d530f78d6d2a42762588806ca8c0a047731", "sample_id": "5952794195a7a863ddcdf36a", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_01.png", "render_sha256": "168628ca4579db269fe65d1c7ab834ab7fc7e7ad61d5ccf0007c04c001ef0e66", "sample_id": "5952934395a7a863ddcdff21", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/renders/r0_candidate_02.png", "render_sha256": "d34a2535d480d4b92827ab7c6b39f1ec83c1a48b1255355f48784c90f56fcebc", "sample_id": "599ecb061350e83293007738", "scores": {"SDL": 6, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_02.png", "render_sha256": "a473823672a4a4a1afaa82d78ea8c7d1ff05f568af67055c6efe3af8d82ddae2", "sample_id": "59b2809c1350e8329300dbe4", "scores": {"SDL": 3, "SGI": 3, "SIO": 5, "SQL": 4, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "render_sha256": "4dd0b83193ebe47982132cec2b1562d6afa3cf2aeca3bc3024c8af2683a9df99", "sample_id": "59bb96701350e8329301120a", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 4, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_02.png", "render_sha256": "5354225210ef9ddd5a913f5a10e3e13d090770f986ae43e475eda12806c6c1e1", "sample_id": "5a034425d8141396fe9898fa", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_03.png", "render_sha256": "e2f4f7bb64f51a3237e1e56e32f1a571e85c9f06c908b76afb99d9485f73b331", "sample_id": "5a21848dd8141396fe9a33eb", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_02.png", "render_sha256": "db5ac2b532326d0765a3107221774da7fd5d4d3d685a5e301402626086f6a661", "sample_id": "5a240260d8141396fe9a9de3", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "render_sha256": "8e30d179383c7037a25d291a06134250b0df0c78d34f8c35c791090d8cb21a4b", "sample_id": "5a26bcecd8141396fe9ac474", "scores": {"SDL": 4, "SGI": 4, "SIO": 4, "SQL": 3, "STV": 2}, "smean4": 3.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_02.png", "render_sha256": "533f434ae727492576b08f93f1eb58a6c33ee5f732b78ba79a99c9f5e828b1e4", "sample_id": "5a9968cff07aee6977a29a68", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_02.png", "render_sha256": "386b203cf4f82864eafde3895dfe3381f60ed6b1ad0076ca123f7e9f25d11ecf", "sample_id": "5aa915fef07aee69773a3ef4", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 6, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_03.png", "render_sha256": "3b655330b2a69d2db6723c7017de8084562dd63e4f948d2be2ca7b60d965e6e1", "sample_id": "5b6aaf851cc8aa542986ad50", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 8, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_01.png", "render_sha256": "dc1ed9d6312d235c8c35e38bb8ece642b8ea8e1e72f477340e27fecf28c990b1", "sample_id": "5b6ab3e01cc8aa542994ee9d", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_02.png", "render_sha256": "1d695849cdc04860f8a89fc45b27ae863685d3d72c800e368107ee2c3c28f4a5", "sample_id": "5b85707d1cc8aa542972823c", "scores": {"SDL": 4, "SGI": 3, "SIO": 3, "SQL": 3, "STV": 5}, "smean4": 3.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "render_sha256": "87136a3cad694d35587af3dfb03c8ffe8b5b87c7303fdc0f960b3f8681743a74", "sample_id": "5b9a550e18654940f754c07c", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 6, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_03.png", "render_sha256": "dd96a161f925c125a8942f047b597fbecaf341d299c9d469fc4bfd735f4cd517", "sample_id": "5b9bc6a018654940f781b996", "scores": {"SDL": 5, "SGI": 6, "SIO": 3, "SQL": 4, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "render_sha256": "aa4473bbd9cc1e2f0bd74f467d6a120c6ec59d6ab372592f8a7b0bc111ffefcb", "sample_id": "5ba8b598ebe74117be0792c9", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 3}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_01.png", "render_sha256": "fb4bf16dda0c91876a88a658aba406319568a3abb46069f1e866b7d27850bad2", "sample_id": "5bbc9b3a78e1194aa616041e", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_02.png", "render_sha256": "de1a4d944bc9614f314bb321170d966c5a1e6962cc949323487d28c6cd20d778", "sample_id": "5bbcbdfd78e1194aa69fe067", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "render_sha256": "84d86f31d73ab323aefeafb54dd5adfd0277852bfe1dfd90bad9d10d81f60f84", "sample_id": "5bd05c0e78e1194aa6210e31", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_02.png", "render_sha256": "ab04d63647285c61af3091df50e7c54a976cabe6b397696df15864368db76301", "sample_id": "5bd9d0209259f9ba54b29c99", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 4, "STV": 3}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_02.png", "render_sha256": "b9bd48fa7c6ec1e35ad24d07e7bb2fa91038439119261e7310bbc8a93746979c", "sample_id": "5be174d215d5cddfd04fd1a2", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_02.png", "render_sha256": "8ddc392c7f2e7c48785a95d25e94e415a1ecf825a8e58817544af24443dd5247", "sample_id": "5be97b9241fdeab19f985504", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 3}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_03.png", "render_sha256": "2054d0c19c19d130ebde89612ecd8c3a4220ac0dbb7af62488b52b3ea611b956", "sample_id": "5bf55e578caf671e1c2272f0", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 4, "STV": 6}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "render_sha256": "9737a9118e80cf7f47eb964fabcae3b636bfea55fced9dc70ae5d433a6d23b69", "sample_id": "5bf828a38caf671e1c2632e9", "scores": {"SDL": 5, "SGI": 6, "SIO": 6, "SQL": 6, "STV": 4}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "render_sha256": "e62076bae1b03ce899bd9a7fad1701ba4b0d0f601c5a551fd620767c79d34c9d", "sample_id": "5c263de4133a785392318ba9", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_01.png", "render_sha256": "7ee78249f07653bb274dcb23d2242272c85d5b5f9fb8a9d4e54c9549a02cb8b2", "sample_id": "5c41f55b048d064dbcc85b80", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "render_sha256": "4b0aa573aa9bf048be355ac63086acb30328652d05b96f8bcb7c961248aadbe3", "sample_id": "5c41f7a3048d064dbccfae94", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_03.png", "render_sha256": "1cff75ae298a7a7dae54994c5107b27c61af6142780cc609d633b32fa2185fde", "sample_id": "5c5af7a1048d064dbc1f0d67", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_01.png", "render_sha256": "9afb69d2d0db0da2ca75baee7939c732aae06016e2806f553b5f6d33c553fe54", "sample_id": "5c5b0913048d064dbc785e7c", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_02.png", "render_sha256": "ca6df199efd596daf4eb8f3c7b704dba9a7c741b32433f2a426bc0dce39c8b2c", "sample_id": "5c5b095c048d064dbc7a0ede", "scores": {"SDL": 5, "SGI": 6, "SIO": 3, "SQL": 6, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_03.png", "render_sha256": "f09ca1239a44a2b9ef88f0565c9ecea8a50ed21e6928b1a0441372b13bdb6c8b", "sample_id": "5c6c147785ea3c16f98dd907", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 4, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_03.png", "render_sha256": "541a97b65fb9a437db13764732518e0cee27ee8d07747ab633d6b75c4b725ebc", "sample_id": "5c77eda885ea3c16f9f29101", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_03.png", "render_sha256": "389009582272beed6a0d93343b522d3819938d523a5021d07de8080342d9607b", "sample_id": "5ca5faf823c829c8218ffb10", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 5}, "smean4": 6, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_02.png", "render_sha256": "91f73a0011bc26bc415cb05954ecbb5f78e6750bb623441b2d050f739d0d451a", "sample_id": "5cb89d8aadbc796055f970af", "scores": {"SDL": 5, "SGI": 3, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_02.png", "render_sha256": "d106a59d074cb8b71e22184c987ae700f02a1b7b4a6b037734f218ba6fb03a9c", "sample_id": "5cd67f1f7d4459dfe12714cf", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 6}, "smean4": 6.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "render_sha256": "7cc11bfc05281bfdc447321e85c50c0743fc21dd8f16b2680ea7b7dd7241f963", "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "render_sha256": "df8acf81c949581c3361be758dba973a7f1f1e8b2d3dbb7b9410379ffa641a04", "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_02.png", "render_sha256": "f558c2fd992e664fa4d668d1526e990bef857f1f5022158442f53d9c9b6e604e", "sample_id": "5ce3ba947d4459dfe1cebd75", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_01.png", "render_sha256": "b575bd248bdb006ef29c71988c9f7b0084722adbba606e73b6b577add197e60e", "sample_id": "5cfe2ad78cba87f943da4ec5", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_01.png", "render_sha256": "31037a9f12c889d95293798a6c32812fbc36329b7dcc327d9ad1f76e9579af1f", "sample_id": "5d08f3708cba87f943ec4e3f", "scores": {"SDL": 3, "SGI": 4, "SIO": 3, "SQL": 4, "STV": 3}, "smean4": 3.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_03.png", "render_sha256": "8e10cb6b02dc2f54b52bf046df9bfa38960bf8d87ad9c1ba20453309e47ed64a", "sample_id": "5d08f7a08cba87f943f48a6d", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 4, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_03.png", "render_sha256": "adba7722bb26b6717fa9981f75ad57e22f172f214cee22d614d1f2b863ba482c", "sample_id": "5d0cf79f8cba87f943616ca6", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_02.png", "render_sha256": "a652f934d46073a0b65f1a1a9f5d833f02df81002b75b75045c8b204da33e8f5", "sample_id": "5d234eaf8cba87f94322b763", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "render_sha256": "6e6053339f3f7c33b1391bc81d7ad5b9481b127537884bf8011088df6346b29b", "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d67ed46cf657b21ef7bdad9/renders/r0_candidate_03.png", "render_sha256": "48ee12b4c7f4e4608d01e33405d5dc66076a748a41ebdb971a668d773f00bbfe", "sample_id": "5d67ed46cf657b21ef7bdad9", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 5, "STV": 4}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_02.png", "render_sha256": "88efaeb2dcf89fd9f02938007ff54441b96cd5ebb0a7f64d21badea29eb5b5ae", "sample_id": "5d68dd6ce79a2a634ea111b8", "scores": {"SDL": 4, "SGI": 4, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "render_sha256": "e4240ce13ebb0ec8152d1738fb552a0c1f56aab37307e32525e6b34873c20633", "sample_id": "5d6903b8abc8ea6d1c0305fd", "scores": {"SDL": 5, "SGI": 6, "SIO": 6, "SQL": 6, "STV": 4}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "render_sha256": "27788ca072fd667ffad023d3220d8230fe282a9ff72727d52645f29476ab2512", "sample_id": "5d6909e8abc8ea6d1c0cda03", "scores": {"SDL": 5, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_01.png", "render_sha256": "66c4786a46e908e282d999187c228a9054939cb4ab046aae9ff14b3d03082ef5", "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_03.png", "render_sha256": "f74074278c0350f5843aad8c5762e51ac41239f558fef8a2c8603fe9f5f87ced", "sample_id": "5d9cad82abc8ea6d1c23ebf1", "scores": {"SDL": 5, "SGI": 6, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_01.png", "render_sha256": "72f5f93cfc4b2d3ce5f4d89a587e73f1dbc2b331b77cc7d9ca9271664fad0307", "sample_id": "5d9cadb1abc8ea6d1c246dc8", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_02.png", "render_sha256": "44c6b9f11cf1020cc7f3f1257a816ccd73280b2617eeb96a48f0733ce27b6289", "sample_id": "5da04604abc8ea6d1cbe2935", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_01.png", "render_sha256": "93d19596fe7eec6183cc13b23c2f77cf5ed70d432cf6ed7cde3f6f3e78288888", "sample_id": "5da071b5abc8ea6d1c1f1d6f", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "render_sha256": "1098c5a0ef2bacef6461af0b802b8370f87d464d83ebf67a61b6c2b2121199f1", "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "render_sha256": "0efe7fb4f46cad630623d90bc66940427853fc2a03d23eeef64cc97cf1f55ac9", "sample_id": "5dc27c32abc8ea6d1cbf115a", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_01.png", "render_sha256": "fbeed30988952dc572eb71b0082b7be98eb246ef2225dedd5f7d41e6d5dfc626", "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_02.png", "render_sha256": "93e5de481143e8707aef874496d1e0195a637a5ef3cc6f39b89054e00a29dffb", "sample_id": "5df216b89fea0cc374b8d341", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_03.png", "render_sha256": "92efaffae734596d9b344e32c03f1717713dc98b4124a43f58c57548eed834e6", "sample_id": "5df3af489fea0cc3742457a9", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_02.png", "render_sha256": "555a63d47034e4efb95a98f4fc561f86394db709948c28a484a1a7df6bb2acb6", "sample_id": "5df7606b9fea0cc374d371db", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_01.png", "render_sha256": "b69e40889022910a20748f12d7d27e9955717a34352b4e9bc9d25a9e6acaaec0", "sample_id": "5e0213489fea0cc374175712", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "render_sha256": "d37d108886591317aad8a27d776b134c6e1936a5d11868d732f0c43c03a7b2ae", "sample_id": "5e0219159fea0cc37425a627", "scores": {"SDL": 4, "SGI": 4, "SIO": 3, "SQL": 5, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_01.png", "render_sha256": "e9def448ce3ad2a84ac2f56c0d04719cfac5bfde02c449555be1f311e216e888", "sample_id": "5e04ba7f9fea0cc3749733ea", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "render_sha256": "70248c4fbe671d634f89fbba05150b116abc47de7e68272485188b627dd83fcf", "sample_id": "5e0621989fea0cc3748583f6", "scores": {"SDL": 5, "SGI": 4, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_02.png", "render_sha256": "6ae231c290c3b21f0b071e80ab5bab916092497296ed0c4ca9bdebae4e27a166", "sample_id": "5e0d99499fea0cc374a71bcc", "scores": {"SDL": 5, "SGI": 6, "SIO": 3, "SQL": 6, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_02.png", "render_sha256": "b5b89e5266da08b4b9165b78402d81779b96133e49ba28400a8661f7c93ba58d", "sample_id": "5e202d829fea0cc3744908a8", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_02.png", "render_sha256": "087a6a8ffb4b3125fa980a5d6398f016f7e9e3842d9b713e39f7dd8d8f7887f6", "sample_id": "5e2031da9fea0cc37450dd01", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_03.png", "render_sha256": "618389f6aaca3052749a8d1137b1247a7a0a11e69f22362b4c4a4528858d42e6", "sample_id": "5e28090f9fea0cc3748fc62a", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_02.png", "render_sha256": "89f648c8b5107d77249c992fbc293a14e8e7febe5eb240514a77085337d4bb9e", "sample_id": "5e6f770e4b3890eb07175aee", "scores": {"SDL": 4, "SGI": 3, "SIO": 2, "SQL": 4, "STV": 4}, "smean4": 3.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "render_sha256": "a236ca7cbb9458379ad3aa83ecf49dadd8a6a2f7c01783c3d470b8dfd901516b", "sample_id": "5e8762404b3890eb0782ad22", "scores": {"SDL": 8, "SGI": 9, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_03.png", "render_sha256": "4c0356c54f4d50cfce9bc013f1e5a940990f966428a8b139761eb347da1a1ca2", "sample_id": "5e8d96cb4b3890eb071c683d", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_03.png", "render_sha256": "3d7204567dfc8f8a4cc686b901465cadeeec81baac763ac1a1c5e42c946a2cf6", "sample_id": "5e8ef9fb4b3890eb0760bade", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_02.png", "render_sha256": "b582cc6ed53e89f6a0d3a94e67b4962bc5327493d18d24222265ed9e8189f9a3", "sample_id": "5e90704d499b85dcc7d7114d", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_02.png", "render_sha256": "72b13e75454985bf4d0aa52f485dc2296afd9a600e70e367c5c504ece0987f7c", "sample_id": "5e984f83499b85dcc792f6be", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_03.png", "render_sha256": "1b6ddd3c4aa39681434b1fcf727027a1c1228d45e87791b9844541fa5e4609ec", "sample_id": "5ea01126499b85dcc781e788", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_02.png", "render_sha256": "ef50bb8c9b2f61ecdd83c1cb9d557289fff0985e8ad146f455af204a7a789dfe", "sample_id": "5ea2d990499b85dcc7aaeb92", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 5, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_02.png", "render_sha256": "e539ee9addb0885bebb2c8329b014d7dceaf808c1d154e49c20f20f4fc308df6", "sample_id": "5ea97187499b85dcc7c45e3d", "scores": {"SDL": 5, "SGI": 4, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_03.png", "render_sha256": "3b6a9f4c20c06248b54fa55074201b0a02768177509e0e9b919ea84507207f2d", "sample_id": "5f114599499b85dcc796da51", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 5, "STV": 3}, "smean4": 4.5, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_03.png", "render_sha256": "0a0865c0d7ceb9513ae770c05f6fb5751bfa9c38c5f1029e00288bff6758e100", "sample_id": "5f3b84c8a637ee11e32ee4c9", "scores": {"SDL": 2, "SGI": 6, "SIO": 3, "SQL": 4, "STV": 2}, "smean4": 2.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_03.png", "render_sha256": "2f07bf93eefb83640a3c82e60d36440860017c4924a9f3da234f929dbbfc767c", "sample_id": "5f4c9d6fa637ee11e34ab88b", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_01.png", "render_sha256": "51469b70715c836127255e3a596c228d8ed7818596adc7a6a1fa46b10d443fa8", "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f644f40a637ee11e3669a1c/renders/r0_candidate_02.png", "render_sha256": "b66c86e5248e9ced03b527bf83d5a960fea5b5ed071f8f1e15cdf5dd5519b847", "sample_id": "5f644f40a637ee11e3669a1c", "scores": {"SDL": 3, "SGI": 7, "SIO": 5, "SQL": 4, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "render_sha256": "6b01376e742c5467cbf3a3110af7c3f86a1f27834cc0ba2014b910d0a25e2e4a", "sample_id": "5f96aca7a637ee11e30bb517", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t0", "path": "layout_agent/runs/a3/a3-rel100-t0-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_03.png", "render_sha256": "6c663cb80d0604ba025cb2ca1b255c25ea4c04ff6d5b484849290ed62d4e95f3", "sample_id": "5fbf5b4aa637ee11e3a82536", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_03.png", "render_sha256": "de6928b87770e245d64fe4149fc15d41c926ba1b26a7dcee6a71f3a18c77a335", "sample_id": "5888bb2995a7a863ddcc1f74", "scores": {"SDL": 4, "SGI": 6, "SIO": 3, "SQL": 6, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_03.png", "render_sha256": "9b8e0a535c74bf876b5125338322ffc36f5595a64c77f4765eb95f97de3380cf", "sample_id": "5888c54095a7a863ddcc2082", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_02.png", "render_sha256": "0c6a27f141334e64f613f0b48995451df9fe91ba95206f6dc0aa62a628a3cdd3", "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_03.png", "render_sha256": "9f297520fe033e1035155d350da13557d24738d9f9e48ce38e400d16a8567539", "sample_id": "5889bc5995a7a863ddcc3b97", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_03.png", "render_sha256": "4efa5f1d885214c7692e6c5972f26468c7f222269b392503b9adfb1a514610cb", "sample_id": "589b457b95a7a863ddcc5331", "scores": {"SDL": 3, "SGI": 3, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_01.png", "render_sha256": "1cc80fb6f389733263b486dbc2f1d9826c07766f8477299e75cebb2cabe958ec", "sample_id": "58ab17ba95a7a863ddcc77bf", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "render_sha256": "34ccfc0c4705c99f4b330f6df42700d266891d49b7be517dbe4010ffc78d0a0d", "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_02.png", "render_sha256": "1eb9b1bd20324f86e54e3959d8a4b6654364c3ee0ba900e4de7e8d20b2f6cc71", "sample_id": "58cbc44595a7a863ddccc20b", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_02.png", "render_sha256": "24752d2de41f84d2dd8ee7e896b600ae5cbf6881f1137d43a2a1711572a21500", "sample_id": "5909cfb695a7a863ddcd37cb", "scores": {"SDL": 4, "SGI": 6, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "render_sha256": "a1b5d0f65240d218933c89cd6b701c279dd8adf6f9f13ec62ccebdfa56d6f695", "sample_id": "5914233f95a7a863ddcd777c", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_03.png", "render_sha256": "b29f181f3154af06a630d47a8ef273193377dea1bb12e5b2efef5448cf9eb567", "sample_id": "592d1a2b95a7a863ddcd97aa", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 6, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_01.png", "render_sha256": "18eb0523b0ab1acf7160513406cfde35e8061122089a55a65df4a9ae9a8667a1", "sample_id": "592fdd7e95a7a863ddcdbe67", "scores": {"SDL": 6, "SGI": 4, "SIO": 5, "SQL": 7, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_03.png", "render_sha256": "e36461e6ae6e8b747ba4e99cfe25c8b0b94a285076257c2ade6483caa7f4827d", "sample_id": "5930177f95a7a863ddcdc313", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_03.png", "render_sha256": "ea87652eac47197de443730cbe3b15c0bc9446e2827a009fc79a2b3ec6ae8788", "sample_id": "5931132c95a7a863ddcdc5d3", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "render_sha256": "44a2595c155d50d6eaa4070cdd27480ee6e7fdf6a951cdffa75613427dc6091a", "sample_id": "59313e5495a7a863ddcdc9ac", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_02.png", "render_sha256": "dc89c0ba36f6741cdce407acf59235a7470ad2d2a02498996197bb76932b0912", "sample_id": "5952704d95a7a863ddcdecb5", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_01.png", "render_sha256": "fc72e5de89af6a2fb8e7acca8c1e0693415a66d5ff695acea19ab4b91fe3f308", "sample_id": "5952794195a7a863ddcdf36a", "scores": {"SDL": 5, "SGI": 7, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_03.png", "render_sha256": "49b00e451cca4f7e1aebe7a3c217783a795cb4e55d3049dc6d7c0e3d26fbd52c", "sample_id": "5952934395a7a863ddcdff21", "scores": {"SDL": 6, "SGI": 5, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/renders/r0_candidate_02.png", "render_sha256": "3ff2d8ff773746de73ef5777dd0caf17f6c57abb67c22154602049c958552d98", "sample_id": "599ecb061350e83293007738", "scores": {"SDL": 4, "SGI": 4, "SIO": 3, "SQL": 5, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_02.png", "render_sha256": "414508c7b4ddce3f95231f58df2b99273d44a4e0364cc8c47bf024d7bcd63e6d", "sample_id": "59b2809c1350e8329300dbe4", "scores": {"SDL": 4, "SGI": 6, "SIO": 6, "SQL": 4, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "render_sha256": "03b2327e85a0a5aa3944746267f9d2014a91a373abd36fe401fb2f6debc962da", "sample_id": "59bb96701350e8329301120a", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_03.png", "render_sha256": "9fa360f501c4c317f611f15f1c43e33ee0bc6127800ab48f8cafb7b5694503c4", "sample_id": "5a034425d8141396fe9898fa", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_02.png", "render_sha256": "81f17af9d16195b561e782ac4f171c1c4b6e460f5698bc37aa558d36f2600e12", "sample_id": "5a21848dd8141396fe9a33eb", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_03.png", "render_sha256": "1e0251ddbe1d181194a86ef9b4a6db6a646db871f7ef6a33a9ac71d43618e73d", "sample_id": "5a240260d8141396fe9a9de3", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 2}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "render_sha256": "f12f58d63ceb6a1f032a2db3fce1cc3625ab74544d7779dcc92eb5c8fe3b920d", "sample_id": "5a26bcecd8141396fe9ac474", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_03.png", "render_sha256": "2bb808cc14dd0d9ee6015cf9fc31076f78ef6b66cf3b03b9198e0eb9839e6304", "sample_id": "5a9968cff07aee6977a29a68", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_01.png", "render_sha256": "d1f48cf686b75b640a7b03f7d2599890901feeab509578a8ce66664a8be76430", "sample_id": "5aa915fef07aee69773a3ef4", "scores": {"SDL": 4, "SGI": 4, "SIO": 5, "SQL": 3, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_02.png", "render_sha256": "832fa067a5aa26724a85dccbeaa158cfcc83b6457725abe184c0e1ab6b4d0c85", "sample_id": "5b6aaf851cc8aa542986ad50", "scores": {"SDL": 6, "SGI": 6, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_03.png", "render_sha256": "1e98094d664a6d444b24178a40e75912bf20b287ad71ac2c7973e8fcd77bd690", "sample_id": "5b6ab3e01cc8aa542994ee9d", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_01.png", "render_sha256": "754d0f0aca9558702eaa3d15eb5baa8df27a2bc3ba7b5cebdb21c3fc700b7329", "sample_id": "5b85707d1cc8aa542972823c", "scores": {"SDL": 5, "SGI": 4, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "render_sha256": "40679185f7ef18c6c87fc586bd451d4d7d26218464be81a16d9187233d4e31c9", "sample_id": "5b9a550e18654940f754c07c", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_03.png", "render_sha256": "7f121e73b4f8ff38e6cf2eb02740166883abac158f57c8cf0bef15b376420099", "sample_id": "5b9bc6a018654940f781b996", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "render_sha256": "43a3dc8cf9326f234082aac3b374aa10dc94aa1f64907bb3c4e40848dfe4045c", "sample_id": "5ba8b598ebe74117be0792c9", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_01.png", "render_sha256": "c6969d67259329f95d744dc5c47c967e04ab181cebd8cc79bb789ee111c47055", "sample_id": "5bbc9b3a78e1194aa616041e", "scores": {"SDL": 6, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_03.png", "render_sha256": "af7651b58f770709f669e6efcaeb1ad2724c18f053262e09839e06097ac46814", "sample_id": "5bbcbdfd78e1194aa69fe067", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "render_sha256": "426a677d2a495fdf7ef80e302dfc184481cf3f640c3cf034996df9442250d722", "sample_id": "5bd05c0e78e1194aa6210e31", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_02.png", "render_sha256": "4cb135f0f064386099a3aaad0315ab797c8f5c2e40b91a315568f5489d1ac451", "sample_id": "5bd9d0209259f9ba54b29c99", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_03.png", "render_sha256": "aa77423f95c895dffaee60d8797789f6c4ef599401ed3591a55cee66f6622df3", "sample_id": "5be174d215d5cddfd04fd1a2", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_03.png", "render_sha256": "1a8480346dfb60e3d3d901c69156dc7946e5f14cee98b8ef22f7db17e5af1866", "sample_id": "5be97b9241fdeab19f985504", "scores": {"SDL": 4, "SGI": 6, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_03.png", "render_sha256": "ce77c2e389f86529fa6fa7ccc83576315504cb2fd54b61be35d064a8db4b3807", "sample_id": "5bf55e578caf671e1c2272f0", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "render_sha256": "f68e0ffcac3be53656bb6b6cf2c5839842226a01ba306eb3d2137d277390e40d", "sample_id": "5bf828a38caf671e1c2632e9", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 6, "STV": 5}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "render_sha256": "bbab01bbf0d296dffb7069cbd02a1601d1caffce558911c0ceffee8770c00d54", "sample_id": "5c263de4133a785392318ba9", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_03.png", "render_sha256": "7c3a0d81cfdbdc031f1b824460a40d86d9f24d453f338b578942d911b3ebdbb2", "sample_id": "5c41f55b048d064dbcc85b80", "scores": {"SDL": 6, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "render_sha256": "d8076421e00b6c1a1f4b4e2ef976e4d302cfe397c28894c3f7730a1c664c986b", "sample_id": "5c41f7a3048d064dbccfae94", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_02.png", "render_sha256": "e87a5092711bc2f220d387a6d8ed7ad8bd67111ba6d7272313f11dc79f1dd0c4", "sample_id": "5c5af7a1048d064dbc1f0d67", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 8}, "smean4": 7, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_02.png", "render_sha256": "d07a419d188d47cc0f61c0ab2c811fd6292c3aa6332a222c41ef3465a6eef5df", "sample_id": "5c5b0913048d064dbc785e7c", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_03.png", "render_sha256": "60fb749c4161de840dbfd70ac7afdeaebbc9556a255104f92ecd1494a62a4791", "sample_id": "5c5b095c048d064dbc7a0ede", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_01.png", "render_sha256": "1be6310eb3ea1cedeead70303ed910cf93fb0511785d0042d42cbdfa7a52f6f8", "sample_id": "5c6c147785ea3c16f98dd907", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_01.png", "render_sha256": "5b41b16fe02217bc57e735deab1ebccab17050b2484cf024dad2f40a2e78394a", "sample_id": "5c77eda885ea3c16f9f29101", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_03.png", "render_sha256": "3bcce09ba46830615893f3dcc89ea3513e0ef9e2546730cca187129371d23242", "sample_id": "5ca5faf823c829c8218ffb10", "scores": {"SDL": 5, "SGI": 6, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_02.png", "render_sha256": "f427d6b9f7859d7bb9f3b3563a6f5d77db93ebf91e23c0d791ae2770e79c0990", "sample_id": "5cb89d8aadbc796055f970af", "scores": {"SDL": 4, "SGI": 4, "SIO": 3, "SQL": 6, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_03.png", "render_sha256": "7bcf3908a8d9dae4245e5e6fc9e67aad8e390ea986a8f9f9e0514e2873d70c77", "sample_id": "5cd67f1f7d4459dfe12714cf", "scores": {"SDL": 6, "SGI": 6, "SIO": 6, "SQL": 5, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "render_sha256": "c901e4e80eb0d1045ef657d2d92f8922632d904c39fb6a2ec98131d1fe35591e", "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 6}, "smean4": 6.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "render_sha256": "69b433954341c1596ce9263dab3453c8cb1b082f62fd25a2e8501759fbc6b8cb", "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_01.png", "render_sha256": "03a1ff7a828f06ade6dfd42064e3e65cb4b6db851d4af4de12035a49930cbd90", "sample_id": "5ce3ba947d4459dfe1cebd75", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_02.png", "render_sha256": "0340671997e987f491881db01a07661501ddb07b647bbfa71ceb7c9c4d493753", "sample_id": "5cfe2ad78cba87f943da4ec5", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_01.png", "render_sha256": "95e67d1f65264e974cd05fa80249cece3df27573c0c974c24b61f8c1c01b518e", "sample_id": "5d08f3708cba87f943ec4e3f", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_01.png", "render_sha256": "3003c42921f5e5c1983943317794c6c7c83b9b3bb5d08f49873fc903a41fa072", "sample_id": "5d08f7a08cba87f943f48a6d", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_03.png", "render_sha256": "7fe6dae26af3dd5ac016a7138796d05ad0cb57445b89353e878d148063a47ce2", "sample_id": "5d0cf79f8cba87f943616ca6", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_02.png", "render_sha256": "cd1fc65b152a0a72b9742fad464a740de4859f3185567213bdee59c4759a1963", "sample_id": "5d234eaf8cba87f94322b763", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 4, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "render_sha256": "4f365af2d9ffa86e753b612291f70498a244b7c3e13dbee9094966405f2a330d", "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_03.png", "render_sha256": "eb10ae321e05b4825fa6eabe3fc4f789d83cd3dca69aa439fa9f3ece32b9d50b", "sample_id": "5d68dd6ce79a2a634ea111b8", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "render_sha256": "53488f98e26664386e3ee4c69641c6791da6ffadfef5069aa311aaa6ecb63bc8", "sample_id": "5d6903b8abc8ea6d1c0305fd", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "render_sha256": "8e27401198bc2a317f96585014b1be6845246e3349ca972d4872df702f6da51f", "sample_id": "5d6909e8abc8ea6d1c0cda03", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_03.png", "render_sha256": "382b33b73f3b2962b7b1e520b8f42a16ae0d33493d2fec38d57b8e8b0febf721", "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_02.png", "render_sha256": "0c6f44a94f31fc31425195d7bf3d65084f6698e2529338796554bc097312747e", "sample_id": "5d9cad82abc8ea6d1c23ebf1", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_02.png", "render_sha256": "bdc5c703bef9467c8d303ae2806205cf14da0c921ef7a73a34c0bd7aee9db0b3", "sample_id": "5d9cadb1abc8ea6d1c246dc8", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_01.png", "render_sha256": "7e5c6797779de22516c69d2408813286497def4cd4686894d4c75e0f3c75d2df", "sample_id": "5da04604abc8ea6d1cbe2935", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_03.png", "render_sha256": "dde7abe95876fdc90145e35dc6021644647a04a0ded3332aceacceb6a5426c1d", "sample_id": "5da071b5abc8ea6d1c1f1d6f", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "render_sha256": "f1109c0ec5574653a480776b40cf855a152a37dedd3b3317f8d5b67131709834", "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "render_sha256": "9e412115a70f5ce65388f09b02ea6643cac0b99d03d475be41299fdc8c98bbc4", "sample_id": "5dc27c32abc8ea6d1cbf115a", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_02.png", "render_sha256": "e813bd079f2a67f4047470e3ef466ded564611e0b9849164d938c9bf42c95c9c", "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_02.png", "render_sha256": "852b8850cd9a86513b58b9be6d4ff04f937115d8b7d70de6f7c8936f5a3b5523", "sample_id": "5df216b89fea0cc374b8d341", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_02.png", "render_sha256": "be5bbec4460ab71713392c87b903d0bd5ff3e49244bfc42de0dad707d1059a03", "sample_id": "5df3af489fea0cc3742457a9", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_01.png", "render_sha256": "8da6d50faef8b68045d167c31d76a8d2219d26e46ef8d609f4e23e163d93234d", "sample_id": "5df7606b9fea0cc374d371db", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_03.png", "render_sha256": "90a7100e620a6ef10ced42fff1e548511117417de9c3df34468db4c7d5385deb", "sample_id": "5e0213489fea0cc374175712", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "render_sha256": "cebb880c1406b72572945bd1ca3260b20a2646c272e15fcfb8395419ad3e468b", "sample_id": "5e0219159fea0cc37425a627", "scores": {"SDL": 3, "SGI": 4, "SIO": 2, "SQL": 4, "STV": 2}, "smean4": 2.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_02.png", "render_sha256": "c854ec145d1cc912e81b52cd1b576101cee2ab36b927d12c6a65b5d7b0cfd96b", "sample_id": "5e04ba7f9fea0cc3749733ea", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "render_sha256": "563e8a63ea4a90ab21eaf8cefd8611ddbe8f552272eb402434b349db045c8732", "sample_id": "5e0621989fea0cc3748583f6", "scores": {"SDL": 5, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_03.png", "render_sha256": "5550f34032636921cd94d3b6033b4f8193357bb69551a867858aeac077dc760f", "sample_id": "5e0d99499fea0cc374a71bcc", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_03.png", "render_sha256": "cd62043a81811dd6b498d6fdd31504b5b99610cba0bc6261f546e7f0bcd890af", "sample_id": "5e202d829fea0cc3744908a8", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_03.png", "render_sha256": "78f89902677e3fee0f12e74bacba732063c78adc71e30e4ca9d5a677dec006eb", "sample_id": "5e2031da9fea0cc37450dd01", "scores": {"SDL": 5, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_03.png", "render_sha256": "fb28f24f81ca2377cd25f3ff8f78ccd5b3581cb9ec8f4016d8e92f16ae40be5c", "sample_id": "5e28090f9fea0cc3748fc62a", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_01.png", "render_sha256": "ad4d21501c693dbdbf4d8cabb5ded16fe777959f7f56b12ca9ad97a6ff2aa199", "sample_id": "5e6f770e4b3890eb07175aee", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "render_sha256": "9343c054af282fb5953770ea790c551e015d67e20ab1715c09aee88344726726", "sample_id": "5e8762404b3890eb0782ad22", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_02.png", "render_sha256": "c554167efebacdd2f42d7f5b9985190f8098d8d299637448815de6be2fe5b205", "sample_id": "5e8d96cb4b3890eb071c683d", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_03.png", "render_sha256": "73af3425fde056cb055a30e9aab179a40afb166c5468bb950e577c24dd67e314", "sample_id": "5e8ef9fb4b3890eb0760bade", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_03.png", "render_sha256": "80dba9f08fc4018720ae94cf05b83b8fd731db8350498fb9b3d01a569f9f400f", "sample_id": "5e90704d499b85dcc7d7114d", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_03.png", "render_sha256": "6a5406e913563f9173225f06e86fdce2c469ffb111898a548ee24e3d15b14f83", "sample_id": "5e984f83499b85dcc792f6be", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 6, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_02.png", "render_sha256": "1f66d58238508c32b8f0154ed7a3bbe6d096f6d095559e28801a061dafddad57", "sample_id": "5ea01126499b85dcc781e788", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_02.png", "render_sha256": "e611bf67b91c93fadabf1c89f2e6cae32a6e3e56610fc5a4945a825f347363c3", "sample_id": "5ea2d990499b85dcc7aaeb92", "scores": {"SDL": 5, "SGI": 5, "SIO": 6, "SQL": 4, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_02.png", "render_sha256": "fdf1e34b8454d735051d49165c374f046ad6a32effe65e54d18e36e5c02aa518", "sample_id": "5ea97187499b85dcc7c45e3d", "scores": {"SDL": 5, "SGI": 4, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_03.png", "render_sha256": "c2c0919408d3a700975359d1e0a4691e172346a6e6006a8b8a875140c276686d", "sample_id": "5f114599499b85dcc796da51", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_02.png", "render_sha256": "5570960f84a09eaec0b8e9b5b8b7103a412826ad267b91a7b7ab2d02f824104d", "sample_id": "5f3b84c8a637ee11e32ee4c9", "scores": {"SDL": 3, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_02.png", "render_sha256": "1ded42109bd047557a860b1d13ace02985460e66fb6873cefac20f4344ee0389", "sample_id": "5f4c9d6fa637ee11e34ab88b", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 5, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_03.png", "render_sha256": "87d9806f0fa3b1d2cbc71c3a594c2511eb3fbf944bf1362c956385f86a68b159", "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 4, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "render_sha256": "ed7a5380e1dca0b52c2930e39123ae614f4da6280d51c24910f320810ca8f46a", "sample_id": "5f96aca7a637ee11e30bb517", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 2}, "smean4": 4.25, "status": "ok"} +{"arm": "t2", "path": "layout_agent/runs/a3/a3-rel100-t2-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_03.png", "render_sha256": "15eb79b4b38b8cc3968d32a53d53753b5c53c50ae10935883a47b0239f43bc27", "sample_id": "5fbf5b4aa637ee11e3a82536", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_03.png", "render_sha256": "381512a37e21cbee1c59086e786b97a2031af6a5b636dc876c94dfceafc3b2e0", "sample_id": "5888bb2995a7a863ddcc1f74", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_02.png", "render_sha256": "fc753d55e56b73c7d969372f6512efa90b7762d6a80c2e07782ad7bbea876683", "sample_id": "5888c54095a7a863ddcc2082", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_03.png", "render_sha256": "167eba0d5eb6d70294e60a6b6f4e103c2b438bd922bbf8d49276e46acc7f4168", "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_02.png", "render_sha256": "e9b9d9cdea0e1da9460d78c186aa1310660c5fac25483245a6d209c48c2e1601", "sample_id": "5889bc5995a7a863ddcc3b97", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_03.png", "render_sha256": "14c2bb49941119830419c64c5c0219657f5f5ca670e6f84f98d9b8fb1e722e70", "sample_id": "589b457b95a7a863ddcc5331", "scores": {"SDL": 3, "SGI": 3, "SIO": 4, "SQL": 4, "STV": 4}, "smean4": 3.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_02.png", "render_sha256": "f4952e772543b94dcb10ea832a307c27103001d103ccdff725b98fcdcd6644e4", "sample_id": "58ab17ba95a7a863ddcc77bf", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "render_sha256": "3677a0892564727f76aee0d1aa86e2cf2bf072699bbd9fa9c05a5de1298d975b", "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_02.png", "render_sha256": "e5e554da405314d579b148e38d8aa19da2b630d3c0bc92caad436f2080a74a71", "sample_id": "58cbc44595a7a863ddccc20b", "scores": {"SDL": 5, "SGI": 3, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_02.png", "render_sha256": "04a2c9a87d48f244a532f7a8204de02fb7095b65cfdf687cd9a5451f9ae93947", "sample_id": "5909cfb695a7a863ddcd37cb", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "render_sha256": "99bb772a7aa3bdacc0f09cfb9b5561a2b905b65427d4bd0cb5d16106ab705676", "sample_id": "5914233f95a7a863ddcd777c", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_02.png", "render_sha256": "8fb164ff9321a27cbd8980be93106fbd188631a4b4812dc11ec9fcbb269b1cd6", "sample_id": "592d1a2b95a7a863ddcd97aa", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_01.png", "render_sha256": "2dfa2a709c1fd7b34257838afad8991b08826b377caf59ab2dff8f3de680d248", "sample_id": "592fdd7e95a7a863ddcdbe67", "scores": {"SDL": 6, "SGI": 6, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_03.png", "render_sha256": "380b3c2991f8b112050cc22a371997eabc980254b85ddbd1bef7950b5fa91ee0", "sample_id": "5930177f95a7a863ddcdc313", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_01.png", "render_sha256": "3bd06b7ff67950aa73dbbeedd694771ed5f0d3f2dbda81e7e2482cb97068702f", "sample_id": "5931132c95a7a863ddcdc5d3", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "render_sha256": "956c17cbd8326cc8c74ff8238759acfdccc21e625c140ee672ab8e21273faf3c", "sample_id": "59313e5495a7a863ddcdc9ac", "scores": {"SDL": 5, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_03.png", "render_sha256": "4f055af63fcb113ce34652237fa9b255dab94094b2b2a6a1ff11a06cefc35fae", "sample_id": "5952704d95a7a863ddcdecb5", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_01.png", "render_sha256": "c032ba07b6df25cb45ccadb37b8f9d5483b77ca22c99b15eb68f55e8071ef724", "sample_id": "5952794195a7a863ddcdf36a", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_01.png", "render_sha256": "f268b02a0ea5cdac2af9b6a9f20473c1b82275eefb34868b466db10e489cefda", "sample_id": "5952934395a7a863ddcdff21", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/renders/r0_candidate_03.png", "render_sha256": "85579ef4408fdf3d1a45b1b2f6508fd0c7cf38f58f2086987d1114fe08693281", "sample_id": "599ecb061350e83293007738", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_03.png", "render_sha256": "18c73aa73ae6c92d936ab6b124a3e3a43a9605fc88b4efc2533a3a7f22c30e6e", "sample_id": "59b2809c1350e8329300dbe4", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "render_sha256": "064f9bed1826f7c74b33d8f3d83cadf5c04e9751d39e53bb04b64947760cb45f", "sample_id": "59bb96701350e8329301120a", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_01.png", "render_sha256": "1d2969b6c67a1d00feb1a4aaf258e34fdfa1cf8bad983794920350b17e5ce591", "sample_id": "5a034425d8141396fe9898fa", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 4}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_03.png", "render_sha256": "f0be99758d64944a245620a29cb8de02be13cfbc2511fa32ed050dd6bad4664a", "sample_id": "5a21848dd8141396fe9a33eb", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_03.png", "render_sha256": "364d5c88140676ddd2a2a38f15a4e3c1c6113ec8d65fe2e9e7fbb284cb01ab08", "sample_id": "5a240260d8141396fe9a9de3", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "render_sha256": "6209a5fbc1a5b0a4ff563b56ad0729b035dbcd21eaf43eb50a9828bfb74cfe31", "sample_id": "5a26bcecd8141396fe9ac474", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 3, "STV": 2}, "smean4": 3.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_03.png", "render_sha256": "45b837b28226f4b2f4f7b4c7aa8782c9d7643b6e2e24806f3cbbab2d47580353", "sample_id": "5a9968cff07aee6977a29a68", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_02.png", "render_sha256": "919da4d3e697992516a58fc2226a72111a78d875d04affc658ec364a1f18efd2", "sample_id": "5aa915fef07aee69773a3ef4", "scores": {"SDL": 3, "SGI": 4, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_03.png", "render_sha256": "24a346b22f49044d47bbdd0b71bf77594bf7f1e6ff6a333e206b37dbb324d544", "sample_id": "5b6aaf851cc8aa542986ad50", "scores": {"SDL": 7, "SGI": 6, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_03.png", "render_sha256": "671791cb16a624da8b1f9d3f51b9f336d7a8e89eb62c85b907f27cb77bed9cf8", "sample_id": "5b6ab3e01cc8aa542994ee9d", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_02.png", "render_sha256": "aedcc183f825041146ec98eaa46e15f38e46744bbf7d9e09ecd78af329494a0e", "sample_id": "5b85707d1cc8aa542972823c", "scores": {"SDL": 6, "SGI": 4, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "render_sha256": "df4a33457431ab8f1ac9b3478279224535ef2c9d8919c089addc9905fa8cffa3", "sample_id": "5b9a550e18654940f754c07c", "scores": {"SDL": 8, "SGI": 7, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_02.png", "render_sha256": "f9181e509eb6cc2ffd265c637a8f2fdb66e705a4a84f07cc8ff10a2dcc67a2c6", "sample_id": "5b9bc6a018654940f781b996", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "render_sha256": "245c3a74ec539e3d1792f1df7583851fcea729bde7b75a23d2f254416ed70916", "sample_id": "5ba8b598ebe74117be0792c9", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_02.png", "render_sha256": "55d6750d2665f7097182ab37de803a5c4e48a19b937bad54f33504c367dc9e7c", "sample_id": "5bbc9b3a78e1194aa616041e", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 3, "STV": 4}, "smean4": 3.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_02.png", "render_sha256": "6360c3449b8b7f2eb00b06eb1ff4fef6c94dbcf6e7bfe5579894e977d719f7b3", "sample_id": "5bbcbdfd78e1194aa69fe067", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "render_sha256": "a293ee3d8d8da1472f7b25391190cddbab645ba94bd6e5c199af14a1ce909d1a", "sample_id": "5bd05c0e78e1194aa6210e31", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 6, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_01.png", "render_sha256": "98995e18b6633e6af16c6ce563111763e1086196d9196a312052faf23c77f453", "sample_id": "5bd9d0209259f9ba54b29c99", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_02.png", "render_sha256": "5874b014713025d28b06ea3f7593e9084a8631cf83471ec8e5864a9189a41379", "sample_id": "5be174d215d5cddfd04fd1a2", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_01.png", "render_sha256": "c9e013423bc1669915b13e718dbf2b527f1a2df5778c408415d863d753bd616b", "sample_id": "5be97b9241fdeab19f985504", "scores": {"SDL": 4, "SGI": 4, "SIO": 2, "SQL": 3, "STV": 3}, "smean4": 3, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_01.png", "render_sha256": "41873a83817712d2cb97f5047e1e48df04aeea033af31425cc8e4de9899de608", "sample_id": "5bf55e578caf671e1c2272f0", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "render_sha256": "0123aed703a311eb0ce5acf03a4e15764abea88b1df6613a147082aefbf7ab2d", "sample_id": "5bf828a38caf671e1c2632e9", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "render_sha256": "f13ed8999ab50e2e10557a97e650a03b4d76d8ebd3b91130e8cf14910e2fc449", "sample_id": "5c263de4133a785392318ba9", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_03.png", "render_sha256": "28cade55145f89a234de4e40c2cdd957071f7816c84c0e6b2aafc231ea4716d1", "sample_id": "5c41f55b048d064dbcc85b80", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 5}, "smean4": 6, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "render_sha256": "775cd11cedc80a96068de6d0d876eeb51bdbe2f1ce412b6a54e615f09f77129a", "sample_id": "5c41f7a3048d064dbccfae94", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_02.png", "render_sha256": "e7fa6fa08d0adc0f00bb15a1081b340eae3f4ad74c38d5609771ffa05d7b0d0c", "sample_id": "5c5af7a1048d064dbc1f0d67", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_02.png", "render_sha256": "420b1006c5ad5dfd65b78a56fc15ee5a8ba899176749b04077e475396d4e4b6a", "sample_id": "5c5b0913048d064dbc785e7c", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_03.png", "render_sha256": "00d74b43d646962abcf993dcdc1fda999affd0cebedbd65faa51ab61fac53e7e", "sample_id": "5c5b095c048d064dbc7a0ede", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 5}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_02.png", "render_sha256": "b479a9b12793676fd5b391dc31c9103602c3a652bfb421811961d996357bf5d0", "sample_id": "5c6c147785ea3c16f98dd907", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_03.png", "render_sha256": "142cbd57d49d50162344650c4f26990b7ecdd025d068aaf508a21fd4b2425741", "sample_id": "5c77eda885ea3c16f9f29101", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 3, "STV": 4}, "smean4": 3.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_01.png", "render_sha256": "f898e34ea1bd1b9921db7c1b8337fe81837fb2d5eea8cb4e92443ad79d64d484", "sample_id": "5ca5faf823c829c8218ffb10", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_01.png", "render_sha256": "b22fbe3fe427c7c073250f93a733e9be81b10400210eb288d7750061bf731fc6", "sample_id": "5cb89d8aadbc796055f970af", "scores": {"SDL": 4, "SGI": 4, "SIO": 4, "SQL": 7, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_03.png", "render_sha256": "a47df7ce23b15d8b2f28fb01f9b58ce0d78dac3bead46402f326de2f5100c35d", "sample_id": "5cd67f1f7d4459dfe12714cf", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "render_sha256": "647cf3687e3ec369a9a9732ed234db86a0abad043f730367ed08a90ba2209019", "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 5}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_02.png", "render_sha256": "e828b9d86ce559b3b10b73545f1ab9719d87a211b4222627bb0fcd41b7dc918c", "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_02.png", "render_sha256": "e87015572257cd80df44d9fe4107526c5c0381ddd7e59b27b0dbbb3db7aac5fe", "sample_id": "5ce3ba947d4459dfe1cebd75", "scores": {"SDL": 4, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_02.png", "render_sha256": "7f3d3152fdce36434ab87971214b08788086ae7235d65a99dc5cceba694d7cf2", "sample_id": "5cfe2ad78cba87f943da4ec5", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_02.png", "render_sha256": "73eee8b3725aea141a5bfbe8f378b13a08c06ff7984cb1980486eecf1a276df5", "sample_id": "5d08f3708cba87f943ec4e3f", "scores": {"SDL": 4, "SGI": 5, "SIO": 3, "SQL": 5, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_03.png", "render_sha256": "22d7775d38f4913352aa1facee9994c35e19c6e9fb94ef43f1b6eaac526043b9", "sample_id": "5d08f7a08cba87f943f48a6d", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_01.png", "render_sha256": "8a1607ca3758d7f99effb3de4310f187d8eb61fbfc0863b06f622eb5f68149c0", "sample_id": "5d0cf79f8cba87f943616ca6", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_03.png", "render_sha256": "5f2f75e6ce2ae6993c794eb4b179fe6cb442cf91290f2fb5bf1f342a8852c128", "sample_id": "5d234eaf8cba87f94322b763", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_01.png", "render_sha256": "621cf5786df5f8594990ac03804ee4e49d10f0dbcc5ace9d2d25886fc6549846", "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 6, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d67ed46cf657b21ef7bdad9/renders/r0_candidate_03.png", "render_sha256": "68d7ea198ea3a16ac68483b45f9898f30272b3ba26a34c0bc466e7ab6d2f8bb7", "sample_id": "5d67ed46cf657b21ef7bdad9", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_02.png", "render_sha256": "a0632d2e2d7db9a3b60b0f127d0e8765f0a0a67216ad9a10ffcdd18aaf677a53", "sample_id": "5d68dd6ce79a2a634ea111b8", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "render_sha256": "c784711f9a057021db3ce847ebbe381d622c37dc719640610a55963521ffcb3f", "sample_id": "5d6903b8abc8ea6d1c0305fd", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 6, "STV": 5}, "smean4": 6, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "render_sha256": "5887bc4c068b9cecfd74347c3bcd692b4f0d3aa23f16f60ff31da8ae4c1a4f55", "sample_id": "5d6909e8abc8ea6d1c0cda03", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_03.png", "render_sha256": "46598c40f6b99dce8ae3fa5d3e23251a8c3d2af52a8e98cf550cb8a4b9425c79", "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_03.png", "render_sha256": "b03d13787d4b270c0dd75172b5c1bb107867c018980d5492cfef9657e7082014", "sample_id": "5d9cad82abc8ea6d1c23ebf1", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_03.png", "render_sha256": "f5776af1d31dd090ac57618b6f755280ebc2cebf0ba87595d0f872089be7de83", "sample_id": "5d9cadb1abc8ea6d1c246dc8", "scores": {"SDL": 4, "SGI": 5, "SIO": 6, "SQL": 4, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_03.png", "render_sha256": "81e55e0b2a02793577aad90a25f1935f115c176b8976b63cec26a20968a94ad3", "sample_id": "5da071b5abc8ea6d1c1f1d6f", "scores": {"SDL": 6, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "render_sha256": "89201937ca41f6d0bde3dada20cbbef64f3be68c41b1405465420f997686231d", "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "render_sha256": "5acb14677f9da4eb4d2210464035da9c735b114e3d8f918f629355b092bc5789", "sample_id": "5dc27c32abc8ea6d1cbf115a", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 6, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_01.png", "render_sha256": "9b7774892f74f6b5eb3dcc176b54e38ec87bce580dbabb9264dda3503530c0f1", "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 4, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_03.png", "render_sha256": "673ce1e54ab73ed459b8301034e7e5d37073c7598f2029e759a80cc113febf60", "sample_id": "5df216b89fea0cc374b8d341", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_02.png", "render_sha256": "9fcc8cbda489e8f3c9960664f2fc80a8d3b740c2481ad9da567c21af1d81f91d", "sample_id": "5df3af489fea0cc3742457a9", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_02.png", "render_sha256": "47df4c68cdff0603d82cc388d995b7361e8128d6f49411ba09bf18ef1717c42c", "sample_id": "5df7606b9fea0cc374d371db", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_02.png", "render_sha256": "8cef3a518117a0753586e17ea7d4d95b398ca5b8e656f3ae9aba5f78da3cc4bb", "sample_id": "5e0213489fea0cc374175712", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "render_sha256": "6dc1b5406258faba21397882520f3a71c273a88ca151f3f6c5e33c9bf7904ef4", "sample_id": "5e0219159fea0cc37425a627", "scores": {"SDL": 3, "SGI": 5, "SIO": 2, "SQL": 5, "STV": 3}, "smean4": 3.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_03.png", "render_sha256": "6b8336ccf8673b9aff35cf8454d90d2bfc127a4e58824f84da142bb223bb318e", "sample_id": "5e04ba7f9fea0cc3749733ea", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 5}, "smean4": 4.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "render_sha256": "0b5704c079b459eb692f7be2e79dbd670c078e3f06cc039a92cdfb27df134d72", "sample_id": "5e0621989fea0cc3748583f6", "scores": {"SDL": 5, "SGI": 4, "SIO": 3, "SQL": 2, "STV": 6}, "smean4": 4, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_03.png", "render_sha256": "e265a1a42a8178d20316a0d045de7acf2159a0f5513bd186ba03e23ec5f235ed", "sample_id": "5e0d99499fea0cc374a71bcc", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_02.png", "render_sha256": "7240d3ec026fc6e53d79299caf8be0e046f7195f68d54be3b8f4e43dda63c9d9", "sample_id": "5e202d829fea0cc3744908a8", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_02.png", "render_sha256": "8dbafa7c31f800df564776096a1999d1e136ff873cd6caed220f5e0308964300", "sample_id": "5e2031da9fea0cc37450dd01", "scores": {"SDL": 6, "SGI": 5, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_01.png", "render_sha256": "954faac225841c9483cb99aa78fd9e57223778946ecbce7bd99e8cf1ced02d41", "sample_id": "5e28090f9fea0cc3748fc62a", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_03.png", "render_sha256": "a3f13c920fbb95ab96fbdf54cee3ea752b7647d4e33969f4e9ec57f15633573f", "sample_id": "5e6f770e4b3890eb07175aee", "scores": {"SDL": 3, "SGI": 2, "SIO": 2, "SQL": 4, "STV": 3}, "smean4": 3, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "render_sha256": "86df4178e66121c6059aed4b0eaf322b85cdf482b7679343577f5fdf893f7cb9", "sample_id": "5e8762404b3890eb0782ad22", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_03.png", "render_sha256": "bb3eb1029f71c6100b11e038a89aba609263fdc25e7f8260dd2cba696f8bfae8", "sample_id": "5e8d96cb4b3890eb071c683d", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_01.png", "render_sha256": "91f897f2ff205b74e2322a79fe406d8937d8bd4056461ce9cd23f3f18255b15c", "sample_id": "5e8ef9fb4b3890eb0760bade", "scores": {"SDL": 5, "SGI": 5, "SIO": 6, "SQL": 4, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_02.png", "render_sha256": "4553df827df24bbcbce1a9df888d83215af0048d6bb021a485e90a66c7294a98", "sample_id": "5e90704d499b85dcc7d7114d", "scores": {"SDL": 5, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_03.png", "render_sha256": "22d8d93745bdaf42a6b0dd170f3027ab499e3d707072d659ef45fa1e40bb5bb3", "sample_id": "5e984f83499b85dcc792f6be", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 5, "STV": 4}, "smean4": 4.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_03.png", "render_sha256": "064acb64024c55ce8f2c7f04c3451f291a95deb76c29d76af4b75c63bf5afa29", "sample_id": "5ea01126499b85dcc781e788", "scores": {"SDL": 5, "SGI": 6, "SIO": 5, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_03.png", "render_sha256": "2b45648b884c1493da8a59ad1b8dea4a4c629aaa9259df628902e552dfe867a1", "sample_id": "5ea2d990499b85dcc7aaeb92", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 3, "STV": 4}, "smean4": 4, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_03.png", "render_sha256": "860d56e9da9fb42068d07b4d873b9643ebc85a4105d4d8d449f2da9e5c3e14ea", "sample_id": "5ea97187499b85dcc7c45e3d", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_02.png", "render_sha256": "ae7b03a9583f2d0091e287f8e32b06491ece1200c455fec563e33ae43f13782a", "sample_id": "5f114599499b85dcc796da51", "scores": {"SDL": 4, "SGI": 5, "SIO": 4, "SQL": 5, "STV": 3}, "smean4": 4, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_03.png", "render_sha256": "20c17ae0dc5bb37ddcefb1b337b1b45735b8956b127a0f737ce548a2b82c824f", "sample_id": "5f3b84c8a637ee11e32ee4c9", "scores": {"SDL": 2, "SGI": 5, "SIO": 2, "SQL": 4, "STV": 2}, "smean4": 2.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_03.png", "render_sha256": "d1f4db7073a53a26b3d8b622ff2973b1697a9f68d960d88ad385b6a516cad028", "sample_id": "5f4c9d6fa637ee11e34ab88b", "scores": {"SDL": 6, "SGI": 7, "SIO": 7, "SQL": 6, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_01.png", "render_sha256": "f8146c04b94ea221a4360e1d72c1300fc8056c54d349b0bb21d6d1c8c33584a8", "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 5, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 5}, "smean4": 5.5, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f644f40a637ee11e3669a1c/renders/r0_candidate_01.png", "render_sha256": "c98c43fd3b63b04a24916ad0fee7ea49e2a22d864e4ed6bea3fea5745bb73528", "sample_id": "5f644f40a637ee11e3669a1c", "scores": {"SDL": 3, "SGI": 5, "SIO": 5, "SQL": 4, "STV": 3}, "smean4": 3.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "render_sha256": "8ba0c00d839c5f55e7ed61048464c95ae42939055b17d5f58fa1181b3b989d02", "sample_id": "5f96aca7a637ee11e30bb517", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 2}, "smean4": 4.75, "status": "ok"} +{"arm": "t3", "path": "layout_agent/runs/a3/a3-rel100-t3-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_01.png", "render_sha256": "43fc354ae6920166be4119bbc14c9fdc37e8fd70c51061d6cda95862c63e9aed", "sample_id": "5fbf5b4aa637ee11e3a82536", "scores": {"SDL": 4, "SGI": 5, "SIO": 5, "SQL": 6, "STV": 4}, "smean4": 4.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5888bb2995a7a863ddcc1f74/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5888bb2995a7a863ddcc1f74", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5888c54095a7a863ddcc2082/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5888c54095a7a863ddcc2082", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5888dd7995a7a863ddcc2e86/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5888dd7995a7a863ddcc2e86", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5889bc5995a7a863ddcc3b97/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5889bc5995a7a863ddcc3b97", "scores": {"SDL": 8, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_589b457b95a7a863ddcc5331/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "589b457b95a7a863ddcc5331", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_58ab17ba95a7a863ddcc77bf/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "58ab17ba95a7a863ddcc77bf", "scores": {"SDL": 8, "SGI": 9, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_58ab189395a7a863ddcc7847/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "58ab189395a7a863ddcc7847", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_58cbc44595a7a863ddccc20b/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "58cbc44595a7a863ddccc20b", "scores": {"SDL": 8, "SGI": 7, "SIO": 7, "SQL": 9, "STV": 8}, "smean4": 8, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5909cfb695a7a863ddcd37cb/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5909cfb695a7a863ddcd37cb", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5914233f95a7a863ddcd777c/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5914233f95a7a863ddcd777c", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_592d1a2b95a7a863ddcd97aa/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "592d1a2b95a7a863ddcd97aa", "scores": {"SDL": 6, "SGI": 6, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_592fdd7e95a7a863ddcdbe67/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "592fdd7e95a7a863ddcdbe67", "scores": {"SDL": 8, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5930177f95a7a863ddcdc313/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5930177f95a7a863ddcdc313", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5931132c95a7a863ddcdc5d3/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5931132c95a7a863ddcdc5d3", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_59313e5495a7a863ddcdc9ac/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "59313e5495a7a863ddcdc9ac", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5952704d95a7a863ddcdecb5/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5952704d95a7a863ddcdecb5", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5952794195a7a863ddcdf36a/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5952794195a7a863ddcdf36a", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5952934395a7a863ddcdff21/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5952934395a7a863ddcdff21", "scores": {"SDL": 7, "SGI": 7, "SIO": 4, "SQL": 8, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_599ecb061350e83293007738/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "599ecb061350e83293007738", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_59b2809c1350e8329300dbe4/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "59b2809c1350e8329300dbe4", "scores": {"SDL": 5, "SGI": 5, "SIO": 6, "SQL": 6, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_59bb96701350e8329301120a/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "59bb96701350e8329301120a", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5a034425d8141396fe9898fa/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5a034425d8141396fe9898fa", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5a21848dd8141396fe9a33eb/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5a21848dd8141396fe9a33eb", "scores": {"SDL": 8, "SGI": 8, "SIO": 5, "SQL": 9, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5a240260d8141396fe9a9de3/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5a240260d8141396fe9a9de3", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5a26bcecd8141396fe9ac474/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5a26bcecd8141396fe9ac474", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5a9968cff07aee6977a29a68/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5a9968cff07aee6977a29a68", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5aa915fef07aee69773a3ef4/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5aa915fef07aee69773a3ef4", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5b6aaf851cc8aa542986ad50/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5b6aaf851cc8aa542986ad50", "scores": {"SDL": 7, "SGI": 6, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5b6ab3e01cc8aa542994ee9d/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5b6ab3e01cc8aa542994ee9d", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5b85707d1cc8aa542972823c/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5b85707d1cc8aa542972823c", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5b9a550e18654940f754c07c/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5b9a550e18654940f754c07c", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 9}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5b9bc6a018654940f781b996/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5b9bc6a018654940f781b996", "scores": {"SDL": 7, "SGI": 8, "SIO": 4, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ba8b598ebe74117be0792c9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ba8b598ebe74117be0792c9", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bbc9b3a78e1194aa616041e/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bbc9b3a78e1194aa616041e", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bbcbdfd78e1194aa69fe067/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bbcbdfd78e1194aa69fe067", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bd05c0e78e1194aa6210e31/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bd05c0e78e1194aa6210e31", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bd9d0209259f9ba54b29c99/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bd9d0209259f9ba54b29c99", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5be174d215d5cddfd04fd1a2/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5be174d215d5cddfd04fd1a2", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5be97b9241fdeab19f985504/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5be97b9241fdeab19f985504", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bf55e578caf671e1c2272f0/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bf55e578caf671e1c2272f0", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5bf828a38caf671e1c2632e9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5bf828a38caf671e1c2632e9", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c263de4133a785392318ba9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c263de4133a785392318ba9", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c41f55b048d064dbcc85b80/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c41f55b048d064dbcc85b80", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c41f7a3048d064dbccfae94/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c41f7a3048d064dbccfae94", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c5af7a1048d064dbc1f0d67/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c5af7a1048d064dbc1f0d67", "scores": {"SDL": 8, "SGI": 9, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c5b0913048d064dbc785e7c/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c5b0913048d064dbc785e7c", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c5b095c048d064dbc7a0ede/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c5b095c048d064dbc7a0ede", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c6c147785ea3c16f98dd907/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c6c147785ea3c16f98dd907", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5c77eda885ea3c16f9f29101/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5c77eda885ea3c16f9f29101", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ca5faf823c829c8218ffb10/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ca5faf823c829c8218ffb10", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5cb89d8aadbc796055f970af/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5cb89d8aadbc796055f970af", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 6}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5cd67f1f7d4459dfe12714cf/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5cd67f1f7d4459dfe12714cf", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 9, "STV": 8}, "smean4": 8, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5cd6984b7d4459dfe140c0b4/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5cd6984b7d4459dfe140c0b4", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5cde64e47d4459dfe1b81863/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5cde64e47d4459dfe1b81863", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ce3ba947d4459dfe1cebd75/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ce3ba947d4459dfe1cebd75", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5cfe2ad78cba87f943da4ec5/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5cfe2ad78cba87f943da4ec5", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d08f3708cba87f943ec4e3f/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d08f3708cba87f943ec4e3f", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d08f7a08cba87f943f48a6d/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d08f7a08cba87f943f48a6d", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d0cf79f8cba87f943616ca6/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d0cf79f8cba87f943616ca6", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d234eaf8cba87f94322b763/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d234eaf8cba87f94322b763", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d4ae4aecf657b21effa9831/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d4ae4aecf657b21effa9831", "scores": {"SDL": 8, "SGI": 8, "SIO": 8, "SQL": 8, "STV": 8}, "smean4": 8, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d67ed46cf657b21ef7bdad9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d67ed46cf657b21ef7bdad9", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d68dd6ce79a2a634ea111b8/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d68dd6ce79a2a634ea111b8", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d6903b8abc8ea6d1c0305fd/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d6903b8abc8ea6d1c0305fd", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d6909e8abc8ea6d1c0cda03/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d6909e8abc8ea6d1c0cda03", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d9c8fa2abc8ea6d1cd0d3e7/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d9cad82abc8ea6d1c23ebf1/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d9cad82abc8ea6d1c23ebf1", "scores": {"SDL": 7, "SGI": 7, "SIO": 7, "SQL": 7, "STV": 6}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5d9cadb1abc8ea6d1c246dc8/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5d9cadb1abc8ea6d1c246dc8", "scores": {"SDL": 4, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 4.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5da04604abc8ea6d1cbe2935/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5da04604abc8ea6d1cbe2935", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5da071b5abc8ea6d1c1f1d6f/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5da071b5abc8ea6d1c1f1d6f", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5dbbff2eabc8ea6d1c15c382/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5dbbff2eabc8ea6d1c15c382", "scores": {"SDL": 8, "SGI": 9, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5dc27c32abc8ea6d1cbf115a/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5dc27c32abc8ea6d1cbf115a", "scores": {"SDL": 7, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5df211c29fea0cc374abbbba/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5df211c29fea0cc374abbbba", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5df216b89fea0cc374b8d341/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5df216b89fea0cc374b8d341", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5df3af489fea0cc3742457a9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5df3af489fea0cc3742457a9", "scores": {"SDL": 7, "SGI": 7, "SIO": 5, "SQL": 6, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5df7606b9fea0cc374d371db/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5df7606b9fea0cc374d371db", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e0213489fea0cc374175712/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e0213489fea0cc374175712", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 6}, "smean4": 5.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e0219159fea0cc37425a627/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e0219159fea0cc37425a627", "scores": {"SDL": 6, "SGI": 6, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e04ba7f9fea0cc3749733ea/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e04ba7f9fea0cc3749733ea", "scores": {"SDL": 6, "SGI": 7, "SIO": 4, "SQL": 5, "STV": 6}, "smean4": 5.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e0621989fea0cc3748583f6/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e0621989fea0cc3748583f6", "scores": {"SDL": 6, "SGI": 5, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e0d99499fea0cc374a71bcc/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e0d99499fea0cc374a71bcc", "scores": {"SDL": 8, "SGI": 9, "SIO": 5, "SQL": 8, "STV": 8}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e202d829fea0cc3744908a8/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e202d829fea0cc3744908a8", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 6, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e2031da9fea0cc37450dd01/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e2031da9fea0cc37450dd01", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e28090f9fea0cc3748fc62a/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e28090f9fea0cc3748fc62a", "scores": {"SDL": 6, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 6}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e6f770e4b3890eb07175aee/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e6f770e4b3890eb07175aee", "scores": {"SDL": 6, "SGI": 6, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e8762404b3890eb0782ad22/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e8762404b3890eb0782ad22", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e8d96cb4b3890eb071c683d/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e8d96cb4b3890eb071c683d", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 9, "STV": 8}, "smean4": 7.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e8ef9fb4b3890eb0760bade/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e8ef9fb4b3890eb0760bade", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 7, "STV": 8}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e90704d499b85dcc7d7114d/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e90704d499b85dcc7d7114d", "scores": {"SDL": 7, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5e984f83499b85dcc792f6be/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5e984f83499b85dcc792f6be", "scores": {"SDL": 7, "SGI": 7, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ea01126499b85dcc781e788/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ea01126499b85dcc781e788", "scores": {"SDL": 5, "SGI": 6, "SIO": 4, "SQL": 6, "STV": 5}, "smean4": 5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ea2d990499b85dcc7aaeb92/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ea2d990499b85dcc7aaeb92", "scores": {"SDL": 7, "SGI": 7, "SIO": 6, "SQL": 8, "STV": 6}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5ea97187499b85dcc7c45e3d/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5ea97187499b85dcc7c45e3d", "scores": {"SDL": 6, "SGI": 4, "SIO": 4, "SQL": 7, "STV": 6}, "smean4": 5.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f114599499b85dcc796da51/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f114599499b85dcc796da51", "scores": {"SDL": 7, "SGI": 6, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 6.75, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f3b84c8a637ee11e32ee4c9/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f3b84c8a637ee11e32ee4c9", "scores": {"SDL": 8, "SGI": 7, "SIO": 5, "SQL": 8, "STV": 7}, "smean4": 7, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f4c9d6fa637ee11e34ab88b/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f4c9d6fa637ee11e34ab88b", "scores": {"SDL": 8, "SGI": 8, "SIO": 7, "SQL": 8, "STV": 7}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f5b5a3da637ee11e3e5adbf/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f5b5a3da637ee11e3e5adbf", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 8}, "smean4": 7.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f644f40a637ee11e3669a1c/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f644f40a637ee11e3669a1c", "scores": {"SDL": 8, "SGI": 8, "SIO": 6, "SQL": 8, "STV": 7}, "smean4": 7.25, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5f96aca7a637ee11e30bb517/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5f96aca7a637ee11e30bb517", "scores": {"SDL": 7, "SGI": 8, "SIO": 5, "SQL": 7, "STV": 7}, "smean4": 6.5, "status": "ok"} +{"arm": "gt", "path": "layout_agent/output/crello_5fbf5b4aa637ee11e3a82536/ground_truth_preview.jpg", "render_sha256": null, "sample_id": "5fbf5b4aa637ee11e3a82536", "scores": {"SDL": 6, "SGI": 7, "SIO": 5, "SQL": 7, "STV": 6}, "smean4": 6, "status": "ok"} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/aggregate.json b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/aggregate.json new file mode 100644 index 000000000..1b4a2af64 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/aggregate.json @@ -0,0 +1 @@ +{"arm_metric_means":{"A3-T2":{"ali":{"mean":0.0011773813954924885,"n":98},"ove":{"mean":0.1172618179776605,"n":98},"pca":{"mean":0.761362080556732,"n":98},"sgc":{"mean":0.7037424417083629,"n":98},"tlc":{"mean":0.6710931714705849,"n":98}},"elem2design":{"ali":{"mean":0.00018229044612234378,"n":94},"ove":{"mean":0.24957831389702,"n":94},"pca":{"mean":0.6449921417664811,"n":94},"sgc":{"mean":0.5354738462470412,"n":94},"tlc":{"mean":0.5091868901740921,"n":94}}},"arms":{"A3-T2":{"failed_samples":[{"reason":"A3L0PipelineError","sample_id":"5d67ed46cf657b21ef7bdad9"},{"reason":"ValueError","sample_id":"5f644f40a637ee11e3669a1c"}],"n_completed":98,"n_failed":2,"n_total":100},"elem2design":{"failed_samples":[{"reason":"conversion_errors","sample_id":"5931132c95a7a863ddcdc5d3"},{"reason":"conversion_errors","sample_id":"5a21848dd8141396fe9a33eb"},{"reason":"conversion_errors","sample_id":"5bbcbdfd78e1194aa69fe067"},{"reason":"conversion_errors","sample_id":"5d9cad82abc8ea6d1c23ebf1"},{"reason":"conversion_errors","sample_id":"5f3b84c8a637ee11e32ee4c9"},{"reason":"conversion_errors","sample_id":"5f644f40a637ee11e3669a1c"}],"n_completed":94,"n_failed":6,"n_total":100}},"bootstrap":{"method":"percentile","resamples":10000,"seed":20260712},"comparisons":[{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design","family":"primary","losses":19,"mean_diff":0.16840516782330237,"mean_diff_ci95":{"confidence":0.95,"high":0.20766102272335601,"low":0.12712041413491895,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":1.5441836887624024e-08,"sign_test_p_raw":7.720918443812012e-09,"ties":0,"wins":74},{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design","family":"primary","losses":11,"mean_diff":0.15781425839353744,"mean_diff_ci95":{"confidence":0.95,"high":0.1931606799790756,"low":0.12206790661154822,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":7.504515189660256e-14,"sign_test_p_raw":2.5015050632200852e-14,"ties":1,"wins":81},{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design","family":"primary","losses":24,"mean_diff":0.11672225956406522,"mean_diff_ci95":{"confidence":0.95,"high":0.17134511640953265,"low":0.06171652903414115,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":0.0033722333341480717,"sign_test_p_raw":0.0033722333341480717,"ties":19,"wins":50},{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design","family":"geometry","losses":3,"mean_diff":0.0009941145254634988,"mean_diff_ci95":{"confidence":0.95,"high":0.0018783929970902517,"low":0.0002930159122159107,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ali","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":0.021270751953125,"sign_test_p_raw":0.021270751953125,"ties":77,"wins":13},{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design","family":"geometry","losses":84,"mean_diff":-0.13467997747608737,"mean_diff_ci95":{"confidence":0.95,"high":-0.1086291052821637,"low":-0.16036262297877563,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ove","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":4.337722888509061e-16,"sign_test_p_raw":2.1688614442545304e-16,"ties":0,"wins":9}],"evaluation_id":"a3-t2-vs-elem2design-rel100-v1","notes":["diff = A3-T2 - elem2design; ali/ove lower is better","Holm within families: primary={sgc,tlc,pca}, geometry={ali,ove}","rea/occ deferred (render+saliency pipeline), not reported as 0","results are Relation N=100 only; do not generalize"],"schema_version":"a3.external-baseline-compare.v1"} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/evaluation_manifest.json new file mode 100644 index 000000000..9d3f8a2ef --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"a3_run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01","artifact_sha256":{"aggregate.json":"c3861cd22c7839c5f6f54148557cc2f8ef664dc4abcb3c6a15910a3343f88f7a","per_sample.jsonl":"3137f8120c99863a37adb79496fc6819f41ffde3f05b255bb3a8483d303ac6c0","results.md":"7271f02e335897dc5ad63ecf3553c7016f4f1601eb2b06474a07da4683ebeee4"},"code_sha256":{"compare_external_baseline.py":"4b81a26daa9b5be7d2ec20ee4ad1084b97d405826d7cbcbf741ea36ca43f71e6"},"created_at":"2026-07-12T13:20:04.303282+00:00","evaluation_id":"a3-t2-vs-elem2design-rel100-v1","external_eval_dir":"/home/hui0705/MetaGPT/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1","external_per_sample_sha256":"ddb3a5b1271c38c90f30526e2698f35a596df8e48d41fd440580dcfc365e91c5","schema_version":"a3.external-baseline-compare.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/per_sample.jsonl b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/per_sample.jsonl new file mode 100644 index 000000000..69843203b --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/per_sample.jsonl @@ -0,0 +1,200 @@ +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"23221e94f17edad642e12729dbe0994740b364dbd5d476b934542da328cd2dca","oracle_sha256":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","ove":0.1288854514841399,"pca":0.8333333333333334,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.relation-stats.v1","sgc":0.7482027635478075,"skip_reasons":[],"status":"completed","tlc":0.6807958477508651} +{"ali":0.0038189063488661495,"arm":"A3-T2","error_type":null,"l0_result_sha256":"1d42e1992b30f79e5dad7020a03fcb4a76a61750f917f572753180dabe7b54ad","oracle_sha256":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","ove":0.09694180274103392,"pca":0.4,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.relation-stats.v1","sgc":0.5458603123884033,"skip_reasons":[],"status":"completed","tlc":0.5879629629629629} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"4cd2773b12c37727ca22f518a75735121c1ed7764ed97a2e65646a364a2bbe5b","oracle_sha256":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","ove":0.05237126512036725,"pca":0.5,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.relation-stats.v1","sgc":0.6722126085702167,"skip_reasons":[],"status":"completed","tlc":0.6243455497382199} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"796e88a029fffe0a78548f2b7b28abd8ac55914c1d6c36aef5b4f325dcc3f4da","oracle_sha256":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","ove":0.2992394281301443,"pca":0.42857142857142855,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.relation-stats.v1","sgc":0.33272247305782154,"skip_reasons":[],"status":"completed","tlc":0.33157894736842103} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"6ec299880a5f82d9df5deba1688dea7d80a27808c8353de1d720c6a5df7c7d48","oracle_sha256":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","ove":0.484246685643805,"pca":1.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.relation-stats.v1","sgc":0.9999846510564709,"skip_reasons":[],"status":"completed","tlc":0.7901785714285714} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"56480c43ea2c674a5b989f348373c7923b097a611baaf2fae453451d17e36460","oracle_sha256":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","ove":0.20555497534715583,"pca":0.6923076923076923,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.relation-stats.v1","sgc":0.5398787532623038,"skip_reasons":[],"status":"completed","tlc":0.39267015706806285} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"da4a858a5662f688e6d362d590ec333300680e7e7fb20f3e5a64796e6095a2cb","oracle_sha256":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","ove":0.17500543343041952,"pca":1.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.relation-stats.v1","sgc":0.9999956659685777,"skip_reasons":[],"status":"completed","tlc":0.7857142857142857} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"89f1d6ee4c421ae398667f59a794157fd45f665339d2bce26588dfdf02763f0c","oracle_sha256":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","ove":0.04709262600080395,"pca":1.0,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.relation-stats.v1","sgc":0.8971203546687206,"skip_reasons":[],"status":"completed","tlc":0.8233333333333334} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"070e90095d658cb1f75b1b9e7849362fcb81c6dee4880aa2a4af62f8ee6ee903","oracle_sha256":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","ove":0.10505004352664846,"pca":0.7142857142857143,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.relation-stats.v1","sgc":0.8361562613785314,"skip_reasons":[],"status":"completed","tlc":0.6547619047619048} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"2914aa78753a64aeba90e98c6d17e6dcbb58766a39ec649c60ac516fef2664ff","oracle_sha256":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","ove":0.12956361985753803,"pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.relation-stats.v1","sgc":0.6061510200444014,"skip_reasons":[],"status":"completed","tlc":0.7724358974358975} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"2abe6fe3a9bb36cdcb26d2c4815b14bfe4460a2d22f278e2a76a875161a41d41","oracle_sha256":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","ove":0.028640309049916154,"pca":1.0,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.relation-stats.v1","sgc":0.7025047882700469,"skip_reasons":[],"status":"completed","tlc":0.7757009345794392} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0e4f73d52b07890a4c53567aca661b2fd51f66ba4898ec638a1d888670ff0894","oracle_sha256":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","ove":0.18426399443040736,"pca":1.0,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.relation-stats.v1","sgc":0.6989202422923508,"skip_reasons":[],"status":"completed","tlc":0.7371794871794872} +{"ali":0.003620629487761602,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0e0708e90b09de4e5349458c7b4c71c2ded90b677608fe2f7173569f6429f6a8","oracle_sha256":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","ove":0.07387928917851747,"pca":0.8571428571428571,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.relation-stats.v1","sgc":0.5944834047465287,"skip_reasons":[],"status":"completed","tlc":0.6944444444444444} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"d3ecfeb3804e5e972a15b65fea027c788ecc8f0a5f3f5116f860cbec0da6675a","oracle_sha256":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","ove":0.6813923093436636,"pca":0.7,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.relation-stats.v1","sgc":0.44575942208000124,"skip_reasons":[],"status":"completed","tlc":0.7057471264367816} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"1296fd2ebb4a6daa45388361a434f0f7f5ef56e09dc23ddfc5c2b058b13e007d","oracle_sha256":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","ove":0.09669696951065851,"pca":0.7,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.relation-stats.v1","sgc":0.6057849085620752,"skip_reasons":[],"status":"completed","tlc":0.5673076923076923} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"a42070560e416d63906d33e59dcd6e55fd972f921fbc40fd0f130f1d4790599c","oracle_sha256":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","ove":0.054844761611059646,"pca":0.7142857142857143,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.relation-stats.v1","sgc":0.8197073585204103,"skip_reasons":[],"status":"completed","tlc":0.7528735632183908} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"b7db638369b3b7ff74b2c3a4e9bc543e2f5068905d07438684733c23d6e41957","oracle_sha256":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","ove":0.014139962200622403,"pca":0.625,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.relation-stats.v1","sgc":0.6117284045086314,"skip_reasons":[],"status":"completed","tlc":0.7520325203252033} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"3d2ee7865ebf1f78578f10167f6e6cc7e5d7835b18fa332a037f2e5b6e919214","oracle_sha256":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","ove":0.0,"pca":0.4,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.relation-stats.v1","sgc":0.5632434687893173,"skip_reasons":[],"status":"completed","tlc":0.5} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"73ba8d68872cfc50638182271f20dd3d7f747be056ee61911f5b0946dd83fe5f","oracle_sha256":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","ove":0.0035419126328217238,"pca":0.6,"sample_id":"599ecb061350e83293007738","schema_version":"a3.relation-stats.v1","sgc":0.5278264846235706,"skip_reasons":[],"status":"completed","tlc":0.375} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ed17a72e147fab49462c7b28d5a8c2efff05a23a5fc5434ec0e3653ab0c52f3e","oracle_sha256":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","ove":0.1336881221848344,"pca":0.6666666666666666,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.relation-stats.v1","sgc":0.5269164125809805,"skip_reasons":[],"status":"completed","tlc":0.6844086021505377} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0023f2d426f6d85a67639f193f007d4d5678d268e5d458092f0ef300ec6b50df","oracle_sha256":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","ove":0.03944083094352017,"pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.relation-stats.v1","sgc":0.9093051291217894,"skip_reasons":[],"status":"completed","tlc":0.9264705882352942} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"15549df5cdd2a7a13768ed3422454a60b5d072123edb3cd398bfac9aaefd459d","oracle_sha256":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","ove":0.08430545332413877,"pca":0.7,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.relation-stats.v1","sgc":0.6014616681081659,"skip_reasons":[],"status":"completed","tlc":0.6204188481675392} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"f80b1234d4b16ab781f91e9d9bafbca0f50c6e0b0bc5f83f3378871701145700","oracle_sha256":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","ove":0.2665054177082747,"pca":1.0,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.relation-stats.v1","sgc":0.8569897203217322,"skip_reasons":[],"status":"completed","tlc":0.8347457627118644} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"5b10ee4a094158aa33118b3dd30d31e6ae55bcf8d25628d62f4cca59d6fbf3ca","oracle_sha256":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","ove":0.11447430457331446,"pca":0.6,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.relation-stats.v1","sgc":0.582715303490998,"skip_reasons":[],"status":"completed","tlc":0.5697674418604651} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"f226eda6cc5a504f678ba66bbcf679d61f3806a3bed9d53e55150fbb099c1592","oracle_sha256":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","ove":0.08197029934107498,"pca":0.8333333333333334,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.relation-stats.v1","sgc":0.608131876292101,"skip_reasons":[],"status":"completed","tlc":0.6583333333333333} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ac09d1baef6eed2b007473bb3285f341a947f186569df0f574cf6478b35e86d8","oracle_sha256":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","ove":0.016040203071782017,"pca":1.0,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.relation-stats.v1","sgc":0.7878567109554578,"skip_reasons":[],"status":"completed","tlc":0.8089171974522293} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"a745245b94e6b61a90ee997652c52cb30c53f0696f718b82f4ca7ce4e0321cdf","oracle_sha256":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","ove":0.5930382487756437,"pca":0.6842105263157895,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.relation-stats.v1","sgc":0.8006291381811507,"skip_reasons":[],"status":"completed","tlc":0.6192411924119241} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"3f12aa9b41170c44684b2f75e9563ec3dafc1652cb4b8271acbc30c39006beec","oracle_sha256":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","ove":0.4111163071869225,"pca":0.875,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.relation-stats.v1","sgc":0.8748747465901319,"skip_reasons":[],"status":"completed","tlc":0.8580246913580247} +{"ali":0.030785789718808607,"arm":"A3-T2","error_type":null,"l0_result_sha256":"d7e0a6f3b4fa1212345813430412cf0f1d2189a8a252636064367b26262a698b","oracle_sha256":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","ove":0.02749728367054027,"pca":1.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.relation-stats.v1","sgc":0.8925015256393524,"skip_reasons":[],"status":"completed","tlc":0.7115384615384616} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"c308f6fa55a2b1de43861bc90085151117638a625c297d351dee79bdce511f46","oracle_sha256":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","ove":0.06533659411597639,"pca":0.8,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.relation-stats.v1","sgc":0.6293416777163263,"skip_reasons":[],"status":"completed","tlc":0.5902777777777778} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"3eb36eac6dba83d0198f6034f7489452ab4380ebf855e3fc0acae21c824f7f5c","oracle_sha256":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","ove":0.09518152159510694,"pca":1.0,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.relation-stats.v1","sgc":0.7279925855361934,"skip_reasons":[],"status":"completed","tlc":0.775} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"8db41c8fbd7faab5ed4f1d18463f837693aefc6858f4f9af14677b2149dc9455","oracle_sha256":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","ove":0.01642120151905915,"pca":0.75,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.relation-stats.v1","sgc":0.6131419088848644,"skip_reasons":[],"status":"completed","tlc":0.6323529411764706} +{"ali":0.004706818334089455,"arm":"A3-T2","error_type":null,"l0_result_sha256":"cb3a312fe06085a1b6fc6b4f0f8c8aa88c763cc9f0fc5e7180f3f28c11250aeb","oracle_sha256":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","ove":0.015060023892612082,"pca":0.625,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.relation-stats.v1","sgc":0.6136070032152714,"skip_reasons":[],"status":"completed","tlc":0.573076923076923} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"9df94c0a63224d7e301e6ff4bbfbfa5910a6f4add2c7f394f85b0a8bae15e833","oracle_sha256":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","ove":0.12784260060929953,"pca":1.0,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.relation-stats.v1","sgc":0.7053383656981662,"skip_reasons":[],"status":"completed","tlc":0.6746031746031746} +{"ali":0.0057954239546581555,"arm":"A3-T2","error_type":null,"l0_result_sha256":"03a217aff2eaed39687068145e98f45435e28b0afebe9fcedb7827161a34cb8d","oracle_sha256":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","ove":0.08092239822670211,"pca":1.0,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.relation-stats.v1","sgc":0.9580061240936982,"skip_reasons":[],"status":"completed","tlc":0.9769230769230769} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ea57e9123908d381b344d51539ae87835fffce7a90ca42b6d69aa5f5b2af9d4a","oracle_sha256":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","ove":0.15213927062244423,"pca":1.0,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.relation-stats.v1","sgc":0.8316092160981801,"skip_reasons":[],"status":"completed","tlc":0.9003623188405797} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"05599645e7fdd2edda4618dc3771ce18a9d1260174500cdb8eb938e87d23f0d8","oracle_sha256":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","ove":0.10003347104763481,"pca":0.6,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.relation-stats.v1","sgc":0.8291819384567711,"skip_reasons":[],"status":"completed","tlc":0.7016129032258065} +{"ali":0.007248313133808678,"arm":"A3-T2","error_type":null,"l0_result_sha256":"5c0c3cb0b93320967c1cbd99e077a43ae32f8194c126800c9e82cbbcb70bd72a","oracle_sha256":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","ove":0.0685703334379016,"pca":1.0,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.relation-stats.v1","sgc":0.9903466676145068,"skip_reasons":[],"status":"completed","tlc":0.9375} +{"ali":0.00417877917799543,"arm":"A3-T2","error_type":null,"l0_result_sha256":"370520986af2a131960f720edd22406ec8ea76a459603d3e944b0de7ec63722a","oracle_sha256":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","ove":0.17499682777747916,"pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.relation-stats.v1","sgc":0.9869777656227094,"skip_reasons":[],"status":"completed","tlc":0.7833333333333333} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"dd6bfd2b2d87fc6c4eddf32cb3b5c2bcfa23182036ef53f7c2087db9b2a9f09b","oracle_sha256":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","ove":0.15140181962972885,"pca":0.5555555555555556,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.relation-stats.v1","sgc":0.4542742709822947,"skip_reasons":[],"status":"completed","tlc":0.4625} +{"ali":0.0056169780732463455,"arm":"A3-T2","error_type":null,"l0_result_sha256":"fc3dc511635cd097eac531828be0501dca026e609c259bf9626a0b63666368c1","oracle_sha256":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","ove":0.03930881267473729,"pca":0.5,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.relation-stats.v1","sgc":0.6337326076243216,"skip_reasons":[],"status":"completed","tlc":0.5890804597701149} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"05ee0f86f8079e987609456be6d333aa4f9f4302c3f7a298a4c83be2887059de","oracle_sha256":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","ove":0.06916391607956893,"pca":0.8,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.relation-stats.v1","sgc":0.6474802884183452,"skip_reasons":[],"status":"completed","tlc":0.7638888888888888} +{"ali":0.002488793648858659,"arm":"A3-T2","error_type":null,"l0_result_sha256":"859854df394ffab14ecbf3db1440be0828896c00ca8f35e8e903619ba7b96f39","oracle_sha256":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","ove":0.13975082166692307,"pca":1.0,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.relation-stats.v1","sgc":0.9179826223799269,"skip_reasons":[],"status":"completed","tlc":0.8736559139784946} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"7efd398a8d45051e7804de21b5daadb59556739e4a8171d5355ae6e05a241157","oracle_sha256":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","ove":0.15227361071203085,"pca":0.42857142857142855,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.relation-stats.v1","sgc":0.428345011276356,"skip_reasons":[],"status":"completed","tlc":0.5203488372093024} +{"ali":0.005432926603896161,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ead8cb8c51386804a20d1ef550c7e0dea283494e4d88159e2160cbfe0029db69","oracle_sha256":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","ove":0.0853366584689515,"pca":0.6,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.relation-stats.v1","sgc":0.4781141411916106,"skip_reasons":[],"status":"completed","tlc":0.46794871794871795} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"afdf83dd5cb1c891d3f185adb16ee1ee871d5095b22983bb29651e184037b4d3","oracle_sha256":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","ove":0.021364199920611972,"pca":0.7272727272727273,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.relation-stats.v1","sgc":0.664295972977928,"skip_reasons":[],"status":"completed","tlc":0.671875} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"f01d1c00806593edbfdb164dc95eba4f416bf9366384cdbf55b1f24017cbf221","oracle_sha256":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","ove":0.0,"pca":0.8181818181818182,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.relation-stats.v1","sgc":0.7624774186407994,"skip_reasons":[],"status":"completed","tlc":0.7260536398467433} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"d41b2065f7f75698634ac92e1f81d52a04004b7251d4007733744c177853af0c","oracle_sha256":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","ove":0.030216489185533154,"pca":0.8181818181818182,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.relation-stats.v1","sgc":0.6747889236735606,"skip_reasons":[],"status":"completed","tlc":0.6449771689497716} +{"ali":0.008751528140242508,"arm":"A3-T2","error_type":null,"l0_result_sha256":"5a506ef584dd4da80dc5d80a09819a376b0ba71716ab1a4f47e07bd35a22a2fa","oracle_sha256":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","ove":0.04363643076382631,"pca":0.625,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.relation-stats.v1","sgc":0.6115465797223385,"skip_reasons":[],"status":"completed","tlc":0.6413043478260869} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"f90791ad766879a4c793614346b785e3eee31d54bebafa5cc8360cac69b16439","oracle_sha256":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","ove":0.04245844132259805,"pca":0.875,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.relation-stats.v1","sgc":0.7414441925696406,"skip_reasons":[],"status":"completed","tlc":0.7041666666666667} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ba1e76c14edfbd3ef4874a174c29a3855a1f3d46cf490e75f90c512f61714825","oracle_sha256":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","ove":0.20242597621243574,"pca":0.6,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.relation-stats.v1","sgc":0.40012051893085177,"skip_reasons":[],"status":"completed","tlc":0.45075757575757575} +{"ali":0.013589404786896568,"arm":"A3-T2","error_type":null,"l0_result_sha256":"c4866c5b2deda599cb39f3fc379a8321d2fda67c8de79b25328d3e432d98e7c8","oracle_sha256":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","ove":0.16851841287873814,"pca":0.625,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.relation-stats.v1","sgc":0.44519244227782495,"skip_reasons":[],"status":"completed","tlc":0.5321969696969697} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"21d5fe489930761ea9609cf8b2c732c85af2d236fd84b56987fe77c67a1b53a8","oracle_sha256":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","ove":0.33552719646369655,"pca":0.75,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.relation-stats.v1","sgc":0.7532868702936788,"skip_reasons":[],"status":"completed","tlc":0.6155172413793103} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"af18d54d6c8ce5eba22aff96427e3c5b72e9e7cf514b95a8259dc86bc90b02f2","oracle_sha256":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","ove":0.018919036132931586,"pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.relation-stats.v1","sgc":0.9420878385060589,"skip_reasons":[],"status":"completed","tlc":0.9765625} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"10436beeda90ac8da222753eb08be4636e10a4958f09c53de8a7e5d69943ea26","oracle_sha256":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","ove":0.05831033290675631,"pca":0.8333333333333334,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.relation-stats.v1","sgc":0.7738874265330963,"skip_reasons":[],"status":"completed","tlc":0.7628205128205128} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ccb93279cd7eb66241480f14a73f56f913d1be3680bc2a2469b7672e56cbb526","oracle_sha256":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","ove":0.10011135837565703,"pca":0.5714285714285714,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.relation-stats.v1","sgc":0.634916694840706,"skip_reasons":[],"status":"completed","tlc":0.6127450980392157} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"38c434638c5fa6c48503c469a19d2d9929c8cd084c2de3e28678b1618c518960","oracle_sha256":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","ove":0.19636717720499222,"pca":0.6363636363636364,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.relation-stats.v1","sgc":0.4695761222277591,"skip_reasons":[],"status":"completed","tlc":0.5867158671586716} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"280b5ca5ebd48b0027032043bf56d0f8690c3715917638204745901965e76969","oracle_sha256":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","ove":0.01755342120621979,"pca":1.0,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.relation-stats.v1","sgc":0.8766921810772305,"skip_reasons":[],"status":"completed","tlc":0.8079710144927537} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"29e254c088fea6581e201102bdbbc1041fa307a93e6ca649b1945f3e0c68071e","oracle_sha256":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","ove":0.06361384156653051,"pca":0.5714285714285714,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.relation-stats.v1","sgc":0.655391231688876,"skip_reasons":[],"status":"completed","tlc":0.45739910313901344} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"1ca6cd9c4df5e91b648855fdccede501109a1d86e9afae2fea3f56be67a90de1","oracle_sha256":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","ove":0.060783407899094546,"pca":0.8461538461538461,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.relation-stats.v1","sgc":0.9358999448717106,"skip_reasons":[],"status":"completed","tlc":0.8479020979020979} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"87deb599b09170006c10997e03506d8b66bc992a0ecdc2381a2afba67b858333","oracle_sha256":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","ove":0.2367151583574197,"pca":0.85,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.relation-stats.v1","sgc":0.9049569758923748,"skip_reasons":[],"status":"completed","tlc":0.8395032802249297} +{"ali":null,"arm":"A3-T2","error_type":"A3L0PipelineError","ove":null,"pca":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.relation-stats.v1","sgc":null,"skip_reasons":[],"status":"generation_failure","tlc":null} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ba9d4f8e63a300ba2cf8ce402460279a8cba219e4e045a21ef0b247afbafb8b1","oracle_sha256":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","ove":0.02591282266252315,"pca":0.75,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.relation-stats.v1","sgc":0.6071537740853974,"skip_reasons":[],"status":"completed","tlc":0.6583333333333333} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"a7ec5d4d75b2573163cbcf9da0e59ceed22ea35297d9a3260d2b95558de8b4ef","oracle_sha256":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","ove":0.11183897394540465,"pca":0.4,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.relation-stats.v1","sgc":0.6973680054480206,"skip_reasons":[],"status":"completed","tlc":0.5538674033149171} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"83a03a655aebf15dfbd562a67e018330028385aca4cc7d335574b201362cf847","oracle_sha256":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","ove":0.07522260565714445,"pca":0.5,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.relation-stats.v1","sgc":0.44909723936454704,"skip_reasons":[],"status":"completed","tlc":0.4666666666666667} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"40a9832164f52346da1cee85852ff4a1d22da7e762df2aa9d277d463cd024744","oracle_sha256":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","ove":0.09428476867233207,"pca":0.7142857142857143,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.relation-stats.v1","sgc":0.7588076920190123,"skip_reasons":[],"status":"completed","tlc":0.7587209302325582} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0645482e0181a31d05e53f64c96c13af52af9eac4cf2ef10af146cbf494ca7d6","oracle_sha256":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","ove":0.03701092023466577,"pca":0.5454545454545454,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.relation-stats.v1","sgc":0.6424803805293559,"skip_reasons":[],"status":"completed","tlc":0.5048309178743962} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"f625e2deaa9930d704b54cf56e31d039743192ebb728bc6702d9aea1f6ebc78a","oracle_sha256":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","ove":0.07426216918371002,"pca":0.5,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.relation-stats.v1","sgc":0.4248963967474512,"skip_reasons":[],"status":"completed","tlc":0.5106157112526539} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"7ee72e2f945e8943db8f681bacd516f2c36b851722a72f94a58a48a1af7cf7f5","oracle_sha256":"9382a216b1c9e916bf00a3ee15dbd8b3abb97bdaa42f813bf3e6f9445a843854","ove":0.018787271459043346,"pca":0.6666666666666666,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.relation-stats.v1","sgc":0.6072458945104945,"skip_reasons":[],"status":"completed","tlc":0.75} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"8564b7b8a6a47f873d2f220b990356698d4ad40430381c8e069186971ac0d5f9","oracle_sha256":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","ove":0.05954439231526775,"pca":0.5714285714285714,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.relation-stats.v1","sgc":0.5225983361846284,"skip_reasons":[],"status":"completed","tlc":0.4340350877192982} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"ebd5958e2a866837b315041c0de08ea4c602a728ff45b5f1fce008c2898962e4","oracle_sha256":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","ove":0.08812266412792909,"pca":0.5454545454545454,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.relation-stats.v1","sgc":0.5454167408939352,"skip_reasons":[],"status":"completed","tlc":0.5160142348754448} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"878ee56afd7c9e5e549d7e67f04310bd663fef6c9fe346be0c51ba414c3a42ba","oracle_sha256":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","ove":0.028488913542732853,"pca":0.9375,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.relation-stats.v1","sgc":0.9115341530863534,"skip_reasons":[],"status":"completed","tlc":0.9299242424242424} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"fa8cb2cf552285e2e125565aece97bf1f9b618637e409c423bf09321ed2b762d","oracle_sha256":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","ove":0.03776481469552758,"pca":0.75,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.relation-stats.v1","sgc":0.9255548296470621,"skip_reasons":[],"status":"completed","tlc":0.796875} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"1afb44f6cbc3b987078023a5a6ffc806fe5a98edcf47ea5c6e53c28edf47eb0d","oracle_sha256":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","ove":0.1188995354883608,"pca":0.8,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.relation-stats.v1","sgc":0.8204529101825134,"skip_reasons":[],"status":"completed","tlc":0.5478723404255319} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"7510334a8d943f8e7d5bf043b96f3fa773433b6044541108c6397ea6c4debc89","oracle_sha256":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","ove":0.14981982528118867,"pca":1.0,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.relation-stats.v1","sgc":0.6454501446581047,"skip_reasons":[],"status":"completed","tlc":0.5625} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"5aa22d9b412f910aa23c045e9a889882c960aac2da12a2e13f8ef09c0c9dd87a","oracle_sha256":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","ove":0.10027206944459044,"pca":1.0,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.relation-stats.v1","sgc":0.9855082572262965,"skip_reasons":[],"status":"completed","tlc":0.8690476190476191} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"3a867666354d68b6ee0054e48abd9885f85dc64f59e5ce3d5ec86a82e976147f","oracle_sha256":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","ove":0.10798542018521963,"pca":0.6666666666666666,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.relation-stats.v1","sgc":0.896977640081714,"skip_reasons":[],"status":"completed","tlc":0.6941624365482234} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"e78374f18164f074ae558b37def6aff77d36846a370305e83e8044dc09e2bb3b","oracle_sha256":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","ove":0.12728921656612724,"pca":0.7,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.relation-stats.v1","sgc":0.8351752350519471,"skip_reasons":[],"status":"completed","tlc":0.5959955089820359} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"c29e861362cd2155078f96fdb0326d367da158449d99646dec2dcf1529aea208","oracle_sha256":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","ove":0.16883632567722576,"pca":0.5,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.relation-stats.v1","sgc":0.6127318881041032,"skip_reasons":[],"status":"completed","tlc":0.5266497461928934} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0489d50eace34652630a59773918ccd32d81f2a02a5bd8a728e54e4b9e1a42cc","oracle_sha256":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","ove":0.17100131664975363,"pca":1.0,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.relation-stats.v1","sgc":0.8261497577836725,"skip_reasons":[],"status":"completed","tlc":0.6875} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"24fd282b96142cb23b20ad514eff783ffc8c35d7c23b8efce7bc4806bd34d782","oracle_sha256":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","ove":0.041313621327629765,"pca":1.0,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.relation-stats.v1","sgc":0.8391334651342213,"skip_reasons":[],"status":"completed","tlc":0.8444444444444444} +{"ali":0.00845636532277679,"arm":"A3-T2","error_type":null,"l0_result_sha256":"1ef826773b5bc2f6e627aed1cb8fc183f70b39d81ccd37752f5d19f71fd6424a","oracle_sha256":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","ove":0.25000700806641907,"pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.relation-stats.v1","sgc":0.8220702984489198,"skip_reasons":[],"status":"completed","tlc":0.6764705882352942} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"b8fcae26c7563841870f7101ae290b820b6e57a77d0408d185e20455f8529b82","oracle_sha256":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","ove":0.14228559534318103,"pca":0.5,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.relation-stats.v1","sgc":0.7724889634399987,"skip_reasons":[],"status":"completed","tlc":0.6455479452054794} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"0724f6c0f6dc729c0fb72ce686ec56ae02104886541dc0b69e78fca14bf8e7c0","oracle_sha256":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","ove":0.028500602766440362,"pca":0.7142857142857143,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.relation-stats.v1","sgc":0.6477089868362875,"skip_reasons":[],"status":"completed","tlc":0.5994623655913979} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"fca90e597ecfdea4d9aab0a00766f98615d3597e2dbe2f851b7e1e744b917950","oracle_sha256":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","ove":0.08782655087634604,"pca":0.7777777777777778,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.relation-stats.v1","sgc":0.628001366363327,"skip_reasons":[],"status":"completed","tlc":0.728125} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"6dc14c3ddf865fd827c5faa4c7ed64a5af34c3611498677b33efbf2d484a8c5d","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","ove":0.026659062029911123,"pca":0.75,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.relation-stats.v1","sgc":0.5741118103150117,"skip_reasons":[],"status":"completed","tlc":0.46296296296296297} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"4910998ec2c4d1001372eb04a6a1766f69b77e0e995a30347a3439a2f21c0fca","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","ove":0.05411523936056828,"pca":1.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.relation-stats.v1","sgc":0.931498063586207,"skip_reasons":[],"status":"completed","tlc":0.8703703703703703} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"23d952c492e7ee69ba0cfcfadc4d47cff13d7e3ee1ca2aa771d478aa4c087d90","oracle_sha256":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","ove":0.1505010555420829,"pca":0.8333333333333334,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.relation-stats.v1","sgc":0.8659390313680816,"skip_reasons":[],"status":"completed","tlc":0.927734375} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"990bcc0503a93eeeb7f30a37b2b24df7a22955f21ffd4a4f2749f50580dd3e4d","oracle_sha256":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","ove":0.035057616847949745,"pca":1.0,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.relation-stats.v1","sgc":0.629050216949967,"skip_reasons":[],"status":"completed","tlc":0.7647058823529411} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"d1ed82d83a9c8135e33a2999ed658c3c5087ad3fbc07fa3bbe43cb59c5624fed","oracle_sha256":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","ove":0.19043167359947796,"pca":0.75,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.relation-stats.v1","sgc":0.9225357386192247,"skip_reasons":[],"status":"completed","tlc":0.5416666666666666} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"b60ad501cab58bb783c052ddff49b2a25d23991dd7a2d476c2c714c9e5842377","oracle_sha256":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","ove":0.029784492495870188,"pca":0.3333333333333333,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.relation-stats.v1","sgc":0.34435553398805496,"skip_reasons":[],"status":"completed","tlc":0.3146551724137931} +{"ali":0.006574686726204123,"arm":"A3-T2","error_type":null,"l0_result_sha256":"b280a2b28169a3c93b6eef6a4120f2ea58d8b7419b1633e1587d572ee4e10645","oracle_sha256":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","ove":0.15128009875921344,"pca":1.0,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.relation-stats.v1","sgc":0.8415664858207582,"skip_reasons":[],"status":"completed","tlc":0.90625} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"2b13139f7f5c4ed499db4f7f79d27aa1a5423b466cc5b13402235cc73203cff9","oracle_sha256":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","ove":0.11705945434114551,"pca":0.8333333333333334,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.relation-stats.v1","sgc":0.6622143253267906,"skip_reasons":[],"status":"completed","tlc":0.6611111111111111} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"bbad046e7c75b29277c429371ebab5812b0ee845d8bfb0360ead61c4a7b8174e","oracle_sha256":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","ove":0.034749102849975615,"pca":0.8,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.relation-stats.v1","sgc":0.3530460722348394,"skip_reasons":[],"status":"completed","tlc":0.38333333333333336} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"800aac1babecf79bade8ac585154a855883a23900a9246d0f4abdd737d9d3951","oracle_sha256":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","ove":0.17893641216470313,"pca":0.7407407407407407,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.relation-stats.v1","sgc":0.6322022274673998,"skip_reasons":[],"status":"completed","tlc":0.7673315259488769} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"bf0b712790bad9e5a9484af6355993283025c1cf2340de83a208581930585b59","oracle_sha256":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","ove":0.3775264256788228,"pca":0.8,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.relation-stats.v1","sgc":0.9240031107546418,"skip_reasons":[],"status":"completed","tlc":0.8333333333333334} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"20d01c8a570bc3608946e9867ac62d61f22616a943bd31a966e6b1cb051da06d","oracle_sha256":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","ove":0.02522536179812681,"pca":0.6470588235294118,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.relation-stats.v1","sgc":0.600621376380749,"skip_reasons":[],"status":"completed","tlc":0.5655570652173914} +{"ali":null,"arm":"A3-T2","error_type":"ValueError","ove":null,"pca":null,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.relation-stats.v1","sgc":null,"skip_reasons":[],"status":"generation_failure","tlc":null} +{"ali":0.004318033300154643,"arm":"A3-T2","error_type":null,"l0_result_sha256":"c4f5bb31eb038da33fa5dd28a56e90c05cb97a32a3ec87f51b493058331639f4","oracle_sha256":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","ove":0.14907836308935235,"pca":0.7,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.relation-stats.v1","sgc":0.7914217892656731,"skip_reasons":[],"status":"completed","tlc":0.7787356321839081} +{"ali":0.0,"arm":"A3-T2","error_type":null,"l0_result_sha256":"53c07ca89c7b7910bb86af3d9f71e1ba48841ad2b064fa4830a297d705e219e9","oracle_sha256":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","ove":0.06628832659179715,"pca":0.5555555555555556,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.relation-stats.v1","sgc":0.5885320423627957,"skip_reasons":[],"status":"completed","tlc":0.43485915492957744} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"7de80aa8de8c5391b6690f51196389a2b4a840e123d04384bd5b3f11611559c7","method":"elem2design","ove":0.2294057917812287,"pca":1.0,"reason":null,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.external-baseline-eval.v1","sgc":0.48100368280672023,"skip_reasons":[],"status":"completed","tlc":0.3356401384083045} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"fe6bd6c4ed0fb2ce7e463c44004648181f217710ad38ff2b48963eb4712e57cf","method":"elem2design","ove":0.31329385400968435,"pca":0.2,"reason":null,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.external-baseline-eval.v1","sgc":0.3924104229671262,"skip_reasons":[],"status":"completed","tlc":0.4583333333333333} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"415a4716ab4c03ad617f4852c4e2e607ff0beb50fa143578d863ef461e02120e","method":"elem2design","ove":0.21306308215126424,"pca":1.0,"reason":null,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.external-baseline-eval.v1","sgc":0.6425758947178216,"skip_reasons":[],"status":"completed","tlc":0.5608638743455497} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"743161e1dd1482d3ca0c3c71db857891c308354a46ff87667029906c38812348","method":"elem2design","ove":0.3813263031630911,"pca":0.5714285714285714,"reason":null,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.external-baseline-eval.v1","sgc":0.27733967148901434,"skip_reasons":[],"status":"completed","tlc":0.2894736842105263} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"68935ebaea6f2c2a78f2add9e942fecb957d69dd2b4288d6554ed3e2e6b114d7","method":"elem2design","ove":0.5818872835602596,"pca":1.0,"reason":null,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.external-baseline-eval.v1","sgc":0.39316331083223355,"skip_reasons":[],"status":"completed","tlc":0.5446428571428571} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"a8397fba1fb62e821675007c0de61b06b587df9244536d106769f5ac2dba342e","method":"elem2design","ove":0.5167768776163201,"pca":0.6153846153846154,"reason":null,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.external-baseline-eval.v1","sgc":0.39028289450842907,"skip_reasons":[],"status":"completed","tlc":0.3481675392670157} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"5698b51f8521fc7d51574bc4981fd2b4a75faeda0b73aeb7934e151d5a435429","method":"elem2design","ove":0.2890919910365138,"pca":0.6666666666666666,"reason":null,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.external-baseline-eval.v1","sgc":0.5944267684913913,"skip_reasons":[],"status":"completed","tlc":0.4880952380952381} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"d363714f5bee6a85e682f672ab79a191f4325d12d00fb67c251b590fc67539be","method":"elem2design","ove":0.16296641243238905,"pca":0.875,"reason":null,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.external-baseline-eval.v1","sgc":0.6647611976563329,"skip_reasons":[],"status":"completed","tlc":0.7377777777777778} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2d4ad5466a8e4aea4180688a509422c8ab27952516c4d33a89e25d9b5ad51ba9","method":"elem2design","ove":0.33295879139904405,"pca":0.2857142857142857,"reason":null,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.external-baseline-eval.v1","sgc":0.42820012418812076,"skip_reasons":[],"status":"completed","tlc":0.32142857142857145} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"de588177fe32b8e6120619dda737591968b95dfcb83ad7bfe0fdd7e4f725bdc8","method":"elem2design","ove":0.1808485444801955,"pca":0.16666666666666666,"reason":null,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.external-baseline-eval.v1","sgc":0.3484982896814318,"skip_reasons":[],"status":"completed","tlc":0.3173076923076923} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"f35329bc8a222c6c1b2c2edba0c7994ee463b58c24994f9b2979053dccf4202e","method":"elem2design","ove":0.0860153458804599,"pca":0.25,"reason":null,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.external-baseline-eval.v1","sgc":0.4246759621803005,"skip_reasons":[],"status":"completed","tlc":0.41627725856697817} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"a83af05a33a19c62c54a9b2cecf763d7ca75e28b77a3f5038b8f91a24a799f24","method":"elem2design","ove":0.34143509361918756,"pca":0.75,"reason":null,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.external-baseline-eval.v1","sgc":0.4648382683404292,"skip_reasons":[],"status":"completed","tlc":0.5128205128205128} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"300ce6c359a11fca6399efd3482e8b8aac401dda16b6a9f92b02492ea2556acd","method":"elem2design","ove":0.29774590030768533,"pca":1.0,"reason":null,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.external-baseline-eval.v1","sgc":0.9713438034056223,"skip_reasons":[],"status":"completed","tlc":0.75} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"56212b02b7abd41811f13a0470898433b19c22c1532ed817702001885a4db3da","method":"elem2design","ove":0.26696781016698795,"pca":0.7,"reason":null,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.external-baseline-eval.v1","sgc":0.5191691732599977,"skip_reasons":[],"status":"completed","tlc":0.5128205128205128} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"89635c5f4845048c7760f4ff8a33b1569aa5f7a903fd6140950d8cffc7b7d4e4","method":"elem2design","ove":0.1693010145751218,"pca":0.42857142857142855,"reason":null,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.external-baseline-eval.v1","sgc":0.3251015496677344,"skip_reasons":[],"status":"completed","tlc":0.5316091954022989} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"3e2f4d36a18be97ba0648cdade8fd3bda9d73e65233a23745300feb815fea6c1","method":"elem2design","ove":0.25817611187037065,"pca":0.75,"reason":null,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.external-baseline-eval.v1","sgc":0.46445431669103815,"skip_reasons":[],"status":"completed","tlc":0.5040650406504065} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"686f2bcba4abd8b865bd12a249469ce792664d7a37b7103c4a2cd22f66774587","method":"elem2design","ove":0.038626700680272116,"pca":0.8,"reason":null,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.external-baseline-eval.v1","sgc":0.6118285607938896,"skip_reasons":[],"status":"completed","tlc":0.5} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"7d3a8c0ec9887edec5ac7894dfc7833df37f6499afc85b201aa6c88ce65ea611","method":"elem2design","ove":0.18312652114172592,"pca":0.6,"reason":null,"sample_id":"599ecb061350e83293007738","schema_version":"a3.external-baseline-eval.v1","sgc":0.4311800108129126,"skip_reasons":[],"status":"completed","tlc":0.4375} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"31e5944475bb40d34de76cecd5ec6937541a5e03c2b004a4cc2882b6e4316d7c","method":"elem2design","ove":0.288261752343435,"pca":1.0,"reason":null,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.external-baseline-eval.v1","sgc":0.6577420950974414,"skip_reasons":[],"status":"completed","tlc":0.4446236559139785} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"630ccaffce25b4b38c4c49e89b11ecd7baadd4cdbc0cefecb7121791a54eadc6","method":"elem2design","ove":0.07862226957866708,"pca":0.4,"reason":null,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.external-baseline-eval.v1","sgc":0.4546483025043767,"skip_reasons":[],"status":"completed","tlc":0.5441176470588235} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"834cf5c0ab2771ee2313c7b9e0f7bfdad2ad7197c170b34ef1b1dbb7791096e9","method":"elem2design","ove":0.2329564689822435,"pca":0.3,"reason":null,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.external-baseline-eval.v1","sgc":0.3948931904176601,"skip_reasons":[],"status":"completed","tlc":0.4306282722513089} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"d014691b2bb55e38857abc9143208badb3e7b132166f3f7a2e062bb6fe4e7e02","method":"elem2design","ove":0.09620218929781611,"pca":0.8,"reason":null,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.external-baseline-eval.v1","sgc":0.7227182365514555,"skip_reasons":[],"status":"completed","tlc":0.6744186046511628} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"80e9e33a308166b2789fe851dfe13ac6072ac24e69517b0c8f959ac982529258","method":"elem2design","ove":0.13501421077996112,"pca":0.6666666666666666,"reason":null,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.external-baseline-eval.v1","sgc":0.37588175333918866,"skip_reasons":[],"status":"completed","tlc":0.43333333333333335} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"950778d68f2ab3aab7dd32604d5379e2d45a65095347519ade94f1b5a96aa2e9","method":"elem2design","ove":0.05632951268540802,"pca":0.4444444444444444,"reason":null,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.external-baseline-eval.v1","sgc":0.49954854093596057,"skip_reasons":[],"status":"completed","tlc":0.5652866242038217} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"7285460335b7cb6f4199d16d8d72283e07c395c83124692907c22378cd8c406d","method":"elem2design","ove":0.24254518777452685,"pca":0.8421052631578947,"reason":null,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.external-baseline-eval.v1","sgc":0.46832376567982636,"skip_reasons":[],"status":"completed","tlc":0.4911924119241192} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"f58f59add724827e076561a3962594c1ef65183381f7578200383986c898bd6a","method":"elem2design","ove":0.7885952707823335,"pca":0.625,"reason":null,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.external-baseline-eval.v1","sgc":0.9747948141418626,"skip_reasons":[],"status":"completed","tlc":0.8395061728395061} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"1e29afc1ecb4cb6f930ce3b14f0ec6ab8cdd8a2cbc84edf960130d80cb586e96","method":"elem2design","ove":0.2167163319882955,"pca":0.6666666666666666,"reason":null,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.external-baseline-eval.v1","sgc":0.5584253812978013,"skip_reasons":[],"status":"completed","tlc":0.5769230769230769} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"02b969af623bf6969eed015cdf06e4a5aa9c67a6f0564f3a144f87c6afb2d575","method":"elem2design","ove":0.20401261908847834,"pca":0.4,"reason":null,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.external-baseline-eval.v1","sgc":0.44944003094346624,"skip_reasons":[],"status":"completed","tlc":0.4166666666666667} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2639e909368fa80015f04d0d3e69e07053f55c4d068c1ff0f5ef37296734940d","method":"elem2design","ove":0.03262296549479168,"pca":0.6,"reason":null,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.external-baseline-eval.v1","sgc":0.7476870100797491,"skip_reasons":[],"status":"completed","tlc":0.5833333333333334} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"5c0a37b475a11c7ba2a69474542b876c4038b64eacdfd7f7aa4cf1b3efe68d84","method":"elem2design","ove":0.024595233608218203,"pca":0.5,"reason":null,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.external-baseline-eval.v1","sgc":0.40134673249500996,"skip_reasons":[],"status":"completed","tlc":0.2647058823529412} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"e296fd27bdfa2c4c9646d361c63610452f1d63ac71f20600fa554d016379599f","method":"elem2design","ove":0.2669377486086057,"pca":0.375,"reason":null,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.external-baseline-eval.v1","sgc":0.3763386561417696,"skip_reasons":[],"status":"completed","tlc":0.35384615384615387} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2e664e8539949ad3dd1ce89f693a5470b874cb251d00f233e2c2c99f08f013c9","method":"elem2design","ove":0.18866579491306026,"pca":0.16666666666666666,"reason":null,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.external-baseline-eval.v1","sgc":0.34635524191170736,"skip_reasons":[],"status":"completed","tlc":0.3253968253968254} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"8bc29ee47f63dc1a593406a57fe9cb660eb79de67f879490307589f662703c96","method":"elem2design","ove":0.47246143354764775,"pca":0.625,"reason":null,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.external-baseline-eval.v1","sgc":0.4556330594204655,"skip_reasons":[],"status":"completed","tlc":0.4782608695652174} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"aab7353024336c53569aa2e7de9c29bd259d900957dbe43f4e0dfe807b3fd857","method":"elem2design","ove":0.28677192106660016,"pca":0.7,"reason":null,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.external-baseline-eval.v1","sgc":0.33916159793659056,"skip_reasons":[],"status":"completed","tlc":0.603494623655914} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"0c60dca00b3c8c258a9b06f5b83f125cdcfc8b13af6ffd48f092a9ebf005c2dd","method":"elem2design","ove":0.1827802498586758,"pca":1.0,"reason":null,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.external-baseline-eval.v1","sgc":0.9999946383266201,"skip_reasons":[],"status":"completed","tlc":0.75} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"448921077f4c8c718e84aed3423605ecd15c96f09c8b9ed54e7344aa90a90ad6","method":"elem2design","ove":0.2216922117704636,"pca":0.6666666666666666,"reason":null,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.external-baseline-eval.v1","sgc":0.9163835702351669,"skip_reasons":[],"status":"completed","tlc":0.6666666666666666} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"62631133cef7b720eaa0eb455a3a8429c6ebabec1108f6ddcd19376cbb5fac58","method":"elem2design","ove":0.10411376292041548,"pca":0.5555555555555556,"reason":null,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.external-baseline-eval.v1","sgc":0.3939236053907475,"skip_reasons":[],"status":"completed","tlc":0.4046875} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"77894f4fcb21566ee860cf769b647c7ea19b3de288ba503732ca1e8521d78c89","method":"elem2design","ove":0.12385324235069849,"pca":0.5,"reason":null,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.external-baseline-eval.v1","sgc":0.41861263205644333,"skip_reasons":[],"status":"completed","tlc":0.3922413793103448} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"c4dfeffc80b3d05915a64a712adad032c085b1214a816e609f1a8ce0f1cea2c0","method":"elem2design","ove":0.09572742712164024,"pca":0.4,"reason":null,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.external-baseline-eval.v1","sgc":0.29661828169060794,"skip_reasons":[],"status":"completed","tlc":0.3611111111111111} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"cc32d3e7750781caef03e8ff8537a2dcc8b1aeef28d7ea508e5d864efd0510e7","method":"elem2design","ove":0.40306197632858465,"pca":0.5,"reason":null,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.external-baseline-eval.v1","sgc":0.6105900551900884,"skip_reasons":[],"status":"completed","tlc":0.5645161290322581} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"593ff68c69a31bab44e84ddb53142e4dba6d9cddadae3bb27837784969bd9678","method":"elem2design","ove":0.23148160650936894,"pca":0.8571428571428571,"reason":null,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.external-baseline-eval.v1","sgc":0.4131368131421614,"skip_reasons":[],"status":"completed","tlc":0.46511627906976744} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2d35517356dc6bf158331ab12498c17ec916216aa0075711a95c5605cee594cf","method":"elem2design","ove":0.40447046550819665,"pca":0.6,"reason":null,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.external-baseline-eval.v1","sgc":0.37629705769504307,"skip_reasons":[],"status":"completed","tlc":0.3974358974358974} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"9fb94056b49e10efc40cead635a5a7059723313ab4d9376d84a5497616b191d9","method":"elem2design","ove":0.08174471613359115,"pca":0.6363636363636364,"reason":null,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.external-baseline-eval.v1","sgc":0.4763561403191351,"skip_reasons":[],"status":"completed","tlc":0.4913194444444444} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"caaf6797b56575fb3590e3d54a7b76e72681b4dd42ad38c4c158036c202c9308","method":"elem2design","ove":0.10555080227425427,"pca":0.5454545454545454,"reason":null,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.external-baseline-eval.v1","sgc":0.570894696909929,"skip_reasons":[],"status":"completed","tlc":0.42911877394636017} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"32064b5acbc6e33a60171141cda8c7ceb393c9e0ff63391085db11fb6bdecefc","method":"elem2design","ove":0.4241684309329597,"pca":0.8181818181818182,"reason":null,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.external-baseline-eval.v1","sgc":0.561951023613299,"skip_reasons":[],"status":"completed","tlc":0.5353881278538812} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"a9f20c524d747d632bd9f2d1d8b0def73ee0f1aed57859702c963b23e31ef071","method":"elem2design","ove":0.12640072222632012,"pca":0.375,"reason":null,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.external-baseline-eval.v1","sgc":0.47707311015210757,"skip_reasons":[],"status":"completed","tlc":0.4746376811594203} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"eb302ff35d5368b60066b5aa5937222a0a08669118ce25128dbb9189bb1732c5","method":"elem2design","ove":0.19204597890983646,"pca":1.0,"reason":null,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.external-baseline-eval.v1","sgc":0.7032647620662232,"skip_reasons":[],"status":"completed","tlc":0.5895833333333333} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"df050bc7718885dd5760a9c2c576ff240bfddb5dd55be83635ca8a781630bf51","method":"elem2design","ove":0.3908536439538303,"pca":0.5,"reason":null,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.external-baseline-eval.v1","sgc":0.32770301912386157,"skip_reasons":[],"status":"completed","tlc":0.40025252525252525} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"118b35689d3b9a26804cd9feaa91b5472365dc608f0979e0728079c65b32ab0d","method":"elem2design","ove":0.20965568002236026,"pca":0.25,"reason":null,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.external-baseline-eval.v1","sgc":0.3985205781832544,"skip_reasons":[],"status":"completed","tlc":0.3731060606060606} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"1cf2c3712a33ae0f0e3dd1805918c00629a2d78970a294c9619b3ad9dd869b98","method":"elem2design","ove":0.5353339297642374,"pca":0.5,"reason":null,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.external-baseline-eval.v1","sgc":0.45975531284565907,"skip_reasons":[],"status":"completed","tlc":0.41379310344827586} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"cd428033ed6d33516a1dfb0bf2ea2d7f989eeb037608dada7d620d15015696fa","method":"elem2design","ove":0.4171657982746072,"pca":0.5,"reason":null,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.external-baseline-eval.v1","sgc":0.4190155147916454,"skip_reasons":[],"status":"completed","tlc":0.4140625} +{"ali":0.002488793648858659,"arm":"elem2design","candidate_sha256":"880566f79f84055516b2e60b4cf94bf19e6cb9ec351015b1d5648cd90570cec6","method":"elem2design","ove":0.186354761676428,"pca":0.6666666666666666,"reason":null,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.external-baseline-eval.v1","sgc":0.589150502224204,"skip_reasons":[],"status":"completed","tlc":0.5641025641025641} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"5f28dfea531e838022f02e78fd9f8e1a488ca8e8e6ffefc0ca94df9f4edc89a2","method":"elem2design","ove":0.1892476493771087,"pca":0.7142857142857143,"reason":null,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.external-baseline-eval.v1","sgc":0.49813339460772754,"skip_reasons":[],"status":"completed","tlc":0.5122549019607843} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"c5b6e3c20b12f58166d9e63d92ccfb0ae4df9afdb0fb0bb8643a5d3f194d5028","method":"elem2design","ove":0.2408459047842685,"pca":0.6363636363636364,"reason":null,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.external-baseline-eval.v1","sgc":0.482963137036358,"skip_reasons":[],"status":"completed","tlc":0.559040590405904} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"c2f082e3d068ac84b9da8fe46b3900d89e023005d667f77a46e537c733157e8f","method":"elem2design","ove":0.15375534508656855,"pca":0.75,"reason":null,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.external-baseline-eval.v1","sgc":0.8168878038650883,"skip_reasons":[],"status":"completed","tlc":0.6268115942028986} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"f6bd873753b786d8c13cc5f1db8043a7924f0969d80a4e0c1ce2c572947e1eff","method":"elem2design","ove":0.13429508446216246,"pca":0.7857142857142857,"reason":null,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.external-baseline-eval.v1","sgc":0.4699816933570798,"skip_reasons":[],"status":"completed","tlc":0.5269058295964125} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"1e7a07b594911e730f44a7fe9bac4a19f0c9023a43ece1cfc9eca237a7a2735a","method":"elem2design","ove":0.24411782034504048,"pca":0.6923076923076923,"reason":null,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.external-baseline-eval.v1","sgc":0.6303929804583533,"skip_reasons":[],"status":"completed","tlc":0.5093240093240093} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"da495dc9dabc76e3dd1bf44c011faaf9f3600d90f72f19354194c22e0e75fe79","method":"elem2design","ove":0.2774859136568128,"pca":0.65,"reason":null,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.external-baseline-eval.v1","sgc":0.5219757716076223,"skip_reasons":[],"status":"completed","tlc":0.6834582942830365} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"e324060e3c16236d1edff8bdd9794ab78ff900118de3cb3e10071010830bd000","method":"elem2design","ove":0.6882328969110326,"pca":0.8571428571428571,"reason":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.external-baseline-eval.v1","sgc":0.5649007418615787,"skip_reasons":[],"status":"completed","tlc":0.5627413127413128} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"ac4d7df9d4ede25d13be2c78dfae442e3f0b34ede7f4b9c62c126dbc39e7de66","method":"elem2design","ove":0.15833062025255057,"pca":0.75,"reason":null,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.external-baseline-eval.v1","sgc":0.48782549938857667,"skip_reasons":[],"status":"completed","tlc":0.4583333333333333} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"f4671a18f0c1eddc22ed0b3f0e09f9470504df42412d46af4e496d4b6a2533a4","method":"elem2design","ove":0.4333488159244563,"pca":0.4,"reason":null,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.external-baseline-eval.v1","sgc":0.41831157439658645,"skip_reasons":[],"status":"completed","tlc":0.3784530386740331} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"03ec5f6f0f6d8769668ced60ab1716e8ff958a9c8468e31f4965ad47031caa8a","method":"elem2design","ove":0.33247490065467633,"pca":0.0,"reason":null,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.external-baseline-eval.v1","sgc":0.48679588489715975,"skip_reasons":[],"status":"completed","tlc":0.4166666666666667} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"099a9abcf9305305511d9987819c94beece07ff4bdf6c57dfd41cb2ea05a702f","method":"elem2design","ove":0.25429768257348395,"pca":0.5,"reason":null,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.external-baseline-eval.v1","sgc":0.602279574279738,"skip_reasons":[],"status":"completed","tlc":0.5591085271317829} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"fe7407321b5ad9fb92cc42b62006e1d8b0303f840aa046fff1b8fb6c2c15e719","method":"elem2design","ove":0.44222052490238756,"pca":0.8888888888888888,"reason":null,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.external-baseline-eval.v1","sgc":0.5320880541752093,"skip_reasons":[],"status":"completed","tlc":0.45408704883227174} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"91fcaf995d6619dfecff465794bd0b7f924cdad5dbd276a2d001bb346e6bfe0c","method":"elem2design","ove":0.26185836858403755,"pca":0.5,"reason":null,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.external-baseline-eval.v1","sgc":0.4354436328945497,"skip_reasons":[],"status":"completed","tlc":0.39655172413793105} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"c936849b12c4099f6142e4f9b232d430d0b460b57f5ab93521a5c42fec587408","method":"elem2design","ove":0.13251564355058723,"pca":0.6190476190476191,"reason":null,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.external-baseline-eval.v1","sgc":0.5871301041750148,"skip_reasons":[],"status":"completed","tlc":0.5512280701754386} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"565a8d0bf6b92272b6665c3d110124d9f0a86bab170d55f38f5d91c9dee562e6","method":"elem2design","ove":0.19836489096517612,"pca":0.8181818181818182,"reason":null,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.external-baseline-eval.v1","sgc":0.5668562366111219,"skip_reasons":[],"status":"completed","tlc":0.6076512455516014} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"f7eeb723f6c1ba8c30b1b24f9e684ac589b2d49d8b54b2def7cb8278a6a00168","method":"elem2design","ove":0.18253499209646645,"pca":0.6875,"reason":null,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.external-baseline-eval.v1","sgc":0.4872354094616398,"skip_reasons":[],"status":"completed","tlc":0.4803030303030303} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"cfae33d52e01b6c3210f2a92736f71651160d5357de2fa890e32f2bc85fb58ac","method":"elem2design","ove":0.12380827924227458,"pca":0.75,"reason":null,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.external-baseline-eval.v1","sgc":0.5851444476134026,"skip_reasons":[],"status":"completed","tlc":0.5625} +{"ali":0.0032585665389850064,"arm":"elem2design","candidate_sha256":"42eff0d371727dedc02dbb5a81ccb88e0845cbd1c12faf116b077cebcdce90c0","method":"elem2design","ove":0.09351866315086456,"pca":0.8,"reason":null,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.external-baseline-eval.v1","sgc":0.9751356853820435,"skip_reasons":[],"status":"completed","tlc":0.7925531914893617} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"9a180a797429bff01534a6d22f274efc83b45abd60a3556ff847761fdd1eebce","method":"elem2design","ove":0.07516630460972246,"pca":0.6666666666666666,"reason":null,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.external-baseline-eval.v1","sgc":0.30694685014806383,"skip_reasons":[],"status":"completed","tlc":0.2916666666666667} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"30a0b185fbefac4e0b5c40a77dd97d5788d86a8c1c79d75e37fbbe5f8cd28cff","method":"elem2design","ove":0.23803824264515566,"pca":0.5,"reason":null,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.external-baseline-eval.v1","sgc":0.4618733954267571,"skip_reasons":[],"status":"completed","tlc":0.4365079365079365} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"ddffc75803332282ddcffd1908b582e08ead80e8093520773a6312ec7aa95d4a","method":"elem2design","ove":0.3897332977623626,"pca":0.8888888888888888,"reason":null,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.external-baseline-eval.v1","sgc":0.49431742020353336,"skip_reasons":[],"status":"completed","tlc":0.631979695431472} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"d1ceed3d98a22649c5ca68ef50ac5a47024336d853cff9513ddcd6fe74978b7e","method":"elem2design","ove":0.21318477156314303,"pca":0.65,"reason":null,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.external-baseline-eval.v1","sgc":0.5739026695363425,"skip_reasons":[],"status":"completed","tlc":0.5508982035928144} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"643056ad7f0f9328e976f06c1fba59c3a9fb8afb17c3f4502f4a5c2014d5bc73","method":"elem2design","ove":0.28689189128331294,"pca":0.7,"reason":null,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.external-baseline-eval.v1","sgc":0.6273310746106112,"skip_reasons":[],"status":"completed","tlc":0.4746192893401015} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"29ad0aac8d71c84e5c62e6c12c6305159174a75e203ce861c3bd522125257644","method":"elem2design","ove":0.36344745483214713,"pca":1.0,"reason":null,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.external-baseline-eval.v1","sgc":0.8888218136848324,"skip_reasons":[],"status":"completed","tlc":0.6125} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"27e92e2cafb22d716c9c70a65128132895a29a79658c36e78abb38cd9206f7b4","method":"elem2design","ove":0.21765818019135935,"pca":0.8,"reason":null,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.external-baseline-eval.v1","sgc":0.8259686271050837,"skip_reasons":[],"status":"completed","tlc":0.5} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"199c708679713fc0d7e9faf9746df349a1af1f769dbfafd883f05ed2d2d822fa","method":"elem2design","ove":0.23171111054121263,"pca":0.6666666666666666,"reason":null,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.external-baseline-eval.v1","sgc":0.45492701493953946,"skip_reasons":[],"status":"completed","tlc":0.5588235294117647} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"990ec9e545de876d5bc639704cc5bae8bbb6ab38fdd53e25aeb3bc228cfea6f7","method":"elem2design","ove":0.26300336366604904,"pca":0.5,"reason":null,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.external-baseline-eval.v1","sgc":0.5655224922195475,"skip_reasons":[],"status":"completed","tlc":0.559931506849315} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"586b768d459ee61eb843f6a0fbbd9a2a21af75c1d4b37bbea79b6e3fdf93eb82","method":"elem2design","ove":0.13589297796408986,"pca":0.7142857142857143,"reason":null,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.external-baseline-eval.v1","sgc":0.6371528990390793,"skip_reasons":[],"status":"completed","tlc":0.49731182795698925} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"cdee72e2248e461256e23761943ac44d42643274f2657274c5b1b18e87d33abe","method":"elem2design","ove":0.10838275278211061,"pca":0.8888888888888888,"reason":null,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.external-baseline-eval.v1","sgc":0.6042728728555766,"skip_reasons":[],"status":"completed","tlc":0.659375} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"ebfdb98085d7071023c321f5ab0989aa966db175c87517a0594c55201f398616","method":"elem2design","ove":0.21913109758355842,"pca":0.5,"reason":null,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.external-baseline-eval.v1","sgc":0.5959765625727708,"skip_reasons":[],"status":"completed","tlc":0.4722222222222222} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"8e70a472c20b1c6c688adc36a7b78e17ddee9e907899dc6850b38e3e550992d6","method":"elem2design","ove":0.13396987048534512,"pca":1.0,"reason":null,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.external-baseline-eval.v1","sgc":0.8405133474346741,"skip_reasons":[],"status":"completed","tlc":0.6296296296296297} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"e0915059adfc063b2175336491b198c38d80a9cf5a9e27579ff72a9202cd72d9","method":"elem2design","ove":0.1523826732615968,"pca":1.0,"reason":null,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.external-baseline-eval.v1","sgc":0.49695735901626137,"skip_reasons":[],"status":"completed","tlc":0.4208984375} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"fd4afb71803ad9697aa7b361d7ca0b7b3516b22b60b25339b47c9ace9389f7e0","method":"elem2design","ove":0.5270974909605537,"pca":0.6666666666666666,"reason":null,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.external-baseline-eval.v1","sgc":0.3372137037427456,"skip_reasons":[],"status":"completed","tlc":0.38235294117647056} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"4ff53b5d9f07c77d23d1803b788f4fad45e9a5274772258e362661f1a3a1eec9","method":"elem2design","ove":0.3833010990975107,"pca":0.5,"reason":null,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.external-baseline-eval.v1","sgc":0.4652218823167245,"skip_reasons":[],"status":"completed","tlc":0.5208333333333334} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"d4e16de8fc2166d457622ce39419df020d65f9813cf3bb4be4c6edb9be8e74a7","method":"elem2design","ove":0.2899788930971012,"pca":0.6666666666666666,"reason":null,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.external-baseline-eval.v1","sgc":0.5964106555499723,"skip_reasons":[],"status":"completed","tlc":0.49137931034482757} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"05addfca3d31186b46e2a3c1bed0d3a0bd1c800df9e02540818b58c32f96e312","method":"elem2design","ove":0.12203602705461919,"pca":0.8,"reason":null,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.external-baseline-eval.v1","sgc":0.3697967825229302,"skip_reasons":[],"status":"completed","tlc":0.4739583333333333} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"6f08aaab38a27954f82053a209cfc74214182a872eb98d2c42997b3292b0c1bd","method":"elem2design","ove":0.3538375106920171,"pca":0.5,"reason":null,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.external-baseline-eval.v1","sgc":0.4189899119097001,"skip_reasons":[],"status":"completed","tlc":0.6111111111111112} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"d19b0c231df7aac66c5a8c14e72fc97fe5c0319ea911932cc57cca8de4a92701","method":"elem2design","ove":0.09059782645402407,"pca":0.8,"reason":null,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.external-baseline-eval.v1","sgc":0.7588376912338851,"skip_reasons":[],"status":"completed","tlc":0.9333333333333333} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2f44d3cdcf59003d58c6505b524a13b60e59574c8af95948c0269363a8706da7","method":"elem2design","ove":0.1787742894574719,"pca":0.6,"reason":null,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.external-baseline-eval.v1","sgc":0.6440739725304918,"skip_reasons":[],"status":"completed","tlc":0.5555555555555556} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"2288a058e49834289e1e535fc2eedc75365c5d068c26cd11ea7a441cbfe51df6","method":"elem2design","ove":0.15649140787192578,"pca":0.8235294117647058,"reason":null,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.external-baseline-eval.v1","sgc":0.5769291398402911,"skip_reasons":[],"status":"completed","tlc":0.6426630434782609} +{"ali":null,"arm":"elem2design","method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.011387941747656649,"arm":"elem2design","candidate_sha256":"6c878e729e8ed839413d1207224120fe787037a58246c76bd5c5299e862ef41a","method":"elem2design","ove":0.3625059288036885,"pca":0.8,"reason":null,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.external-baseline-eval.v1","sgc":0.8650419197404754,"skip_reasons":[],"status":"completed","tlc":0.7126436781609196} +{"ali":0.0,"arm":"elem2design","candidate_sha256":"246fc5d831207abe3c40d6ed95480616789b5448ba78bc589dacf46a7973bb88","method":"elem2design","ove":0.5351133001914831,"pca":0.5555555555555556,"reason":null,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.external-baseline-eval.v1","sgc":0.3206262376320294,"skip_reasons":[],"status":"completed","tlc":0.3257042253521127} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/results.md b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/results.md new file mode 100644 index 000000000..f84bf0eb2 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-compare.v1/a3-t2-vs-elem2design-rel100-v1/results.md @@ -0,0 +1,15 @@ +# A3-T2 vs Elem2Design (Relation N=100, matched inputs) + +Direction: diff = A3-T2 − Elem2Design. SGC/TLC/PCA higher is better; Ali/Ove lower is better. Holm within families (primary 3 tests, geometry 2 tests; Rea/Occ deferred). Bootstrap seed 20260712, 10,000 resamples. + +Arm completion: A3-T2 98/100; Elem2Design 94/100. + +| Metric | A3-T2 mean (n) | E2D mean (n) | Paired N | W/L/T | Mean diff | 95% CI | p raw | p Holm | +| --- | ---: | ---: | ---: | --- | ---: | --- | ---: | ---: | +| SGC | 0.7037 (98) | 0.5355 (94) | 93 | 74/19/0 | +0.1684 | [+0.1271, +0.2077] | 7.7e-09 | 1.5e-08 | +| TLC | 0.6711 (98) | 0.5092 (94) | 93 | 81/11/1 | +0.1578 | [+0.1221, +0.1932] | 2.5e-14 | 7.5e-14 | +| PCA | 0.7614 (98) | 0.6450 (94) | 93 | 50/24/19 | +0.1167 | [+0.0617, +0.1713] | 0.0034 | 0.0034 | +| ALI ↓ | 0.0012 (98) | 0.0002 (94) | 93 | 13/3/77 | +0.0010 | [+0.0003, +0.0019] | 0.0213 | 0.0213 | +| OVE ↓ | 0.1173 (98) | 0.2496 (94) | 93 | 9/84/0 | -0.1347 | [-0.1604, -0.1086] | 2.2e-16 | 4.3e-16 | + +Failures are excluded pairwise only; both arms' failure counts are reported above and in aggregate.json. Non-significant results mean no difference was detected, not equivalence. diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/aggregate.json b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/aggregate.json new file mode 100644 index 000000000..922f4239b --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/aggregate.json @@ -0,0 +1 @@ +{"deferred_metrics":{"occ":"requires render+saliency pipeline; deferred, not zero","rea":"requires render+saliency pipeline; deferred, not zero"},"evaluation_id":"elem2design-rel100-v1","failed_samples":[{"reason":"conversion_errors","sample_id":"5931132c95a7a863ddcdc5d3"},{"reason":"conversion_errors","sample_id":"5a21848dd8141396fe9a33eb"},{"reason":"conversion_errors","sample_id":"5bbcbdfd78e1194aa69fe067"},{"reason":"conversion_errors","sample_id":"5d9cad82abc8ea6d1c23ebf1"},{"reason":"conversion_errors","sample_id":"5f3b84c8a637ee11e32ee4c9"},{"reason":"conversion_errors","sample_id":"5f644f40a637ee11e3669a1c"}],"method":"elem2design","metric_means":{"ali":{"mean":0.00018229044612234378,"n":94},"ove":{"mean":0.24957831389702,"n":94},"pca":{"mean":0.6449921417664811,"n":94},"sgc":{"mean":0.5354738462470412,"n":94},"tlc":{"mean":0.5091868901740921,"n":94}},"n_completed":94,"n_failed":6,"n_total":100,"oracle_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/relation100_oracle_trees","run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/external/elem2design-rel100-v1","schema_version":"a3.external-baseline-eval.v1"} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/evaluation_manifest.json new file mode 100644 index 000000000..d9d6d796a --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"artifact_sha256":{"aggregate.json":"b65932a56dbd975ab88a5a664d407823ade779e2d8e9a7cabec7c69084e6c6e1","per_sample.jsonl":"ddb3a5b1271c38c90f30526e2698f35a596df8e48d41fd440580dcfc365e91c5"},"code_sha256":{"evaluate_external_baseline.py":"a41390aaa99594dc4f5cf59871e37ff5e419e47c34a583a300e2072026947d6d","human_tree_metrics.py":"6672c822a2f2dbcd329573d8b51f430fc86d4839694ab1e8beba7a7a863cebf7","sega_metrics.py":"d224caffcd4b6bbbe99b90b73c6c2df71aec59b521174741e0678cad32c48cef"},"created_at":"2026-07-12T13:19:54.180246+00:00","evaluation_id":"elem2design-rel100-v1","input_hashes":{"id_maps.json":"7f439468290f0017daf3628692c8ad5b66d07cbd96623d42195067885af37082","run_summary.json":"38905bf47f5d3dd3f4bec76d45f88c580cc52579fff9e61a74979bfd4b7b2b4b","sample_ids.json":"66d608cdf2319b425adc9e0538400b3e124d65a0f598a540c1e21384b3451b16"},"schema_version":"a3.external-baseline-eval.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/per_sample.jsonl b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/per_sample.jsonl new file mode 100644 index 000000000..876ea0d84 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-eval.v1/elem2design-rel100-v1/per_sample.jsonl @@ -0,0 +1,100 @@ +{"ali":0.0,"candidate_sha256":"7de80aa8de8c5391b6690f51196389a2b4a840e123d04384bd5b3f11611559c7","method":"elem2design","ove":0.2294057917812287,"pca":1.0,"reason":null,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.external-baseline-eval.v1","sgc":0.48100368280672023,"skip_reasons":[],"status":"completed","tlc":0.3356401384083045} +{"ali":0.0,"candidate_sha256":"fe6bd6c4ed0fb2ce7e463c44004648181f217710ad38ff2b48963eb4712e57cf","method":"elem2design","ove":0.31329385400968435,"pca":0.2,"reason":null,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.external-baseline-eval.v1","sgc":0.3924104229671262,"skip_reasons":[],"status":"completed","tlc":0.4583333333333333} +{"ali":0.0,"candidate_sha256":"415a4716ab4c03ad617f4852c4e2e607ff0beb50fa143578d863ef461e02120e","method":"elem2design","ove":0.21306308215126424,"pca":1.0,"reason":null,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.external-baseline-eval.v1","sgc":0.6425758947178216,"skip_reasons":[],"status":"completed","tlc":0.5608638743455497} +{"ali":0.0,"candidate_sha256":"743161e1dd1482d3ca0c3c71db857891c308354a46ff87667029906c38812348","method":"elem2design","ove":0.3813263031630911,"pca":0.5714285714285714,"reason":null,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.external-baseline-eval.v1","sgc":0.27733967148901434,"skip_reasons":[],"status":"completed","tlc":0.2894736842105263} +{"ali":0.0,"candidate_sha256":"68935ebaea6f2c2a78f2add9e942fecb957d69dd2b4288d6554ed3e2e6b114d7","method":"elem2design","ove":0.5818872835602596,"pca":1.0,"reason":null,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.external-baseline-eval.v1","sgc":0.39316331083223355,"skip_reasons":[],"status":"completed","tlc":0.5446428571428571} +{"ali":0.0,"candidate_sha256":"a8397fba1fb62e821675007c0de61b06b587df9244536d106769f5ac2dba342e","method":"elem2design","ove":0.5167768776163201,"pca":0.6153846153846154,"reason":null,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.external-baseline-eval.v1","sgc":0.39028289450842907,"skip_reasons":[],"status":"completed","tlc":0.3481675392670157} +{"ali":0.0,"candidate_sha256":"5698b51f8521fc7d51574bc4981fd2b4a75faeda0b73aeb7934e151d5a435429","method":"elem2design","ove":0.2890919910365138,"pca":0.6666666666666666,"reason":null,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.external-baseline-eval.v1","sgc":0.5944267684913913,"skip_reasons":[],"status":"completed","tlc":0.4880952380952381} +{"ali":0.0,"candidate_sha256":"d363714f5bee6a85e682f672ab79a191f4325d12d00fb67c251b590fc67539be","method":"elem2design","ove":0.16296641243238905,"pca":0.875,"reason":null,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.external-baseline-eval.v1","sgc":0.6647611976563329,"skip_reasons":[],"status":"completed","tlc":0.7377777777777778} +{"ali":0.0,"candidate_sha256":"2d4ad5466a8e4aea4180688a509422c8ab27952516c4d33a89e25d9b5ad51ba9","method":"elem2design","ove":0.33295879139904405,"pca":0.2857142857142857,"reason":null,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.external-baseline-eval.v1","sgc":0.42820012418812076,"skip_reasons":[],"status":"completed","tlc":0.32142857142857145} +{"ali":0.0,"candidate_sha256":"de588177fe32b8e6120619dda737591968b95dfcb83ad7bfe0fdd7e4f725bdc8","method":"elem2design","ove":0.1808485444801955,"pca":0.16666666666666666,"reason":null,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.external-baseline-eval.v1","sgc":0.3484982896814318,"skip_reasons":[],"status":"completed","tlc":0.3173076923076923} +{"ali":0.0,"candidate_sha256":"f35329bc8a222c6c1b2c2edba0c7994ee463b58c24994f9b2979053dccf4202e","method":"elem2design","ove":0.0860153458804599,"pca":0.25,"reason":null,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.external-baseline-eval.v1","sgc":0.4246759621803005,"skip_reasons":[],"status":"completed","tlc":0.41627725856697817} +{"ali":0.0,"candidate_sha256":"a83af05a33a19c62c54a9b2cecf763d7ca75e28b77a3f5038b8f91a24a799f24","method":"elem2design","ove":0.34143509361918756,"pca":0.75,"reason":null,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.external-baseline-eval.v1","sgc":0.4648382683404292,"skip_reasons":[],"status":"completed","tlc":0.5128205128205128} +{"ali":0.0,"candidate_sha256":"300ce6c359a11fca6399efd3482e8b8aac401dda16b6a9f92b02492ea2556acd","method":"elem2design","ove":0.29774590030768533,"pca":1.0,"reason":null,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.external-baseline-eval.v1","sgc":0.9713438034056223,"skip_reasons":[],"status":"completed","tlc":0.75} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"candidate_sha256":"56212b02b7abd41811f13a0470898433b19c22c1532ed817702001885a4db3da","method":"elem2design","ove":0.26696781016698795,"pca":0.7,"reason":null,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.external-baseline-eval.v1","sgc":0.5191691732599977,"skip_reasons":[],"status":"completed","tlc":0.5128205128205128} +{"ali":0.0,"candidate_sha256":"89635c5f4845048c7760f4ff8a33b1569aa5f7a903fd6140950d8cffc7b7d4e4","method":"elem2design","ove":0.1693010145751218,"pca":0.42857142857142855,"reason":null,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.external-baseline-eval.v1","sgc":0.3251015496677344,"skip_reasons":[],"status":"completed","tlc":0.5316091954022989} +{"ali":0.0,"candidate_sha256":"3e2f4d36a18be97ba0648cdade8fd3bda9d73e65233a23745300feb815fea6c1","method":"elem2design","ove":0.25817611187037065,"pca":0.75,"reason":null,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.external-baseline-eval.v1","sgc":0.46445431669103815,"skip_reasons":[],"status":"completed","tlc":0.5040650406504065} +{"ali":0.0,"candidate_sha256":"686f2bcba4abd8b865bd12a249469ce792664d7a37b7103c4a2cd22f66774587","method":"elem2design","ove":0.038626700680272116,"pca":0.8,"reason":null,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.external-baseline-eval.v1","sgc":0.6118285607938896,"skip_reasons":[],"status":"completed","tlc":0.5} +{"ali":0.0,"candidate_sha256":"7d3a8c0ec9887edec5ac7894dfc7833df37f6499afc85b201aa6c88ce65ea611","method":"elem2design","ove":0.18312652114172592,"pca":0.6,"reason":null,"sample_id":"599ecb061350e83293007738","schema_version":"a3.external-baseline-eval.v1","sgc":0.4311800108129126,"skip_reasons":[],"status":"completed","tlc":0.4375} +{"ali":0.0,"candidate_sha256":"31e5944475bb40d34de76cecd5ec6937541a5e03c2b004a4cc2882b6e4316d7c","method":"elem2design","ove":0.288261752343435,"pca":1.0,"reason":null,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.external-baseline-eval.v1","sgc":0.6577420950974414,"skip_reasons":[],"status":"completed","tlc":0.4446236559139785} +{"ali":0.0,"candidate_sha256":"630ccaffce25b4b38c4c49e89b11ecd7baadd4cdbc0cefecb7121791a54eadc6","method":"elem2design","ove":0.07862226957866708,"pca":0.4,"reason":null,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.external-baseline-eval.v1","sgc":0.4546483025043767,"skip_reasons":[],"status":"completed","tlc":0.5441176470588235} +{"ali":0.0,"candidate_sha256":"834cf5c0ab2771ee2313c7b9e0f7bfdad2ad7197c170b34ef1b1dbb7791096e9","method":"elem2design","ove":0.2329564689822435,"pca":0.3,"reason":null,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.external-baseline-eval.v1","sgc":0.3948931904176601,"skip_reasons":[],"status":"completed","tlc":0.4306282722513089} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"candidate_sha256":"d014691b2bb55e38857abc9143208badb3e7b132166f3f7a2e062bb6fe4e7e02","method":"elem2design","ove":0.09620218929781611,"pca":0.8,"reason":null,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.external-baseline-eval.v1","sgc":0.7227182365514555,"skip_reasons":[],"status":"completed","tlc":0.6744186046511628} +{"ali":0.0,"candidate_sha256":"80e9e33a308166b2789fe851dfe13ac6072ac24e69517b0c8f959ac982529258","method":"elem2design","ove":0.13501421077996112,"pca":0.6666666666666666,"reason":null,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.external-baseline-eval.v1","sgc":0.37588175333918866,"skip_reasons":[],"status":"completed","tlc":0.43333333333333335} +{"ali":0.0,"candidate_sha256":"950778d68f2ab3aab7dd32604d5379e2d45a65095347519ade94f1b5a96aa2e9","method":"elem2design","ove":0.05632951268540802,"pca":0.4444444444444444,"reason":null,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.external-baseline-eval.v1","sgc":0.49954854093596057,"skip_reasons":[],"status":"completed","tlc":0.5652866242038217} +{"ali":0.0,"candidate_sha256":"7285460335b7cb6f4199d16d8d72283e07c395c83124692907c22378cd8c406d","method":"elem2design","ove":0.24254518777452685,"pca":0.8421052631578947,"reason":null,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.external-baseline-eval.v1","sgc":0.46832376567982636,"skip_reasons":[],"status":"completed","tlc":0.4911924119241192} +{"ali":0.0,"candidate_sha256":"f58f59add724827e076561a3962594c1ef65183381f7578200383986c898bd6a","method":"elem2design","ove":0.7885952707823335,"pca":0.625,"reason":null,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.external-baseline-eval.v1","sgc":0.9747948141418626,"skip_reasons":[],"status":"completed","tlc":0.8395061728395061} +{"ali":0.0,"candidate_sha256":"1e29afc1ecb4cb6f930ce3b14f0ec6ab8cdd8a2cbc84edf960130d80cb586e96","method":"elem2design","ove":0.2167163319882955,"pca":0.6666666666666666,"reason":null,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.external-baseline-eval.v1","sgc":0.5584253812978013,"skip_reasons":[],"status":"completed","tlc":0.5769230769230769} +{"ali":0.0,"candidate_sha256":"02b969af623bf6969eed015cdf06e4a5aa9c67a6f0564f3a144f87c6afb2d575","method":"elem2design","ove":0.20401261908847834,"pca":0.4,"reason":null,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.external-baseline-eval.v1","sgc":0.44944003094346624,"skip_reasons":[],"status":"completed","tlc":0.4166666666666667} +{"ali":0.0,"candidate_sha256":"2639e909368fa80015f04d0d3e69e07053f55c4d068c1ff0f5ef37296734940d","method":"elem2design","ove":0.03262296549479168,"pca":0.6,"reason":null,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.external-baseline-eval.v1","sgc":0.7476870100797491,"skip_reasons":[],"status":"completed","tlc":0.5833333333333334} +{"ali":0.0,"candidate_sha256":"5c0a37b475a11c7ba2a69474542b876c4038b64eacdfd7f7aa4cf1b3efe68d84","method":"elem2design","ove":0.024595233608218203,"pca":0.5,"reason":null,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.external-baseline-eval.v1","sgc":0.40134673249500996,"skip_reasons":[],"status":"completed","tlc":0.2647058823529412} +{"ali":0.0,"candidate_sha256":"e296fd27bdfa2c4c9646d361c63610452f1d63ac71f20600fa554d016379599f","method":"elem2design","ove":0.2669377486086057,"pca":0.375,"reason":null,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.external-baseline-eval.v1","sgc":0.3763386561417696,"skip_reasons":[],"status":"completed","tlc":0.35384615384615387} +{"ali":0.0,"candidate_sha256":"2e664e8539949ad3dd1ce89f693a5470b874cb251d00f233e2c2c99f08f013c9","method":"elem2design","ove":0.18866579491306026,"pca":0.16666666666666666,"reason":null,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.external-baseline-eval.v1","sgc":0.34635524191170736,"skip_reasons":[],"status":"completed","tlc":0.3253968253968254} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"candidate_sha256":"8bc29ee47f63dc1a593406a57fe9cb660eb79de67f879490307589f662703c96","method":"elem2design","ove":0.47246143354764775,"pca":0.625,"reason":null,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.external-baseline-eval.v1","sgc":0.4556330594204655,"skip_reasons":[],"status":"completed","tlc":0.4782608695652174} +{"ali":0.0,"candidate_sha256":"aab7353024336c53569aa2e7de9c29bd259d900957dbe43f4e0dfe807b3fd857","method":"elem2design","ove":0.28677192106660016,"pca":0.7,"reason":null,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.external-baseline-eval.v1","sgc":0.33916159793659056,"skip_reasons":[],"status":"completed","tlc":0.603494623655914} +{"ali":0.0,"candidate_sha256":"0c60dca00b3c8c258a9b06f5b83f125cdcfc8b13af6ffd48f092a9ebf005c2dd","method":"elem2design","ove":0.1827802498586758,"pca":1.0,"reason":null,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.external-baseline-eval.v1","sgc":0.9999946383266201,"skip_reasons":[],"status":"completed","tlc":0.75} +{"ali":0.0,"candidate_sha256":"448921077f4c8c718e84aed3423605ecd15c96f09c8b9ed54e7344aa90a90ad6","method":"elem2design","ove":0.2216922117704636,"pca":0.6666666666666666,"reason":null,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.external-baseline-eval.v1","sgc":0.9163835702351669,"skip_reasons":[],"status":"completed","tlc":0.6666666666666666} +{"ali":0.0,"candidate_sha256":"62631133cef7b720eaa0eb455a3a8429c6ebabec1108f6ddcd19376cbb5fac58","method":"elem2design","ove":0.10411376292041548,"pca":0.5555555555555556,"reason":null,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.external-baseline-eval.v1","sgc":0.3939236053907475,"skip_reasons":[],"status":"completed","tlc":0.4046875} +{"ali":0.0,"candidate_sha256":"77894f4fcb21566ee860cf769b647c7ea19b3de288ba503732ca1e8521d78c89","method":"elem2design","ove":0.12385324235069849,"pca":0.5,"reason":null,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.external-baseline-eval.v1","sgc":0.41861263205644333,"skip_reasons":[],"status":"completed","tlc":0.3922413793103448} +{"ali":0.0,"candidate_sha256":"c4dfeffc80b3d05915a64a712adad032c085b1214a816e609f1a8ce0f1cea2c0","method":"elem2design","ove":0.09572742712164024,"pca":0.4,"reason":null,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.external-baseline-eval.v1","sgc":0.29661828169060794,"skip_reasons":[],"status":"completed","tlc":0.3611111111111111} +{"ali":0.0,"candidate_sha256":"cc32d3e7750781caef03e8ff8537a2dcc8b1aeef28d7ea508e5d864efd0510e7","method":"elem2design","ove":0.40306197632858465,"pca":0.5,"reason":null,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.external-baseline-eval.v1","sgc":0.6105900551900884,"skip_reasons":[],"status":"completed","tlc":0.5645161290322581} +{"ali":0.0,"candidate_sha256":"593ff68c69a31bab44e84ddb53142e4dba6d9cddadae3bb27837784969bd9678","method":"elem2design","ove":0.23148160650936894,"pca":0.8571428571428571,"reason":null,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.external-baseline-eval.v1","sgc":0.4131368131421614,"skip_reasons":[],"status":"completed","tlc":0.46511627906976744} +{"ali":0.0,"candidate_sha256":"2d35517356dc6bf158331ab12498c17ec916216aa0075711a95c5605cee594cf","method":"elem2design","ove":0.40447046550819665,"pca":0.6,"reason":null,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.external-baseline-eval.v1","sgc":0.37629705769504307,"skip_reasons":[],"status":"completed","tlc":0.3974358974358974} +{"ali":0.0,"candidate_sha256":"9fb94056b49e10efc40cead635a5a7059723313ab4d9376d84a5497616b191d9","method":"elem2design","ove":0.08174471613359115,"pca":0.6363636363636364,"reason":null,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.external-baseline-eval.v1","sgc":0.4763561403191351,"skip_reasons":[],"status":"completed","tlc":0.4913194444444444} +{"ali":0.0,"candidate_sha256":"caaf6797b56575fb3590e3d54a7b76e72681b4dd42ad38c4c158036c202c9308","method":"elem2design","ove":0.10555080227425427,"pca":0.5454545454545454,"reason":null,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.external-baseline-eval.v1","sgc":0.570894696909929,"skip_reasons":[],"status":"completed","tlc":0.42911877394636017} +{"ali":0.0,"candidate_sha256":"32064b5acbc6e33a60171141cda8c7ceb393c9e0ff63391085db11fb6bdecefc","method":"elem2design","ove":0.4241684309329597,"pca":0.8181818181818182,"reason":null,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.external-baseline-eval.v1","sgc":0.561951023613299,"skip_reasons":[],"status":"completed","tlc":0.5353881278538812} +{"ali":0.0,"candidate_sha256":"a9f20c524d747d632bd9f2d1d8b0def73ee0f1aed57859702c963b23e31ef071","method":"elem2design","ove":0.12640072222632012,"pca":0.375,"reason":null,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.external-baseline-eval.v1","sgc":0.47707311015210757,"skip_reasons":[],"status":"completed","tlc":0.4746376811594203} +{"ali":0.0,"candidate_sha256":"eb302ff35d5368b60066b5aa5937222a0a08669118ce25128dbb9189bb1732c5","method":"elem2design","ove":0.19204597890983646,"pca":1.0,"reason":null,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.external-baseline-eval.v1","sgc":0.7032647620662232,"skip_reasons":[],"status":"completed","tlc":0.5895833333333333} +{"ali":0.0,"candidate_sha256":"df050bc7718885dd5760a9c2c576ff240bfddb5dd55be83635ca8a781630bf51","method":"elem2design","ove":0.3908536439538303,"pca":0.5,"reason":null,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.external-baseline-eval.v1","sgc":0.32770301912386157,"skip_reasons":[],"status":"completed","tlc":0.40025252525252525} +{"ali":0.0,"candidate_sha256":"118b35689d3b9a26804cd9feaa91b5472365dc608f0979e0728079c65b32ab0d","method":"elem2design","ove":0.20965568002236026,"pca":0.25,"reason":null,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.external-baseline-eval.v1","sgc":0.3985205781832544,"skip_reasons":[],"status":"completed","tlc":0.3731060606060606} +{"ali":0.0,"candidate_sha256":"1cf2c3712a33ae0f0e3dd1805918c00629a2d78970a294c9619b3ad9dd869b98","method":"elem2design","ove":0.5353339297642374,"pca":0.5,"reason":null,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.external-baseline-eval.v1","sgc":0.45975531284565907,"skip_reasons":[],"status":"completed","tlc":0.41379310344827586} +{"ali":0.0,"candidate_sha256":"cd428033ed6d33516a1dfb0bf2ea2d7f989eeb037608dada7d620d15015696fa","method":"elem2design","ove":0.4171657982746072,"pca":0.5,"reason":null,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.external-baseline-eval.v1","sgc":0.4190155147916454,"skip_reasons":[],"status":"completed","tlc":0.4140625} +{"ali":0.002488793648858659,"candidate_sha256":"880566f79f84055516b2e60b4cf94bf19e6cb9ec351015b1d5648cd90570cec6","method":"elem2design","ove":0.186354761676428,"pca":0.6666666666666666,"reason":null,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.external-baseline-eval.v1","sgc":0.589150502224204,"skip_reasons":[],"status":"completed","tlc":0.5641025641025641} +{"ali":0.0,"candidate_sha256":"5f28dfea531e838022f02e78fd9f8e1a488ca8e8e6ffefc0ca94df9f4edc89a2","method":"elem2design","ove":0.1892476493771087,"pca":0.7142857142857143,"reason":null,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.external-baseline-eval.v1","sgc":0.49813339460772754,"skip_reasons":[],"status":"completed","tlc":0.5122549019607843} +{"ali":0.0,"candidate_sha256":"c5b6e3c20b12f58166d9e63d92ccfb0ae4df9afdb0fb0bb8643a5d3f194d5028","method":"elem2design","ove":0.2408459047842685,"pca":0.6363636363636364,"reason":null,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.external-baseline-eval.v1","sgc":0.482963137036358,"skip_reasons":[],"status":"completed","tlc":0.559040590405904} +{"ali":0.0,"candidate_sha256":"c2f082e3d068ac84b9da8fe46b3900d89e023005d667f77a46e537c733157e8f","method":"elem2design","ove":0.15375534508656855,"pca":0.75,"reason":null,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.external-baseline-eval.v1","sgc":0.8168878038650883,"skip_reasons":[],"status":"completed","tlc":0.6268115942028986} +{"ali":0.0,"candidate_sha256":"f6bd873753b786d8c13cc5f1db8043a7924f0969d80a4e0c1ce2c572947e1eff","method":"elem2design","ove":0.13429508446216246,"pca":0.7857142857142857,"reason":null,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.external-baseline-eval.v1","sgc":0.4699816933570798,"skip_reasons":[],"status":"completed","tlc":0.5269058295964125} +{"ali":0.0,"candidate_sha256":"1e7a07b594911e730f44a7fe9bac4a19f0c9023a43ece1cfc9eca237a7a2735a","method":"elem2design","ove":0.24411782034504048,"pca":0.6923076923076923,"reason":null,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.external-baseline-eval.v1","sgc":0.6303929804583533,"skip_reasons":[],"status":"completed","tlc":0.5093240093240093} +{"ali":0.0,"candidate_sha256":"da495dc9dabc76e3dd1bf44c011faaf9f3600d90f72f19354194c22e0e75fe79","method":"elem2design","ove":0.2774859136568128,"pca":0.65,"reason":null,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.external-baseline-eval.v1","sgc":0.5219757716076223,"skip_reasons":[],"status":"completed","tlc":0.6834582942830365} +{"ali":0.0,"candidate_sha256":"e324060e3c16236d1edff8bdd9794ab78ff900118de3cb3e10071010830bd000","method":"elem2design","ove":0.6882328969110326,"pca":0.8571428571428571,"reason":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.external-baseline-eval.v1","sgc":0.5649007418615787,"skip_reasons":[],"status":"completed","tlc":0.5627413127413128} +{"ali":0.0,"candidate_sha256":"ac4d7df9d4ede25d13be2c78dfae442e3f0b34ede7f4b9c62c126dbc39e7de66","method":"elem2design","ove":0.15833062025255057,"pca":0.75,"reason":null,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.external-baseline-eval.v1","sgc":0.48782549938857667,"skip_reasons":[],"status":"completed","tlc":0.4583333333333333} +{"ali":0.0,"candidate_sha256":"f4671a18f0c1eddc22ed0b3f0e09f9470504df42412d46af4e496d4b6a2533a4","method":"elem2design","ove":0.4333488159244563,"pca":0.4,"reason":null,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.external-baseline-eval.v1","sgc":0.41831157439658645,"skip_reasons":[],"status":"completed","tlc":0.3784530386740331} +{"ali":0.0,"candidate_sha256":"03ec5f6f0f6d8769668ced60ab1716e8ff958a9c8468e31f4965ad47031caa8a","method":"elem2design","ove":0.33247490065467633,"pca":0.0,"reason":null,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.external-baseline-eval.v1","sgc":0.48679588489715975,"skip_reasons":[],"status":"completed","tlc":0.4166666666666667} +{"ali":0.0,"candidate_sha256":"099a9abcf9305305511d9987819c94beece07ff4bdf6c57dfd41cb2ea05a702f","method":"elem2design","ove":0.25429768257348395,"pca":0.5,"reason":null,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.external-baseline-eval.v1","sgc":0.602279574279738,"skip_reasons":[],"status":"completed","tlc":0.5591085271317829} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"candidate_sha256":"fe7407321b5ad9fb92cc42b62006e1d8b0303f840aa046fff1b8fb6c2c15e719","method":"elem2design","ove":0.44222052490238756,"pca":0.8888888888888888,"reason":null,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.external-baseline-eval.v1","sgc":0.5320880541752093,"skip_reasons":[],"status":"completed","tlc":0.45408704883227174} +{"ali":0.0,"candidate_sha256":"91fcaf995d6619dfecff465794bd0b7f924cdad5dbd276a2d001bb346e6bfe0c","method":"elem2design","ove":0.26185836858403755,"pca":0.5,"reason":null,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.external-baseline-eval.v1","sgc":0.4354436328945497,"skip_reasons":[],"status":"completed","tlc":0.39655172413793105} +{"ali":0.0,"candidate_sha256":"c936849b12c4099f6142e4f9b232d430d0b460b57f5ab93521a5c42fec587408","method":"elem2design","ove":0.13251564355058723,"pca":0.6190476190476191,"reason":null,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.external-baseline-eval.v1","sgc":0.5871301041750148,"skip_reasons":[],"status":"completed","tlc":0.5512280701754386} +{"ali":0.0,"candidate_sha256":"565a8d0bf6b92272b6665c3d110124d9f0a86bab170d55f38f5d91c9dee562e6","method":"elem2design","ove":0.19836489096517612,"pca":0.8181818181818182,"reason":null,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.external-baseline-eval.v1","sgc":0.5668562366111219,"skip_reasons":[],"status":"completed","tlc":0.6076512455516014} +{"ali":0.0,"candidate_sha256":"f7eeb723f6c1ba8c30b1b24f9e684ac589b2d49d8b54b2def7cb8278a6a00168","method":"elem2design","ove":0.18253499209646645,"pca":0.6875,"reason":null,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.external-baseline-eval.v1","sgc":0.4872354094616398,"skip_reasons":[],"status":"completed","tlc":0.4803030303030303} +{"ali":0.0,"candidate_sha256":"cfae33d52e01b6c3210f2a92736f71651160d5357de2fa890e32f2bc85fb58ac","method":"elem2design","ove":0.12380827924227458,"pca":0.75,"reason":null,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.external-baseline-eval.v1","sgc":0.5851444476134026,"skip_reasons":[],"status":"completed","tlc":0.5625} +{"ali":0.0032585665389850064,"candidate_sha256":"42eff0d371727dedc02dbb5a81ccb88e0845cbd1c12faf116b077cebcdce90c0","method":"elem2design","ove":0.09351866315086456,"pca":0.8,"reason":null,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.external-baseline-eval.v1","sgc":0.9751356853820435,"skip_reasons":[],"status":"completed","tlc":0.7925531914893617} +{"ali":0.0,"candidate_sha256":"9a180a797429bff01534a6d22f274efc83b45abd60a3556ff847761fdd1eebce","method":"elem2design","ove":0.07516630460972246,"pca":0.6666666666666666,"reason":null,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.external-baseline-eval.v1","sgc":0.30694685014806383,"skip_reasons":[],"status":"completed","tlc":0.2916666666666667} +{"ali":0.0,"candidate_sha256":"30a0b185fbefac4e0b5c40a77dd97d5788d86a8c1c79d75e37fbbe5f8cd28cff","method":"elem2design","ove":0.23803824264515566,"pca":0.5,"reason":null,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.external-baseline-eval.v1","sgc":0.4618733954267571,"skip_reasons":[],"status":"completed","tlc":0.4365079365079365} +{"ali":0.0,"candidate_sha256":"ddffc75803332282ddcffd1908b582e08ead80e8093520773a6312ec7aa95d4a","method":"elem2design","ove":0.3897332977623626,"pca":0.8888888888888888,"reason":null,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.external-baseline-eval.v1","sgc":0.49431742020353336,"skip_reasons":[],"status":"completed","tlc":0.631979695431472} +{"ali":0.0,"candidate_sha256":"d1ceed3d98a22649c5ca68ef50ac5a47024336d853cff9513ddcd6fe74978b7e","method":"elem2design","ove":0.21318477156314303,"pca":0.65,"reason":null,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.external-baseline-eval.v1","sgc":0.5739026695363425,"skip_reasons":[],"status":"completed","tlc":0.5508982035928144} +{"ali":0.0,"candidate_sha256":"643056ad7f0f9328e976f06c1fba59c3a9fb8afb17c3f4502f4a5c2014d5bc73","method":"elem2design","ove":0.28689189128331294,"pca":0.7,"reason":null,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.external-baseline-eval.v1","sgc":0.6273310746106112,"skip_reasons":[],"status":"completed","tlc":0.4746192893401015} +{"ali":0.0,"candidate_sha256":"29ad0aac8d71c84e5c62e6c12c6305159174a75e203ce861c3bd522125257644","method":"elem2design","ove":0.36344745483214713,"pca":1.0,"reason":null,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.external-baseline-eval.v1","sgc":0.8888218136848324,"skip_reasons":[],"status":"completed","tlc":0.6125} +{"ali":0.0,"candidate_sha256":"27e92e2cafb22d716c9c70a65128132895a29a79658c36e78abb38cd9206f7b4","method":"elem2design","ove":0.21765818019135935,"pca":0.8,"reason":null,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.external-baseline-eval.v1","sgc":0.8259686271050837,"skip_reasons":[],"status":"completed","tlc":0.5} +{"ali":0.0,"candidate_sha256":"199c708679713fc0d7e9faf9746df349a1af1f769dbfafd883f05ed2d2d822fa","method":"elem2design","ove":0.23171111054121263,"pca":0.6666666666666666,"reason":null,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.external-baseline-eval.v1","sgc":0.45492701493953946,"skip_reasons":[],"status":"completed","tlc":0.5588235294117647} +{"ali":0.0,"candidate_sha256":"990ec9e545de876d5bc639704cc5bae8bbb6ab38fdd53e25aeb3bc228cfea6f7","method":"elem2design","ove":0.26300336366604904,"pca":0.5,"reason":null,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.external-baseline-eval.v1","sgc":0.5655224922195475,"skip_reasons":[],"status":"completed","tlc":0.559931506849315} +{"ali":0.0,"candidate_sha256":"586b768d459ee61eb843f6a0fbbd9a2a21af75c1d4b37bbea79b6e3fdf93eb82","method":"elem2design","ove":0.13589297796408986,"pca":0.7142857142857143,"reason":null,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.external-baseline-eval.v1","sgc":0.6371528990390793,"skip_reasons":[],"status":"completed","tlc":0.49731182795698925} +{"ali":0.0,"candidate_sha256":"cdee72e2248e461256e23761943ac44d42643274f2657274c5b1b18e87d33abe","method":"elem2design","ove":0.10838275278211061,"pca":0.8888888888888888,"reason":null,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.external-baseline-eval.v1","sgc":0.6042728728555766,"skip_reasons":[],"status":"completed","tlc":0.659375} +{"ali":0.0,"candidate_sha256":"ebfdb98085d7071023c321f5ab0989aa966db175c87517a0594c55201f398616","method":"elem2design","ove":0.21913109758355842,"pca":0.5,"reason":null,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.external-baseline-eval.v1","sgc":0.5959765625727708,"skip_reasons":[],"status":"completed","tlc":0.4722222222222222} +{"ali":0.0,"candidate_sha256":"8e70a472c20b1c6c688adc36a7b78e17ddee9e907899dc6850b38e3e550992d6","method":"elem2design","ove":0.13396987048534512,"pca":1.0,"reason":null,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.external-baseline-eval.v1","sgc":0.8405133474346741,"skip_reasons":[],"status":"completed","tlc":0.6296296296296297} +{"ali":0.0,"candidate_sha256":"e0915059adfc063b2175336491b198c38d80a9cf5a9e27579ff72a9202cd72d9","method":"elem2design","ove":0.1523826732615968,"pca":1.0,"reason":null,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.external-baseline-eval.v1","sgc":0.49695735901626137,"skip_reasons":[],"status":"completed","tlc":0.4208984375} +{"ali":0.0,"candidate_sha256":"fd4afb71803ad9697aa7b361d7ca0b7b3516b22b60b25339b47c9ace9389f7e0","method":"elem2design","ove":0.5270974909605537,"pca":0.6666666666666666,"reason":null,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.external-baseline-eval.v1","sgc":0.3372137037427456,"skip_reasons":[],"status":"completed","tlc":0.38235294117647056} +{"ali":0.0,"candidate_sha256":"4ff53b5d9f07c77d23d1803b788f4fad45e9a5274772258e362661f1a3a1eec9","method":"elem2design","ove":0.3833010990975107,"pca":0.5,"reason":null,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.external-baseline-eval.v1","sgc":0.4652218823167245,"skip_reasons":[],"status":"completed","tlc":0.5208333333333334} +{"ali":0.0,"candidate_sha256":"d4e16de8fc2166d457622ce39419df020d65f9813cf3bb4be4c6edb9be8e74a7","method":"elem2design","ove":0.2899788930971012,"pca":0.6666666666666666,"reason":null,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.external-baseline-eval.v1","sgc":0.5964106555499723,"skip_reasons":[],"status":"completed","tlc":0.49137931034482757} +{"ali":0.0,"candidate_sha256":"05addfca3d31186b46e2a3c1bed0d3a0bd1c800df9e02540818b58c32f96e312","method":"elem2design","ove":0.12203602705461919,"pca":0.8,"reason":null,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.external-baseline-eval.v1","sgc":0.3697967825229302,"skip_reasons":[],"status":"completed","tlc":0.4739583333333333} +{"ali":0.0,"candidate_sha256":"6f08aaab38a27954f82053a209cfc74214182a872eb98d2c42997b3292b0c1bd","method":"elem2design","ove":0.3538375106920171,"pca":0.5,"reason":null,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.external-baseline-eval.v1","sgc":0.4189899119097001,"skip_reasons":[],"status":"completed","tlc":0.6111111111111112} +{"ali":0.0,"candidate_sha256":"d19b0c231df7aac66c5a8c14e72fc97fe5c0319ea911932cc57cca8de4a92701","method":"elem2design","ove":0.09059782645402407,"pca":0.8,"reason":null,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.external-baseline-eval.v1","sgc":0.7588376912338851,"skip_reasons":[],"status":"completed","tlc":0.9333333333333333} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.0,"candidate_sha256":"2f44d3cdcf59003d58c6505b524a13b60e59574c8af95948c0269363a8706da7","method":"elem2design","ove":0.1787742894574719,"pca":0.6,"reason":null,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.external-baseline-eval.v1","sgc":0.6440739725304918,"skip_reasons":[],"status":"completed","tlc":0.5555555555555556} +{"ali":0.0,"candidate_sha256":"2288a058e49834289e1e535fc2eedc75365c5d068c26cd11ea7a441cbfe51df6","method":"elem2design","ove":0.15649140787192578,"pca":0.8235294117647058,"reason":null,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.external-baseline-eval.v1","sgc":0.5769291398402911,"skip_reasons":[],"status":"completed","tlc":0.6426630434782609} +{"ali":null,"method":"elem2design","ove":null,"pca":null,"reason":"conversion_errors","sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.external-baseline-eval.v1","sgc":null,"skip_reasons":[],"status":"failed","tlc":null} +{"ali":0.011387941747656649,"candidate_sha256":"6c878e729e8ed839413d1207224120fe787037a58246c76bd5c5299e862ef41a","method":"elem2design","ove":0.3625059288036885,"pca":0.8,"reason":null,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.external-baseline-eval.v1","sgc":0.8650419197404754,"skip_reasons":[],"status":"completed","tlc":0.7126436781609196} +{"ali":0.0,"candidate_sha256":"246fc5d831207abe3c40d6ed95480616789b5448ba78bc589dacf46a7973bb88","method":"elem2design","ove":0.5351133001914831,"pca":0.5555555555555556,"reason":null,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.external-baseline-eval.v1","sgc":0.3206262376320294,"skip_reasons":[],"status":"completed","tlc":0.3257042253521127} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/aggregate.json b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/aggregate.json new file mode 100644 index 000000000..8a9e0d616 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/aggregate.json @@ -0,0 +1 @@ +{"arm_metric_means":{"A3-T2-first":{"ali":{"mean":0.0006909352276611455,"n":98},"ove":{"mean":0.1209222567796712,"n":98},"pca":{"mean":0.7606696849441942,"n":98},"sgc":{"mean":0.709770848965298,"n":98},"tlc":{"mean":0.6814577145135607,"n":98}},"A3-T2-mean3":{"ali":{"mean":0.00128078858114201,"n":98},"ove":{"mean":0.1256803187313461,"n":98},"pca":{"mean":0.7556697058454679,"n":98},"sgc":{"mean":0.7056279334422753,"n":98},"tlc":{"mean":0.6707496456763573,"n":98}}},"bootstrap":{"resamples":10000,"seed":20260712},"comparisons":{"first_vs_e2d":[{"comparison":"A3-T2-first_vs_elem2design","family":"primary","losses":16,"mean_diff":0.181944505091698,"mean_diff_ci95":{"confidence":0.95,"high":0.21979803419840013,"low":0.1439161815087953,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":2.888933087181857e-10,"sign_test_p_raw":9.629776957272858e-11,"ties":0,"wins":77},{"comparison":"A3-T2-first_vs_elem2design","family":"primary","losses":18,"mean_diff":0.17695088241733672,"mean_diff_ci95":{"confidence":0.95,"high":0.212657726316512,"low":0.14222594082281295,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":3.830739414163186e-09,"sign_test_p_raw":1.915369707081593e-09,"ties":0,"wins":75},{"comparison":"A3-T2-first_vs_elem2design","family":"primary","losses":21,"mean_diff":0.12208362460284955,"mean_diff_ci95":{"confidence":0.95,"high":0.17382318577433675,"low":0.07035208845411832,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":0.0010932449729686132,"sign_test_p_raw":0.0010932449729686132,"ties":23,"wins":49},{"comparison":"A3-T2-first_vs_elem2design","family":"geometry","losses":3,"mean_diff":0.0005438317244655049,"mean_diff_ci95":{"confidence":0.95,"high":0.001098876632064344,"low":6.989078114803431e-05,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ali","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":0.2265625,"sign_test_p_raw":0.2265625,"ties":82,"wins":8},{"comparison":"A3-T2-first_vs_elem2design","family":"geometry","losses":82,"mean_diff":-0.12784222557321503,"mean_diff_ci95":{"confidence":0.95,"high":-0.09970221056390473,"low":-0.15559214086158682,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ove","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":2.831974526957287e-14,"sign_test_p_raw":1.4159872634786435e-14,"ties":0,"wins":11}],"mean3_vs_e2d":[{"comparison":"A3-T2-mean3_vs_elem2design","family":"primary","losses":16,"mean_diff":0.17165136723347357,"mean_diff_ci95":{"confidence":0.95,"high":0.2076326390789496,"low":0.13499101255867446,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":1.9259553914545715e-10,"sign_test_p_raw":9.629776957272858e-11,"ties":0,"wins":77},{"comparison":"A3-T2-mean3_vs_elem2design","family":"primary","losses":11,"mean_diff":0.1605608680837216,"mean_diff_ci95":{"confidence":0.95,"high":0.19149334091617715,"low":0.12992151543998404,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":4.2479617904359304e-14,"sign_test_p_raw":1.4159872634786435e-14,"ties":0,"wins":82},{"comparison":"A3-T2-mean3_vs_elem2design","family":"primary","losses":30,"mean_diff":0.11233060743114344,"mean_diff_ci95":{"confidence":0.95,"high":0.16315644349094616,"low":0.06113786757965993,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":0.008836205876094518,"sign_test_p_raw":0.008836205876094518,"ties":8,"wins":55},{"comparison":"A3-T2-mean3_vs_elem2design","family":"geometry","losses":3,"mean_diff":0.001144625494962695,"mean_diff_ci95":{"confidence":0.95,"high":0.0019357807116842476,"low":0.0004979679348944218,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ali","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":8.430331945419312e-06,"sign_test_p_raw":8.430331945419312e-06,"ties":63,"wins":27},{"comparison":"A3-T2-mean3_vs_elem2design","family":"geometry","losses":86,"mean_diff":-0.12383209299098488,"mean_diff_ci95":{"confidence":0.95,"high":-0.10023528279450054,"low":-0.14735965972594445,"method":"percentile","resamples":10000,"seed":20260712},"metric":"ove","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm":4.156458615693768e-18,"sign_test_p_raw":2.078229307846884e-18,"ties":0,"wins":7}]},"evaluation_id":"a3-t2-nosel-vs-elem2design-rel100-v1","note":"selection-asymmetry sensitivity: A3-T2 without judge selection (first candidate / mean over 3 candidates) vs Elem2Design","schema_version":"a3.external-baseline-sensitivity.v1"} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/evaluation_manifest.json new file mode 100644 index 000000000..6fc807af4 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"artifact_sha256":{"aggregate.json":"cf2c0d52e80dce42a056216a1efe2325fbec663f4cb58b0b39d339b7ed2f074e","per_sample.jsonl":"5b6c3d1ba2eb069c3908e28b457d04ab5ec51ad8f1b5f575262e43fd9f32d237"},"code_sha256":{"sensitivity_single_candidate.py":"ed563ce646ee45e41a5894619a90fb02c3d3a914816c1af23713b9e95c128d5b"},"created_at":"2026-07-12T13:36:45.024078+00:00","evaluation_id":"a3-t2-nosel-vs-elem2design-rel100-v1","external_per_sample_sha256":"ddb3a5b1271c38c90f30526e2698f35a596df8e48d41fd440580dcfc365e91c5","schema_version":"a3.external-baseline-sensitivity.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/per_sample.jsonl b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/per_sample.jsonl new file mode 100644 index 000000000..dddf8ca0e --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-sensitivity.v1/a3-t2-nosel-vs-elem2design-rel100-v1/per_sample.jsonl @@ -0,0 +1,200 @@ +{"ali":0.0,"arm":"A3-T2-first","ove":0.021674072138727428,"pca":0.5,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7703792281285631,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7837370242214533} +{"ali":0.0,"arm":"A3-T2-first","ove":0.05573018949167677,"pca":0.4,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6724883614085371,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7268518518518519} +{"ali":0.0,"arm":"A3-T2-first","ove":0.022726515272811623,"pca":0.5,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5865859758854713,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6079842931937173} +{"ali":0.0,"arm":"A3-T2-first","ove":0.3519655369362466,"pca":0.5714285714285714,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4076820334605767,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5105263157894737} +{"ali":0.0,"arm":"A3-T2-first","ove":0.6839704430748138,"pca":1.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9999779557912544,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7678571428571429} +{"ali":0.0,"arm":"A3-T2-first","ove":0.20555497534715583,"pca":0.6923076923076923,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5398787532623038,"slot_id":"r0_candidate_01","status":"completed","tlc":0.39267015706806285} +{"ali":0.0,"arm":"A3-T2-first","ove":0.21422883253546324,"pca":1.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9999960212698833,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8690476190476191} +{"ali":0.0,"arm":"A3-T2-first","ove":0.023465210078000537,"pca":0.75,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8098954894080602,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8088888888888889} +{"ali":0.0,"arm":"A3-T2-first","ove":0.07468812950497473,"pca":0.8571428571428571,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5513612144894678,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5654761904761905} +{"ali":0.0,"arm":"A3-T2-first","ove":0.019455252918287938,"pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5390146876392045,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8012820512820513} +{"ali":0.0,"arm":"A3-T2-first","ove":0.021545965308251386,"pca":1.0,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9214372612305629,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8648753894080997} +{"ali":0.0,"arm":"A3-T2-first","ove":0.18426399443040736,"pca":1.0,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6989202422923508,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7371794871794872} +{"ali":0.0,"arm":"A3-T2-first","ove":0.041730381353435674,"pca":0.8571428571428571,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8170657082986902,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8055555555555556} +{"ali":0.0,"arm":"A3-T2-first","ove":0.5412342073894647,"pca":0.7,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.540546502414952,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7594827586206897} +{"ali":0.0,"arm":"A3-T2-first","ove":0.16606532814444272,"pca":0.7,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5557618268365047,"slot_id":"r0_candidate_01","status":"completed","tlc":0.47596153846153844} +{"ali":0.0,"arm":"A3-T2-first","ove":0.19866326930094289,"pca":1.0,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9661784218874231,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9942528735632183} +{"ali":0.0,"arm":"A3-T2-first","ove":0.014139962200622403,"pca":0.625,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6117284045086314,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7520325203252033} +{"ali":0.0,"arm":"A3-T2-first","ove":0.0028792034203870263,"pca":0.8,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.473226953466553,"slot_id":"r0_candidate_01","status":"completed","tlc":0.43333333333333335} +{"ali":0.0,"arm":"A3-T2-first","ove":0.03360818958446141,"pca":0.6,"sample_id":"599ecb061350e83293007738","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.644140599742586,"slot_id":"r0_candidate_01","status":"completed","tlc":0.375} +{"ali":0.0,"arm":"A3-T2-first","ove":0.25861038859139707,"pca":1.0,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8267133441390114,"slot_id":"r0_candidate_01","status":"completed","tlc":0.871505376344086} +{"ali":0.0,"arm":"A3-T2-first","ove":0.08887728716114758,"pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8736457753971606,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7647058823529411} +{"ali":0.0,"arm":"A3-T2-first","ove":0.09791316298404999,"pca":0.6,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.49738801763632695,"slot_id":"r0_candidate_01","status":"completed","tlc":0.574607329842932} +{"ali":0.0,"arm":"A3-T2-first","ove":0.038381069731000944,"pca":0.8695652173913043,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7815111616170941,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7984261501210653} +{"ali":0.0,"arm":"A3-T2-first","ove":0.01265008576329331,"pca":0.8,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7713210252206132,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8023255813953488} +{"ali":0.0,"arm":"A3-T2-first","ove":0.08930726954466034,"pca":0.8333333333333334,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5740222093729189,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6166666666666667} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06483408032721434,"pca":0.7777777777777778,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6651969596472167,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6719745222929936} +{"ali":0.0,"arm":"A3-T2-first","ove":0.5930382487756437,"pca":0.6842105263157895,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8006291381811507,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6192411924119241} +{"ali":0.0,"arm":"A3-T2-first","ove":0.38538851246500505,"pca":0.875,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8181718007627694,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8209876543209876} +{"ali":0.01246780795522672,"arm":"A3-T2-first","ove":0.07748101231719533,"pca":1.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9493521812001066,"slot_id":"r0_candidate_01","status":"completed","tlc":1.0} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06533659411597639,"pca":0.8,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6293416777163263,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5902777777777778} +{"ali":0.0,"arm":"A3-T2-first","ove":0.0003105693771915178,"pca":0.8,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.828735196072948,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9333333333333333} +{"ali":0.0,"arm":"A3-T2-first","ove":0.0540000473712595,"pca":0.75,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5833933391219612,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5588235294117647} +{"ali":0.004706818334089455,"arm":"A3-T2-first","ove":0.015060023892612082,"pca":0.625,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6136070032152714,"slot_id":"r0_candidate_01","status":"completed","tlc":0.573076923076923} +{"ali":0.0,"arm":"A3-T2-first","ove":0.12784260060929953,"pca":1.0,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7053383656981662,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6746031746031746} +{"ali":0.0,"arm":"A3-T2-first","ove":0.09415907940650678,"pca":0.6666666666666666,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.49836293556069117,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5384615384615384} +{"ali":0.0,"arm":"A3-T2-first","ove":0.058621214008111266,"pca":0.75,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7174008446787289,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6268115942028986} +{"ali":0.0,"arm":"A3-T2-first","ove":0.17304721580364438,"pca":0.8,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6978714672752433,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7446236559139785} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06539984164687253,"pca":1.0,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8135017247462704,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6875} +{"ali":0.0,"arm":"A3-T2-first","ove":0.23476139819263256,"pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9999885553673757,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7333333333333333} +{"ali":0.0,"arm":"A3-T2-first","ove":0.05207720885665763,"pca":0.4444444444444444,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4851285904496305,"slot_id":"r0_candidate_01","status":"completed","tlc":0.46875} +{"ali":0.0,"arm":"A3-T2-first","ove":0.10449095332848529,"pca":0.6,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6392222039496386,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5632183908045977} +{"ali":0.0,"arm":"A3-T2-first","ove":0.021435054014985393,"pca":0.8,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8453019923294516,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9305555555555556} +{"ali":0.0,"arm":"A3-T2-first","ove":0.18728599233728527,"pca":1.0,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9772764906720347,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9247311827956989} +{"ali":0.0,"arm":"A3-T2-first","ove":0.1591169104424101,"pca":0.5714285714285714,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5134781834674867,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5465116279069767} +{"ali":0.0,"arm":"A3-T2-first","ove":0.16776666753145625,"pca":0.4,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.39275379594239623,"slot_id":"r0_candidate_01","status":"completed","tlc":0.32051282051282054} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06582455759997627,"pca":0.9090909090909091,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8537519601501198,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7465277777777778} +{"ali":0.0,"arm":"A3-T2-first","ove":0.007914078855265076,"pca":0.45454545454545453,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7580291534042731,"slot_id":"r0_candidate_01","status":"completed","tlc":0.49712643678160917} +{"ali":0.0,"arm":"A3-T2-first","ove":0.030216489185533154,"pca":0.8181818181818182,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6747889236735606,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6449771689497716} +{"ali":0.008751528140242508,"arm":"A3-T2-first","ove":0.04363643076382631,"pca":0.625,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6115465797223385,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6413043478260869} +{"ali":0.0,"arm":"A3-T2-first","ove":0.17682569668540057,"pca":1.0,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7084877808367378,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6416666666666667} +{"ali":0.0,"arm":"A3-T2-first","ove":0.12942000260030367,"pca":0.8,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7673192104269614,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7083333333333334} +{"ali":0.013598279023155125,"arm":"A3-T2-first","ove":0.20406335070721512,"pca":0.625,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8130046479252849,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7102272727272727} +{"ali":0.0,"arm":"A3-T2-first","ove":0.1508489802408563,"pca":1.0,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9020230147875148,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8931034482758621} +{"ali":0.01149942087803923,"arm":"A3-T2-first","ove":0.04164978213027197,"pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9819871477668664,"slot_id":"r0_candidate_01","status":"completed","tlc":0.953125} +{"ali":0.0,"arm":"A3-T2-first","ove":0.05831033290675631,"pca":0.8333333333333334,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7738874265330963,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7628205128205128} +{"ali":0.0,"arm":"A3-T2-first","ove":0.04165386014473458,"pca":0.8571428571428571,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7349001834009014,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7573529411764706} +{"ali":0.0,"arm":"A3-T2-first","ove":0.19636717720499222,"pca":0.6363636363636364,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4695761222277591,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5867158671586716} +{"ali":0.0,"arm":"A3-T2-first","ove":0.01755342120621979,"pca":1.0,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8766921810772305,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8079710144927537} +{"ali":0.0,"arm":"A3-T2-first","ove":0.08697751018803294,"pca":0.5714285714285714,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6473332615004463,"slot_id":"r0_candidate_01","status":"completed","tlc":0.4260089686098655} +{"ali":0.0,"arm":"A3-T2-first","ove":0.03738482144290736,"pca":0.6923076923076923,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7194962630430128,"slot_id":"r0_candidate_01","status":"completed","tlc":0.502913752913753} +{"ali":0.0,"arm":"A3-T2-first","ove":0.4544134502476955,"pca":0.6,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8164787534297459,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6731490159325211} +{"ali":null,"arm":"A3-T2-first","ove":null,"pca":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":null,"status":"generation_failure","tlc":null} +{"ali":0.0,"arm":"A3-T2-first","ove":0.2380676231858076,"pca":1.0,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.752665325900176,"slot_id":"r0_candidate_01","status":"completed","tlc":0.85} +{"ali":0.0,"arm":"A3-T2-first","ove":0.1614237287875193,"pca":0.6,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6776804398162231,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5359116022099447} +{"ali":0.0,"arm":"A3-T2-first","ove":0.15495718684941034,"pca":0.5,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6737158547456996,"slot_id":"r0_candidate_01","status":"completed","tlc":0.44166666666666665} +{"ali":0.0,"arm":"A3-T2-first","ove":0.11588723937569038,"pca":0.42857142857142855,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5356482129837835,"slot_id":"r0_candidate_01","status":"completed","tlc":0.4418604651162791} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06612394358958076,"pca":0.5909090909090909,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5585444221155427,"slot_id":"r0_candidate_01","status":"completed","tlc":0.4746376811594203} +{"ali":0.0,"arm":"A3-T2-first","ove":0.20335473413971034,"pca":0.4444444444444444,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.42411168737906485,"slot_id":"r0_candidate_01","status":"completed","tlc":0.488588110403397} +{"ali":0.0,"arm":"A3-T2-first","ove":0.018787271459043346,"pca":0.6666666666666666,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6072458945104945,"slot_id":"r0_candidate_01","status":"completed","tlc":0.75} +{"ali":0.0,"arm":"A3-T2-first","ove":0.09928163923173233,"pca":0.6666666666666666,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5851864494202685,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6149122807017544} +{"ali":0.0,"arm":"A3-T2-first","ove":0.11618633943041766,"pca":0.9090909090909091,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.720844233977687,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7749110320284698} +{"ali":0.0,"arm":"A3-T2-first","ove":0.028488913542732853,"pca":0.9375,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9115341530863534,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9299242424242424} +{"ali":0.0,"arm":"A3-T2-first","ove":0.04072125127267713,"pca":0.75,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4072449041182558,"slot_id":"r0_candidate_01","status":"completed","tlc":0.546875} +{"ali":0.0,"arm":"A3-T2-first","ove":0.05201813272515114,"pca":0.8,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8594882432076564,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7340425531914894} +{"ali":0.0,"arm":"A3-T2-first","ove":0.020232815964523282,"pca":0.6666666666666666,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.559389923429235,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5416666666666666} +{"ali":0.0,"arm":"A3-T2-first","ove":0.10027206944459044,"pca":1.0,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9855082572262965,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8690476190476191} +{"ali":0.0,"arm":"A3-T2-first","ove":0.17949703566368283,"pca":0.7777777777777778,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.799019067301901,"slot_id":"r0_candidate_01","status":"completed","tlc":0.616751269035533} +{"ali":0.0,"arm":"A3-T2-first","ove":0.014804963597821684,"pca":0.6,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.785493548546528,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5407934131736527} +{"ali":0.0,"arm":"A3-T2-first","ove":0.2588612355061557,"pca":0.8,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6796052230173912,"slot_id":"r0_candidate_01","status":"completed","tlc":0.48350253807106597} +{"ali":0.0,"arm":"A3-T2-first","ove":0.13212926334530414,"pca":0.875,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.774618701956165,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8166666666666667} +{"ali":0.0,"arm":"A3-T2-first","ove":0.036042418566160674,"pca":1.0,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8290078395010388,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8333333333333334} +{"ali":0.005634962453608389,"arm":"A3-T2-first","ove":0.1153955504270859,"pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8816388893835427,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8529411764705882} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06858579632172798,"pca":0.5,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8181006716295756,"slot_id":"r0_candidate_01","status":"completed","tlc":0.672945205479452} +{"ali":0.0,"arm":"A3-T2-first","ove":0.027233491043645475,"pca":0.7142857142857143,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6453156457235548,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5967741935483871} +{"ali":0.0,"arm":"A3-T2-first","ove":0.08782655087634604,"pca":0.7777777777777778,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.628001366363327,"slot_id":"r0_candidate_01","status":"completed","tlc":0.728125} +{"ali":0.0,"arm":"A3-T2-first","ove":0.026659062029911123,"pca":0.75,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5741118103150117,"slot_id":"r0_candidate_01","status":"completed","tlc":0.46296296296296297} +{"ali":0.0,"arm":"A3-T2-first","ove":0.058353557572587866,"pca":1.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7804619074120338,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7222222222222222} +{"ali":0.0,"arm":"A3-T2-first","ove":0.2594847945120724,"pca":0.75,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8729453973156879,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9599609375} +{"ali":0.002970260493562561,"arm":"A3-T2-first","ove":0.07211560641068752,"pca":0.6666666666666666,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.44086145672979704,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5588235294117647} +{"ali":0.0,"arm":"A3-T2-first","ove":0.12015669128758313,"pca":0.5,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.48333222583931096,"slot_id":"r0_candidate_01","status":"completed","tlc":0.4375} +{"ali":0.0,"arm":"A3-T2-first","ove":0.0407016329387695,"pca":0.8333333333333334,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8892752352706688,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9568965517241379} +{"ali":0.0,"arm":"A3-T2-first","ove":0.07826186376902192,"pca":0.8,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6222528868742968,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6614583333333334} +{"ali":0.0,"arm":"A3-T2-first","ove":0.06910684701231022,"pca":0.5,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6859437317217325,"slot_id":"r0_candidate_01","status":"completed","tlc":0.6611111111111111} +{"ali":0.0,"arm":"A3-T2-first","ove":0.16192180449034388,"pca":0.8,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7454920676668794,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7833333333333333} +{"ali":0.0,"arm":"A3-T2-first","ove":0.2276812331913789,"pca":0.5925925925925926,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4880983980027496,"slot_id":"r0_candidate_01","status":"completed","tlc":0.4545894655305964} +{"ali":0.0,"arm":"A3-T2-first","ove":0.16192072805969865,"pca":0.8,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8588584571255061,"slot_id":"r0_candidate_01","status":"completed","tlc":0.9166666666666666} +{"ali":0.0,"arm":"A3-T2-first","ove":0.15523871543894893,"pca":0.6470588235294118,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6659000904550593,"slot_id":"r0_candidate_01","status":"completed","tlc":0.5580842391304348} +{"ali":null,"arm":"A3-T2-first","ove":null,"pca":null,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":null,"status":"generation_failure","tlc":null} +{"ali":0.006725228031357959,"arm":"A3-T2-first","ove":0.1396785123452831,"pca":0.7,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8494552755771475,"slot_id":"r0_candidate_01","status":"completed","tlc":0.8189655172413793} +{"ali":0.0013573470015103206,"arm":"A3-T2-first","ove":0.0350788318661096,"pca":0.7777777777777778,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7867230721881492,"slot_id":"r0_candidate_01","status":"completed","tlc":0.7535211267605634} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.11725170003529477,"pca":0.5555555555555555,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7472928011155737,"status":"completed","tlc":0.7295271049596309} +{"ali":0.0012729687829553832,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05826250558297786,"pca":0.5333333333333333,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.657586613931021,"status":"completed","tlc":0.70679012345679} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.037829699688491154,"pca":0.5,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6084821269948285,"status":"completed","tlc":0.5809336823734729} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.23751282372543392,"pca":0.5714285714285714,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4203389064656087,"status":"completed","tlc":0.4701754385964912} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.45822977426591877,"pca":1.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9969154165076315,"status":"completed","tlc":0.8229166666666666} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.2547893733685648,"pca":0.717948717948718,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.484939000291744,"status":"completed","tlc":0.4232111692844677} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.2518156640991553,"pca":1.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9999921649165208,"status":"completed","tlc":0.7777777777777778} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.04139762242962075,"pca":0.875,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8566289952138743,"status":"completed","tlc":0.831111111111111} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13548755074564411,"pca":0.7619047619047619,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6044825612118777,"status":"completed","tlc":0.5218253968253969} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.060353555979092234,"pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5995720088848818,"status":"completed","tlc":0.7991452991452991} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.01672875811938918,"pca":0.9166666666666666,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7979716970080127,"status":"completed","tlc":0.8124350986500519} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.3521180082079147,"pca":0.5833333333333334,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6407159387541683,"status":"completed","tlc":0.5662393162393163} +{"ali":0.001206876495920534,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05429113041256201,"pca":0.9047619047619048,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6644852180720817,"status":"completed","tlc":0.7063492063492064} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.5472728173770913,"pca":0.7833333333333332,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5939775716874646,"status":"completed","tlc":0.7269157088122605} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.11996615405135898,"pca":0.6999999999999998,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6032569892104883,"status":"completed","tlc":0.5355235042735043} +{"ali":0.0038050510346203143,"arm":"A3-T2-mean3","n_slots":3,"ove":0.11524661439267202,"pca":0.9047619047619048,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8805993964614327,"status":"completed","tlc":0.8065134099616859} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.10072928567755424,"pca":0.7916666666666666,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6015365370188646,"status":"completed","tlc":0.7533875338753387} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.0009597344734623421,"pca":0.6666666666666666,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5471562790482614,"status":"completed","tlc":0.5388888888888889} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.020496242185302493,"pca":0.6,"sample_id":"599ecb061350e83293007738","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6448911375924371,"status":"completed","tlc":0.4583333333333333} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.20671197867206512,"pca":0.7777777777777777,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.644994207475777,"status":"completed","tlc":0.746594982078853} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05946721371290878,"pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8994102109202569,"status":"completed","tlc":0.8186274509803922} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.08928638540716662,"pca":0.7666666666666666,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6838714038722357,"status":"completed","tlc":0.7212041884816753} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13543140453896935,"pca":0.8985507246376812,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.821702584962326,"status":"completed","tlc":0.8050847457627118} +{"ali":0.007530756055996375,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05578636565506547,"pca":0.6666666666666666,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7213760413212765,"status":"completed","tlc":0.6705426356589147} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07688526003280655,"pca":0.8333333333333334,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6086847244583377,"status":"completed","tlc":0.6472222222222221} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.04851739923063281,"pca":0.8518518518518517,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6945259817496203,"status":"completed","tlc":0.7048832271762208} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.4028376792886397,"pca":0.5964912280701754,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6563702648549306,"status":"completed","tlc":0.5260840108401084} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.4223909687663065,"pca":0.875,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8135999786177823,"status":"completed","tlc":0.7736625514403291} +{"ali":0.025894884046804775,"arm":"A3-T2-mean3","n_slots":3,"ove":0.06022885520496251,"pca":1.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9371971933184878,"status":"completed","tlc":0.9038461538461539} +{"ali":0.012940007451765526,"arm":"A3-T2-mean3","n_slots":3,"ove":0.08692015668952864,"pca":0.46666666666666673,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4641128764746775,"status":"completed","tlc":0.4976851851851852} +{"ali":0.002718590525449638,"arm":"A3-T2-mean3","n_slots":3,"ove":0.031830696990766155,"pca":0.9333333333333332,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7646736467079419,"status":"completed","tlc":0.8583333333333334} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.023473749630106216,"pca":0.8333333333333334,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.60230479104732,"status":"completed","tlc":0.6225490196078431} +{"ali":0.0015689394446964848,"arm":"A3-T2-mean3","n_slots":3,"ove":0.054757648619063404,"pca":0.7083333333333334,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6675427448328821,"status":"completed","tlc":0.591025641025641} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.108035348462982,"pca":0.8888888888888888,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6708204240901949,"status":"completed","tlc":0.6216931216931217} +{"ali":0.0019318079848860518,"arm":"A3-T2-mean3","n_slots":3,"ove":0.06692613750991344,"pca":0.8888888888888888,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7740873684987694,"status":"completed","tlc":0.7999999999999999} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07870636041968317,"pca":0.9166666666666666,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8003810357424843,"status":"completed","tlc":0.8291062801932366} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.12232505105398554,"pca":0.7666666666666666,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8365837188428364,"status":"completed","tlc":0.7939068100358423} +{"ali":0.00725505262476201,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07079132727926853,"pca":1.0,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.934614782144735,"status":"completed","tlc":0.8229166666666666} +{"ali":0.005577462790766601,"arm":"A3-T2-mean3","n_slots":3,"ove":0.21075576745861654,"pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9956517260857014,"status":"completed","tlc":0.7722222222222221} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.0771593625086495,"pca":0.48148148148148145,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.47019004732140957,"status":"completed","tlc":0.4890625} +{"ali":0.0018723260244154485,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13534264127562715,"pca":0.5333333333333333,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5576229739051475,"status":"completed","tlc":0.4669540229885057} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.03549674267601453,"pca":0.8000000000000002,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7831985878636273,"status":"completed","tlc":0.8865740740740741} +{"ali":0.0008295978829528863,"arm":"A3-T2-mean3","n_slots":3,"ove":0.1400566596489695,"pca":0.9166666666666666,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9273600541093842,"status":"completed","tlc":0.8736559139784946} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.18125226243809067,"pca":0.5238095238095238,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5176067505952543,"status":"completed","tlc":0.5513565891472868} +{"ali":0.0018109755346320535,"arm":"A3-T2-mean3","n_slots":3,"ove":0.16551702947379024,"pca":0.5333333333333333,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5018469554843508,"status":"completed","tlc":0.4294871794871795} +{"ali":0.0014751396148097102,"arm":"A3-T2-mean3","n_slots":3,"ove":0.03171194462715206,"pca":0.8181818181818182,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8185383852413404,"status":"completed","tlc":0.7540509259259259} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.018090572601320326,"pca":0.5757575757575758,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7708932008621335,"status":"completed","tlc":0.5644955300127714} +{"ali":0.0017433468175023848,"arm":"A3-T2-mean3","n_slots":3,"ove":0.0729800243124029,"pca":0.787878787878788,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6757309390156121,"status":"completed","tlc":0.6449771689497718} +{"ali":0.0029171760467475026,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05805145851830623,"pca":0.6666666666666666,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6623182229187111,"status":"completed","tlc":0.696256038647343} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.12647327848250195,"pca":0.9166666666666666,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7160066128960337,"status":"completed","tlc":0.6555555555555556} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.16026619045245352,"pca":0.6,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5979120994951749,"status":"completed","tlc":0.585858585858586} +{"ali":0.01067180448617347,"arm":"A3-T2-mean3","n_slots":3,"ove":0.1616450885087845,"pca":0.625,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5891675799198378,"status":"completed","tlc":0.5915404040404041} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.31511486759837865,"pca":0.9166666666666666,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8796510144354667,"status":"completed","tlc":0.796551724137931} +{"ali":0.005902852317618075,"arm":"A3-T2-mean3","n_slots":3,"ove":0.023169365223315395,"pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9722400227262437,"status":"completed","tlc":0.9557291666666666} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13394170331039087,"pca":0.7222222222222222,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7297232478250281,"status":"completed","tlc":0.6356837606837606} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07108460318440825,"pca":0.8095238095238094,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7478906045706829,"status":"completed","tlc":0.7009803921568628} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.21643743841973015,"pca":0.6363636363636364,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5118457237934786,"status":"completed","tlc":0.5984009840098401} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07644421704783376,"pca":0.9583333333333334,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.9299465889866214,"status":"completed","tlc":0.8508454106280193} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.06794629551422197,"pca":0.5714285714285714,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6511675822445196,"status":"completed","tlc":0.429559043348281} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.04824527523002664,"pca":0.6923076923076922,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8059797956155306,"status":"completed","tlc":0.676961926961927} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.3657081919834703,"pca":0.65,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8592000301265585,"status":"completed","tlc":0.7251640112464854} +{"ali":null,"arm":"A3-T2-mean3","ove":null,"pca":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":null,"status":"generation_failure","tlc":null} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.09456701205178059,"pca":0.9166666666666666,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6716426974273846,"status":"completed","tlc":0.7527777777777778} +{"ali":0.001470842399929173,"arm":"A3-T2-mean3","n_slots":3,"ove":0.14341743488405645,"pca":0.5,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6300891633084221,"status":"completed","tlc":0.496316758747698} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.16392810986619602,"pca":0.5833333333333334,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5382112042518873,"status":"completed","tlc":0.44166666666666665} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.14104333574708738,"pca":0.5714285714285715,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6336985587347398,"status":"completed","tlc":0.5675064599483205} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.10292922253050374,"pca":0.6363636363636364,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6915143502005953,"status":"completed","tlc":0.6173222912353348} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.1270106394652074,"pca":0.5185185185185185,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.4648784981373411,"status":"completed","tlc":0.5201698513800425} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.03877811692963837,"pca":0.8333333333333334,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.678235532824571,"status":"completed","tlc":0.7629310344827586} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.09778686233139931,"pca":0.619047619047619,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5755343133975669,"status":"completed","tlc":0.5194152046783626} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.1503494866471916,"pca":0.7272727272727272,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5823294296360896,"status":"completed","tlc":0.6242586002372479} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.07877970433908023,"pca":0.8125,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8309447208710511,"status":"completed","tlc":0.8077020202020201} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.05752314854082869,"pca":0.8333333333333334,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7470761846280514,"status":"completed","tlc":0.6979166666666666} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.0765151393666287,"pca":0.8666666666666667,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7921080637740813,"status":"completed","tlc":0.6826241134751774} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.056684213748570654,"pca":0.7777777777777777,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5970195800337119,"status":"completed","tlc":0.5763888888888888} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.16413577367770005,"pca":0.9444444444444445,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7843245562903873,"status":"completed","tlc":0.7116402116402116} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13489933835122647,"pca":0.7777777777777777,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8686269508975628,"status":"completed","tlc":0.7060067681895092} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.06260505892727121,"pca":0.6333333333333333,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8173930158732984,"status":"completed","tlc":0.5702969061876247} +{"ali":0.0005278571672540135,"arm":"A3-T2-mean3","n_slots":3,"ove":0.2074420657459528,"pca":0.6,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6618285555438829,"status":"completed","tlc":0.5194585448392556} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.32834850708170477,"pca":0.875,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.701304399828164,"status":"completed","tlc":0.6708333333333334} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.057178413934511695,"pca":0.9333333333333332,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8307028171440255,"status":"completed","tlc":0.8037037037037037} +{"ali":0.005635834468219421,"arm":"A3-T2-mean3","n_slots":3,"ove":0.16453267576764175,"pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8318332054441454,"status":"completed","tlc":0.7352941176470589} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.100670809684973,"pca":0.6666666666666666,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8259394476463736,"status":"completed","tlc":0.672945205479452} +{"ali":0.002678576073638717,"arm":"A3-T2-mean3","n_slots":3,"ove":0.042401889227833355,"pca":0.6666666666666666,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6108456580949194,"status":"completed","tlc":0.5681003584229392} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.08176901811322687,"pca":0.6296296296296297,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5636364765091195,"status":"completed","tlc":0.6098958333333334} +{"ali":0.0021466523632795147,"arm":"A3-T2-mean3","n_slots":3,"ove":0.039964013068878666,"pca":0.5833333333333334,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5793322577064428,"status":"completed","tlc":0.54320987654321} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.03891821313565754,"pca":1.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8893592025795387,"status":"completed","tlc":0.8209876543209876} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.19703922114243513,"pca":0.7777777777777778,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8978722101792312,"status":"completed","tlc":0.9625651041666666} +{"ali":0.0029712287937962456,"arm":"A3-T2-mean3","n_slots":3,"ove":0.08122744933937068,"pca":0.8888888888888888,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5022001695583433,"status":"completed","tlc":0.6225490196078431} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.15166926353331878,"pca":0.5833333333333334,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6205010417238362,"status":"completed","tlc":0.48263888888888884} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.041075823087729335,"pca":0.6111111111111112,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.653559363378967,"status":"completed","tlc":0.6336206896551725} +{"ali":0.0021915622420680407,"arm":"A3-T2-mean3","n_slots":3,"ove":0.11180063343875314,"pca":0.7999999999999999,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6578734727940764,"status":"completed","tlc":0.7065972222222223} +{"ali":0.004835575369249014,"arm":"A3-T2-mean3","n_slots":3,"ove":0.10504526426557009,"pca":0.7777777777777778,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.740841842604139,"status":"completed","tlc":0.7259259259259259} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.09392172823113663,"pca":0.8666666666666667,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6018636456072096,"status":"completed","tlc":0.6722222222222222} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.2083676924681973,"pca":0.6296296296296297,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.5370376439204826,"status":"completed","tlc":0.5511554350632585} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.23071924544140532,"pca":0.8000000000000002,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.8507481133279758,"status":"completed","tlc":0.8611111111111112} +{"ali":0.0,"arm":"A3-T2-mean3","n_slots":3,"ove":0.09503832098829496,"pca":0.7058823529411765,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.651008834272425,"status":"completed","tlc":0.580276268115942} +{"ali":null,"arm":"A3-T2-mean3","ove":null,"pca":null,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.external-baseline-sensitivity.v1","sgc":null,"status":"generation_failure","tlc":null} +{"ali":0.003681087110504201,"arm":"A3-T2-mean3","n_slots":3,"ove":0.13703577493007013,"pca":0.6333333333333333,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.7323402219897753,"status":"completed","tlc":0.6977969348659004} +{"ali":0.0004524490005034402,"arm":"A3-T2-mean3","n_slots":3,"ove":0.03661263316411471,"pca":0.7037037037037037,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.external-baseline-sensitivity.v1","sgc":0.6879179908456362,"status":"completed","tlc":0.5827464788732395} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/aggregate.json b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/aggregate.json new file mode 100644 index 000000000..1a91dfb58 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/aggregate.json @@ -0,0 +1 @@ +{"arm_metric_means":{"A3-T2":{"occ":{"mean":0.0056287335003492225,"n":98},"rea":{"mean":0.0,"n":98}},"elem2design":{"occ":{"mean":0.007339334588658075,"n":93},"rea":{"mean":0.0,"n":93}}},"bootstrap":{"resamples":10000,"seed":20260712},"comparisons":[{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design (lower is better)","losses":0,"mean_diff":0.0,"mean_diff_ci95":{"confidence":0.95,"high":0.0,"low":0.0,"method":"percentile","resamples":10000,"seed":20260712},"metric":"rea","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm4":null,"sign_test_p_raw":null,"ties":93,"wins":0},{"comparison":"A3-T2_vs_elem2design","direction":"A3-T2 - elem2design (lower is better)","losses":75,"mean_diff":-0.0016639125270982746,"mean_diff_ci95":{"confidence":0.95,"high":-0.0011408260242773943,"low":-0.0021616939025805955,"method":"percentile","resamples":10000,"seed":20260712},"metric":"occ","paired_n":93,"paired_sample_ids_excluded":["5931132c95a7a863ddcdc5d3","5a21848dd8141396fe9a33eb","5bbcbdfd78e1194aa69fe067","5d67ed46cf657b21ef7bdad9","5d9cad82abc8ea6d1c23ebf1","5f3b84c8a637ee11e32ee4c9","5f644f40a637ee11e3669a1c"],"sign_test_p_holm4":5.303433113748789e-10,"sign_test_p_raw":2.6517165568743947e-10,"ties":2,"wins":16}],"evaluation_id":"e2d-rea-occ-rel100-v1","geometry_family_holm4":[{"metric":"ali","sign_test_p_holm4":0.021270751953125,"sign_test_p_raw":0.021270751953125},{"metric":"ove","sign_test_p_holm4":6.506584332763591e-16,"sign_test_p_raw":2.1688614442545304e-16},{"metric":"rea","sign_test_p_holm4":null,"sign_test_p_raw":null},{"metric":"occ","sign_test_p_holm4":5.303433113748789e-10,"sign_test_p_raw":2.6517165568743947e-10}],"note":"Rea/Occ supplement on identical per-sample backgrounds and the frozen BASNet+ISNet stack; A3-T2 values verbatim from the frozen formal bundle. geometry_family_holm4 supersedes the interim 2-test Holm for the geometry family.","schema_version":"a3.external-baseline-supplement.v1"} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/evaluation_manifest.json new file mode 100644 index 000000000..83e2b03d6 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"artifact_sha256":{"aggregate.json":"194f03b243b00c06b21e1a1b51006af6b9bcbd3f6f743389b4e91b0874213f4d","per_sample.jsonl":"d36ff929d15fd6bb88780e1c44f10b4e20c455156e7410d4bba1bcf20c2043a2"},"code_sha256":{"supplement_rea_occ.py":"2d9b613f3438bbc41e15f1e47af5b5607ee08baadf92108edf04d1d04c593387"},"compare_aggregate_sha256":"c3861cd22c7839c5f6f54148557cc2f8ef664dc4abcb3c6a15910a3343f88f7a","created_at":"2026-07-12T16:02:26.650547+00:00","evaluation_id":"e2d-rea-occ-rel100-v1","frozen_sega_per_sample_sha256":"a70121e4edd1ebc7f6dbea16435218e9daca1595257aed434a843294afdfd55b","schema_version":"a3.external-baseline-supplement.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/per_sample.jsonl b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/per_sample.jsonl new file mode 100644 index 000000000..5001dce52 --- /dev/null +++ b/layout_agent/evaluations/a3-external/a3.external-baseline-supplement.v1/e2d-rea-occ-rel100-v1/per_sample.jsonl @@ -0,0 +1,200 @@ +{"arm":"A3-T2","occ":0.008867530419493225,"rea":0.0,"sample_id":"5888bb2995a7a863ddcc1f74","status":"completed"} +{"arm":"A3-T2","occ":0.005463862505903739,"rea":0.0,"sample_id":"5888c54095a7a863ddcc2082","status":"completed"} +{"arm":"A3-T2","occ":1.057386576882215e-07,"rea":0.0,"sample_id":"5888dd7995a7a863ddcc2e86","status":"completed"} +{"arm":"A3-T2","occ":0.0010453440366072792,"rea":0.0,"sample_id":"5889bc5995a7a863ddcc3b97","status":"completed"} +{"arm":"A3-T2","occ":0.005231139017511523,"rea":0.0,"sample_id":"589b457b95a7a863ddcc5331","status":"completed"} +{"arm":"A3-T2","occ":0.00014836457676205481,"rea":0.0,"sample_id":"58ab17ba95a7a863ddcc77bf","status":"completed"} +{"arm":"A3-T2","occ":0.00033654174249664147,"rea":0.0,"sample_id":"58ab189395a7a863ddcc7847","status":"completed"} +{"arm":"A3-T2","occ":0.006118646718591446,"rea":0.0,"sample_id":"58cbc44595a7a863ddccc20b","status":"completed"} +{"arm":"A3-T2","occ":0.0016153563887252194,"rea":0.0,"sample_id":"5909cfb695a7a863ddcd37cb","status":"completed"} +{"arm":"A3-T2","occ":0.0032917868740542896,"rea":0.0,"sample_id":"5914233f95a7a863ddcd777c","status":"completed"} +{"arm":"A3-T2","occ":0.001761103236172567,"rea":0.0,"sample_id":"592d1a2b95a7a863ddcd97aa","status":"completed"} +{"arm":"A3-T2","occ":0.006538656520471737,"rea":0.0,"sample_id":"592fdd7e95a7a863ddcdbe67","status":"completed"} +{"arm":"A3-T2","occ":0.002562529164244417,"rea":0.0,"sample_id":"5930177f95a7a863ddcdc313","status":"completed"} +{"arm":"A3-T2","occ":0.002667656958151535,"rea":0.0,"sample_id":"5931132c95a7a863ddcdc5d3","status":"completed"} +{"arm":"A3-T2","occ":0.03634396835475925,"rea":0.0,"sample_id":"59313e5495a7a863ddcdc9ac","status":"completed"} +{"arm":"A3-T2","occ":0.0028354166027288494,"rea":0.0,"sample_id":"5952704d95a7a863ddcdecb5","status":"completed"} +{"arm":"A3-T2","occ":0.003920789436468076,"rea":0.0,"sample_id":"5952794195a7a863ddcdf36a","status":"completed"} +{"arm":"A3-T2","occ":0.005014530431639834,"rea":0.0,"sample_id":"5952934395a7a863ddcdff21","status":"completed"} +{"arm":"A3-T2","occ":0.002660298393159705,"rea":0.0,"sample_id":"599ecb061350e83293007738","status":"completed"} +{"arm":"A3-T2","occ":0.003715862658373567,"rea":0.0,"sample_id":"59b2809c1350e8329300dbe4","status":"completed"} +{"arm":"A3-T2","occ":1.434103110237994e-06,"rea":0.0,"sample_id":"59bb96701350e8329301120a","status":"completed"} +{"arm":"A3-T2","occ":0.0003677706233343086,"rea":0.0,"sample_id":"5a034425d8141396fe9898fa","status":"completed"} +{"arm":"A3-T2","occ":0.005240541469476317,"rea":0.0,"sample_id":"5a21848dd8141396fe9a33eb","status":"completed"} +{"arm":"A3-T2","occ":0.0022027819631353918,"rea":0.0,"sample_id":"5a240260d8141396fe9a9de3","status":"completed"} +{"arm":"A3-T2","occ":0.0025734221208123897,"rea":0.0,"sample_id":"5a26bcecd8141396fe9ac474","status":"completed"} +{"arm":"A3-T2","occ":0.0027115918761221316,"rea":0.0,"sample_id":"5a9968cff07aee6977a29a68","status":"completed"} +{"arm":"A3-T2","occ":0.004728783199677505,"rea":0.0,"sample_id":"5aa915fef07aee69773a3ef4","status":"completed"} +{"arm":"A3-T2","occ":0.0036173551064913054,"rea":0.0,"sample_id":"5b6aaf851cc8aa542986ad50","status":"completed"} +{"arm":"A3-T2","occ":0.006050336271177078,"rea":0.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","status":"completed"} +{"arm":"A3-T2","occ":0.005194026136978192,"rea":0.0,"sample_id":"5b85707d1cc8aa542972823c","status":"completed"} +{"arm":"A3-T2","occ":0.003754014566954302,"rea":0.0,"sample_id":"5b9a550e18654940f754c07c","status":"completed"} +{"arm":"A3-T2","occ":0.006267173342963812,"rea":0.0,"sample_id":"5b9bc6a018654940f781b996","status":"completed"} +{"arm":"A3-T2","occ":0.007475584332355556,"rea":0.0,"sample_id":"5ba8b598ebe74117be0792c9","status":"completed"} +{"arm":"A3-T2","occ":0.0024950835635484813,"rea":0.0,"sample_id":"5bbc9b3a78e1194aa616041e","status":"completed"} +{"arm":"A3-T2","occ":0.0075701994000899634,"rea":0.0,"sample_id":"5bbcbdfd78e1194aa69fe067","status":"completed"} +{"arm":"A3-T2","occ":0.00279298294961921,"rea":0.0,"sample_id":"5bd05c0e78e1194aa6210e31","status":"completed"} +{"arm":"A3-T2","occ":0.005893866772440561,"rea":0.0,"sample_id":"5bd9d0209259f9ba54b29c99","status":"completed"} +{"arm":"A3-T2","occ":0.0005587303798709135,"rea":0.0,"sample_id":"5be174d215d5cddfd04fd1a2","status":"completed"} +{"arm":"A3-T2","occ":0.05976896193197722,"rea":0.0,"sample_id":"5be97b9241fdeab19f985504","status":"completed"} +{"arm":"A3-T2","occ":0.001170765563207837,"rea":0.0,"sample_id":"5bf55e578caf671e1c2272f0","status":"completed"} +{"arm":"A3-T2","occ":0.004252946991281411,"rea":0.0,"sample_id":"5bf828a38caf671e1c2632e9","status":"completed"} +{"arm":"A3-T2","occ":0.005085101364552484,"rea":0.0,"sample_id":"5c263de4133a785392318ba9","status":"completed"} +{"arm":"A3-T2","occ":0.0066827610885411915,"rea":0.0,"sample_id":"5c41f55b048d064dbcc85b80","status":"completed"} +{"arm":"A3-T2","occ":0.002990356118886328,"rea":0.0,"sample_id":"5c41f7a3048d064dbccfae94","status":"completed"} +{"arm":"A3-T2","occ":0.0017920711864333632,"rea":0.0,"sample_id":"5c5af7a1048d064dbc1f0d67","status":"completed"} +{"arm":"A3-T2","occ":0.0024913995547901514,"rea":0.0,"sample_id":"5c5b0913048d064dbc785e7c","status":"completed"} +{"arm":"A3-T2","occ":0.0006982620895496493,"rea":0.0,"sample_id":"5c5b095c048d064dbc7a0ede","status":"completed"} +{"arm":"A3-T2","occ":0.0005057123067576749,"rea":0.0,"sample_id":"5c6c147785ea3c16f98dd907","status":"completed"} +{"arm":"A3-T2","occ":0.003785421478493878,"rea":0.0,"sample_id":"5c77eda885ea3c16f9f29101","status":"completed"} +{"arm":"A3-T2","occ":0.0026705923568969953,"rea":0.0,"sample_id":"5ca5faf823c829c8218ffb10","status":"completed"} +{"arm":"A3-T2","occ":0.005606861892919162,"rea":0.0,"sample_id":"5cb89d8aadbc796055f970af","status":"completed"} +{"arm":"A3-T2","occ":0.003981558820429655,"rea":0.0,"sample_id":"5cd67f1f7d4459dfe12714cf","status":"completed"} +{"arm":"A3-T2","occ":0.003330751539188753,"rea":0.0,"sample_id":"5cd6984b7d4459dfe140c0b4","status":"completed"} +{"arm":"A3-T2","occ":0.0002624806725410293,"rea":0.0,"sample_id":"5cde64e47d4459dfe1b81863","status":"completed"} +{"arm":"A3-T2","occ":0.004028135793219273,"rea":0.0,"sample_id":"5ce3ba947d4459dfe1cebd75","status":"completed"} +{"arm":"A3-T2","occ":0.00348609599273306,"rea":0.0,"sample_id":"5cfe2ad78cba87f943da4ec5","status":"completed"} +{"arm":"A3-T2","occ":0.005657481344254954,"rea":0.0,"sample_id":"5d08f3708cba87f943ec4e3f","status":"completed"} +{"arm":"A3-T2","occ":0.00574381112891585,"rea":0.0,"sample_id":"5d08f7a08cba87f943f48a6d","status":"completed"} +{"arm":"A3-T2","occ":0.0026631895248044784,"rea":0.0,"sample_id":"5d0cf79f8cba87f943616ca6","status":"completed"} +{"arm":"A3-T2","occ":0.004367315757660271,"rea":0.0,"sample_id":"5d234eaf8cba87f94322b763","status":"completed"} +{"arm":"A3-T2","occ":0.005720858347327029,"rea":0.0,"sample_id":"5d4ae4aecf657b21effa9831","status":"completed"} +{"arm":"A3-T2","occ":null,"rea":null,"sample_id":"5d67ed46cf657b21ef7bdad9","status":"generation_failure"} +{"arm":"A3-T2","occ":0.0007295265042887057,"rea":0.0,"sample_id":"5d68dd6ce79a2a634ea111b8","status":"completed"} +{"arm":"A3-T2","occ":0.005362294876705803,"rea":0.0,"sample_id":"5d6903b8abc8ea6d1c0305fd","status":"completed"} +{"arm":"A3-T2","occ":0.03659170617446027,"rea":0.0,"sample_id":"5d6909e8abc8ea6d1c0cda03","status":"completed"} +{"arm":"A3-T2","occ":0.002417786628349781,"rea":0.0,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","status":"completed"} +{"arm":"A3-T2","occ":0.005291872750794757,"rea":0.0,"sample_id":"5d9cad82abc8ea6d1c23ebf1","status":"completed"} +{"arm":"A3-T2","occ":0.0005553915326116536,"rea":0.0,"sample_id":"5d9cadb1abc8ea6d1c246dc8","status":"completed"} +{"arm":"A3-T2","occ":0.003389566161866109,"rea":0.0,"sample_id":"5da04604abc8ea6d1cbe2935","status":"completed"} +{"arm":"A3-T2","occ":0.0012823955365278293,"rea":0.0,"sample_id":"5da071b5abc8ea6d1c1f1d6f","status":"completed"} +{"arm":"A3-T2","occ":0.00429322627961693,"rea":0.0,"sample_id":"5dbbff2eabc8ea6d1c15c382","status":"completed"} +{"arm":"A3-T2","occ":0.002224998211209645,"rea":0.0,"sample_id":"5dc27c32abc8ea6d1cbf115a","status":"completed"} +{"arm":"A3-T2","occ":0.003955738904542233,"rea":0.0,"sample_id":"5df211c29fea0cc374abbbba","status":"completed"} +{"arm":"A3-T2","occ":0.00505259451052437,"rea":0.0,"sample_id":"5df216b89fea0cc374b8d341","status":"completed"} +{"arm":"A3-T2","occ":0.00465530833061524,"rea":0.0,"sample_id":"5df3af489fea0cc3742457a9","status":"completed"} +{"arm":"A3-T2","occ":0.0025733418855664,"rea":0.0,"sample_id":"5df7606b9fea0cc374d371db","status":"completed"} +{"arm":"A3-T2","occ":0.003889185174076035,"rea":0.0,"sample_id":"5e0213489fea0cc374175712","status":"completed"} +{"arm":"A3-T2","occ":0.006553855894555588,"rea":0.0,"sample_id":"5e0219159fea0cc37425a627","status":"completed"} +{"arm":"A3-T2","occ":0.004523838998958996,"rea":0.0,"sample_id":"5e04ba7f9fea0cc3749733ea","status":"completed"} +{"arm":"A3-T2","occ":0.006251716142819251,"rea":0.0,"sample_id":"5e0621989fea0cc3748583f6","status":"completed"} +{"arm":"A3-T2","occ":0.005984655546061031,"rea":0.0,"sample_id":"5e0d99499fea0cc374a71bcc","status":"completed"} +{"arm":"A3-T2","occ":0.0047807462698349484,"rea":0.0,"sample_id":"5e202d829fea0cc3744908a8","status":"completed"} +{"arm":"A3-T2","occ":0.0028764657492218286,"rea":0.0,"sample_id":"5e2031da9fea0cc37450dd01","status":"completed"} +{"arm":"A3-T2","occ":0.0034328006498880828,"rea":0.0,"sample_id":"5e28090f9fea0cc3748fc62a","status":"completed"} +{"arm":"A3-T2","occ":0.0036587162219443663,"rea":0.0,"sample_id":"5e6f770e4b3890eb07175aee","status":"completed"} +{"arm":"A3-T2","occ":0.004461071166030766,"rea":0.0,"sample_id":"5e8762404b3890eb0782ad22","status":"completed"} +{"arm":"A3-T2","occ":0.0009441950889318392,"rea":0.0,"sample_id":"5e8d96cb4b3890eb071c683d","status":"completed"} +{"arm":"A3-T2","occ":0.0017121260845931491,"rea":0.0,"sample_id":"5e8ef9fb4b3890eb0760bade","status":"completed"} +{"arm":"A3-T2","occ":0.06736772116699724,"rea":0.0,"sample_id":"5e90704d499b85dcc7d7114d","status":"completed"} +{"arm":"A3-T2","occ":0.002209050236137246,"rea":0.0,"sample_id":"5e984f83499b85dcc792f6be","status":"completed"} +{"arm":"A3-T2","occ":0.002833099382490657,"rea":0.0,"sample_id":"5ea01126499b85dcc781e788","status":"completed"} +{"arm":"A3-T2","occ":0.0041981372995718415,"rea":0.0,"sample_id":"5ea2d990499b85dcc7aaeb92","status":"completed"} +{"arm":"A3-T2","occ":0.006247743254254578,"rea":0.0,"sample_id":"5ea97187499b85dcc7c45e3d","status":"completed"} +{"arm":"A3-T2","occ":0.008085896931255327,"rea":0.0,"sample_id":"5f114599499b85dcc796da51","status":"completed"} +{"arm":"A3-T2","occ":0.0030313607306501423,"rea":0.0,"sample_id":"5f3b84c8a637ee11e32ee4c9","status":"completed"} +{"arm":"A3-T2","occ":0.003847946357475742,"rea":0.0,"sample_id":"5f4c9d6fa637ee11e34ab88b","status":"completed"} +{"arm":"A3-T2","occ":0.00543700354391501,"rea":0.0,"sample_id":"5f5b5a3da637ee11e3e5adbf","status":"completed"} +{"arm":"A3-T2","occ":null,"rea":null,"sample_id":"5f644f40a637ee11e3669a1c","status":"generation_failure"} +{"arm":"A3-T2","occ":0.006800148753792066,"rea":0.0,"sample_id":"5f96aca7a637ee11e30bb517","status":"completed"} +{"arm":"A3-T2","occ":0.0077345933045963,"rea":0.0,"sample_id":"5fbf5b4aa637ee11e3a82536","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062592861599392365,"rea":0.0,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006214752609684222,"rea":0.0,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.00044825081261797977,"rea":0.0,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.00597279116813118,"rea":0.0,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062465652026266714,"rea":0.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.0003666053583592544,"rea":0.0,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.0003380753836610618,"rea":0.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062592861599392365,"rea":0.0,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062465652026266714,"rea":0.0,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004276315468899431,"rea":0.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006237427645890171,"rea":0.0,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062499064127604165,"rea":0.0,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062592861599392365,"rea":0.0,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"asset","occ":0.033225878626370976,"rea":0.0,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006193261677297987,"rea":0.0,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0057095887506231095,"rea":0.0,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.006237427645890171,"rea":0.0,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.006253432591756185,"rea":0.0,"sample_id":"599ecb061350e83293007738","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0058789505111763495,"rea":0.0,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.00032229991715740386,"rea":0.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.0009504092255940588,"rea":0.0,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006251716142819251,"rea":0.0,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062592861599392365,"rea":0.0,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004721970190333925,"rea":0.0,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062465652026266714,"rea":0.0,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006575816741607882,"rea":0.0,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004003781759584031,"rea":0.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006060980148904032,"rea":0.0,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006267716884613037,"rea":0.0,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006598858890457255,"rea":0.0,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062592861599392365,"rea":0.0,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.005006677654485332,"rea":0.0,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0047443890898478695,"rea":0.0,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.05798822014031975,"rea":0.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004681328709973057,"rea":0.0,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.00555778541268685,"rea":0.0,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006255637462536451,"rea":0.0,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.00626207490980107,"rea":0.0,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0046300832842673155,"rea":0.0,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004552232852793136,"rea":0.0,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006193261677297987,"rea":0.0,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006193261677297987,"rea":0.0,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006251716142819251,"rea":0.0,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.005857941607614866,"rea":0.0,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.0009877390158258025,"rea":0.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006251716142819251,"rea":0.0,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006311860751397154,"rea":0.0,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0054605373376550356,"rea":0.0,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062465652026266714,"rea":0.0,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006423380002424601,"rea":0.0,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006151298099653469,"rea":0.0,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006237427645890171,"rea":0.0,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006276334800767102,"rea":0.0,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.024881794619462126,"rea":0.0,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006252002650669643,"rea":0.0,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006255637462536451,"rea":0.0,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006834188749368639,"rea":0.0,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.005038191039059063,"rea":0.0,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006106728016916185,"rea":0.0,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006255548955321879,"rea":0.0,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006255637462536451,"rea":0.0,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006247743254254578,"rea":0.0,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0058017976218659815,"rea":0.0,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006263155407375759,"rea":0.0,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006237427645890171,"rea":0.0,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.00625960049868336,"rea":0.0,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006251716142819251,"rea":0.0,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.005099921560597461,"rea":0.0,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0021376400496702294,"rea":0.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.003965628556290258,"rea":0.0,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.004085059490413974,"rea":0.0,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006238744534357351,"rea":0.0,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0031396455872915456,"rea":0.0,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0053204940669168005,"rea":0.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062465652026266714,"rea":0.0,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.07512395083904266,"rea":0.0,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.0062591774081006465,"rea":0.0,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006255548955321879,"rea":0.0,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006247743254254578,"rea":0.0,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"asset","occ":0.00629137474813579,"rea":0.0,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006251716142819251,"rea":0.0,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.006258483723958333,"rea":0.0,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","occ":null,"rea":null,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.external-baseline-supplement.v1","status":"failed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.005932207134746919,"rea":0.0,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} +{"arm":"elem2design","background_kind":"blank_canvas","occ":0.00651663869842512,"rea":0.0,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.external-baseline-supplement.v1","status":"completed"} diff --git a/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/aggregate.json b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/aggregate.json new file mode 100644 index 000000000..874a1ef3c --- /dev/null +++ b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/aggregate.json @@ -0,0 +1 @@ +{"arms":{"T0":{"generation_failures":[],"metric_mean":{"pca":0.6930267446305608,"sgc":0.6465186831673748,"tlc":0.6276946110947472},"metric_valid_n":{"pca":100,"sgc":100,"tlc":100},"n_completed":100,"n_frozen":100,"n_generation_failures":0,"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01","run_summary_sha256":"0e9d1fcfcc7b55789dc2b82c11becaeb8d3318e72e52fe1149576fddef8fe356","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"},"T2":{"generation_failures":[{"error_type":"A3L0PipelineError","sample_id":"5d67ed46cf657b21ef7bdad9"},{"error_type":"ValueError","sample_id":"5f644f40a637ee11e3669a1c"}],"metric_mean":{"pca":0.761362080556732,"sgc":0.7037424417083629,"tlc":0.6710931714705849},"metric_valid_n":{"pca":98,"sgc":98,"tlc":98},"n_completed":98,"n_frozen":100,"n_generation_failures":2,"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01","run_summary_sha256":"325cebbe3c52533ec81c5188f3f85448e44eb5e60a596a3df940446053132499","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"},"T3":{"generation_failures":[{"error_type":"A3L0PipelineError","sample_id":"5da04604abc8ea6d1cbe2935"}],"metric_mean":{"pca":0.8215208199285068,"sgc":0.7778928618492427,"tlc":0.7271399954386849},"metric_valid_n":{"pca":99,"sgc":99,"tlc":99},"n_completed":99,"n_frozen":100,"n_generation_failures":1,"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01","run_summary_sha256":"7636ff0897e56586cad6ac80582f6506e3eba231aacd077c1f95145b099b1355","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"}},"bootstrap":{"confidence":0.95,"method":"percentile","note":"fresh np.random.default_rng(seed) per comparison","resamples":10000,"seed":20260712},"code_sha256":{"metagpt/ext/agentlayout/evaluation/a3_relation_stats.py":"3b4cc50b5c8c4072a3a699bd4a2c582f2e9ee777ed525e56a77e208ee8130f8b","metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py":"a729cb96a923382d9df7dbd3b48c277c41db23fcaa883d16e6658a8a01e946c3","metagpt/ext/agentlayout/layout_tree_v3.py":"ecbf3e8c7a0f22c19ff3512b850337a9a4cb0db5aa5f57340598277362c5ed6d","metagpt/ext/agentlayout/tools/human_tree_metrics.py":"6672c822a2f2dbcd329573d8b51f430fc86d4839694ab1e8beba7a7a863cebf7"},"comparisons":[{"comparison":"T2_vs_T0","direction":"T2 - T0","losses":34,"mean_diff":0.05511273779724621,"mean_diff_ci95":{"confidence":0.95,"high":0.09802832537969962,"low":0.013531037901287015,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":98,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.028698106543235034,"sign_test_p_holm":0.01275471401921557,"sign_test_p_raw":0.0031886785048038926,"ties":0,"wins":64},{"comparison":"T2_vs_T0","direction":"T2 - T0","losses":32,"mean_diff":0.04116661834729551,"mean_diff_ci95":{"confidence":0.95,"high":0.08059002693286318,"low":0.0015909865373692383,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":98,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.017319129997736736,"sign_test_p_holm":0.011546086665157825,"sign_test_p_raw":0.001924347777526304,"ties":3,"wins":63},{"comparison":"T2_vs_T0","direction":"T2 - T0","losses":25,"mean_diff":0.06366715163341939,"mean_diff_ci95":{"confidence":0.95,"high":0.11166281388622995,"low":0.0145777207698983,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":98,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.11497135984258412,"sign_test_p_holm":0.03832378661419471,"sign_test_p_raw":0.012774595538064903,"ties":26,"wins":47},{"comparison":"T3_vs_T0","direction":"T3 - T0","losses":25,"mean_diff":0.13166875330418168,"mean_diff_ci95":{"confidence":0.95,"high":0.17310347903480125,"low":0.08974264919324333,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":99,"paired_sample_ids_excluded":["5da04604abc8ea6d1cbe2935"],"sign_test_p_bonferroni":7.655392434494035e-06,"sign_test_p_holm":7.655392434494035e-06,"sign_test_p_raw":8.505991593882261e-07,"ties":0,"wins":74},{"comparison":"T3_vs_T0","direction":"T3 - T0","losses":29,"mean_diff":0.10050663696610854,"mean_diff_ci95":{"confidence":0.95,"high":0.14110811739006243,"low":0.06028670104758195,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":99,"paired_sample_ids_excluded":["5da04604abc8ea6d1cbe2935"],"sign_test_p_bonferroni":0.00041456186679372694,"sign_test_p_holm":0.0003224370075062321,"sign_test_p_raw":4.606242964374744e-05,"ties":0,"wins":70},{"comparison":"T3_vs_T0","direction":"T3 - T0","losses":18,"mean_diff":0.1299113135676712,"mean_diff_ci95":{"confidence":0.95,"high":0.17783198708891562,"low":0.0822188881292648,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":99,"paired_sample_ids_excluded":["5da04604abc8ea6d1cbe2935"],"sign_test_p_bonferroni":0.00015222255392687063,"sign_test_p_holm":0.00013530893682388501,"sign_test_p_raw":1.6913617102985627e-05,"ties":26,"wins":55},{"comparison":"T3_vs_T2","direction":"T3 - T2","losses":33,"mean_diff":0.0743176938143865,"mean_diff_ci95":{"confidence":0.95,"high":0.11468537420565433,"low":0.03300929838118239,"method":"percentile","resamples":10000,"seed":20260712},"metric":"sgc","paired_n":97,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5da04604abc8ea6d1cbe2935","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.019363977791325225,"sign_test_p_holm":0.011546086665157825,"sign_test_p_raw":0.002151553087925025,"ties":0,"wins":64},{"comparison":"T3_vs_T2","direction":"T3 - T2","losses":35,"mean_diff":0.05704090884022486,"mean_diff_ci95":{"confidence":0.95,"high":0.09726668365549211,"low":0.01698857077918756,"method":"percentile","resamples":10000,"seed":20260712},"metric":"tlc","paired_n":97,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5da04604abc8ea6d1cbe2935","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.12040832723403547,"sign_test_p_holm":0.03832378661419471,"sign_test_p_raw":0.01337870302600394,"ties":2,"wins":60},{"comparison":"T3_vs_T2","direction":"T3 - T2","losses":29,"mean_diff":0.05973668279116904,"mean_diff_ci95":{"confidence":0.95,"high":0.10834787951675326,"low":0.010740814852760188,"method":"percentile","resamples":10000,"seed":20260712},"metric":"pca","paired_n":97,"paired_sample_ids_excluded":["5d67ed46cf657b21ef7bdad9","5da04604abc8ea6d1cbe2935","5f644f40a637ee11e3669a1c"],"sign_test_p_bonferroni":0.5755492482036025,"sign_test_p_holm":0.06394991646706695,"sign_test_p_raw":0.06394991646706695,"ties":22,"wins":46}],"evaluation_id":"a3-relation-n100-sgc-tlc-pca-stats-v1","family_size":9,"frozen_sample_n":100,"oracle_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/relation100_oracle_trees","schema_version":"a3.relation-stats.v1","total_generation_attempts":300,"total_generation_failures":3} diff --git a/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/evaluation_manifest.json new file mode 100644 index 000000000..c4320219e --- /dev/null +++ b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"arms":{"T0":{"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01","run_summary_sha256":"0e9d1fcfcc7b55789dc2b82c11becaeb8d3318e72e52fe1149576fddef8fe356","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"},"T2":{"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01","run_summary_sha256":"325cebbe3c52533ec81c5188f3f85448e44eb5e60a596a3df940446053132499","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"},"T3":{"run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01","run_summary_sha256":"7636ff0897e56586cad6ac80582f6506e3eba231aacd077c1f95145b099b1355","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c"}},"artifact_sha256":{"aggregate.json":"c71b8d70814985372464ba11efe8e223e99e4e970443c2d94677404df12ae15e","per_sample.jsonl":"d4db77a056845b76d5a3aa478c31d83afbcde5fb50bf4441eb05afcfbe2a9131","results.md":"a435ba7f7cb9fe54f7e6f9155f575b9a2d83312923f406e6832b08d10f9b5161","results.tex":"69e4269d2c95e0b83015069e7c738f279f6e1f9b04445ec0fcf474b259eacd52"},"bootstrap":{"confidence":0.95,"method":"percentile","note":"fresh np.random.default_rng(seed) per comparison","resamples":10000,"seed":20260712},"code_sha256":{"metagpt/ext/agentlayout/evaluation/a3_relation_stats.py":"3b4cc50b5c8c4072a3a699bd4a2c582f2e9ee777ed525e56a77e208ee8130f8b","metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py":"a729cb96a923382d9df7dbd3b48c277c41db23fcaa883d16e6658a8a01e946c3","metagpt/ext/agentlayout/layout_tree_v3.py":"ecbf3e8c7a0f22c19ff3512b850337a9a4cb0db5aa5f57340598277362c5ed6d","metagpt/ext/agentlayout/tools/human_tree_metrics.py":"6672c822a2f2dbcd329573d8b51f430fc86d4839694ab1e8beba7a7a863cebf7"},"command_argv":["layout_agent/analyze_a3_relation_stats.py","--t0-run-dir","layout_agent/runs/a3/a3-rel100-t0-01","--t2-run-dir","layout_agent/runs/a3/a3-rel100-t2-01","--t3-run-dir","layout_agent/runs/a3/a3-rel100-t3-01","--oracle-dir","layout_agent/runs/a3/relation100_oracle_trees","--evaluation-id","a3-relation-n100-sgc-tlc-pca-stats-v1","--output-root","layout_agent/evaluations/a3-relation-stats"],"created_at":"2026-07-12T09:46:18.739167+00:00","evaluation_id":"a3-relation-n100-sgc-tlc-pca-stats-v1","oracle_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/relation100_oracle_trees","schema_version":"a3.relation-stats.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/per_sample.jsonl b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/per_sample.jsonl new file mode 100644 index 000000000..89e6be04c --- /dev/null +++ b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/per_sample.jsonl @@ -0,0 +1,300 @@ +{"arm":"T0","error_type":null,"l0_result_sha256":"94f6d8299f2474c36baeb6f556552cb0ecd7b850bef163b6055c10432836e7ab","oracle_sha256":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","pca":0.6666666666666666,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.relation-stats.v1","sgc":0.6117871164564382,"skip_reasons":[],"status":"completed","tlc":0.5363321799307958} +{"arm":"T0","error_type":null,"l0_result_sha256":"c27a1f9a45e397617c572059d2e0f8d179b5f50238ce7f2b50ae8ceb8e9bdc4d","oracle_sha256":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","pca":0.6,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.relation-stats.v1","sgc":0.66786125381052,"skip_reasons":[],"status":"completed","tlc":0.6990740740740741} +{"arm":"T0","error_type":null,"l0_result_sha256":"877b1e40c2d631026858076e0e01a60345d8345ccb03f28b0e4fe34c7843eb47","oracle_sha256":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","pca":0.75,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.relation-stats.v1","sgc":0.5154415186142741,"skip_reasons":[],"status":"completed","tlc":0.46335078534031415} +{"arm":"T0","error_type":null,"l0_result_sha256":"3db9da5b4dd16559647f41194aca272b0be341e87baee061eb1935c77489e7d7","oracle_sha256":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","pca":0.7142857142857143,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.relation-stats.v1","sgc":0.4356744938708824,"skip_reasons":[],"status":"completed","tlc":0.42105263157894735} +{"arm":"T0","error_type":null,"l0_result_sha256":"1d0818f64ecfc88d1c109c0ed2d479d6ccfc0b75cbf088d6047afa8bbd1b4e4e","oracle_sha256":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","pca":0.5,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.relation-stats.v1","sgc":0.31881964197573853,"skip_reasons":[],"status":"completed","tlc":0.4642857142857143} +{"arm":"T0","error_type":null,"l0_result_sha256":"58cd1255e8154bdf6152920bc2aed796ad245b320fe0485e44eecd12a190f5d0","oracle_sha256":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","pca":0.5384615384615384,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.relation-stats.v1","sgc":0.5174256884994677,"skip_reasons":[],"status":"completed","tlc":0.4410994764397906} +{"arm":"T0","error_type":null,"l0_result_sha256":"44c9733bcf2478f47a9402be84ccadb4c98a2615f44615768d80bebae1199440","oracle_sha256":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","pca":1.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.relation-stats.v1","sgc":0.9608030913134744,"skip_reasons":[],"status":"completed","tlc":0.8333333333333334} +{"arm":"T0","error_type":null,"l0_result_sha256":"88df971234c4b246ca5b1848398871e5721655e0d60a39f7d7122fbdf9a6f1fc","oracle_sha256":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","pca":0.875,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.relation-stats.v1","sgc":0.8052912377667747,"skip_reasons":[],"status":"completed","tlc":0.7666666666666667} +{"arm":"T0","error_type":null,"l0_result_sha256":"5b93d5554d2cc27a8e0b31fbd704b8b566815fc7adee2f53db5cfd78d76f4174","oracle_sha256":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","pca":0.5714285714285714,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.relation-stats.v1","sgc":0.43279443960251957,"skip_reasons":[],"status":"completed","tlc":0.4226190476190476} +{"arm":"T0","error_type":null,"l0_result_sha256":"2b247254e1468486467ff0c6e7377cee3425331530e6c31cbde4f9d467de0b3e","oracle_sha256":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.relation-stats.v1","sgc":0.7681704618539855,"skip_reasons":[],"status":"completed","tlc":0.8012820512820513} +{"arm":"T0","error_type":null,"l0_result_sha256":"70c6ab3c65e107505bc2a1b22fb23d415d16420321075461f87a9663fcf6ae2a","oracle_sha256":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","pca":0.75,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.relation-stats.v1","sgc":0.5935658916929901,"skip_reasons":[],"status":"completed","tlc":0.528816199376947} +{"arm":"T0","error_type":null,"l0_result_sha256":"e0d22a7fc36e30e749205593786c708900a69a277fedc3707f0b34cdbab77c89","oracle_sha256":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","pca":0.5,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.relation-stats.v1","sgc":0.5114074435677501,"skip_reasons":[],"status":"completed","tlc":0.4230769230769231} +{"arm":"T0","error_type":null,"l0_result_sha256":"b963adcbd43504bfda5f767c26ba4685796227c5d299b931b562d8d5768e6e21","oracle_sha256":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","pca":0.8571428571428571,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.relation-stats.v1","sgc":0.5323024257415276,"skip_reasons":[],"status":"completed","tlc":0.6666666666666666} +{"arm":"T0","error_type":null,"l0_result_sha256":"737aefc4af77250e00a1188798dc711bda0e3ae513ac6f9aff64ef74b65d381a","oracle_sha256":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","pca":0.55,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.relation-stats.v1","sgc":0.3991864430011953,"skip_reasons":[],"status":"completed","tlc":0.593103448275862} +{"arm":"T0","error_type":null,"l0_result_sha256":"29395112dc82e417302fa7884b870ad3d9cbcbe24b2a7000478cc615a7241125","oracle_sha256":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","pca":0.7,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.relation-stats.v1","sgc":0.5973044289989682,"skip_reasons":[],"status":"completed","tlc":0.5496794871794872} +{"arm":"T0","error_type":null,"l0_result_sha256":"8197e0758428342bf3948af2b3515d54b2f04242fd525730f3ab56edce8e2fa4","oracle_sha256":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","pca":0.8571428571428571,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.relation-stats.v1","sgc":0.8485414861936507,"skip_reasons":[],"status":"completed","tlc":0.9252873563218391} +{"arm":"T0","error_type":null,"l0_result_sha256":"5cf2239c2292327738d0b45cb104cfcbd97b1af4348b1db31b47c2e5c00a544a","oracle_sha256":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","pca":0.75,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.relation-stats.v1","sgc":0.4347820599067718,"skip_reasons":[],"status":"completed","tlc":0.5386178861788617} +{"arm":"T0","error_type":null,"l0_result_sha256":"547cc9a0a4b20194c3b49d161d9e2d95a1533ccfe2553d6d074c1b2af8103bed","oracle_sha256":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","pca":1.0,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.relation-stats.v1","sgc":0.8326153242180897,"skip_reasons":[],"status":"completed","tlc":0.9333333333333333} +{"arm":"T0","error_type":null,"l0_result_sha256":"3e2faedfcbe45654b1c98fb7e4aba4321aa9e33f7507b2752524bd512d68fd06","oracle_sha256":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","pca":0.8,"sample_id":"599ecb061350e83293007738","schema_version":"a3.relation-stats.v1","sgc":0.6406131794708794,"skip_reasons":[],"status":"completed","tlc":0.75} +{"arm":"T0","error_type":null,"l0_result_sha256":"3581bd1e5c45de729f465307b0c0d12c1cb800062caa43528f12a3c47668407c","oracle_sha256":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","pca":0.6666666666666666,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.relation-stats.v1","sgc":0.5759750997835134,"skip_reasons":[],"status":"completed","tlc":0.5478494623655914} +{"arm":"T0","error_type":null,"l0_result_sha256":"fb9d3238ca9274e01448f6de713d85fb14aff5ccaee1b6c48b64cfeefb9168b5","oracle_sha256":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.relation-stats.v1","sgc":0.8952059615698994,"skip_reasons":[],"status":"completed","tlc":0.8970588235294118} +{"arm":"T0","error_type":null,"l0_result_sha256":"ebab823e2c856637f0b0039910970e9b89eaeddca0efb8cac7adc19ee62280c4","oracle_sha256":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","pca":0.7,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.relation-stats.v1","sgc":0.48786107537089557,"skip_reasons":[],"status":"completed","tlc":0.6073298429319371} +{"arm":"T0","error_type":null,"l0_result_sha256":"272a4e5d81eda42ab79ff05d171e2682415b4e305f87edd5805802035b2eb7e8","oracle_sha256":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","pca":0.6956521739130435,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.relation-stats.v1","sgc":0.5270879454252182,"skip_reasons":[],"status":"completed","tlc":0.6840193704600485} +{"arm":"T0","error_type":null,"l0_result_sha256":"5160ef6990751b5d53ad4ab4409ad51fdf2ef949c76a3040fcae89012f4ba717","oracle_sha256":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","pca":1.0,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.relation-stats.v1","sgc":0.6886621666844314,"skip_reasons":[],"status":"completed","tlc":0.6453488372093024} +{"arm":"T0","error_type":null,"l0_result_sha256":"117b49e3ae086dae1a1bef62649c63eb00e0219bca0de28de65478b534540823","oracle_sha256":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","pca":0.3333333333333333,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.relation-stats.v1","sgc":0.5716105688362839,"skip_reasons":[],"status":"completed","tlc":0.625} +{"arm":"T0","error_type":null,"l0_result_sha256":"13b93710d58ccf3a756a8e30e1492327bf0ddfe70b1c17a585635e707d76bfd1","oracle_sha256":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","pca":0.6666666666666666,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.relation-stats.v1","sgc":0.520948551839651,"skip_reasons":[],"status":"completed","tlc":0.6035031847133758} +{"arm":"T0","error_type":null,"l0_result_sha256":"4bc2311bf3ecdf423db8c198ba471df066fda23c59ef12f7da21c720a051963f","oracle_sha256":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","pca":0.5789473684210527,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.relation-stats.v1","sgc":0.57800912127581,"skip_reasons":[],"status":"completed","tlc":0.3790650406504065} +{"arm":"T0","error_type":null,"l0_result_sha256":"3ae483cfbc03033a30ebfb71fb4a81b8ba9d4ac4238a5209894b5ee5f16ff1d2","oracle_sha256":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","pca":0.625,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.relation-stats.v1","sgc":0.5291611455227151,"skip_reasons":[],"status":"completed","tlc":0.45987654320987653} +{"arm":"T0","error_type":null,"l0_result_sha256":"67087f59be48b4ce68b609535d668fc8f488b3be32d5be1989af3e928a0801dc","oracle_sha256":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","pca":0.3333333333333333,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.relation-stats.v1","sgc":0.18770671587788354,"skip_reasons":[],"status":"completed","tlc":0.23076923076923078} +{"arm":"T0","error_type":null,"l0_result_sha256":"6bc2c7f433ec48a53168f262e9895be590bb022766ebf27a824b5ca862e836a0","oracle_sha256":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","pca":1.0,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.relation-stats.v1","sgc":0.8679567063014426,"skip_reasons":[],"status":"completed","tlc":0.8472222222222222} +{"arm":"T0","error_type":null,"l0_result_sha256":"876e461eda84ba8f4f90ccbb6e4c547885ed0d3eb198240862138954682f69af","oracle_sha256":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","pca":0.8,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.relation-stats.v1","sgc":0.7122353610334308,"skip_reasons":[],"status":"completed","tlc":0.8166666666666667} +{"arm":"T0","error_type":null,"l0_result_sha256":"a5db0893f2b87a7b0bc46d7f6ac0c8fbaa86f27b217b1877c7385b073f7f7ffe","oracle_sha256":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","pca":0.5,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.relation-stats.v1","sgc":0.7791977361195921,"skip_reasons":[],"status":"completed","tlc":0.5882352941176471} +{"arm":"T0","error_type":null,"l0_result_sha256":"6fa57996b120a5a181033a69d0a7de35ad861484939c5f516a02c75dd13550b5","oracle_sha256":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","pca":0.875,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.relation-stats.v1","sgc":0.731192549891495,"skip_reasons":[],"status":"completed","tlc":0.6634615384615384} +{"arm":"T0","error_type":null,"l0_result_sha256":"9f542d4dc81759961fab1c78b5e282b0b2c180eac4183a7cd5320ab65c0959b5","oracle_sha256":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","pca":0.6666666666666666,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.relation-stats.v1","sgc":0.4932901139159769,"skip_reasons":[],"status":"completed","tlc":0.5198412698412699} +{"arm":"T0","error_type":null,"l0_result_sha256":"70561bc7a93dd4d62c601edc48b0b985e240a5d09efc810bf65fe7ac0ea7ba12","oracle_sha256":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","pca":1.0,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.relation-stats.v1","sgc":0.6820148851807505,"skip_reasons":[],"status":"completed","tlc":0.8153846153846154} +{"arm":"T0","error_type":null,"l0_result_sha256":"90e87e7fc3ae5ea4d5a277673ec6482663fe82c7ea15b65fd8bbdf46f1f88334","oracle_sha256":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","pca":0.625,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.relation-stats.v1","sgc":0.7213685503174618,"skip_reasons":[],"status":"completed","tlc":0.717391304347826} +{"arm":"T0","error_type":null,"l0_result_sha256":"4addad79bfeeea97382496bebc8e5d44f829e792c1f6295219ea35f58cf7a07e","oracle_sha256":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","pca":0.8,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.relation-stats.v1","sgc":0.6218052800623437,"skip_reasons":[],"status":"completed","tlc":0.7956989247311828} +{"arm":"T0","error_type":null,"l0_result_sha256":"a5179869a66228c8f1c2d856dea433679c323a889969a7cb95daac088d310a5d","oracle_sha256":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","pca":0.5,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.relation-stats.v1","sgc":0.2928249414752533,"skip_reasons":[],"status":"completed","tlc":0.1875} +{"arm":"T0","error_type":null,"l0_result_sha256":"1ff29472d958b9d719446583db4f68c5839bf8bfa6bfb1b1c4354de5e728dbcc","oracle_sha256":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.relation-stats.v1","sgc":0.9776375564181334,"skip_reasons":[],"status":"completed","tlc":0.8666666666666667} +{"arm":"T0","error_type":null,"l0_result_sha256":"d1dd2dc2adff746b2c077716cea2e7cd13562359217d759dffe1a82c12d81019","oracle_sha256":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","pca":0.4444444444444444,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.relation-stats.v1","sgc":0.5371953139129078,"skip_reasons":[],"status":"completed","tlc":0.4953125} +{"arm":"T0","error_type":null,"l0_result_sha256":"2c116969a76837bf53e8c0f658ba31eccef3a68df578ac60e7620acc0c9d542b","oracle_sha256":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","pca":0.5,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.relation-stats.v1","sgc":0.6217998320582352,"skip_reasons":[],"status":"completed","tlc":0.5488505747126436} +{"arm":"T0","error_type":null,"l0_result_sha256":"396e0fb7f8f9f5d902fe0b48b7b2e3ff7b5a5315bbf297965a2b3a50609d5bba","oracle_sha256":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","pca":1.0,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.relation-stats.v1","sgc":0.8121350171559959,"skip_reasons":[],"status":"completed","tlc":0.9305555555555556} +{"arm":"T0","error_type":null,"l0_result_sha256":"08570c1194712e7553be725323062b768a287f3a4902ba3f715fb7319b491b7c","oracle_sha256":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","pca":0.875,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.relation-stats.v1","sgc":0.7604659262492559,"skip_reasons":[],"status":"completed","tlc":0.696236559139785} +{"arm":"T0","error_type":null,"l0_result_sha256":"5fe350a7bd9d4f00ce58a4151e5941c66a0f5b2a8aea7a3342a364612d0fd857","oracle_sha256":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","pca":0.8571428571428571,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.relation-stats.v1","sgc":0.7238315132042572,"skip_reasons":[],"status":"completed","tlc":0.7790697674418605} +{"arm":"T0","error_type":null,"l0_result_sha256":"ac73b7cf06acf771bb5e90b37bfcd4d811fdc2e6189557f969b5aaff2c9cd2d2","oracle_sha256":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","pca":0.8,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.relation-stats.v1","sgc":0.6489722104915575,"skip_reasons":[],"status":"completed","tlc":0.7243589743589743} +{"arm":"T0","error_type":null,"l0_result_sha256":"923b2aa1801de3993f4af1a6adfc8e655e4a7da69085cecfec9d89017d78b14b","oracle_sha256":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","pca":0.5454545454545454,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.relation-stats.v1","sgc":0.4590822593853556,"skip_reasons":[],"status":"completed","tlc":0.5277777777777778} +{"arm":"T0","error_type":null,"l0_result_sha256":"5a0dc666d39643c81bd12b7a7389c28a19a81124d6f9269359a52d6dac3cbf29","oracle_sha256":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","pca":0.45454545454545453,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.relation-stats.v1","sgc":0.700788426123305,"skip_reasons":[],"status":"completed","tlc":0.6111111111111112} +{"arm":"T0","error_type":null,"l0_result_sha256":"b9d64920ec95fef4c92dccfa4c82d74ece87ab1a533ebfd9804b431dce0e0dfe","oracle_sha256":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","pca":0.5454545454545454,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.relation-stats.v1","sgc":0.6518694238469472,"skip_reasons":[],"status":"completed","tlc":0.7009132420091324} +{"arm":"T0","error_type":null,"l0_result_sha256":"b01bea2f6e0db264536ec99bc07e4db0315e6935c60f01ea9b6285739990ae40","oracle_sha256":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","pca":0.625,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.relation-stats.v1","sgc":0.741274196450969,"skip_reasons":[],"status":"completed","tlc":0.7210144927536232} +{"arm":"T0","error_type":null,"l0_result_sha256":"58bea377b152fc63fb1f4f7cb2f659d9bfca1f57a6fe42b7eb24c9d4575301b1","oracle_sha256":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","pca":0.75,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.relation-stats.v1","sgc":0.6680237779157758,"skip_reasons":[],"status":"completed","tlc":0.6270833333333333} +{"arm":"T0","error_type":null,"l0_result_sha256":"ca5a43ecb15121d4911e01efca6ec72eda2b6ce9e15df45e70f7ff27545a22f7","oracle_sha256":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","pca":0.5,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.relation-stats.v1","sgc":0.548735725857596,"skip_reasons":[],"status":"completed","tlc":0.42803030303030304} +{"arm":"T0","error_type":null,"l0_result_sha256":"8d087ad55d9f4d86de4eb945fd10f14740c12daf154b643162cb41ed49f06bf1","oracle_sha256":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","pca":0.5,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.relation-stats.v1","sgc":0.5362406287221944,"skip_reasons":[],"status":"completed","tlc":0.4034090909090909} +{"arm":"T0","error_type":null,"l0_result_sha256":"006cf9196cf18cc99bbf1837493b07bacbb062ecbedc29c2da275262ad6b0f74","oracle_sha256":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","pca":0.5,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.relation-stats.v1","sgc":0.29902806658411407,"skip_reasons":[],"status":"completed","tlc":0.4879310344827586} +{"arm":"T0","error_type":null,"l0_result_sha256":"1200db52735d902962fcca9ba2044d363c2a070d3f7f5795fa23135cd7aea2d2","oracle_sha256":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.relation-stats.v1","sgc":0.8577662546004672,"skip_reasons":[],"status":"completed","tlc":0.765625} +{"arm":"T0","error_type":null,"l0_result_sha256":"c13d3e53a34afaf514716d125cbeb7dacc9783b7f7cd1f9545833513a442dc3b","oracle_sha256":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","pca":0.8333333333333334,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.relation-stats.v1","sgc":0.7392525769243482,"skip_reasons":[],"status":"completed","tlc":0.6378205128205128} +{"arm":"T0","error_type":null,"l0_result_sha256":"4f0ac250327d8b9c7b12a8799fedfac6c0888867491c40f87de000ac6dc76ecb","oracle_sha256":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","pca":0.5714285714285714,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.relation-stats.v1","sgc":0.5867060598859295,"skip_reasons":[],"status":"completed","tlc":0.5882352941176471} +{"arm":"T0","error_type":null,"l0_result_sha256":"62b428a0e1d7240d2e6ee66f286340e838251cc120214d3593ceee572609942e","oracle_sha256":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","pca":0.45454545454545453,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.relation-stats.v1","sgc":0.458784147308453,"skip_reasons":[],"status":"completed","tlc":0.5156826568265682} +{"arm":"T0","error_type":null,"l0_result_sha256":"ffc128483fe433580cf68377c2bc9469fe9d87f5a4b47c913f3a1da7eaf180f8","oracle_sha256":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","pca":0.75,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.relation-stats.v1","sgc":0.7795319703813024,"skip_reasons":[],"status":"completed","tlc":0.6865942028985508} +{"arm":"T0","error_type":null,"l0_result_sha256":"2bd55b65af64f7e4bccaa51af3ff3c0d489c5a7485f23f902d936457e8a409e8","oracle_sha256":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","pca":0.9285714285714286,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.relation-stats.v1","sgc":0.8307469515705672,"skip_reasons":[],"status":"completed","tlc":0.8778026905829597} +{"arm":"T0","error_type":null,"l0_result_sha256":"60420d7b9287aee04659f0985267e51fb041831399ca219f319ab35690faf3d2","oracle_sha256":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","pca":0.6923076923076923,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.relation-stats.v1","sgc":0.6600485679581722,"skip_reasons":[],"status":"completed","tlc":0.6433566433566433} +{"arm":"T0","error_type":null,"l0_result_sha256":"81a7e4322f61b023b7e0661011086af3bbe8784a9a66978d74854b12f41cb8fb","oracle_sha256":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","pca":0.85,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.relation-stats.v1","sgc":0.7623843170033444,"skip_reasons":[],"status":"completed","tlc":0.8303655107778819} +{"arm":"T0","error_type":null,"l0_result_sha256":"653711d14206ea363e691240d7cdc54da8222f89dcefc89270db2f6e0e8d66eb","oracle_sha256":"1c9b7ef3618e955928bff40487a868bbf87111b338f6cc97d1067329e5355b13","pca":0.42857142857142855,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.relation-stats.v1","sgc":0.6223791567052926,"skip_reasons":[],"status":"completed","tlc":0.581081081081081} +{"arm":"T0","error_type":null,"l0_result_sha256":"fd347ab64ce6829c4e6458cc2316577022733db727576d9cb6313c4bfc84d18b","oracle_sha256":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","pca":0.5,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.relation-stats.v1","sgc":0.5930458898949423,"skip_reasons":[],"status":"completed","tlc":0.6333333333333333} +{"arm":"T0","error_type":null,"l0_result_sha256":"44c2e6c61822fb87bb1b1124f5d4ceb046eeda60472d2e9832927ca5cbb6fae5","oracle_sha256":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","pca":0.5,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.relation-stats.v1","sgc":0.4689978689300351,"skip_reasons":[],"status":"completed","tlc":0.35082872928176795} +{"arm":"T0","error_type":null,"l0_result_sha256":"9ce56a9cd3fc46b84be1b4010e6bef92f8c0d0b1dab9eae31b8946decdc9cd30","oracle_sha256":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","pca":0.5,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.relation-stats.v1","sgc":0.47743740962777736,"skip_reasons":[],"status":"completed","tlc":0.4666666666666667} +{"arm":"T0","error_type":null,"l0_result_sha256":"da1e82d666ecb77df5941628add491afe7fd9748cdb62e8613da282ffbcf6396","oracle_sha256":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","pca":0.7142857142857143,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.relation-stats.v1","sgc":0.7033286364014779,"skip_reasons":[],"status":"completed","tlc":0.6705426356589147} +{"arm":"T0","error_type":null,"l0_result_sha256":"c2508ffb67f65522c5f7490c2ed5f19838cf63dba1c2484828138a4991000c36","oracle_sha256":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","pca":0.45454545454545453,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.relation-stats.v1","sgc":0.6078661962355245,"skip_reasons":[],"status":"completed","tlc":0.5446859903381642} +{"arm":"T0","error_type":null,"l0_result_sha256":"d207f4df130347566e7dabb47e2c3e5bd6ea5efbaa9ee0fe7a65f408d25ff0c3","oracle_sha256":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","pca":0.6111111111111112,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.relation-stats.v1","sgc":0.6337758584777271,"skip_reasons":[],"status":"completed","tlc":0.4973460721868365} +{"arm":"T0","error_type":null,"l0_result_sha256":"5420a5e3af86558146242c970b953b86e013bdd3dbb76c99cb7074b600721139","oracle_sha256":"9382a216b1c9e916bf00a3ee15dbd8b3abb97bdaa42f813bf3e6f9445a843854","pca":0.8333333333333334,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.relation-stats.v1","sgc":0.6756815707764391,"skip_reasons":[],"status":"completed","tlc":0.7327586206896551} +{"arm":"T0","error_type":null,"l0_result_sha256":"5c57575c4a7ba42a02116e898bce51d04d1e669b7353987653d16585399cd6db","oracle_sha256":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","pca":0.6666666666666666,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.relation-stats.v1","sgc":0.6610779422105438,"skip_reasons":[],"status":"completed","tlc":0.521578947368421} +{"arm":"T0","error_type":null,"l0_result_sha256":"8a9e5e29c9d7e01fcc9c13badd2705bf5abca82c1b4614dc940cde70de37365e","oracle_sha256":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","pca":0.36363636363636365,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.relation-stats.v1","sgc":0.4408297205158589,"skip_reasons":[],"status":"completed","tlc":0.4599644128113879} +{"arm":"T0","error_type":null,"l0_result_sha256":"480dc082a835b75333b57448fa6b7409074829f636ee796be31743c8a040cbdc","oracle_sha256":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","pca":0.625,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.relation-stats.v1","sgc":0.49604089906291116,"skip_reasons":[],"status":"completed","tlc":0.6011363636363637} +{"arm":"T0","error_type":null,"l0_result_sha256":"0505a8ebf97bd401471131c8daa5065a519e2c80032924f6c0ec1713ef1977ac","oracle_sha256":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","pca":1.0,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.relation-stats.v1","sgc":0.669975312001477,"skip_reasons":[],"status":"completed","tlc":0.796875} +{"arm":"T0","error_type":null,"l0_result_sha256":"71225db1b2e0b1c4b9f8732a02e47ab472f6e04131b3028109f208e17a28db57","oracle_sha256":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","pca":0.4,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.relation-stats.v1","sgc":0.35638735232199076,"skip_reasons":[],"status":"completed","tlc":0.18617021276595744} +{"arm":"T0","error_type":null,"l0_result_sha256":"fabc6480cf566ff5e314393fd951382deadf41dbe58ee52792445ea0f32202f6","oracle_sha256":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","pca":0.6666666666666666,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.relation-stats.v1","sgc":0.7221656925926802,"skip_reasons":[],"status":"completed","tlc":0.4791666666666667} +{"arm":"T0","error_type":null,"l0_result_sha256":"791ff76d225b3c8ddcb3ad7b4eb631f8f57028b4097b18e08ed4cf3ff473da93","oracle_sha256":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","pca":1.0,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.relation-stats.v1","sgc":0.9435414920214072,"skip_reasons":[],"status":"completed","tlc":0.8174603174603174} +{"arm":"T0","error_type":null,"l0_result_sha256":"cee9a5975eb9ab2a6e82bace62c8ef2d7f7c1bb79357d3ca3ce0901d9e1b4b51","oracle_sha256":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","pca":1.0,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.relation-stats.v1","sgc":0.8661390936816213,"skip_reasons":[],"status":"completed","tlc":0.7411167512690355} +{"arm":"T0","error_type":null,"l0_result_sha256":"54991e74664dd6e30770f6f2856f2fed341665a1e31b131abbbc680f479a75f2","oracle_sha256":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","pca":0.65,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.relation-stats.v1","sgc":0.8222747188226573,"skip_reasons":[],"status":"completed","tlc":0.5542664670658682} +{"arm":"T0","error_type":null,"l0_result_sha256":"c1ab8e035e2cec55f64a8bdd83241f5cbeff9eccda5d486a46f41da4056b661b","oracle_sha256":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","pca":0.5,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.relation-stats.v1","sgc":0.6340237521132505,"skip_reasons":[],"status":"completed","tlc":0.4746192893401015} +{"arm":"T0","error_type":null,"l0_result_sha256":"8694ea5c909ec327da3a56a8bf87cb0cb2bf3378463ab05ea742d2737dadbbe1","oracle_sha256":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","pca":0.375,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.relation-stats.v1","sgc":0.7167663407857222,"skip_reasons":[],"status":"completed","tlc":0.625} +{"arm":"T0","error_type":null,"l0_result_sha256":"3ee985c15ebf11659c1c642374d509357f8340a90a4ff899f4fa5216c765ceab","oracle_sha256":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","pca":0.8,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.relation-stats.v1","sgc":0.6775521636141533,"skip_reasons":[],"status":"completed","tlc":0.8111111111111111} +{"arm":"T0","error_type":null,"l0_result_sha256":"745d07d8e3d8482ff96aa50ce7dedd6e67c5a987a4316a3a4555db2704076c23","oracle_sha256":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.relation-stats.v1","sgc":0.966956247211146,"skip_reasons":[],"status":"completed","tlc":0.8676470588235294} +{"arm":"T0","error_type":null,"l0_result_sha256":"b825ef15be9b36ed97880ce857fb883c589b128354b5c071b42f8534d94a5c26","oracle_sha256":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","pca":0.375,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.relation-stats.v1","sgc":0.6456530695334426,"skip_reasons":[],"status":"completed","tlc":0.4691780821917808} +{"arm":"T0","error_type":null,"l0_result_sha256":"3b77de76b4bce827bb0fc650c0bd8311408d25f22650317703c2b637a74bb64d","oracle_sha256":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","pca":0.2857142857142857,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.relation-stats.v1","sgc":0.5845512165995683,"skip_reasons":[],"status":"completed","tlc":0.48655913978494625} +{"arm":"T0","error_type":null,"l0_result_sha256":"f2c2c969c3dcd38d72bd16210c9f9b27b3c1b70c2d3f62d51650173ef7a7d5e5","oracle_sha256":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","pca":0.4444444444444444,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.relation-stats.v1","sgc":0.380880302205231,"skip_reasons":[],"status":"completed","tlc":0.4140625} +{"arm":"T0","error_type":null,"l0_result_sha256":"bd6bbf50c6471e6ea437cfd91f42768031c58e286d16cb07e2543fc669b2bd9f","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":1.0,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.relation-stats.v1","sgc":0.9020094143283867,"skip_reasons":[],"status":"completed","tlc":0.6944444444444444} +{"arm":"T0","error_type":null,"l0_result_sha256":"d504db664003c0da7957de171c87a646b6edce1f58a692ed2f5a85d832cec948","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":1.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.relation-stats.v1","sgc":0.9124031264631954,"skip_reasons":[],"status":"completed","tlc":0.7592592592592593} +{"arm":"T0","error_type":null,"l0_result_sha256":"6304bdaebffcbe1fb93ce3bb34cd5cbe3e2adb3fa08841bf5f345168edb93e7f","oracle_sha256":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","pca":0.5,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.relation-stats.v1","sgc":0.6136622344665417,"skip_reasons":[],"status":"completed","tlc":0.470703125} +{"arm":"T0","error_type":null,"l0_result_sha256":"f404873a7f4d3bbc3718a71006b4838e407ce9a69b209219b4d8447244d41ea2","oracle_sha256":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","pca":1.0,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.relation-stats.v1","sgc":0.9235819498146408,"skip_reasons":[],"status":"completed","tlc":0.9558823529411765} +{"arm":"T0","error_type":null,"l0_result_sha256":"0465606225006976ba8328728bd36b2641d33edb4eeb43fb752b12f86a8cb71e","oracle_sha256":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","pca":0.75,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.relation-stats.v1","sgc":0.5446324104855678,"skip_reasons":[],"status":"completed","tlc":0.5} +{"arm":"T0","error_type":null,"l0_result_sha256":"b95c9698bfa845a2a9fa47c8fe2fe411ad30669c624a044c009c46b3986c8516","oracle_sha256":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","pca":0.8333333333333334,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.relation-stats.v1","sgc":0.8128041748997733,"skip_reasons":[],"status":"completed","tlc":0.8189655172413793} +{"arm":"T0","error_type":null,"l0_result_sha256":"15c604ef76113275435812460022714972400315a18289568d765c344abebe18","oracle_sha256":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","pca":0.8,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.relation-stats.v1","sgc":0.8500039884986602,"skip_reasons":[],"status":"completed","tlc":0.8229166666666666} +{"arm":"T0","error_type":null,"l0_result_sha256":"8c1e3b354186b36059ac7a60588d678a878a36743b6eaa681c186e9629c48340","oracle_sha256":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","pca":1.0,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.relation-stats.v1","sgc":0.8839869174582328,"skip_reasons":[],"status":"completed","tlc":1.0} +{"arm":"T0","error_type":null,"l0_result_sha256":"eadf7758cd414b6da60f6dd4ace64a021082991f06964656521f0f36ddde0cdf","oracle_sha256":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","pca":0.8,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.relation-stats.v1","sgc":0.7029867459399652,"skip_reasons":[],"status":"completed","tlc":0.6583333333333333} +{"arm":"T0","error_type":null,"l0_result_sha256":"4f16cbadcba438106c5bc44f075bf416f64ec10e002612092fdac0f2d4037f43","oracle_sha256":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","pca":0.48148148148148145,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.relation-stats.v1","sgc":0.47132885880899383,"skip_reasons":[],"status":"completed","tlc":0.5022269558481797} +{"arm":"T0","error_type":null,"l0_result_sha256":"b2e62b0463d6feb4dc093f97852ec1ba78093b5dcbcab1e120a7b6c60a93b721","oracle_sha256":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","pca":0.6,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.relation-stats.v1","sgc":0.7941301961123783,"skip_reasons":[],"status":"completed","tlc":0.8333333333333334} +{"arm":"T0","error_type":null,"l0_result_sha256":"c97c54d85a318f53ee25ee5981bdb08b14f3324747277c8bee8c0dae89f3fc88","oracle_sha256":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","pca":0.7647058823529411,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.relation-stats.v1","sgc":0.6420202691464767,"skip_reasons":[],"status":"completed","tlc":0.7099184782608695} +{"arm":"T0","error_type":null,"l0_result_sha256":"14215d64e6caa117b244bf765300f4c6501559337a62a72a06762879426630c3","oracle_sha256":"ffe9ca6e9231370545e8ee64abdfc552fe45840ee8769d9d57b00f139c3eceeb","pca":0.5,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.relation-stats.v1","sgc":0.4637781767427248,"skip_reasons":[],"status":"completed","tlc":0.45557782231128924} +{"arm":"T0","error_type":null,"l0_result_sha256":"a78fab7c407692b117ea83041c81c395abf74f60c17649867d855e0c966e28ce","oracle_sha256":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","pca":0.7,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.relation-stats.v1","sgc":0.770840493117748,"skip_reasons":[],"status":"completed","tlc":0.742816091954023} +{"arm":"T0","error_type":null,"l0_result_sha256":"0664aac86e2bf599b4733cbc0b5f0ad2916a84e599cff83f6e5e27c02d3eb3e9","oracle_sha256":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","pca":0.5555555555555556,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.relation-stats.v1","sgc":0.7455686350621763,"skip_reasons":[],"status":"completed","tlc":0.579225352112676} +{"arm":"T2","error_type":null,"l0_result_sha256":"23221e94f17edad642e12729dbe0994740b364dbd5d476b934542da328cd2dca","oracle_sha256":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","pca":0.8333333333333334,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.relation-stats.v1","sgc":0.7482027635478075,"skip_reasons":[],"status":"completed","tlc":0.6807958477508651} +{"arm":"T2","error_type":null,"l0_result_sha256":"1d42e1992b30f79e5dad7020a03fcb4a76a61750f917f572753180dabe7b54ad","oracle_sha256":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","pca":0.4,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.relation-stats.v1","sgc":0.5458603123884033,"skip_reasons":[],"status":"completed","tlc":0.5879629629629629} +{"arm":"T2","error_type":null,"l0_result_sha256":"4cd2773b12c37727ca22f518a75735121c1ed7764ed97a2e65646a364a2bbe5b","oracle_sha256":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","pca":0.5,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.relation-stats.v1","sgc":0.6722126085702167,"skip_reasons":[],"status":"completed","tlc":0.6243455497382199} +{"arm":"T2","error_type":null,"l0_result_sha256":"796e88a029fffe0a78548f2b7b28abd8ac55914c1d6c36aef5b4f325dcc3f4da","oracle_sha256":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","pca":0.42857142857142855,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.relation-stats.v1","sgc":0.33272247305782154,"skip_reasons":[],"status":"completed","tlc":0.33157894736842103} +{"arm":"T2","error_type":null,"l0_result_sha256":"6ec299880a5f82d9df5deba1688dea7d80a27808c8353de1d720c6a5df7c7d48","oracle_sha256":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","pca":1.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.relation-stats.v1","sgc":0.9999846510564709,"skip_reasons":[],"status":"completed","tlc":0.7901785714285714} +{"arm":"T2","error_type":null,"l0_result_sha256":"56480c43ea2c674a5b989f348373c7923b097a611baaf2fae453451d17e36460","oracle_sha256":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","pca":0.6923076923076923,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.relation-stats.v1","sgc":0.5398787532623038,"skip_reasons":[],"status":"completed","tlc":0.39267015706806285} +{"arm":"T2","error_type":null,"l0_result_sha256":"da4a858a5662f688e6d362d590ec333300680e7e7fb20f3e5a64796e6095a2cb","oracle_sha256":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","pca":1.0,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.relation-stats.v1","sgc":0.9999956659685777,"skip_reasons":[],"status":"completed","tlc":0.7857142857142857} +{"arm":"T2","error_type":null,"l0_result_sha256":"89f1d6ee4c421ae398667f59a794157fd45f665339d2bce26588dfdf02763f0c","oracle_sha256":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","pca":1.0,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.relation-stats.v1","sgc":0.8971203546687206,"skip_reasons":[],"status":"completed","tlc":0.8233333333333334} +{"arm":"T2","error_type":null,"l0_result_sha256":"070e90095d658cb1f75b1b9e7849362fcb81c6dee4880aa2a4af62f8ee6ee903","oracle_sha256":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","pca":0.7142857142857143,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.relation-stats.v1","sgc":0.8361562613785314,"skip_reasons":[],"status":"completed","tlc":0.6547619047619048} +{"arm":"T2","error_type":null,"l0_result_sha256":"2914aa78753a64aeba90e98c6d17e6dcbb58766a39ec649c60ac516fef2664ff","oracle_sha256":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.relation-stats.v1","sgc":0.6061510200444014,"skip_reasons":[],"status":"completed","tlc":0.7724358974358975} +{"arm":"T2","error_type":null,"l0_result_sha256":"2abe6fe3a9bb36cdcb26d2c4815b14bfe4460a2d22f278e2a76a875161a41d41","oracle_sha256":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","pca":1.0,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.relation-stats.v1","sgc":0.7025047882700469,"skip_reasons":[],"status":"completed","tlc":0.7757009345794392} +{"arm":"T2","error_type":null,"l0_result_sha256":"0e4f73d52b07890a4c53567aca661b2fd51f66ba4898ec638a1d888670ff0894","oracle_sha256":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","pca":1.0,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.relation-stats.v1","sgc":0.6989202422923508,"skip_reasons":[],"status":"completed","tlc":0.7371794871794872} +{"arm":"T2","error_type":null,"l0_result_sha256":"0e0708e90b09de4e5349458c7b4c71c2ded90b677608fe2f7173569f6429f6a8","oracle_sha256":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","pca":0.8571428571428571,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.relation-stats.v1","sgc":0.5944834047465287,"skip_reasons":[],"status":"completed","tlc":0.6944444444444444} +{"arm":"T2","error_type":null,"l0_result_sha256":"d3ecfeb3804e5e972a15b65fea027c788ecc8f0a5f3f5116f860cbec0da6675a","oracle_sha256":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","pca":0.7,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.relation-stats.v1","sgc":0.44575942208000124,"skip_reasons":[],"status":"completed","tlc":0.7057471264367816} +{"arm":"T2","error_type":null,"l0_result_sha256":"1296fd2ebb4a6daa45388361a434f0f7f5ef56e09dc23ddfc5c2b058b13e007d","oracle_sha256":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","pca":0.7,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.relation-stats.v1","sgc":0.6057849085620752,"skip_reasons":[],"status":"completed","tlc":0.5673076923076923} +{"arm":"T2","error_type":null,"l0_result_sha256":"a42070560e416d63906d33e59dcd6e55fd972f921fbc40fd0f130f1d4790599c","oracle_sha256":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","pca":0.7142857142857143,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.relation-stats.v1","sgc":0.8197073585204103,"skip_reasons":[],"status":"completed","tlc":0.7528735632183908} +{"arm":"T2","error_type":null,"l0_result_sha256":"b7db638369b3b7ff74b2c3a4e9bc543e2f5068905d07438684733c23d6e41957","oracle_sha256":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","pca":0.625,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.relation-stats.v1","sgc":0.6117284045086314,"skip_reasons":[],"status":"completed","tlc":0.7520325203252033} +{"arm":"T2","error_type":null,"l0_result_sha256":"3d2ee7865ebf1f78578f10167f6e6cc7e5d7835b18fa332a037f2e5b6e919214","oracle_sha256":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","pca":0.4,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.relation-stats.v1","sgc":0.5632434687893173,"skip_reasons":[],"status":"completed","tlc":0.5} +{"arm":"T2","error_type":null,"l0_result_sha256":"73ba8d68872cfc50638182271f20dd3d7f747be056ee61911f5b0946dd83fe5f","oracle_sha256":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","pca":0.6,"sample_id":"599ecb061350e83293007738","schema_version":"a3.relation-stats.v1","sgc":0.5278264846235706,"skip_reasons":[],"status":"completed","tlc":0.375} +{"arm":"T2","error_type":null,"l0_result_sha256":"ed17a72e147fab49462c7b28d5a8c2efff05a23a5fc5434ec0e3653ab0c52f3e","oracle_sha256":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","pca":0.6666666666666666,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.relation-stats.v1","sgc":0.5269164125809805,"skip_reasons":[],"status":"completed","tlc":0.6844086021505377} +{"arm":"T2","error_type":null,"l0_result_sha256":"0023f2d426f6d85a67639f193f007d4d5678d268e5d458092f0ef300ec6b50df","oracle_sha256":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.relation-stats.v1","sgc":0.9093051291217894,"skip_reasons":[],"status":"completed","tlc":0.9264705882352942} +{"arm":"T2","error_type":null,"l0_result_sha256":"15549df5cdd2a7a13768ed3422454a60b5d072123edb3cd398bfac9aaefd459d","oracle_sha256":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","pca":0.7,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.relation-stats.v1","sgc":0.6014616681081659,"skip_reasons":[],"status":"completed","tlc":0.6204188481675392} +{"arm":"T2","error_type":null,"l0_result_sha256":"f80b1234d4b16ab781f91e9d9bafbca0f50c6e0b0bc5f83f3378871701145700","oracle_sha256":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","pca":1.0,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.relation-stats.v1","sgc":0.8569897203217322,"skip_reasons":[],"status":"completed","tlc":0.8347457627118644} +{"arm":"T2","error_type":null,"l0_result_sha256":"5b10ee4a094158aa33118b3dd30d31e6ae55bcf8d25628d62f4cca59d6fbf3ca","oracle_sha256":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","pca":0.6,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.relation-stats.v1","sgc":0.582715303490998,"skip_reasons":[],"status":"completed","tlc":0.5697674418604651} +{"arm":"T2","error_type":null,"l0_result_sha256":"f226eda6cc5a504f678ba66bbcf679d61f3806a3bed9d53e55150fbb099c1592","oracle_sha256":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","pca":0.8333333333333334,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.relation-stats.v1","sgc":0.608131876292101,"skip_reasons":[],"status":"completed","tlc":0.6583333333333333} +{"arm":"T2","error_type":null,"l0_result_sha256":"ac09d1baef6eed2b007473bb3285f341a947f186569df0f574cf6478b35e86d8","oracle_sha256":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","pca":1.0,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.relation-stats.v1","sgc":0.7878567109554578,"skip_reasons":[],"status":"completed","tlc":0.8089171974522293} +{"arm":"T2","error_type":null,"l0_result_sha256":"a745245b94e6b61a90ee997652c52cb30c53f0696f718b82f4ca7ce4e0321cdf","oracle_sha256":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","pca":0.6842105263157895,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.relation-stats.v1","sgc":0.8006291381811507,"skip_reasons":[],"status":"completed","tlc":0.6192411924119241} +{"arm":"T2","error_type":null,"l0_result_sha256":"3f12aa9b41170c44684b2f75e9563ec3dafc1652cb4b8271acbc30c39006beec","oracle_sha256":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","pca":0.875,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.relation-stats.v1","sgc":0.8748747465901319,"skip_reasons":[],"status":"completed","tlc":0.8580246913580247} +{"arm":"T2","error_type":null,"l0_result_sha256":"d7e0a6f3b4fa1212345813430412cf0f1d2189a8a252636064367b26262a698b","oracle_sha256":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","pca":1.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.relation-stats.v1","sgc":0.8925015256393524,"skip_reasons":[],"status":"completed","tlc":0.7115384615384616} +{"arm":"T2","error_type":null,"l0_result_sha256":"c308f6fa55a2b1de43861bc90085151117638a625c297d351dee79bdce511f46","oracle_sha256":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","pca":0.8,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.relation-stats.v1","sgc":0.6293416777163263,"skip_reasons":[],"status":"completed","tlc":0.5902777777777778} +{"arm":"T2","error_type":null,"l0_result_sha256":"3eb36eac6dba83d0198f6034f7489452ab4380ebf855e3fc0acae21c824f7f5c","oracle_sha256":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","pca":1.0,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.relation-stats.v1","sgc":0.7279925855361934,"skip_reasons":[],"status":"completed","tlc":0.775} +{"arm":"T2","error_type":null,"l0_result_sha256":"8db41c8fbd7faab5ed4f1d18463f837693aefc6858f4f9af14677b2149dc9455","oracle_sha256":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","pca":0.75,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.relation-stats.v1","sgc":0.6131419088848644,"skip_reasons":[],"status":"completed","tlc":0.6323529411764706} +{"arm":"T2","error_type":null,"l0_result_sha256":"cb3a312fe06085a1b6fc6b4f0f8c8aa88c763cc9f0fc5e7180f3f28c11250aeb","oracle_sha256":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","pca":0.625,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.relation-stats.v1","sgc":0.6136070032152714,"skip_reasons":[],"status":"completed","tlc":0.573076923076923} +{"arm":"T2","error_type":null,"l0_result_sha256":"9df94c0a63224d7e301e6ff4bbfbfa5910a6f4add2c7f394f85b0a8bae15e833","oracle_sha256":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","pca":1.0,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.relation-stats.v1","sgc":0.7053383656981662,"skip_reasons":[],"status":"completed","tlc":0.6746031746031746} +{"arm":"T2","error_type":null,"l0_result_sha256":"03a217aff2eaed39687068145e98f45435e28b0afebe9fcedb7827161a34cb8d","oracle_sha256":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","pca":1.0,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.relation-stats.v1","sgc":0.9580061240936982,"skip_reasons":[],"status":"completed","tlc":0.9769230769230769} +{"arm":"T2","error_type":null,"l0_result_sha256":"ea57e9123908d381b344d51539ae87835fffce7a90ca42b6d69aa5f5b2af9d4a","oracle_sha256":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","pca":1.0,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.relation-stats.v1","sgc":0.8316092160981801,"skip_reasons":[],"status":"completed","tlc":0.9003623188405797} +{"arm":"T2","error_type":null,"l0_result_sha256":"05599645e7fdd2edda4618dc3771ce18a9d1260174500cdb8eb938e87d23f0d8","oracle_sha256":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","pca":0.6,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.relation-stats.v1","sgc":0.8291819384567711,"skip_reasons":[],"status":"completed","tlc":0.7016129032258065} +{"arm":"T2","error_type":null,"l0_result_sha256":"5c0c3cb0b93320967c1cbd99e077a43ae32f8194c126800c9e82cbbcb70bd72a","oracle_sha256":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","pca":1.0,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.relation-stats.v1","sgc":0.9903466676145068,"skip_reasons":[],"status":"completed","tlc":0.9375} +{"arm":"T2","error_type":null,"l0_result_sha256":"370520986af2a131960f720edd22406ec8ea76a459603d3e944b0de7ec63722a","oracle_sha256":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.relation-stats.v1","sgc":0.9869777656227094,"skip_reasons":[],"status":"completed","tlc":0.7833333333333333} +{"arm":"T2","error_type":null,"l0_result_sha256":"dd6bfd2b2d87fc6c4eddf32cb3b5c2bcfa23182036ef53f7c2087db9b2a9f09b","oracle_sha256":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","pca":0.5555555555555556,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.relation-stats.v1","sgc":0.4542742709822947,"skip_reasons":[],"status":"completed","tlc":0.4625} +{"arm":"T2","error_type":null,"l0_result_sha256":"fc3dc511635cd097eac531828be0501dca026e609c259bf9626a0b63666368c1","oracle_sha256":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","pca":0.5,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.relation-stats.v1","sgc":0.6337326076243216,"skip_reasons":[],"status":"completed","tlc":0.5890804597701149} +{"arm":"T2","error_type":null,"l0_result_sha256":"05ee0f86f8079e987609456be6d333aa4f9f4302c3f7a298a4c83be2887059de","oracle_sha256":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","pca":0.8,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.relation-stats.v1","sgc":0.6474802884183452,"skip_reasons":[],"status":"completed","tlc":0.7638888888888888} +{"arm":"T2","error_type":null,"l0_result_sha256":"859854df394ffab14ecbf3db1440be0828896c00ca8f35e8e903619ba7b96f39","oracle_sha256":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","pca":1.0,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.relation-stats.v1","sgc":0.9179826223799269,"skip_reasons":[],"status":"completed","tlc":0.8736559139784946} +{"arm":"T2","error_type":null,"l0_result_sha256":"7efd398a8d45051e7804de21b5daadb59556739e4a8171d5355ae6e05a241157","oracle_sha256":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","pca":0.42857142857142855,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.relation-stats.v1","sgc":0.428345011276356,"skip_reasons":[],"status":"completed","tlc":0.5203488372093024} +{"arm":"T2","error_type":null,"l0_result_sha256":"ead8cb8c51386804a20d1ef550c7e0dea283494e4d88159e2160cbfe0029db69","oracle_sha256":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","pca":0.6,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.relation-stats.v1","sgc":0.4781141411916106,"skip_reasons":[],"status":"completed","tlc":0.46794871794871795} +{"arm":"T2","error_type":null,"l0_result_sha256":"afdf83dd5cb1c891d3f185adb16ee1ee871d5095b22983bb29651e184037b4d3","oracle_sha256":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","pca":0.7272727272727273,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.relation-stats.v1","sgc":0.664295972977928,"skip_reasons":[],"status":"completed","tlc":0.671875} +{"arm":"T2","error_type":null,"l0_result_sha256":"f01d1c00806593edbfdb164dc95eba4f416bf9366384cdbf55b1f24017cbf221","oracle_sha256":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","pca":0.8181818181818182,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.relation-stats.v1","sgc":0.7624774186407994,"skip_reasons":[],"status":"completed","tlc":0.7260536398467433} +{"arm":"T2","error_type":null,"l0_result_sha256":"d41b2065f7f75698634ac92e1f81d52a04004b7251d4007733744c177853af0c","oracle_sha256":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","pca":0.8181818181818182,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.relation-stats.v1","sgc":0.6747889236735606,"skip_reasons":[],"status":"completed","tlc":0.6449771689497716} +{"arm":"T2","error_type":null,"l0_result_sha256":"5a506ef584dd4da80dc5d80a09819a376b0ba71716ab1a4f47e07bd35a22a2fa","oracle_sha256":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","pca":0.625,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.relation-stats.v1","sgc":0.6115465797223385,"skip_reasons":[],"status":"completed","tlc":0.6413043478260869} +{"arm":"T2","error_type":null,"l0_result_sha256":"f90791ad766879a4c793614346b785e3eee31d54bebafa5cc8360cac69b16439","oracle_sha256":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","pca":0.875,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.relation-stats.v1","sgc":0.7414441925696406,"skip_reasons":[],"status":"completed","tlc":0.7041666666666667} +{"arm":"T2","error_type":null,"l0_result_sha256":"ba1e76c14edfbd3ef4874a174c29a3855a1f3d46cf490e75f90c512f61714825","oracle_sha256":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","pca":0.6,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.relation-stats.v1","sgc":0.40012051893085177,"skip_reasons":[],"status":"completed","tlc":0.45075757575757575} +{"arm":"T2","error_type":null,"l0_result_sha256":"c4866c5b2deda599cb39f3fc379a8321d2fda67c8de79b25328d3e432d98e7c8","oracle_sha256":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","pca":0.625,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.relation-stats.v1","sgc":0.44519244227782495,"skip_reasons":[],"status":"completed","tlc":0.5321969696969697} +{"arm":"T2","error_type":null,"l0_result_sha256":"21d5fe489930761ea9609cf8b2c732c85af2d236fd84b56987fe77c67a1b53a8","oracle_sha256":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","pca":0.75,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.relation-stats.v1","sgc":0.7532868702936788,"skip_reasons":[],"status":"completed","tlc":0.6155172413793103} +{"arm":"T2","error_type":null,"l0_result_sha256":"af18d54d6c8ce5eba22aff96427e3c5b72e9e7cf514b95a8259dc86bc90b02f2","oracle_sha256":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.relation-stats.v1","sgc":0.9420878385060589,"skip_reasons":[],"status":"completed","tlc":0.9765625} +{"arm":"T2","error_type":null,"l0_result_sha256":"10436beeda90ac8da222753eb08be4636e10a4958f09c53de8a7e5d69943ea26","oracle_sha256":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","pca":0.8333333333333334,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.relation-stats.v1","sgc":0.7738874265330963,"skip_reasons":[],"status":"completed","tlc":0.7628205128205128} +{"arm":"T2","error_type":null,"l0_result_sha256":"ccb93279cd7eb66241480f14a73f56f913d1be3680bc2a2469b7672e56cbb526","oracle_sha256":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","pca":0.5714285714285714,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.relation-stats.v1","sgc":0.634916694840706,"skip_reasons":[],"status":"completed","tlc":0.6127450980392157} +{"arm":"T2","error_type":null,"l0_result_sha256":"38c434638c5fa6c48503c469a19d2d9929c8cd084c2de3e28678b1618c518960","oracle_sha256":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","pca":0.6363636363636364,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.relation-stats.v1","sgc":0.4695761222277591,"skip_reasons":[],"status":"completed","tlc":0.5867158671586716} +{"arm":"T2","error_type":null,"l0_result_sha256":"280b5ca5ebd48b0027032043bf56d0f8690c3715917638204745901965e76969","oracle_sha256":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","pca":1.0,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.relation-stats.v1","sgc":0.8766921810772305,"skip_reasons":[],"status":"completed","tlc":0.8079710144927537} +{"arm":"T2","error_type":null,"l0_result_sha256":"29e254c088fea6581e201102bdbbc1041fa307a93e6ca649b1945f3e0c68071e","oracle_sha256":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","pca":0.5714285714285714,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.relation-stats.v1","sgc":0.655391231688876,"skip_reasons":[],"status":"completed","tlc":0.45739910313901344} +{"arm":"T2","error_type":null,"l0_result_sha256":"1ca6cd9c4df5e91b648855fdccede501109a1d86e9afae2fea3f56be67a90de1","oracle_sha256":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","pca":0.8461538461538461,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.relation-stats.v1","sgc":0.9358999448717106,"skip_reasons":[],"status":"completed","tlc":0.8479020979020979} +{"arm":"T2","error_type":null,"l0_result_sha256":"87deb599b09170006c10997e03506d8b66bc992a0ecdc2381a2afba67b858333","oracle_sha256":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","pca":0.85,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.relation-stats.v1","sgc":0.9049569758923748,"skip_reasons":[],"status":"completed","tlc":0.8395032802249297} +{"arm":"T2","error_type":"A3L0PipelineError","pca":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.relation-stats.v1","sgc":null,"skip_reasons":[],"status":"generation_failure","tlc":null} +{"arm":"T2","error_type":null,"l0_result_sha256":"ba9d4f8e63a300ba2cf8ce402460279a8cba219e4e045a21ef0b247afbafb8b1","oracle_sha256":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","pca":0.75,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.relation-stats.v1","sgc":0.6071537740853974,"skip_reasons":[],"status":"completed","tlc":0.6583333333333333} +{"arm":"T2","error_type":null,"l0_result_sha256":"a7ec5d4d75b2573163cbcf9da0e59ceed22ea35297d9a3260d2b95558de8b4ef","oracle_sha256":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","pca":0.4,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.relation-stats.v1","sgc":0.6973680054480206,"skip_reasons":[],"status":"completed","tlc":0.5538674033149171} +{"arm":"T2","error_type":null,"l0_result_sha256":"83a03a655aebf15dfbd562a67e018330028385aca4cc7d335574b201362cf847","oracle_sha256":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","pca":0.5,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.relation-stats.v1","sgc":0.44909723936454704,"skip_reasons":[],"status":"completed","tlc":0.4666666666666667} +{"arm":"T2","error_type":null,"l0_result_sha256":"40a9832164f52346da1cee85852ff4a1d22da7e762df2aa9d277d463cd024744","oracle_sha256":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","pca":0.7142857142857143,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.relation-stats.v1","sgc":0.7588076920190123,"skip_reasons":[],"status":"completed","tlc":0.7587209302325582} +{"arm":"T2","error_type":null,"l0_result_sha256":"0645482e0181a31d05e53f64c96c13af52af9eac4cf2ef10af146cbf494ca7d6","oracle_sha256":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","pca":0.5454545454545454,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.relation-stats.v1","sgc":0.6424803805293559,"skip_reasons":[],"status":"completed","tlc":0.5048309178743962} +{"arm":"T2","error_type":null,"l0_result_sha256":"f625e2deaa9930d704b54cf56e31d039743192ebb728bc6702d9aea1f6ebc78a","oracle_sha256":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","pca":0.5,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.relation-stats.v1","sgc":0.4248963967474512,"skip_reasons":[],"status":"completed","tlc":0.5106157112526539} +{"arm":"T2","error_type":null,"l0_result_sha256":"7ee72e2f945e8943db8f681bacd516f2c36b851722a72f94a58a48a1af7cf7f5","oracle_sha256":"9382a216b1c9e916bf00a3ee15dbd8b3abb97bdaa42f813bf3e6f9445a843854","pca":0.6666666666666666,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.relation-stats.v1","sgc":0.6072458945104945,"skip_reasons":[],"status":"completed","tlc":0.75} +{"arm":"T2","error_type":null,"l0_result_sha256":"8564b7b8a6a47f873d2f220b990356698d4ad40430381c8e069186971ac0d5f9","oracle_sha256":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","pca":0.5714285714285714,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.relation-stats.v1","sgc":0.5225983361846284,"skip_reasons":[],"status":"completed","tlc":0.4340350877192982} +{"arm":"T2","error_type":null,"l0_result_sha256":"ebd5958e2a866837b315041c0de08ea4c602a728ff45b5f1fce008c2898962e4","oracle_sha256":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","pca":0.5454545454545454,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.relation-stats.v1","sgc":0.5454167408939352,"skip_reasons":[],"status":"completed","tlc":0.5160142348754448} +{"arm":"T2","error_type":null,"l0_result_sha256":"878ee56afd7c9e5e549d7e67f04310bd663fef6c9fe346be0c51ba414c3a42ba","oracle_sha256":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","pca":0.9375,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.relation-stats.v1","sgc":0.9115341530863534,"skip_reasons":[],"status":"completed","tlc":0.9299242424242424} +{"arm":"T2","error_type":null,"l0_result_sha256":"fa8cb2cf552285e2e125565aece97bf1f9b618637e409c423bf09321ed2b762d","oracle_sha256":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","pca":0.75,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.relation-stats.v1","sgc":0.9255548296470621,"skip_reasons":[],"status":"completed","tlc":0.796875} +{"arm":"T2","error_type":null,"l0_result_sha256":"1afb44f6cbc3b987078023a5a6ffc806fe5a98edcf47ea5c6e53c28edf47eb0d","oracle_sha256":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","pca":0.8,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.relation-stats.v1","sgc":0.8204529101825134,"skip_reasons":[],"status":"completed","tlc":0.5478723404255319} +{"arm":"T2","error_type":null,"l0_result_sha256":"7510334a8d943f8e7d5bf043b96f3fa773433b6044541108c6397ea6c4debc89","oracle_sha256":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","pca":1.0,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.relation-stats.v1","sgc":0.6454501446581047,"skip_reasons":[],"status":"completed","tlc":0.5625} +{"arm":"T2","error_type":null,"l0_result_sha256":"5aa22d9b412f910aa23c045e9a889882c960aac2da12a2e13f8ef09c0c9dd87a","oracle_sha256":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","pca":1.0,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.relation-stats.v1","sgc":0.9855082572262965,"skip_reasons":[],"status":"completed","tlc":0.8690476190476191} +{"arm":"T2","error_type":null,"l0_result_sha256":"3a867666354d68b6ee0054e48abd9885f85dc64f59e5ce3d5ec86a82e976147f","oracle_sha256":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","pca":0.6666666666666666,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.relation-stats.v1","sgc":0.896977640081714,"skip_reasons":[],"status":"completed","tlc":0.6941624365482234} +{"arm":"T2","error_type":null,"l0_result_sha256":"e78374f18164f074ae558b37def6aff77d36846a370305e83e8044dc09e2bb3b","oracle_sha256":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","pca":0.7,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.relation-stats.v1","sgc":0.8351752350519471,"skip_reasons":[],"status":"completed","tlc":0.5959955089820359} +{"arm":"T2","error_type":null,"l0_result_sha256":"c29e861362cd2155078f96fdb0326d367da158449d99646dec2dcf1529aea208","oracle_sha256":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","pca":0.5,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.relation-stats.v1","sgc":0.6127318881041032,"skip_reasons":[],"status":"completed","tlc":0.5266497461928934} +{"arm":"T2","error_type":null,"l0_result_sha256":"0489d50eace34652630a59773918ccd32d81f2a02a5bd8a728e54e4b9e1a42cc","oracle_sha256":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","pca":1.0,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.relation-stats.v1","sgc":0.8261497577836725,"skip_reasons":[],"status":"completed","tlc":0.6875} +{"arm":"T2","error_type":null,"l0_result_sha256":"24fd282b96142cb23b20ad514eff783ffc8c35d7c23b8efce7bc4806bd34d782","oracle_sha256":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","pca":1.0,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.relation-stats.v1","sgc":0.8391334651342213,"skip_reasons":[],"status":"completed","tlc":0.8444444444444444} +{"arm":"T2","error_type":null,"l0_result_sha256":"1ef826773b5bc2f6e627aed1cb8fc183f70b39d81ccd37752f5d19f71fd6424a","oracle_sha256":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.relation-stats.v1","sgc":0.8220702984489198,"skip_reasons":[],"status":"completed","tlc":0.6764705882352942} +{"arm":"T2","error_type":null,"l0_result_sha256":"b8fcae26c7563841870f7101ae290b820b6e57a77d0408d185e20455f8529b82","oracle_sha256":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","pca":0.5,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.relation-stats.v1","sgc":0.7724889634399987,"skip_reasons":[],"status":"completed","tlc":0.6455479452054794} +{"arm":"T2","error_type":null,"l0_result_sha256":"0724f6c0f6dc729c0fb72ce686ec56ae02104886541dc0b69e78fca14bf8e7c0","oracle_sha256":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","pca":0.7142857142857143,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.relation-stats.v1","sgc":0.6477089868362875,"skip_reasons":[],"status":"completed","tlc":0.5994623655913979} +{"arm":"T2","error_type":null,"l0_result_sha256":"fca90e597ecfdea4d9aab0a00766f98615d3597e2dbe2f851b7e1e744b917950","oracle_sha256":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","pca":0.7777777777777778,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.relation-stats.v1","sgc":0.628001366363327,"skip_reasons":[],"status":"completed","tlc":0.728125} +{"arm":"T2","error_type":null,"l0_result_sha256":"6dc14c3ddf865fd827c5faa4c7ed64a5af34c3611498677b33efbf2d484a8c5d","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":0.75,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.relation-stats.v1","sgc":0.5741118103150117,"skip_reasons":[],"status":"completed","tlc":0.46296296296296297} +{"arm":"T2","error_type":null,"l0_result_sha256":"4910998ec2c4d1001372eb04a6a1766f69b77e0e995a30347a3439a2f21c0fca","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":1.0,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.relation-stats.v1","sgc":0.931498063586207,"skip_reasons":[],"status":"completed","tlc":0.8703703703703703} +{"arm":"T2","error_type":null,"l0_result_sha256":"23d952c492e7ee69ba0cfcfadc4d47cff13d7e3ee1ca2aa771d478aa4c087d90","oracle_sha256":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","pca":0.8333333333333334,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.relation-stats.v1","sgc":0.8659390313680816,"skip_reasons":[],"status":"completed","tlc":0.927734375} +{"arm":"T2","error_type":null,"l0_result_sha256":"990bcc0503a93eeeb7f30a37b2b24df7a22955f21ffd4a4f2749f50580dd3e4d","oracle_sha256":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","pca":1.0,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.relation-stats.v1","sgc":0.629050216949967,"skip_reasons":[],"status":"completed","tlc":0.7647058823529411} +{"arm":"T2","error_type":null,"l0_result_sha256":"d1ed82d83a9c8135e33a2999ed658c3c5087ad3fbc07fa3bbe43cb59c5624fed","oracle_sha256":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","pca":0.75,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.relation-stats.v1","sgc":0.9225357386192247,"skip_reasons":[],"status":"completed","tlc":0.5416666666666666} +{"arm":"T2","error_type":null,"l0_result_sha256":"b60ad501cab58bb783c052ddff49b2a25d23991dd7a2d476c2c714c9e5842377","oracle_sha256":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","pca":0.3333333333333333,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.relation-stats.v1","sgc":0.34435553398805496,"skip_reasons":[],"status":"completed","tlc":0.3146551724137931} +{"arm":"T2","error_type":null,"l0_result_sha256":"b280a2b28169a3c93b6eef6a4120f2ea58d8b7419b1633e1587d572ee4e10645","oracle_sha256":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","pca":1.0,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.relation-stats.v1","sgc":0.8415664858207582,"skip_reasons":[],"status":"completed","tlc":0.90625} +{"arm":"T2","error_type":null,"l0_result_sha256":"2b13139f7f5c4ed499db4f7f79d27aa1a5423b466cc5b13402235cc73203cff9","oracle_sha256":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","pca":0.8333333333333334,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.relation-stats.v1","sgc":0.6622143253267906,"skip_reasons":[],"status":"completed","tlc":0.6611111111111111} +{"arm":"T2","error_type":null,"l0_result_sha256":"bbad046e7c75b29277c429371ebab5812b0ee845d8bfb0360ead61c4a7b8174e","oracle_sha256":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","pca":0.8,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.relation-stats.v1","sgc":0.3530460722348394,"skip_reasons":[],"status":"completed","tlc":0.38333333333333336} +{"arm":"T2","error_type":null,"l0_result_sha256":"800aac1babecf79bade8ac585154a855883a23900a9246d0f4abdd737d9d3951","oracle_sha256":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","pca":0.7407407407407407,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.relation-stats.v1","sgc":0.6322022274673998,"skip_reasons":[],"status":"completed","tlc":0.7673315259488769} +{"arm":"T2","error_type":null,"l0_result_sha256":"bf0b712790bad9e5a9484af6355993283025c1cf2340de83a208581930585b59","oracle_sha256":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","pca":0.8,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.relation-stats.v1","sgc":0.9240031107546418,"skip_reasons":[],"status":"completed","tlc":0.8333333333333334} +{"arm":"T2","error_type":null,"l0_result_sha256":"20d01c8a570bc3608946e9867ac62d61f22616a943bd31a966e6b1cb051da06d","oracle_sha256":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","pca":0.6470588235294118,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.relation-stats.v1","sgc":0.600621376380749,"skip_reasons":[],"status":"completed","tlc":0.5655570652173914} +{"arm":"T2","error_type":"ValueError","pca":null,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.relation-stats.v1","sgc":null,"skip_reasons":[],"status":"generation_failure","tlc":null} +{"arm":"T2","error_type":null,"l0_result_sha256":"c4f5bb31eb038da33fa5dd28a56e90c05cb97a32a3ec87f51b493058331639f4","oracle_sha256":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","pca":0.7,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.relation-stats.v1","sgc":0.7914217892656731,"skip_reasons":[],"status":"completed","tlc":0.7787356321839081} +{"arm":"T2","error_type":null,"l0_result_sha256":"53c07ca89c7b7910bb86af3d9f71e1ba48841ad2b064fa4830a297d705e219e9","oracle_sha256":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","pca":0.5555555555555556,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.relation-stats.v1","sgc":0.5885320423627957,"skip_reasons":[],"status":"completed","tlc":0.43485915492957744} +{"arm":"T3","error_type":null,"l0_result_sha256":"52ea8220c980b7f38cf6c4ffe9d17b38e923c56f5e112e140391e57f4f08dc96","oracle_sha256":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","pca":1.0,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.relation-stats.v1","sgc":0.8448897227285044,"skip_reasons":[],"status":"completed","tlc":0.6807958477508651} +{"arm":"T3","error_type":null,"l0_result_sha256":"041d3d6da6cfa8e7f0bc9980ccfc85f984331257b43c5b9bb5deec25ba45c052","oracle_sha256":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","pca":1.0,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.relation-stats.v1","sgc":0.9154559576301757,"skip_reasons":[],"status":"completed","tlc":0.6944444444444444} +{"arm":"T3","error_type":null,"l0_result_sha256":"dced5ad7f9cf63c74b14f82b08236636404714331db3d526124b0359032bc960","oracle_sha256":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","pca":1.0,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.relation-stats.v1","sgc":0.7939583877824129,"skip_reasons":[],"status":"completed","tlc":0.606675392670157} +{"arm":"T3","error_type":null,"l0_result_sha256":"2e4bac4bfa584dfd5b434f50e89af5d8d9a250b43fc20db7e4561fdd8d2baf96","oracle_sha256":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","pca":1.0,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.relation-stats.v1","sgc":0.6619082847089599,"skip_reasons":[],"status":"completed","tlc":0.5105263157894737} +{"arm":"T3","error_type":null,"l0_result_sha256":"671b3c5a6f3853f7e9c5d3454cd6d0f45b8bf93e7e0bd4f0ebe4a39967f6ca32","oracle_sha256":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","pca":1.0,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.relation-stats.v1","sgc":0.9999959680904067,"skip_reasons":[],"status":"completed","tlc":0.9017857142857143} +{"arm":"T3","error_type":null,"l0_result_sha256":"6638bddce1adfb6529b2228b435205ca20a975c79f0876e71de6c1c80a4acfd0","oracle_sha256":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","pca":0.7692307692307693,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.relation-stats.v1","sgc":0.7012211677168283,"skip_reasons":[],"status":"completed","tlc":0.5510471204188482} +{"arm":"T3","error_type":null,"l0_result_sha256":"606bb98f03e26fc68f92cb06823f5d0f3def9c1f3cf6a569d216e126060d6980","oracle_sha256":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","pca":0.6666666666666666,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.relation-stats.v1","sgc":0.42162859145288006,"skip_reasons":[],"status":"completed","tlc":0.5952380952380952} +{"arm":"T3","error_type":null,"l0_result_sha256":"658cadd139694fb13a15b0d24f145ce5d29a37bab13f425e0479f402af07e643","oracle_sha256":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","pca":1.0,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.relation-stats.v1","sgc":0.9558356961530687,"skip_reasons":[],"status":"completed","tlc":0.9077777777777778} +{"arm":"T3","error_type":null,"l0_result_sha256":"0f1865b72b603cb993930c6193b416da8ade5d387d5a73f5ff9f6494d975e5ff","oracle_sha256":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","pca":0.8571428571428571,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.relation-stats.v1","sgc":0.9215577162617696,"skip_reasons":[],"status":"completed","tlc":0.7023809523809523} +{"arm":"T3","error_type":null,"l0_result_sha256":"ec7d5c33e478a13be3af2a483b299a9633a2fea202fd8d1a755ce7c9ecef5d60","oracle_sha256":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","pca":1.0,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.relation-stats.v1","sgc":0.7419599668879853,"skip_reasons":[],"status":"completed","tlc":0.7435897435897436} +{"arm":"T3","error_type":null,"l0_result_sha256":"1d19bf6acd112c95c95ca683f6ff1a7ada8fb45f1565c16b3d847c487441b1d2","oracle_sha256":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","pca":0.75,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.relation-stats.v1","sgc":0.6096986544026135,"skip_reasons":[],"status":"completed","tlc":0.4887071651090343} +{"arm":"T3","error_type":null,"l0_result_sha256":"b37eb4a443b4bc131bce9f98e5cac02107e89c34aec634e0e88a05f5d050a210","oracle_sha256":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","pca":0.75,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.relation-stats.v1","sgc":0.8287709958245395,"skip_reasons":[],"status":"completed","tlc":0.5192307692307693} +{"arm":"T3","error_type":null,"l0_result_sha256":"db249e3ba98c1beb9853f6075d8fb8a01cd064bc6417c8c5c70b521fe6a4fcac","oracle_sha256":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","pca":0.8571428571428571,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.relation-stats.v1","sgc":0.7545963334394821,"skip_reasons":[],"status":"completed","tlc":0.7261904761904762} +{"arm":"T3","error_type":null,"l0_result_sha256":"d2cf6e915bf69bdb2fe289322c4847f6e16c147566aa7b5153fc220ebda607be","oracle_sha256":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","pca":0.95,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.relation-stats.v1","sgc":0.8700446977059424,"skip_reasons":[],"status":"completed","tlc":0.7385057471264368} +{"arm":"T3","error_type":null,"l0_result_sha256":"14766ac68c2fc9c33637a1aac98ed6b90c634024eaa3797005a21beb88f60e2e","oracle_sha256":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","pca":0.6,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.relation-stats.v1","sgc":0.47557960326170706,"skip_reasons":[],"status":"completed","tlc":0.4863782051282051} +{"arm":"T3","error_type":null,"l0_result_sha256":"4837fc25cd383874ce58ba1c1bdbce09749b691356138eebd98b6f146743859c","oracle_sha256":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","pca":1.0,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.relation-stats.v1","sgc":0.9291731358040209,"skip_reasons":[],"status":"completed","tlc":0.8620689655172413} +{"arm":"T3","error_type":null,"l0_result_sha256":"719467d943cc785cccda2298728437f49c92961dd9632dd9b0413046462100f8","oracle_sha256":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","pca":0.875,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.relation-stats.v1","sgc":0.8042632184651007,"skip_reasons":[],"status":"completed","tlc":0.7682926829268293} +{"arm":"T3","error_type":null,"l0_result_sha256":"3629c288ca86858fd2148e0569159a3dac58895c4637abada0e4a9da9891273e","oracle_sha256":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","pca":0.8,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.relation-stats.v1","sgc":0.8590979461655993,"skip_reasons":[],"status":"completed","tlc":0.9166666666666666} +{"arm":"T3","error_type":null,"l0_result_sha256":"9b97fa160e344ae43cf88e13a39a25742eb4eae0c93e3ca5a686d870a56fffa0","oracle_sha256":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","pca":0.8,"sample_id":"599ecb061350e83293007738","schema_version":"a3.relation-stats.v1","sgc":0.9568486801064022,"skip_reasons":[],"status":"completed","tlc":1.0} +{"arm":"T3","error_type":null,"l0_result_sha256":"ba8faa7a2c02c482ecc27efd6988354b69dd711daac2475c8ba1b7b3cb5321b0","oracle_sha256":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","pca":1.0,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.relation-stats.v1","sgc":0.8557292431184482,"skip_reasons":[],"status":"completed","tlc":0.7161290322580646} +{"arm":"T3","error_type":null,"l0_result_sha256":"2b51b4da402d597f63f12027b294e3259740ffe8d3efbb4e2aaa3ff5483a81ad","oracle_sha256":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","pca":1.0,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.relation-stats.v1","sgc":0.8792320507096437,"skip_reasons":[],"status":"completed","tlc":0.9264705882352942} +{"arm":"T3","error_type":null,"l0_result_sha256":"7d40f9bdc8408b51105fc2e2fd7904f5f95f8ba31cde2655eac9245779726bac","oracle_sha256":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","pca":0.5,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.relation-stats.v1","sgc":0.3724167555767138,"skip_reasons":[],"status":"completed","tlc":0.5052356020942408} +{"arm":"T3","error_type":null,"l0_result_sha256":"be5c20b394f060add0fb080b34658a24168b94fa0fa2650f581219681f45d635","oracle_sha256":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","pca":0.9565217391304348,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.relation-stats.v1","sgc":0.799284734795287,"skip_reasons":[],"status":"completed","tlc":0.8002421307506054} +{"arm":"T3","error_type":null,"l0_result_sha256":"83950acba58e1a7fec0dfa8a0808db6ab59b7ee772ce25562fe0464eab15d988","oracle_sha256":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","pca":1.0,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.relation-stats.v1","sgc":0.900844110674563,"skip_reasons":[],"status":"completed","tlc":0.8255813953488372} +{"arm":"T3","error_type":null,"l0_result_sha256":"7225ae6288bc99b5b2b8572841a3e9c9258d4e24744dbb219098b67c2afee46e","oracle_sha256":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","pca":0.8333333333333334,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.relation-stats.v1","sgc":0.6263411685135369,"skip_reasons":[],"status":"completed","tlc":0.7166666666666667} +{"arm":"T3","error_type":null,"l0_result_sha256":"d16b053e4a48c81039dc9730d3f81f57b421217ab58d028eed7aaf3923513030","oracle_sha256":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","pca":1.0,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.relation-stats.v1","sgc":0.9736535335303984,"skip_reasons":[],"status":"completed","tlc":0.9984076433121019} +{"arm":"T3","error_type":null,"l0_result_sha256":"b36765cee802df61b14e14178120c40b7dfd52483746460bc8b075c29ad50853","oracle_sha256":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","pca":0.6842105263157895,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.relation-stats.v1","sgc":0.5983455212336395,"skip_reasons":[],"status":"completed","tlc":0.7266260162601627} +{"arm":"T3","error_type":null,"l0_result_sha256":"b0c1830ad2ed7c40de3e2399bd8a2d79ef314a399e69c84d799fb997dfc32ce6","oracle_sha256":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","pca":1.0,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.relation-stats.v1","sgc":0.890947344377943,"skip_reasons":[],"status":"completed","tlc":0.9753086419753086} +{"arm":"T3","error_type":null,"l0_result_sha256":"31f82bb60910916f2674a4be3b985964feb639678dcc62cbdc3c341a27253857","oracle_sha256":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","pca":1.0,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.relation-stats.v1","sgc":0.8905295703061229,"skip_reasons":[],"status":"completed","tlc":0.9615384615384616} +{"arm":"T3","error_type":null,"l0_result_sha256":"c7e85cae9036fbe3ee123af815f4bd58858e6aefbd0ad712cb982c3938bdea24","oracle_sha256":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","pca":1.0,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.relation-stats.v1","sgc":0.7782176097898417,"skip_reasons":[],"status":"completed","tlc":0.7777777777777778} +{"arm":"T3","error_type":null,"l0_result_sha256":"31fd550f45b70b7e1d0231c8d195d14484ad7427342298f12da0ce70c130ac2b","oracle_sha256":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","pca":0.6,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.relation-stats.v1","sgc":0.9215598069194141,"skip_reasons":[],"status":"completed","tlc":0.48333333333333334} +{"arm":"T3","error_type":null,"l0_result_sha256":"1b986af63ec28a2be65929b8248bd9a727d32d6a719ec7c0c1c0ff27d8427b8c","oracle_sha256":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","pca":0.5,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.relation-stats.v1","sgc":0.9230793807900203,"skip_reasons":[],"status":"completed","tlc":0.7058823529411765} +{"arm":"T3","error_type":null,"l0_result_sha256":"9fb6bbd03fb06f448cc1730f6c82832e6ce7d65144f070a9bf3f6dad1c0078a2","oracle_sha256":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","pca":1.0,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.relation-stats.v1","sgc":0.9301797023722653,"skip_reasons":[],"status":"completed","tlc":0.9307692307692308} +{"arm":"T3","error_type":null,"l0_result_sha256":"a45dab496a40e71fb7a28b2d88a4d05133061de6f6d1040e657b7bcf180c0cd2","oracle_sha256":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","pca":0.5,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.relation-stats.v1","sgc":0.5887385925540881,"skip_reasons":[],"status":"completed","tlc":0.5317460317460317} +{"arm":"T3","error_type":null,"l0_result_sha256":"519938d613994f2affb129cc262a98dd70411dd7cd92ee4b3b90f6776a6552d3","oracle_sha256":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","pca":0.8333333333333334,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.relation-stats.v1","sgc":0.7361095422549764,"skip_reasons":[],"status":"completed","tlc":0.7615384615384615} +{"arm":"T3","error_type":null,"l0_result_sha256":"2ababb2cf9ca9d70c82997e53032fc1976a6de97c4cc80aec20e6529e8aa96c1","oracle_sha256":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","pca":0.75,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.relation-stats.v1","sgc":0.6251895103219255,"skip_reasons":[],"status":"completed","tlc":0.5416666666666666} +{"arm":"T3","error_type":null,"l0_result_sha256":"5c4844477d5675610cd7da294a551b0988a64ccb899277ae1f4f5b46af74e39f","oracle_sha256":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","pca":0.9,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.relation-stats.v1","sgc":0.9017298121113009,"skip_reasons":[],"status":"completed","tlc":0.8736559139784946} +{"arm":"T3","error_type":null,"l0_result_sha256":"135f8a214cd7559c490c04c98d98388db9e3dc867fc7d8f1b8f61199dd1de764","oracle_sha256":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","pca":0.5,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.relation-stats.v1","sgc":0.6431659866940739,"skip_reasons":[],"status":"completed","tlc":0.625} +{"arm":"T3","error_type":null,"l0_result_sha256":"1cd1fdf98d0863a02e00c3482efe3feb20f94ba475fa3db7afab4e6b84f27351","oracle_sha256":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","pca":1.0,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.relation-stats.v1","sgc":0.9999972707782033,"skip_reasons":[],"status":"completed","tlc":0.9} +{"arm":"T3","error_type":null,"l0_result_sha256":"5d2939b695bf9a79e014c052acc7661d3fae884e1abcdbb6b42533540d14fc3f","oracle_sha256":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","pca":1.0,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.relation-stats.v1","sgc":0.8758055901522103,"skip_reasons":[],"status":"completed","tlc":0.953125} +{"arm":"T3","error_type":null,"l0_result_sha256":"4192a303670ec6a60050319f8b74851160b37e0e6780282db1e5d05090316c5b","oracle_sha256":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","pca":0.7,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.relation-stats.v1","sgc":0.7774554680927761,"skip_reasons":[],"status":"completed","tlc":0.7672413793103449} +{"arm":"T3","error_type":null,"l0_result_sha256":"95dde8eef8024331477f31aa0eff8992a2da556031508e13c1560c4fb8a59899","oracle_sha256":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","pca":1.0,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.relation-stats.v1","sgc":0.6140690418485084,"skip_reasons":[],"status":"completed","tlc":0.625} +{"arm":"T3","error_type":null,"l0_result_sha256":"6e28d5f8a9599e802710f671c4cb13766c685d9f60929e2b4a7b061c9f357ddf","oracle_sha256":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","pca":0.875,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.relation-stats.v1","sgc":0.979438095087617,"skip_reasons":[],"status":"completed","tlc":0.6989247311827957} +{"arm":"T3","error_type":null,"l0_result_sha256":"9064561e365592d3132c03a11394464ee7ca505792aa1299d720816ee42a1627","oracle_sha256":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","pca":0.5714285714285714,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.relation-stats.v1","sgc":0.4230063224951252,"skip_reasons":[],"status":"completed","tlc":0.48546511627906974} +{"arm":"T3","error_type":null,"l0_result_sha256":"de4250b6a2e04c6f96615b296b08b195411dd5f7ee9426b9d36cc833cd4bc662","oracle_sha256":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","pca":0.4,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.relation-stats.v1","sgc":0.539786391575812,"skip_reasons":[],"status":"completed","tlc":0.48717948717948717} +{"arm":"T3","error_type":null,"l0_result_sha256":"2f2448cd9c522737e8d2a591f4f34a4555933697f8e8a7021fd2dd623a950049","oracle_sha256":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","pca":1.0,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.relation-stats.v1","sgc":0.9065915193968128,"skip_reasons":[],"status":"completed","tlc":0.9201388888888888} +{"arm":"T3","error_type":null,"l0_result_sha256":"d25c6a5f64dd2561972b91f2deb9ee73f4a611d7070ef3a3ad91d2ab6509b9fe","oracle_sha256":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","pca":0.45454545454545453,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.relation-stats.v1","sgc":0.6506124836187749,"skip_reasons":[],"status":"completed","tlc":0.5172413793103449} +{"arm":"T3","error_type":null,"l0_result_sha256":"7d1242180efcea3b5ef0a4eba7102f4b4af381e2a44a0ca640e20fee80c0bc2f","oracle_sha256":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","pca":0.9090909090909091,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.relation-stats.v1","sgc":0.6211122167073626,"skip_reasons":[],"status":"completed","tlc":0.5924657534246576} +{"arm":"T3","error_type":null,"l0_result_sha256":"9d5ede84e8a36bded71e8256baa35a31def166cbb70ed8fc0ec6acabf111b08f","oracle_sha256":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","pca":0.75,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.relation-stats.v1","sgc":0.7631418621057839,"skip_reasons":[],"status":"completed","tlc":0.7898550724637681} +{"arm":"T3","error_type":null,"l0_result_sha256":"264bdfb279178b81cabfabd053745f2cf9ab02a461e7f9b5e0ab640e3246d131","oracle_sha256":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","pca":0.5,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.relation-stats.v1","sgc":0.718333638866313,"skip_reasons":[],"status":"completed","tlc":0.6} +{"arm":"T3","error_type":null,"l0_result_sha256":"3801d544bede468782db94bcbb1db6e06cecceb656099934774c7ed88ad55e1f","oracle_sha256":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","pca":0.9,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.relation-stats.v1","sgc":0.9257772892103648,"skip_reasons":[],"status":"completed","tlc":0.8522727272727273} +{"arm":"T3","error_type":null,"l0_result_sha256":"fd179455fbf381ce9b26df594efe6448d08e3ce3dbe1f1f7d0b9fa5998e4a099","oracle_sha256":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","pca":0.5,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.relation-stats.v1","sgc":0.5146839013315008,"skip_reasons":[],"status":"completed","tlc":0.5189393939393939} +{"arm":"T3","error_type":null,"l0_result_sha256":"fa52b777e5a04a5e97473d900a1e21fcb5aa8da4a6e0b8d70fbbd5e6db06f5e2","oracle_sha256":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","pca":0.625,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.relation-stats.v1","sgc":0.3097830748754243,"skip_reasons":[],"status":"completed","tlc":0.506896551724138} +{"arm":"T3","error_type":null,"l0_result_sha256":"6b7c3b4d2375d0e1130b118d02a19322f89aff0cd0056993b3b07e9b7b6d7523","oracle_sha256":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","pca":1.0,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.relation-stats.v1","sgc":0.9301710195193891,"skip_reasons":[],"status":"completed","tlc":0.8203125} +{"arm":"T3","error_type":null,"l0_result_sha256":"0589fe449161fe6cbd3831ee5123909c30effc9576ef1aaffec82abcc1bb2dc8","oracle_sha256":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","pca":0.6666666666666666,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.relation-stats.v1","sgc":0.9023795651801996,"skip_reasons":[],"status":"completed","tlc":0.7532051282051282} +{"arm":"T3","error_type":null,"l0_result_sha256":"75f14bfddba05cc8872589a511343fdaf61705e1839f9f527ffd49dbd0fc80ac","oracle_sha256":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","pca":0.5714285714285714,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.relation-stats.v1","sgc":0.40405969696831207,"skip_reasons":[],"status":"completed","tlc":0.48284313725490197} +{"arm":"T3","error_type":null,"l0_result_sha256":"24ffcb2476da92ab1bb6fab541ce7007be47e0dd64edca0e24e7aa9adadb0fb9","oracle_sha256":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","pca":1.0,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.relation-stats.v1","sgc":0.890537430579201,"skip_reasons":[],"status":"completed","tlc":0.9603321033210332} +{"arm":"T3","error_type":null,"l0_result_sha256":"09efedf00b95d68a2c4071e0a0c3f9f63ccc1ae1f230e33c431c77c10702b838","oracle_sha256":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","pca":0.875,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.relation-stats.v1","sgc":0.9440436042483612,"skip_reasons":[],"status":"completed","tlc":0.8242753623188406} +{"arm":"T3","error_type":null,"l0_result_sha256":"eee6a7dbb5db448645f7d6fe2c28347b31c638025150ed94f837c5049dbe94e2","oracle_sha256":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","pca":0.5,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.relation-stats.v1","sgc":0.6103671726814506,"skip_reasons":[],"status":"completed","tlc":0.4966367713004484} +{"arm":"T3","error_type":null,"l0_result_sha256":"bd6a03da55d5511fd761a7cc48a9dd0d653d9279c3873aa7b0c30ca91b600be0","oracle_sha256":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","pca":1.0,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.relation-stats.v1","sgc":0.9053278898539424,"skip_reasons":[],"status":"completed","tlc":0.8642191142191142} +{"arm":"T3","error_type":null,"l0_result_sha256":"f9add81a580e973bb4ef1715ffcfdf7a5275f404c3d1a35f32da7c9b1e7a4bc1","oracle_sha256":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","pca":0.9,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.relation-stats.v1","sgc":0.8916654371906325,"skip_reasons":[],"status":"completed","tlc":0.8807403936269915} +{"arm":"T3","error_type":null,"l0_result_sha256":"b157809976867cc1a5c82d8aa2565620632e7420ea708f57a9f1cfac3dc4877b","oracle_sha256":"1c9b7ef3618e955928bff40487a868bbf87111b338f6cc97d1067329e5355b13","pca":0.7142857142857143,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.relation-stats.v1","sgc":0.6416760851924311,"skip_reasons":[],"status":"completed","tlc":0.5950772200772201} +{"arm":"T3","error_type":null,"l0_result_sha256":"5a90d40d0ba13fcdc77929db6075675720b111457afe17f616b32665848be219","oracle_sha256":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","pca":1.0,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.relation-stats.v1","sgc":0.927723403625177,"skip_reasons":[],"status":"completed","tlc":0.9166666666666666} +{"arm":"T3","error_type":null,"l0_result_sha256":"5d8ff0d35783e65c8a218ab6e6b2e4f7063dbb08acef11f7b1531b4397870cfb","oracle_sha256":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","pca":1.0,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.relation-stats.v1","sgc":0.7525142445520374,"skip_reasons":[],"status":"completed","tlc":0.5953038674033149} +{"arm":"T3","error_type":null,"l0_result_sha256":"9afa543ae13a83dc6ba067e8e8d9376dac9fa23e04fcec437cbccdb83b46ad74","oracle_sha256":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","pca":1.0,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.relation-stats.v1","sgc":0.6283177861582462,"skip_reasons":[],"status":"completed","tlc":0.6916666666666667} +{"arm":"T3","error_type":null,"l0_result_sha256":"8e993315e7cfcb30efe691367ac718adc68aeae0b7521b40bab7fbdda17b2e7d","oracle_sha256":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","pca":0.5714285714285714,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.relation-stats.v1","sgc":0.6372786033256613,"skip_reasons":[],"status":"completed","tlc":0.5503875968992248} +{"arm":"T3","error_type":null,"l0_result_sha256":"c7a6434ddc795f7ee6a13b066c514c44d253eeb39374664831fb0f379d97afa0","oracle_sha256":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","pca":0.5,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.relation-stats.v1","sgc":0.7422508767151209,"skip_reasons":[],"status":"completed","tlc":0.6447550034506556} +{"arm":"T3","error_type":null,"l0_result_sha256":"734c2f5d6fdb3897cb6421e9dbd37a9076b86dbd1d1d3c138801f73243db33e4","oracle_sha256":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","pca":0.5555555555555556,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.relation-stats.v1","sgc":0.8314469297351792,"skip_reasons":[],"status":"completed","tlc":0.6337579617834395} +{"arm":"T3","error_type":"A3L0PipelineError","pca":null,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.relation-stats.v1","sgc":null,"skip_reasons":[],"status":"generation_failure","tlc":null} +{"arm":"T3","error_type":null,"l0_result_sha256":"8643de8d633a3b5d56099182cfaaff4177b67dbdc6ccfc07a5cb8cc8ca07f6aa","oracle_sha256":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","pca":0.8095238095238095,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.relation-stats.v1","sgc":0.7562980916102696,"skip_reasons":[],"status":"completed","tlc":0.8743859649122807} +{"arm":"T3","error_type":null,"l0_result_sha256":"af6f8761c5da51e61697cf98bb19a4358fed20ccdcb40fd30434834fa5898ba1","oracle_sha256":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","pca":0.8181818181818182,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.relation-stats.v1","sgc":0.8340373750051538,"skip_reasons":[],"status":"completed","tlc":0.697508896797153} +{"arm":"T3","error_type":null,"l0_result_sha256":"98ad895adad5dabddbbb309f85be1bc1f6cad0616f39d6e7f6e7e0dd2953bbe6","oracle_sha256":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","pca":1.0,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.relation-stats.v1","sgc":0.9231639045774221,"skip_reasons":[],"status":"completed","tlc":0.9212121212121213} +{"arm":"T3","error_type":null,"l0_result_sha256":"8a51d6e5126b3764314eeab693221ae9d23ea394446390ae5a9cfb0653a1b640","oracle_sha256":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","pca":1.0,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.relation-stats.v1","sgc":0.9872261992083767,"skip_reasons":[],"status":"completed","tlc":0.9609375} +{"arm":"T3","error_type":null,"l0_result_sha256":"0fa79248b387883d6757c05e927707b47008c349a23015a127ad4310fe0a9d6f","oracle_sha256":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","pca":0.8,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.relation-stats.v1","sgc":0.520302892696889,"skip_reasons":[],"status":"completed","tlc":0.4521276595744681} +{"arm":"T3","error_type":null,"l0_result_sha256":"00edf6ff43d070bc5ac54d6002647c463ffe4820615a672801af58081085e01f","oracle_sha256":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","pca":0.6666666666666666,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.relation-stats.v1","sgc":0.2953399469329616,"skip_reasons":[],"status":"completed","tlc":0.20833333333333334} +{"arm":"T3","error_type":null,"l0_result_sha256":"15d1fe43715d1255999194554ba3f008868fb49c24755887d6764a983dab4729","oracle_sha256":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","pca":0.8333333333333334,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.relation-stats.v1","sgc":0.9489547549627578,"skip_reasons":[],"status":"completed","tlc":0.75} +{"arm":"T3","error_type":null,"l0_result_sha256":"135ac49783db9e8aeeeeb7a971f03bf8edc1a87948a22ed74e73fe0cbab84f80","oracle_sha256":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","pca":0.7777777777777778,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.relation-stats.v1","sgc":0.8270532435140983,"skip_reasons":[],"status":"completed","tlc":0.6865482233502538} +{"arm":"T3","error_type":null,"l0_result_sha256":"c1a126d0f5613120b78f1d3a164ec95276292ca63dc749ce1ea7de09f73312f6","oracle_sha256":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","pca":1.0,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.relation-stats.v1","sgc":0.8917803335864105,"skip_reasons":[],"status":"completed","tlc":0.7215568862275449} +{"arm":"T3","error_type":null,"l0_result_sha256":"b31d12276c443c5ef0042cf7beb9ab27dc460cfedaa5207ede66da1ce0bd347d","oracle_sha256":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","pca":0.6,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.relation-stats.v1","sgc":0.8452240600862235,"skip_reasons":[],"status":"completed","tlc":0.7233502538071066} +{"arm":"T3","error_type":null,"l0_result_sha256":"d03732cdfe13ce82b24a191550d0f6a01095b25cd475f820a45164aeff23b301","oracle_sha256":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","pca":1.0,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.relation-stats.v1","sgc":0.9353914593082931,"skip_reasons":[],"status":"completed","tlc":0.9833333333333333} +{"arm":"T3","error_type":null,"l0_result_sha256":"41dc68212a0f0cfbd9679d161b176185eba1402576f68efabf6e268bc3bb80c3","oracle_sha256":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","pca":1.0,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.relation-stats.v1","sgc":0.9814186651674821,"skip_reasons":[],"status":"completed","tlc":0.9388888888888889} +{"arm":"T3","error_type":null,"l0_result_sha256":"0cdf7d9414eb58fb406db53b9af5674dc5ecabe464bbba1d3bb0e75672f8e175","oracle_sha256":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","pca":1.0,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.relation-stats.v1","sgc":0.9900221204197832,"skip_reasons":[],"status":"completed","tlc":0.9264705882352942} +{"arm":"T3","error_type":null,"l0_result_sha256":"aa95d850189e38978e979cc63a54347a5a7ec7d2b4a443226efe497c108a0ba7","oracle_sha256":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","pca":0.875,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.relation-stats.v1","sgc":0.8359508829992434,"skip_reasons":[],"status":"completed","tlc":0.9092465753424658} +{"arm":"T3","error_type":null,"l0_result_sha256":"a584ebce27541a6da307892f0cddd1151319cb2d723e266d9921d7cac99f9d89","oracle_sha256":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","pca":0.7142857142857143,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.relation-stats.v1","sgc":0.7646767886713907,"skip_reasons":[],"status":"completed","tlc":0.793010752688172} +{"arm":"T3","error_type":null,"l0_result_sha256":"cbcc6328a285dc2294be8a998ee95d8ce5aaff3057739af29669a12f4fb0e7bf","oracle_sha256":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","pca":0.8888888888888888,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.relation-stats.v1","sgc":0.49031694446237806,"skip_reasons":[],"status":"completed","tlc":0.484375} +{"arm":"T3","error_type":null,"l0_result_sha256":"7499ec1d57862b3953c7ecf252919a291477faf0fddd9f54aa92ef56fa948189","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":1.0,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.relation-stats.v1","sgc":0.9396763096094226,"skip_reasons":[],"status":"completed","tlc":0.7592592592592593} +{"arm":"T3","error_type":null,"l0_result_sha256":"8f88a9f9c068e67a32b21d6014f612139008edaebc5b6870eb5723a4b8ede761","oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","pca":0.75,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.relation-stats.v1","sgc":0.76902632336056,"skip_reasons":[],"status":"completed","tlc":0.7777777777777778} +{"arm":"T3","error_type":null,"l0_result_sha256":"565dfac8e86e09385b1622dd8ed32c0dcb52b4f8da5d2e1e63252db6323696fd","oracle_sha256":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","pca":0.75,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.relation-stats.v1","sgc":0.88489774436733,"skip_reasons":[],"status":"completed","tlc":0.953125} +{"arm":"T3","error_type":null,"l0_result_sha256":"e185016b334b41ee23a1544eca3b7b1432c8335b4898e256b9abba76a02cf39b","oracle_sha256":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","pca":1.0,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.relation-stats.v1","sgc":0.917949040639894,"skip_reasons":[],"status":"completed","tlc":0.8823529411764706} +{"arm":"T3","error_type":null,"l0_result_sha256":"8cca1a878c783bc2bb249fbb0e6ace5704b1653c3a8f7ec4916a63a03e2f3e2a","oracle_sha256":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","pca":0.75,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.relation-stats.v1","sgc":0.9134888682049236,"skip_reasons":[],"status":"completed","tlc":0.59375} +{"arm":"T3","error_type":null,"l0_result_sha256":"6f92864cb07a7f47c5b2fa3917faaa66957584c40a337d4d2c3fb262b75a02c1","oracle_sha256":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","pca":1.0,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.relation-stats.v1","sgc":0.9235098129008686,"skip_reasons":[],"status":"completed","tlc":0.853448275862069} +{"arm":"T3","error_type":null,"l0_result_sha256":"65f0a4515fef5fcb368fdb3a5352c8622faba0becccbe7f217143e31c58a8a6d","oracle_sha256":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","pca":1.0,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.relation-stats.v1","sgc":0.849858508402388,"skip_reasons":[],"status":"completed","tlc":0.5833333333333334} +{"arm":"T3","error_type":null,"l0_result_sha256":"bdbcafcad37db719e8b0976f6f1d669a2c5e0d42951d8d63c576ce21c6e46862","oracle_sha256":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","pca":1.0,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.relation-stats.v1","sgc":0.8048177836277554,"skip_reasons":[],"status":"completed","tlc":0.9111111111111111} +{"arm":"T3","error_type":null,"l0_result_sha256":"7b06e238429a97736e275fdad5da2f3e5c1b04e9c4607bd54959962d4dd66a7d","oracle_sha256":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","pca":0.8,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.relation-stats.v1","sgc":0.7013206504852428,"skip_reasons":[],"status":"completed","tlc":0.7166666666666667} +{"arm":"T3","error_type":null,"l0_result_sha256":"56dc7c339533827754e71df079c2fba2dc2c309a2ac62088f54f15f13bb618de","oracle_sha256":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","pca":0.6296296296296297,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.relation-stats.v1","sgc":0.6907982878297418,"skip_reasons":[],"status":"completed","tlc":0.5418280402788536} +{"arm":"T3","error_type":null,"l0_result_sha256":"eb505b14beab869448b8a9e8b640326e76dd0086313903c051030660d9b29052","oracle_sha256":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","pca":1.0,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.relation-stats.v1","sgc":0.9726929873595695,"skip_reasons":[],"status":"completed","tlc":1.0} +{"arm":"T3","error_type":null,"l0_result_sha256":"7b8e224e6d2e88c17a68e6fc45cf646d5e2bfbd64980d356050962cb349ad4a2","oracle_sha256":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","pca":0.7647058823529411,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.relation-stats.v1","sgc":0.7220443983211854,"skip_reasons":[],"status":"completed","tlc":0.6019021739130435} +{"arm":"T3","error_type":null,"l0_result_sha256":"153e876776d3657a52d6506c84d2058d48fb0eb9a005bd0b6d22e93aae847e09","oracle_sha256":"ffe9ca6e9231370545e8ee64abdfc552fe45840ee8769d9d57b00f139c3eceeb","pca":0.875,"sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.relation-stats.v1","sgc":0.8013875449780058,"skip_reasons":[],"status":"completed","tlc":0.8416833667334669} +{"arm":"T3","error_type":null,"l0_result_sha256":"f3dbaee2ef85a1e4194a28699ec80461582c4197a22ae0f2d5de589dae559a0a","oracle_sha256":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","pca":0.4,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.relation-stats.v1","sgc":0.620501422076383,"skip_reasons":[],"status":"completed","tlc":0.6020114942528736} +{"arm":"T3","error_type":null,"l0_result_sha256":"2b2bb27e40e2542d3a4df9bb55c1ead430fff1d2afe749d92c6ae1dd7e164323","oracle_sha256":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","pca":0.5555555555555556,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.relation-stats.v1","sgc":0.5311333648020777,"skip_reasons":[],"status":"completed","tlc":0.6285211267605634} diff --git a/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.md b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.md new file mode 100644 index 000000000..a385a6b63 --- /dev/null +++ b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.md @@ -0,0 +1,31 @@ +# Relation N=100 SGC/TLC/PCA statistical reanalysis + +Schema `a3.relation-stats.v1`; sign test = exact two-sided binomial (ties excluded); Holm adjustment over all 9 tests; Bonferroni shown as sensitivity analysis; bootstrap CI = sample-level percentile, seed 20260712, 10,000 resamples. + +## Arm summary + +| Arm | Frozen N | Completed | Failures | SGC mean (n) | TLC mean (n) | PCA mean (n) | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| T0 | 100 | 100 | 0 | 0.6465 (100) | 0.6277 (100) | 0.6930 (100) | +| T2 | 100 | 98 | 2 | 0.7037 (98) | 0.6711 (98) | 0.7614 (98) | +| T3 | 100 | 99 | 1 | 0.7779 (99) | 0.7271 (99) | 0.8215 (99) | + +Generation failures: 3/300 — T2 `5d67ed46cf657b21ef7bdad9` (A3L0PipelineError); T2 `5f644f40a637ee11e3669a1c` (ValueError); T3 `5da04604abc8ea6d1cbe2935` (A3L0PipelineError). + +## Paired comparisons + +| Comparison | Metric | Paired N | W/L/T | Mean diff | 95% CI | p raw | p Holm | p Bonf | +| --- | --- | ---: | --- | ---: | --- | ---: | ---: | ---: | +| T2 vs T0 | SGC | 98 | 64/34/0 | +0.0551 | [+0.0135, +0.0980] | 0.0032 | 0.0128 | 0.0287 | +| T2 vs T0 | TLC | 98 | 63/32/3 | +0.0412 | [+0.0016, +0.0806] | 0.0019 | 0.0115 | 0.0173 | +| T2 vs T0 | PCA | 98 | 47/25/26 | +0.0637 | [+0.0146, +0.1117] | 0.0128 | 0.0383 | 0.1150 | +| T3 vs T0 | SGC | 99 | 74/25/0 | +0.1317 | [+0.0897, +0.1731] | 8.5e-07 | 7.7e-06 | 7.7e-06 | +| T3 vs T0 | TLC | 99 | 70/29/0 | +0.1005 | [+0.0603, +0.1411] | 4.6e-05 | 0.0003 | 0.0004 | +| T3 vs T0 | PCA | 99 | 55/18/26 | +0.1299 | [+0.0822, +0.1778] | 1.7e-05 | 0.0001 | 0.0002 | +| T3 vs T2 | SGC | 97 | 64/33/0 | +0.0743 | [+0.0330, +0.1147] | 0.0022 | 0.0115 | 0.0194 | +| T3 vs T2 | TLC | 97 | 60/35/2 | +0.0570 | [+0.0170, +0.0973] | 0.0134 | 0.0383 | 0.1204 | +| T3 vs T2 | PCA | 97 | 46/29/22 | +0.0597 | [+0.0107, +0.1083] | 0.0639 | 0.0639 | 0.5755 | + +## Conservative Results paragraph + +Across 100 frozen Relation samples per arm (3/300 generation failures excluded pairwise, so each comparison uses the intersection of samples that completed in both arms), we ran nine paired two-sided sign tests with Holm correction. After Holm adjustment, the following comparisons remained significant at alpha=0.05: T2 vs T0 SGC (64W/34L/0T, mean diff +0.0551, 95% CI [+0.0135, +0.0980], Holm p=0.0128); T2 vs T0 TLC (63W/32L/3T, mean diff +0.0412, 95% CI [+0.0016, +0.0806], Holm p=0.0115); T2 vs T0 PCA (47W/25L/26T, mean diff +0.0637, 95% CI [+0.0146, +0.1117], Holm p=0.0383); T3 vs T0 SGC (74W/25L/0T, mean diff +0.1317, 95% CI [+0.0897, +0.1731], Holm p=7.7e-06); T3 vs T0 TLC (70W/29L/0T, mean diff +0.1005, 95% CI [+0.0603, +0.1411], Holm p=0.0003); T3 vs T0 PCA (55W/18L/26T, mean diff +0.1299, 95% CI [+0.0822, +0.1778], Holm p=0.0001); T3 vs T2 SGC (64W/33L/0T, mean diff +0.0743, 95% CI [+0.0330, +0.1147], Holm p=0.0115); T3 vs T2 TLC (60W/35L/2T, mean diff +0.0570, 95% CI [+0.0170, +0.0973], Holm p=0.0383). For the remaining comparisons (T3 vs T2 PCA) no difference was detected; because no equivalence test was performed, these null results must not be interpreted as evidence that the arms are equivalent. diff --git a/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.tex b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.tex new file mode 100644 index 000000000..e18c0014b --- /dev/null +++ b/layout_agent/evaluations/a3-relation-stats/a3.relation-stats.v1/a3-relation-n100-sgc-tlc-pca-stats-v1/results.tex @@ -0,0 +1,21 @@ +\begin{table}[t] +\centering +\small +\caption{Relation $N{=}100$ paired reanalysis of human-reference SGC/TLC/PCA. Exact two-sided sign tests (ties excluded) with Holm adjustment across all nine tests (Bonferroni as sensitivity analysis); mean paired differences with sample-level percentile bootstrap 95\% CIs (seed 20260712, 10,000 resamples).} +\label{tab:relation100-stats} +\begin{tabular}{llrlrlrrr} +\toprule +Comparison & Metric & $N$ & W/L/T & $\Delta$ mean & 95\% CI & $p$ & $p_{\mathrm{Holm}}$ & $p_{\mathrm{Bonf}}$ \\ +\midrule +T2 vs T0 & SGC & 98 & 64/34/0 & +0.0551 & $[+0.0135, +0.0980]$ & 0.0032 & 0.0128 & 0.0287 \\ +T2 vs T0 & TLC & 98 & 63/32/3 & +0.0412 & $[+0.0016, +0.0806]$ & 0.0019 & 0.0115 & 0.0173 \\ +T2 vs T0 & PCA & 98 & 47/25/26 & +0.0637 & $[+0.0146, +0.1117]$ & 0.0128 & 0.0383 & 0.1150 \\ +T3 vs T0 & SGC & 99 & 74/25/0 & +0.1317 & $[+0.0897, +0.1731]$ & 8.5e-07 & 7.7e-06 & 7.7e-06 \\ +T3 vs T0 & TLC & 99 & 70/29/0 & +0.1005 & $[+0.0603, +0.1411]$ & 4.6e-05 & 0.0003 & 0.0004 \\ +T3 vs T0 & PCA & 99 & 55/18/26 & +0.1299 & $[+0.0822, +0.1778]$ & 1.7e-05 & 0.0001 & 0.0002 \\ +T3 vs T2 & SGC & 97 & 64/33/0 & +0.0743 & $[+0.0330, +0.1147]$ & 0.0022 & 0.0115 & 0.0194 \\ +T3 vs T2 & TLC & 97 & 60/35/2 & +0.0570 & $[+0.0170, +0.0973]$ & 0.0134 & 0.0383 & 0.1204 \\ +T3 vs T2 & PCA & 97 & 46/29/22 & +0.0597 & $[+0.0107, +0.1083]$ & 0.0639 & 0.0639 & 0.5755 \\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/aggregate.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/aggregate.json new file mode 100644 index 000000000..19ae03018 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/aggregate.json @@ -0,0 +1,78 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-crello-test-batch-001-n100-sega-v1", + "runs": { + "a3-crello-test-batch-001-n100-t2-l0-v1": { + "sample_counts": { + "selected_n": 100, + "source_valid_n": 98, + "source_skipped_n": 2, + "evaluated_n": 98, + "validated_only_n": 0 + }, + "metrics": { + "Ali": { + "value": 0.0009641023068412698, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 84 + }, + "Ove": { + "value": 0.0910552100988253, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 8 + }, + "Und_l": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 98, + "zero_contribution_n": 0 + }, + "Und_s": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 98, + "zero_contribution_n": 0 + }, + "Rea": { + "value": 0.0022478855625754197, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 95 + }, + "Occ": { + "value": 0.006893588003138008, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 0 + } + } + } + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/evaluation_manifest.json new file mode 100644 index 000000000..cc5eaae88 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/evaluation_manifest.json @@ -0,0 +1,368 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-crello-test-batch-001-n100-sega-v1", + "created_at": "2026-07-12T15:21:48.833325+00:00", + "mode": "evaluate", + "command": "/home/hui0705/.conda/envs/meta/bin/python /home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py --run-dir /home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1 --evaluation-id a3-crello-test-batch-001-n100-sega-v1 --output-root /home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega --saliency-mode basnet-isnet", + "command_argv": [ + "/home/hui0705/.conda/envs/meta/bin/python", + "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "--run-dir", + "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1", + "--evaluation-id", + "a3-crello-test-batch-001-n100-sega-v1", + "--output-root", + "/home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega", + "--saliency-mode", + "basnet-isnet" + ], + "source_runs": [ + { + "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", + "run_dir": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1", + "summary": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/a3_run_summary.json", + "sha256": "73f792dfe39d5d2b2cbb3f48cc179597014d9c20874d7f124b780118e865b8a9", + "size_bytes": 12662 + }, + "manifest": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/run_manifest.json", + "sha256": "9a7e091d0b0093cdbf2a720da807c4ee229dd921ed55c87f740a3a5ce1cc22ab", + "size_bytes": 6492 + }, + "sample_ids": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/sample_ids.json", + "sha256": "1b9c7401e5b28ad863d26b6100aeba98c32fc1253ff6b7e5fa92d3fbd1a8c70a", + "size_bytes": 2702 + }, + "summary_counts": { + "reported_total": 100, + "reported_completed": null, + "reported_failed": 2, + "reported_sample_n": 100, + "completed_n": 98, + "failed_n": 2, + "other_status_n": 0, + "formal_complete": true + }, + "selection": { + "max_samples": null, + "selected_n": 100, + "formal_complete_run": true + }, + "observed_counts": { + "selected_n": 100, + "source_valid_n": 98, + "source_skipped_n": 2, + "evaluated_n": 98, + "validated_only_n": 0 + } + } + ], + "matched_samples": { + "count": 100, + "ordered_sample_ids": [ + "5bf29cf541fdeab19fedad0e", + "5ef309aa499b85dcc731cc93", + "5df212b79fea0cc374ae0f65", + "58aed0dc95a7a863ddcc8769", + "5e959759499b85dcc7f30615", + "5c1792c9133a78539282377f", + "5db16f87abc8ea6d1c691cbb", + "5cb5858c23c829c82126ac24", + "5d69068eabc8ea6d1c077938", + "589b281695a7a863ddcc4b8e", + "5fc4a82ca637ee11e3396453", + "592fd68895a7a863ddcdb9a2", + "5e2024a89fea0cc37439a7c1", + "5f631425a637ee11e3b4637c", + "59b7e99b1350e8329300f972", + "58b5677e95a7a863ddcca4a9", + "5d94c70eabc8ea6d1cc8b7cf", + "5c45a3df048d064dbcbe1709", + "5c99f9fa85ea3c16f95330e1", + "5b1e58251eb1c99e2a5f2a52", + "58aed2aa95a7a863ddcc8811", + "595327fe95a7a863ddce0ad0", + "5bffffad8caf671e1c6fda89", + "58b4382295a7a863ddcca0c3", + "5abcf6f94b568b8eec611a50", + "5e0216ee9fea0cc3742096c2", + "5b891d4c18654940f7ce96d7", + "5a6079518c32ec6f8b7eeaa9", + "58ab077b95a7a863ddcc72b8", + "5d234fbf8cba87f943250964", + "5da735deabc8ea6d1cc70d09", + "58b822ad95a7a863ddccadc9", + "5c3c6ed8048d064dbc3d79a3", + "5a4e0e518c32ec6f8b930119", + "599ecac21350e832930076f1", + "58b032a995a7a863ddcc9615", + "5d0cf30b8cba87f94359542b", + "595293f495a7a863ddcdffe7", + "59c9fd0a1350e832930151ef", + "58891e6395a7a863ddcc2f57", + "590af6a995a7a863ddcd6ab6", + "5db2ba06abc8ea6d1c4770b7", + "59b27df41350e8329300d95d", + "5bb488ea78e1194aa6365f98", + "589b28d195a7a863ddcc4c2d", + "5e7c71244b3890eb071e6e40", + "5909b86d95a7a863ddcd309c", + "592d6c1d95a7a863ddcda131", + "5f23d732a637ee11e36c0f12", + "5a686e448c32ec6f8b69a4ef", + "592e782b95a7a863ddcda4d0", + "592d211c95a7a863ddcd9e61", + "5ea97afb499b85dcc7e25995", + "58ac638c95a7a863ddcc7c2b", + "5e5f7079b04a3d1f19e6d299", + "5e81d0554b3890eb0719b148", + "5acf77784b568b8eec317748", + "5bd878089259f9ba54c07345", + "5db2dac5abc8ea6d1c80b699", + "58a440f195a7a863ddcc71c9", + "5a4cf7ed8c32ec6f8b0ceb70", + "5d973119abc8ea6d1c603048", + "5f4e5304a637ee11e3928aa6", + "5a2322bcd8141396fe9a94ec", + "5df219169fea0cc374bf4d9a", + "5936865895a7a863ddcdd152", + "5d4aa16dcf657b21ef68d8d3", + "5e0216ee9fea0cc37420967d", + "5b6da9001cc8aa542948b10e", + "5dc93d439fea0cc3740e81b7", + "5b62ffeb1cc8aa542947b0ca", + "5f9a8be0a637ee11e37a8a88", + "5f92dc7ea637ee11e341b058", + "5936895895a7a863ddcdd31f", + "5df7436b9fea0cc3748d96b3", + "5952720b95a7a863ddcdedee", + "5c7fbb0785ea3c16f94a594e", + "5c5b0913048d064dbc785e7c", + "5de7cdc19fea0cc37428e229", + "5954bde095a7a863ddce14da", + "5fc0b87ba637ee11e3a49e4c", + "5f885a9aa637ee11e3498504", + "58ac657a95a7a863ddcc7d8c", + "5d108d688cba87f9438e85f7", + "5954bda495a7a863ddce149b", + "5be9749341fdeab19f607853", + "5909cf1995a7a863ddcd3742", + "59b7a7a71350e8329300f2dc", + "5fa9191ca637ee11e35548b1", + "5be97b9241fdeab19f985504", + "5e847c8b4b3890eb07bf3a59", + "5b979f3f18654940f764417a", + "5889aa8395a7a863ddcc361a", + "59008beb95a7a863ddcd26e5", + "58aed49195a7a863ddcc8a59", + "5f041f26499b85dcc7b20357", + "5a034321d8141396fe9897ee", + "5df395ba9fea0cc374da3cec", + "5952689495a7a863ddcde990", + "5952946495a7a863ddce0052" + ], + "ordered_sample_ids_sha256": "054af750094bb444c885992740beb7ae9f1a87d799de3d10a5f1b5019957e829" + }, + "protocol_lineage": { + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "bbox_input": "A3 B0 left-top-width-height", + "bbox_metric_frame": "xyxy, clipped to canvas", + "validity_filter": { + "minimum_canvas_fraction": 0.001, + "comparison": "area >= threshold" + }, + "alignment": "PKU layout-wide-min aggregation quirk", + "overlay_denominator": "non-underlay element count", + "underlay": "P-Full v1 has no legal underlay class; current A3 is N/A", + "readability": "background-only float64 Sobel; definition-aligned, not PKU bit-exact", + "blank_background": { + "renderer_contract": "R3", + "rgb": [ + 255, + 255, + 255 + ] + }, + "occlusion": { + "mode": "basnet-isnet", + "detector": { + "contract": "frozen BASNet + ISNet, pixel-wise maximum", + "fusion": "pixelwise_max", + "fail_closed": true, + "network_downloads_allowed": false, + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "load_contract": { + "revision_argument": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false + }, + "snapshot_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "artifacts": { + "config.json": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/c4646206f7c2ccdcc26b6ec82f44ab4688a92479", + "sha256": "ab4be234682c7d12e4c3e13ffcc8b280065cf843041eb09b11ac34da5474e895", + "size_bytes": 299 + }, + "model.safetensors": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "sha256": "83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "size_bytes": 348466168 + }, + "configuration_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "size_bytes": 364 + }, + "modeling_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "size_bytes": 16207 + } + } + }, + "isnet": { + "model_id": "rembg/isnet-general-use", + "artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "provider": "CPUExecutionProvider", + "download_path": "forbidden; direct verified ONNX bytes" + }, + "pku_deviation": "ISNet replaces the PFPN branch used by PKU PosterLayout", + "implementation_sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "runtime_identity": { + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "requested_revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "resolved_snapshot": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false, + "model_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.modeling_basnet", + "model_class_name": "BASNetModel", + "config_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.configuration_basnet", + "config_class_name": "BASNetConfig", + "torch_version": "2.3.1+cu121", + "transformers_version": "4.57.6", + "executed_code": { + "configuration_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/configuration_basnet.py", + "executed_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "authoritative_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041" + }, + "modeling_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/modeling_basnet.py", + "executed_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "authoritative_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491" + } + } + }, + "isnet": { + "requested_model_name": "isnet-general-use", + "session_model_name": "isnet-general-use", + "session_reported_name": "isnet-general-use", + "session_class_module": "rembg.sessions.dis_general_use", + "session_class_name": "DisSession", + "rembg_version": "2.0.61", + "onnxruntime_version": "1.19.2", + "requested_providers": [ + "CPUExecutionProvider" + ], + "active_providers": [ + "CPUExecutionProvider" + ], + "available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ], + "verified_artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "session_construction": "direct verified bytes; downloader bypassed" + } + } + }, + "sobel_fallback_forbidden": true + }, + "code_runtime_lineage": { + "sources": { + "sega_metrics.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/sega_metrics.py", + "sha256": "d224caffcd4b6bbbe99b90b73c6c2df71aec59b521174741e0678cad32c48cef", + "size_bytes": 20675 + }, + "a3_sega_evaluator.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py", + "sha256": "afd178554579d2b6e8487d7ffe91d75dea37fecf899d21341b26ef0cfc375391", + "size_bytes": 68355 + }, + "evaluate_a3_sega.py": { + "path": "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "sha256": "372a62c4e688a3f9f7c32d6ee93e067ffbd06179ce4bc32868d0a0a956f90c5f", + "size_bytes": 17316 + }, + "saliency_basnet_isnet.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py", + "sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "size_bytes": 18912 + } + }, + "runtime": { + "python": { + "version": "3.9.25", + "implementation": "CPython", + "executable": "/home/hui0705/.conda/envs/meta/bin/python3.9" + }, + "platform": { + "system": "Linux", + "release": "5.15.0-139-generic", + "machine": "x86_64", + "platform": "Linux-5.15.0-139-generic-x86_64-with-glibc2.31" + }, + "numpy": "1.26.4", + "cv2": "4.10.0", + "Pillow": "11.3.0", + "torch": "2.3.1+cu121", + "torchvision": "0.18.1+cu121", + "transformers": "4.57.6", + "rembg": "2.0.61", + "onnxruntime": "1.19.2", + "pydantic": "2.9.2", + "pooch": "v1.9.0", + "onnxruntime_available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ] + } + } + }, + "write_policy": { + "source_runs_read_only": true, + "output_is_versioned_sidecar": true, + "existing_output_overwrite": false, + "atomic_staging_publish": true, + "atomic_no_replace_publish": "renameat2(RENAME_NOREPLACE)" + }, + "cost": { + "llm_api_calls": 0, + "llm_cost_usd": 0.0, + "model_downloads": 0 + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/per_sample.jsonl b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/per_sample.jsonl new file mode 100644 index 000000000..e50e80682 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1/per_sample.jsonl @@ -0,0 +1,100 @@ +{"b0_render_sha256": "c73b62d678fb15dc7926446cf86443d59b3cc796bdcbe78c1bc1a33384e20e08", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [143.0, 161.0, 476.0, 474.0], "bbox_xyxy_clipped": [143.0, 161.0, 619.0, 635.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [272.0, 292.0, 180.0, 180.0], "bbox_xyxy_clipped": [272.0, 292.0, 452.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [95.0, 88.0, 900.0, 900.0], "bbox_xyxy_clipped": [95.0, 88.0, 995.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [770.0, 118.0, 180.0, 180.0], "bbox_xyxy_clipped": [770.0, 118.0, 950.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [98.0, 618.0, 884.0, 44.0], "bbox_xyxy_clipped": [98.0, 618.0, 982.0, 662.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [708.0, 126.0, 292.0, 79.0], "bbox_xyxy_clipped": [708.0, 126.0, 1000.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [710.0, 214.0, 294.0, 78.0], "bbox_xyxy_clipped": [710.0, 214.0, 1004.0, 292.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.005634962453608726}, "Occ": {"reason": null, "status": "ok", "value": 0.004718782864441614}, "Ove": {"reason": null, "status": "ok", "value": 0.188840868688203}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5bf29cf541fdeab19fedad0e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bf29cf541fdeab19fedad0e/pipeline/l0_result.json", "sha256": "bebfc94f8bb077c8c91e8793ee7d3027251f5a7eca18864999b92d0e2f2ed351", "size_bytes": 7919}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bf29cf541fdeab19fedad0e/inputs/pfull/asset_manifest.json", "sha256": "a17fd879b69647afbcbf003049a2861b954393e01da82f65187990173fad6ced", "size_bytes": 4056}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bf29cf541fdeab19fedad0e/renders/r0_candidate_02.png", "sha256": "c73b62d678fb15dc7926446cf86443d59b3cc796bdcbe78c1bc1a33384e20e08", "size_bytes": 374409}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bf29cf541fdeab19fedad0e/inputs/r3/r3_asset_manifest.json", "sha256": "c691992ab4b1726cd5ae32a38a963b716701a8f761ef8d84849be14f26bd1ff6", "size_bytes": 3534}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "da56779997ad30c460e6a006ff289ce372b98f11807fb27b2416011fff608e65", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7620a7c3b9e96e49e41d2d7005e790c4aec88f0e514e706423acc725e9874b64", "canvas": {"height": 841, "width": 595}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 20, "valid": 17}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [43.0, 53.0, 176.0, 41.0], "bbox_xyxy_clipped": [43.0, 53.0, 219.0, 94.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [45.0, 98.0, 212.0, 106.0], "bbox_xyxy_clipped": [45.0, 98.0, 257.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [39.0, 221.0, 180.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [39.0, 235.0, 180.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [372.0, 42.0, 130.0, 260.0], "bbox_xyxy_clipped": [372.0, 42.0, 502.0, 302.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [57.0, 244.0, 449.0, 130.0], "bbox_xyxy_clipped": [57.0, 244.0, 506.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [46.0, 390.0, 371.0, 430.0], "bbox_xyxy_clipped": [46.0, 390.0, 417.0, 820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [53.0, 837.0, 19.0, 361.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [45.0, 286.0, 147.0, 34.0], "bbox_xyxy_clipped": [45.0, 286.0, 192.0, 320.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [226.0, 286.0, 128.0, 30.0], "bbox_xyxy_clipped": [226.0, 286.0, 354.0, 316.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [394.0, 286.0, 58.0, 38.0], "bbox_xyxy_clipped": [394.0, 286.0, 452.0, 324.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [470.0, 286.0, 100.0, 25.0], "bbox_xyxy_clipped": [470.0, 286.0, 570.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [45.0, 332.0, 229.0, 483.0], "bbox_xyxy_clipped": [45.0, 332.0, 274.0, 815.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [288.0, 332.0, 88.0, 421.0], "bbox_xyxy_clipped": [288.0, 332.0, 376.0, 753.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [396.0, 332.0, 88.0, 421.0], "bbox_xyxy_clipped": [396.0, 332.0, 484.0, 753.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [506.0, 332.0, 24.0, 421.0], "bbox_xyxy_clipped": [506.0, 332.0, 530.0, 753.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [44.0, 754.0, 179.0, 165.0], "bbox_xyxy_clipped": [44.0, 754.0, 223.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [236.0, 754.0, 155.0, 201.0], "bbox_xyxy_clipped": [236.0, 754.0, 391.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [85.0, 744.0, 316.0, 77.0], "bbox_xyxy_clipped": [85.0, 744.0, 401.0, 821.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [43.0, 806.0, 145.0, 20.0], "bbox_xyxy_clipped": [43.0, 806.0, 188.0, 826.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006582550410922424}, "Ove": {"reason": null, "status": "ok", "value": 0.16051014162711005}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e04e4f941ab84a58a796f823faaafea8a212e66f55008e43b1dd3a23a0e2b8a8", "status": "computed"}, "sample_id": "5ef309aa499b85dcc731cc93", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ef309aa499b85dcc731cc93/pipeline/l0_result.json", "sha256": "2ba58489b944b3c3d58f16eae2f0f003a94854966ecf326049bd53caed991aa2", "size_bytes": 16068}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ef309aa499b85dcc731cc93/inputs/pfull/asset_manifest.json", "sha256": "516876c39da0d5832d5d0565987496536181674004123b30d5982c02ef651971", "size_bytes": 11324}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ef309aa499b85dcc731cc93/renders/r0_candidate_02.png", "sha256": "da56779997ad30c460e6a006ff289ce372b98f11807fb27b2416011fff608e65", "size_bytes": 175141}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ef309aa499b85dcc731cc93/inputs/r3/r3_asset_manifest.json", "sha256": "4bf2e568d8b5a9ec53ce4547382776e461558f9d7d00271f65f9802a38e5c695", "size_bytes": 10349}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "336ec8b9063dedab4227f4a69d455fec77ca218c0aab546e14d2a828a54733eb", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [84.0, 640.0, 528.0, 352.0], "bbox_xyxy_clipped": [84.0, 640.0, 612.0, 992.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [47.0, 611.0, 220.0, 220.0], "bbox_xyxy_clipped": [47.0, 611.0, 267.0, 831.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [18.0, 586.0, 110.0, 110.0], "bbox_xyxy_clipped": [18.0, 586.0, 128.0, 696.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 938.0, 662.0, 8.0], "bbox_xyxy_clipped": [0.0, 938.0, 662.0, 946.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [221.0, 555.0, 220.0, 160.0], "bbox_xyxy_clipped": [221.0, 555.0, 441.0, 715.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [126.0, 494.0, 185.0, 63.0], "bbox_xyxy_clipped": [126.0, 494.0, 311.0, 557.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [350.0, 494.0, 185.0, 63.0], "bbox_xyxy_clipped": [350.0, 494.0, 535.0, 557.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [743.0, 164.0, 338.0, 99.0], "bbox_xyxy_clipped": [743.0, 164.0, 1081.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [749.0, 262.0, 421.0, 79.0], "bbox_xyxy_clipped": [749.0, 262.0, 1170.0, 341.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [744.0, 350.0, 409.0, 30.0], "bbox_xyxy_clipped": [744.0, 350.0, 1153.0, 380.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [760.0, 1130.0, 310.0, 86.0], "bbox_xyxy_clipped": [760.0, 1130.0, 1070.0, 1216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [758.0, 1224.0, 312.0, 47.0], "bbox_xyxy_clipped": [758.0, 1224.0, 1070.0, 1271.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [782.0, 1486.0, 340.0, 41.0], "bbox_xyxy_clipped": [782.0, 1486.0, 1122.0, 1527.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [902.0, 1562.0, 220.0, 43.0], "bbox_xyxy_clipped": [902.0, 1562.0, 1122.0, 1605.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003001242596240049}, "Ove": {"reason": null, "status": "ok", "value": 0.035222169305519115}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5df212b79fea0cc374ae0f65", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df212b79fea0cc374ae0f65/pipeline/l0_result.json", "sha256": "bab2164417364708128a7753910c710d2b65d041ea73d0169f5d78ced7efb5a5", "size_bytes": 12806}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df212b79fea0cc374ae0f65/inputs/pfull/asset_manifest.json", "sha256": "a68a8eff9473e068d599ac3498794f1970820e0ca78e3cb9598e5a3520a5a47c", "size_bytes": 7748}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df212b79fea0cc374ae0f65/renders/r0_candidate_01.png", "sha256": "336ec8b9063dedab4227f4a69d455fec77ca218c0aab546e14d2a828a54733eb", "size_bytes": 422502}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df212b79fea0cc374ae0f65/inputs/r3/r3_asset_manifest.json", "sha256": "ea48a50852c1a4234a1a4523082f97c0f532f8291ec0c06bb83517a6089be0fc", "size_bytes": 6916}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "77ea59a834e6e2c389d873678ee4737c166b302b9aa08881bef80c86a8768df1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [220.0, 155.0, 520.0, 260.0], "bbox_xyxy_clipped": [220.0, 155.0, 740.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [70.0, 62.0, 520.0, 108.0], "bbox_xyxy_clipped": [70.0, 62.0, 590.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [315.0, 168.0, 200.0, 320.0], "bbox_xyxy_clipped": [315.0, 168.0, 515.0, 488.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [538.0, 232.0, 120.0, 105.0], "bbox_xyxy_clipped": [538.0, 232.0, 658.0, 337.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [520.0, 276.0, 380.0, 82.0], "bbox_xyxy_clipped": [520.0, 276.0, 900.0, 358.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [798.0, 430.0, 310.0, 75.0], "bbox_xyxy_clipped": [798.0, 430.0, 1108.0, 505.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [640.0, 430.0, 420.0, 68.0], "bbox_xyxy_clipped": [640.0, 430.0, 1060.0, 498.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [860.0, 88.0, 260.0, 3.0], "bbox_xyxy_clipped": [860.0, 88.0, 1120.0, 91.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [860.0, 520.0, 260.0, 3.0], "bbox_xyxy_clipped": [860.0, 520.0, 1120.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004243892395173416}, "Ove": {"reason": null, "status": "ok", "value": 0.14475300942592753}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "58aed0dc95a7a863ddcc8769", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed0dc95a7a863ddcc8769/pipeline/l0_result.json", "sha256": "653e4bc3d45c0283c3fc764ee73f8c8ee2149da6ef76a1581ed0300d4f3d4da7", "size_bytes": 9080}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed0dc95a7a863ddcc8769/inputs/pfull/asset_manifest.json", "sha256": "df80130d434c6e20273a675acb3eb4484ff5c7a3a13139ba8e70e76aeb785c51", "size_bytes": 5138}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed0dc95a7a863ddcc8769/renders/r0_candidate_03.png", "sha256": "77ea59a834e6e2c389d873678ee4737c166b302b9aa08881bef80c86a8768df1", "size_bytes": 77840}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed0dc95a7a863ddcc8769/inputs/r3/r3_asset_manifest.json", "sha256": "85d1b1d3f9029fa7260d2af13eb938421d12b35fb11bad899e115c8a26233445", "size_bytes": 4677}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6b316bf3e395f6e3123346fc9ddbc861656d2411400522a97a8b4d90f251f44f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1290.0, 70.0, 560.0, 374.0], "bbox_xyxy_clipped": [1290.0, 70.0, 1850.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1432.0, 62.0, 110.0, 227.0], "bbox_xyxy_clipped": [1432.0, 62.0, 1542.0, 289.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1528.0, 365.0, 180.0, 308.0], "bbox_xyxy_clipped": [1528.0, 365.0, 1708.0, 673.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [106.0, 905.0, 560.0, 145.0], "bbox_xyxy_clipped": [106.0, 905.0, 666.0, 1050.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [165.0, 138.0, 78.0, 57.0], "bbox_xyxy_clipped": [165.0, 138.0, 243.0, 195.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [262.0, 145.0, 118.0, 31.0], "bbox_xyxy_clipped": [262.0, 145.0, 380.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [160.0, 310.0, 600.0, 91.0], "bbox_xyxy_clipped": [160.0, 310.0, 760.0, 401.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [160.0, 413.0, 640.0, 90.0], "bbox_xyxy_clipped": [160.0, 413.0, 800.0, 503.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [160.0, 750.0, 320.0, 60.0], "bbox_xyxy_clipped": [160.0, 750.0, 480.0, 810.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [160.0, 520.0, 735.0, 20.0], "bbox_xyxy_clipped": [160.0, 520.0, 895.0, 540.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [160.0, 556.0, 735.0, 20.0], "bbox_xyxy_clipped": [160.0, 556.0, 895.0, 576.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [160.0, 620.0, 940.0, 10.0], "bbox_xyxy_clipped": [160.0, 620.0, 1100.0, 630.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0015047921796331382}, "Ove": {"reason": null, "status": "ok", "value": 0.014272498428416762}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5e959759499b85dcc7f30615", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e959759499b85dcc7f30615/pipeline/l0_result.json", "sha256": "d65a53af239618d9777dc38742b4fae00d44e9a9d5103f6bbb438f7f412ea583", "size_bytes": 11134}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e959759499b85dcc7f30615/inputs/pfull/asset_manifest.json", "sha256": "7db21df9c35a91a10f05a00c7f77d252a888822b4c35d1f003bc6bdfb9b43f3f", "size_bytes": 6660}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e959759499b85dcc7f30615/renders/r0_candidate_03.png", "sha256": "6b316bf3e395f6e3123346fc9ddbc861656d2411400522a97a8b4d90f251f44f", "size_bytes": 456614}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e959759499b85dcc7f30615/inputs/r3/r3_asset_manifest.json", "sha256": "237f77a06e57a7c774d0d2a51ac1132ab32482918c0dddd9f24d2b09e8f7e0e6", "size_bytes": 5926}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "57d3d4832e9c63c65a97041d7d0dce9a77a2eb9c832eaa0fe8deb8198d583eb9", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "56d3d889f420f8d3373e931af4fbb8939bde2cb9d5198242468e5768ae75b22f", "canvas": {"height": 500, "width": 1500}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 12, "valid": 8}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [545.0, 45.0, 790.0, 531.0], "bbox_xyxy_clipped": [545.0, 45.0, 1335.0, 500.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [70.0, 85.0, 320.0, 180.0], "bbox_xyxy_clipped": [70.0, 85.0, 390.0, 265.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [72.0, 215.0, 255.0, 202.0], "bbox_xyxy_clipped": [72.0, 215.0, 327.0, 417.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [78.0, 345.0, 210.0, 60.0], "bbox_xyxy_clipped": [78.0, 345.0, 288.0, 405.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [75.0, 38.0, 280.0, 39.0], "bbox_xyxy_clipped": [75.0, 38.0, 355.0, 77.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 300.0, 230.0, 190.0], "bbox_xyxy_clipped": [40.0, 300.0, 270.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [78.0, 338.0, 110.0, 105.0], "bbox_xyxy_clipped": [78.0, 338.0, 188.0, 443.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [420.0, 410.0, 190.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [428.0, 404.0, 70.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [506.0, 404.0, 70.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1180.0, 340.0, 92.0, 92.0], "bbox_xyxy_clipped": [1180.0, 340.0, 1272.0, 432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1210.0, 370.0, 26.0, 26.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006823122301738637}, "Ove": {"reason": null, "status": "ok", "value": 0.22243606502926844}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "29d611f634479e08e3e507dfeff93f04f7bcdcc3780dbf5adc5d61f63c96284c", "status": "computed"}, "sample_id": "5c1792c9133a78539282377f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c1792c9133a78539282377f/pipeline/l0_result.json", "sha256": "6d6153e59ce22012f1caf6349b63597b1532f66c00b318c4339cc3b195ecf8bc", "size_bytes": 11015}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c1792c9133a78539282377f/inputs/pfull/asset_manifest.json", "sha256": "87222f1b561f77ae829157fe6b7caebea86f12aaa9b23e9227c2963fc0ec6da4", "size_bytes": 6630}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c1792c9133a78539282377f/renders/r0_candidate_02.png", "sha256": "57d3d4832e9c63c65a97041d7d0dce9a77a2eb9c832eaa0fe8deb8198d583eb9", "size_bytes": 366211}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c1792c9133a78539282377f/inputs/r3/r3_asset_manifest.json", "sha256": "f097796887ac04eea1f12401ff25fb47715a7f7fcda82e5e747ae4af79901a81", "size_bytes": 5824}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "374460330f1490ca9cc3521e8bdf17033ee1171ef4125f6661dda05a5a29e5e2", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/inputs/pfull/assets/asset_0000.png", "asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "asset_size_bytes": 2089, "kind": "asset", "pfull_asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "r3_asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "435a4f58b2a8af98e3fee167ba0d0bf84db5515971fd0b0dc34fc437c3eddcfb", "canvas": {"height": 500, "width": 500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 3, "valid": 3}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [32.0, 30.0, 131.0, 107.0], "bbox_xyxy_clipped": [32.0, 30.0, 163.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [173.0, 44.0, 260.0, 48.0], "bbox_xyxy_clipped": [173.0, 44.0, 433.0, 92.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [173.0, 98.0, 296.0, 34.0], "bbox_xyxy_clipped": [173.0, 98.0, 469.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0003607222693567904}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d7230682b80a7781e0da26b8665e4c5c590ac72d8787ec42e1e88d699c38c5f8", "status": "computed"}, "sample_id": "5db16f87abc8ea6d1c691cbb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/pipeline/l0_result.json", "sha256": "c284c2b398df7f8bfd247cedff457dcc32efe7eba0c2dcae74361b4f80450a33", "size_bytes": 5535}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/inputs/pfull/asset_manifest.json", "sha256": "86dc0aeee6e3496c47449f540f89ad156f3a1d439d83b8ca2fd808090424fc69", "size_bytes": 2545}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/renders/r0_candidate_01.png", "sha256": "374460330f1490ca9cc3521e8bdf17033ee1171ef4125f6661dda05a5a29e5e2", "size_bytes": 34534}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/inputs/r3/r3_asset_manifest.json", "sha256": "461a580d46a4aff279ddd39dc9c3d0e875368b1bdc41c0eaab3348d44235fec9", "size_bytes": 2282}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db16f87abc8ea6d1c691cbb/inputs/pfull/assets/asset_0000.png", "sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "size_bytes": 2089}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0219290ccfeb836c4e4c5c27b663ba7661b8c54eb3015f871bb5f5d447cb833b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 419.0, 297.0], "bbox_xyxy_clipped": [0.0, 0.0, 419.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [345.0, 0.0, 55.0, 298.0], "bbox_xyxy_clipped": [345.0, 0.0, 400.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 55.0, 298.0], "bbox_xyxy_clipped": [0.0, 0.0, 55.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [193.0, 0.0, 14.0, 298.0], "bbox_xyxy_clipped": [193.0, 0.0, 207.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [72.0, 26.0, 274.0, 198.0], "bbox_xyxy_clipped": [72.0, 26.0, 346.0, 224.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [112.0, 198.0, 195.0, 81.0], "bbox_xyxy_clipped": [112.0, 198.0, 307.0, 279.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [117.0, 244.0, 185.0, 62.0], "bbox_xyxy_clipped": [117.0, 244.0, 302.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006057882869369198}, "Ove": {"reason": null, "status": "ok", "value": 0.21713625945943058}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5cb5858c23c829c82126ac24", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5cb5858c23c829c82126ac24/pipeline/l0_result.json", "sha256": "733dfa7e6e3ad79ce90c8d58147ead62f5af76fb39acb7db02b798da2625406b", "size_bytes": 7627}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5cb5858c23c829c82126ac24/inputs/pfull/asset_manifest.json", "sha256": "2c277ba579fe0ed76fb09bed30c95b13d7f33ae4cda4b29bf6d0e03296847a55", "size_bytes": 4056}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5cb5858c23c829c82126ac24/renders/r0_candidate_02.png", "sha256": "0219290ccfeb836c4e4c5c27b663ba7661b8c54eb3015f871bb5f5d447cb833b", "size_bytes": 57616}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5cb5858c23c829c82126ac24/inputs/r3/r3_asset_manifest.json", "sha256": "02399d4671328118300591c7bcfcd821c6676a102698fede3dea9b523262a2f8", "size_bytes": 3627}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3fb0974a38096b46df622826a8b3ce19a5fbda771bf64e1acb50bd6cc938c6cc", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [737.0, 60.0, 483.0, 272.0], "bbox_xyxy_clipped": [737.0, 60.0, 1220.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1085.0, 284.0, 135.0, 137.0], "bbox_xyxy_clipped": [1085.0, 284.0, 1220.0, 421.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [600.0, 384.0, 110.0, 2791.0], "bbox_xyxy_clipped": [600.0, 384.0, 710.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [80.0, 88.0, 360.0, 178.0], "bbox_xyxy_clipped": [80.0, 88.0, 440.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [90.0, 190.0, 300.0, 101.0], "bbox_xyxy_clipped": [90.0, 190.0, 390.0, 291.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [82.0, 312.0, 420.0, 109.0], "bbox_xyxy_clipped": [82.0, 312.0, 502.0, 421.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [82.0, 395.0, 224.0, 70.0], "bbox_xyxy_clipped": [82.0, 395.0, 306.0, 465.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003438368109885407}, "Ove": {"reason": null, "status": "ok", "value": 0.06691375301529082}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5d69068eabc8ea6d1c077938", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d69068eabc8ea6d1c077938/pipeline/l0_result.json", "sha256": "551b9f47a5076ed0c6490a1621597a273f654025419e4e1b212b7bd38599b7c5", "size_bytes": 8332}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d69068eabc8ea6d1c077938/inputs/pfull/asset_manifest.json", "sha256": "391c36ab9794da32bd50c14922d616e695b81a43e0c625c414919416d2dbe8ae", "size_bytes": 4061}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d69068eabc8ea6d1c077938/renders/r0_candidate_01.png", "sha256": "3fb0974a38096b46df622826a8b3ce19a5fbda771bf64e1acb50bd6cc938c6cc", "size_bytes": 194539}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d69068eabc8ea6d1c077938/inputs/r3/r3_asset_manifest.json", "sha256": "a776c89415c978cc54950516a57a34633d35789c6113d6c920d3a3cd3545e20b", "size_bytes": 3710}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b638794e5df00c31197dcf18ce83773059642fa8d04d3a3d2c74173ce5485287", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 11, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [118.0, 240.0, 558.0, 493.0], "bbox_xyxy_clipped": [118.0, 240.0, 676.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 470.0, 190.0, 150.0], "bbox_xyxy_clipped": [0.0, 470.0, 190.0, 620.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 1090.0, 220.0, 556.0], "bbox_xyxy_clipped": [34.0, 1090.0, 254.0, 1646.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [792.0, 155.0, 198.0, 149.0], "bbox_xyxy_clipped": [792.0, 155.0, 990.0, 304.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [792.0, 319.0, 299.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [792.0, 351.0, 299.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [792.0, 220.0, 246.0, 52.0], "bbox_xyxy_clipped": [792.0, 220.0, 1038.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [792.0, 282.0, 276.0, 39.0], "bbox_xyxy_clipped": [792.0, 282.0, 1068.0, 321.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [792.0, 201.0, 333.0, 125.0], "bbox_xyxy_clipped": [792.0, 201.0, 1125.0, 326.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [792.0, 378.0, 331.0, 78.0], "bbox_xyxy_clipped": [792.0, 378.0, 1123.0, 456.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [792.0, 500.0, 320.0, 27.0], "bbox_xyxy_clipped": [792.0, 500.0, 1112.0, 527.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032158974334249857}, "Ove": {"reason": null, "status": "ok", "value": 0.16087290587771153}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "589b281695a7a863ddcc4b8e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b281695a7a863ddcc4b8e/pipeline/l0_result.json", "sha256": "8c70c769e261c963f3655c61fc3dbd73a54628919f668d2ab0284fcc473d70de", "size_bytes": 9966}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b281695a7a863ddcc4b8e/inputs/pfull/asset_manifest.json", "sha256": "3de892bfa67beeb84e2489e6aad92bea0a3f0a8b7be502e576bdf1374f994f3d", "size_bytes": 6229}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b281695a7a863ddcc4b8e/renders/r0_candidate_02.png", "sha256": "b638794e5df00c31197dcf18ce83773059642fa8d04d3a3d2c74173ce5485287", "size_bytes": 553808}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b281695a7a863ddcc4b8e/inputs/r3/r3_asset_manifest.json", "sha256": "8b52604ebe1bdde4335077529a298793a02669ad3eabc29d0ae8f3aefcd91c58", "size_bytes": 5474}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "49dac82d937098997494687280db4af1d8d8296a72fbf6568af757d94d9381c3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [74.0, 38.0, 520.0, 436.0], "bbox_xyxy_clipped": [74.0, 38.0, 594.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [-38.0, 345.0, 640.0, 341.0], "bbox_xyxy_clipped": [0.0, 345.0, 602.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [438.0, 124.0, 190.0, 190.0], "bbox_xyxy_clipped": [438.0, 124.0, 628.0, 314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [500.0, 260.0, 150.0, 150.0], "bbox_xyxy_clipped": [500.0, 260.0, 650.0, 410.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [389.0, 156.0, 331.0, 361.0], "bbox_xyxy_clipped": [389.0, 156.0, 720.0, 517.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [728.0, 44.0, 424.0, 136.0], "bbox_xyxy_clipped": [728.0, 44.0, 1152.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [760.0, 71.0, 321.0, 58.0], "bbox_xyxy_clipped": [760.0, 71.0, 1081.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [797.0, 126.0, 248.0, 57.0], "bbox_xyxy_clipped": [797.0, 126.0, 1045.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0014479499502034069}, "Occ": {"reason": null, "status": "ok", "value": 0.005045690779573674}, "Ove": {"reason": null, "status": "ok", "value": 0.24238685975365218}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5fc4a82ca637ee11e3396453", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc4a82ca637ee11e3396453/pipeline/l0_result.json", "sha256": "1813bc8d41ef3be30d06f0c560e4c704066dee146af275d12a07087eb1045ae5", "size_bytes": 8562}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc4a82ca637ee11e3396453/inputs/pfull/asset_manifest.json", "sha256": "e570570f97163a7f7446cb841375b7bcff9078c6c1b33e26e18b5044d67fc55e", "size_bytes": 4507}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc4a82ca637ee11e3396453/renders/r0_candidate_02.png", "sha256": "49dac82d937098997494687280db4af1d8d8296a72fbf6568af757d94d9381c3", "size_bytes": 184608}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc4a82ca637ee11e3396453/inputs/r3/r3_asset_manifest.json", "sha256": "6038187279f8212a2e8463a5a707332f8bad73f26a6658f86033e3ceda44885e", "size_bytes": 3973}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "363d53afaae2e9c50d85346720012ed559d5ac9a302da584950f35a97a3d07a8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [56.0, 1032.0, 402.0, 569.0], "bbox_xyxy_clipped": [56.0, 1032.0, 458.0, 1601.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [76.0, 84.0, 410.0, 164.0], "bbox_xyxy_clipped": [76.0, 84.0, 486.0, 248.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [95.0, 246.0, 356.0, 55.0], "bbox_xyxy_clipped": [95.0, 246.0, 451.0, 301.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [77.0, 318.0, 190.0, 269.0], "bbox_xyxy_clipped": [77.0, 318.0, 267.0, 587.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [286.0, 308.0, 160.0, 226.0], "bbox_xyxy_clipped": [286.0, 308.0, 446.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [378.0, 510.0, 110.0, 124.0], "bbox_xyxy_clipped": [378.0, 510.0, 488.0, 634.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [731.0, 1390.0, 403.0, 54.0], "bbox_xyxy_clipped": [731.0, 1390.0, 1134.0, 1444.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0025557474168742323}, "Occ": {"reason": null, "status": "ok", "value": 0.004991559665973443}, "Ove": {"reason": null, "status": "ok", "value": 0.006021442983389406}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "592fd68895a7a863ddcdb9a2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592fd68895a7a863ddcdb9a2/pipeline/l0_result.json", "sha256": "667ffa00fc7a9056c1c5ae11c2737fa8adbf69b4113bf3f41664a83b8a8c679f", "size_bytes": 7672}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592fd68895a7a863ddcdb9a2/inputs/pfull/asset_manifest.json", "sha256": "25e5ef69953dd9eeb735e6ea28eb061aef0d8c88a1d715dd4d21505ae25bf867", "size_bytes": 4108}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592fd68895a7a863ddcdb9a2/renders/r0_candidate_03.png", "sha256": "363d53afaae2e9c50d85346720012ed559d5ac9a302da584950f35a97a3d07a8", "size_bytes": 421898}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592fd68895a7a863ddcdb9a2/inputs/r3/r3_asset_manifest.json", "sha256": "76e8af4cf4dc3e1bc2fba5a65bfa598ab10b2af546ae5281b9fa252977290052", "size_bytes": 3702}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2463e67c900835d56632fffe0f7e900e2643bd148c9ee03e11004a6050ec5073", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 19, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1920.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [34.0, 34.0, 182.0, 242.0], "bbox_xyxy_clipped": [34.0, 34.0, 216.0, 276.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [44.0, 52.0, 162.0, 31.0], "bbox_xyxy_clipped": [44.0, 52.0, 206.0, 83.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [32.0, 170.0, 410.0, 43.0], "bbox_xyxy_clipped": [32.0, 170.0, 442.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [32.0, 256.0, 185.0, 53.0], "bbox_xyxy_clipped": [32.0, 256.0, 217.0, 309.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [39.0, 322.0, 107.0, 50.0], "bbox_xyxy_clipped": [39.0, 322.0, 146.0, 372.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [156.0, 326.0, 95.0, 51.0], "bbox_xyxy_clipped": [156.0, 326.0, 251.0, 377.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [32.0, 424.0, 44.0, 32.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0015", "bbox_lwh_raw": [82.0, 424.0, 44.0, 32.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [706.0, 115.0, 340.0, 535.0], "bbox_xyxy_clipped": [706.0, 115.0, 1046.0, 650.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [840.0, 562.0, 180.0, 270.0], "bbox_xyxy_clipped": [840.0, 562.0, 1020.0, 832.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [520.0, 150.0, 320.0, 278.0], "bbox_xyxy_clipped": [520.0, 150.0, 840.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [565.0, 470.0, 180.0, 157.0], "bbox_xyxy_clipped": [565.0, 470.0, 745.0, 627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [262.0, 970.0, 760.0, 36.0], "bbox_xyxy_clipped": [262.0, 970.0, 1022.0, 1006.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [721.0, 1010.0, 294.0, 72.0], "bbox_xyxy_clipped": [721.0, 1010.0, 1015.0, 1082.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [880.0, 1122.0, 145.0, 45.0], "bbox_xyxy_clipped": [880.0, 1122.0, 1025.0, 1167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [32.0, 1760.0, 215.0, 30.0], "bbox_xyxy_clipped": [32.0, 1760.0, 247.0, 1790.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [31.0, 1802.0, 54.0, 30.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [90.0, 1802.0, 54.0, 30.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062591774081006465}, "Ove": {"reason": null, "status": "ok", "value": 0.05561845873248969}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e2024a89fea0cc37439a7c1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e2024a89fea0cc37439a7c1/pipeline/l0_result.json", "sha256": "5e0dd4c14c21265f274f03d3c21bd384196e4c78501f5acab98457652bbd3e67", "size_bytes": 14145}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e2024a89fea0cc37439a7c1/inputs/pfull/asset_manifest.json", "sha256": "6766295dd54a9340cd70440a1ad82ba5b9e7c9997e9c181be0e848d0d080e8b4", "size_bytes": 10301}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e2024a89fea0cc37439a7c1/renders/r0_candidate_03.png", "sha256": "2463e67c900835d56632fffe0f7e900e2643bd148c9ee03e11004a6050ec5073", "size_bytes": 186854}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e2024a89fea0cc37439a7c1/inputs/r3/r3_asset_manifest.json", "sha256": "393ecb46e22633b4e2a9db4f184038f88c0fc55151606aeeaabe3f6166d1ca6c", "size_bytes": 9148}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8d50df864368d8faf2351ef36d944e570982613636eb4a34c8644a7c46494f1b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 18, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 90.0, 760.0, 507.0], "bbox_xyxy_clipped": [120.0, 90.0, 880.0, 597.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [760.0, 110.0, 820.0, 658.0], "bbox_xyxy_clipped": [760.0, 110.0, 1580.0, 768.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1460.0, 170.0, 700.0, 562.0], "bbox_xyxy_clipped": [1460.0, 170.0, 2160.0, 732.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [2040.0, 260.0, 620.0, 498.0], "bbox_xyxy_clipped": [2040.0, 260.0, 2660.0, 758.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [2380.0, 980.0, 500.0, 402.0], "bbox_xyxy_clipped": [2380.0, 980.0, 2880.0, 1382.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [390.0, 520.0, 820.0, 659.0], "bbox_xyxy_clipped": [390.0, 520.0, 1210.0, 1179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [220.0, 180.0, 260.0, 95.0], "bbox_xyxy_clipped": [220.0, 180.0, 480.0, 275.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [280.0, 300.0, 430.0, 120.0], "bbox_xyxy_clipped": [280.0, 300.0, 710.0, 420.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1530.0, 740.0, 860.0, 690.0], "bbox_xyxy_clipped": [1530.0, 740.0, 2390.0, 1430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [2140.0, 610.0, 290.0, 100.0], "bbox_xyxy_clipped": [2140.0, 610.0, 2430.0, 710.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1790.0, 760.0, 460.0, 126.0], "bbox_xyxy_clipped": [1790.0, 760.0, 2250.0, 886.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [260.0, 1120.0, 860.0, 691.0], "bbox_xyxy_clipped": [260.0, 1120.0, 1120.0, 1811.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1180.0, 1240.0, 270.0, 95.0], "bbox_xyxy_clipped": [1180.0, 1240.0, 1450.0, 1335.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1460.0, 1360.0, 470.0, 126.0], "bbox_xyxy_clipped": [1460.0, 1360.0, 1930.0, 1486.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1260.0, 430.0, 4.0, 410.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1270.0, 860.0, 4.0, 420.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0016", "bbox_lwh_raw": [980.0, 1570.0, 1840.0, 9.0], "bbox_xyxy_clipped": [980.0, 1570.0, 2820.0, 1579.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [2160.0, 1780.0, 680.0, 101.0], "bbox_xyxy_clipped": [2160.0, 1780.0, 2840.0, 1881.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002818217112061045}, "Ove": {"reason": null, "status": "ok", "value": 0.0553080717899472}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f631425a637ee11e3b4637c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f631425a637ee11e3b4637c/pipeline/l0_result.json", "sha256": "4a4c3b7287fdae7d9ba4c454f9877423fd834a4ec320bc5cb3a418c5aad42da1", "size_bytes": 13073}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f631425a637ee11e3b4637c/inputs/pfull/asset_manifest.json", "sha256": "a963f2ebfe312499144a905fbdfdc002a2cbfd0e30647dbed82934f7635a352f", "size_bytes": 9884}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f631425a637ee11e3b4637c/renders/r0_candidate_03.png", "sha256": "8d50df864368d8faf2351ef36d944e570982613636eb4a34c8644a7c46494f1b", "size_bytes": 1956905}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f631425a637ee11e3b4637c/inputs/r3/r3_asset_manifest.json", "sha256": "85f2eb99b76c2f311dee159fc36934af488b23643e4b92863a90a5a225248cbe", "size_bytes": 8756}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f72272a4ce533a9227156189d976045dc10652e7c15710563d96ef6d45c0f695", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0059d16328ae54cbc2c8331bd1cde676c1092182e747899a68d818c62b630a2f", "canvas": {"height": 315, "width": 560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [67.0, 31.0, 426.0, 191.0], "bbox_xyxy_clipped": [67.0, 31.0, 493.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [92.0, 53.0, 300.0, 45.0], "bbox_xyxy_clipped": [92.0, 53.0, 392.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 102.0, 317.0, 36.0], "bbox_xyxy_clipped": [92.0, 102.0, 409.0, 138.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [429.0, 53.0, 30.0, 30.0], "bbox_xyxy_clipped": [429.0, 53.0, 459.0, 83.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [129.0, 101.0, 302.0, 172.0], "bbox_xyxy_clipped": [129.0, 101.0, 431.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [27.0, 189.0, 145.0, 210.0], "bbox_xyxy_clipped": [27.0, 189.0, 172.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [389.0, 184.0, 145.0, 210.0], "bbox_xyxy_clipped": [389.0, 184.0, 534.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005093388555835279}, "Ove": {"reason": null, "status": "ok", "value": 0.1529914063525533}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b869858503a3d55dfea664db908e3920fcfe5c31bcb735039d3c8b7988d2aec5", "status": "computed"}, "sample_id": "59b7e99b1350e8329300f972", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7e99b1350e8329300f972/pipeline/l0_result.json", "sha256": "5c6e0cc290ec4ac21363a4ec08e7fc7353a2641e635d01699f877ad3aca92d78", "size_bytes": 8362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7e99b1350e8329300f972/inputs/pfull/asset_manifest.json", "sha256": "525fd9b308ff0f5f203f120b31874b546c9c9988e8b5f19f2a4eaa46ff033d5b", "size_bytes": 4039}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7e99b1350e8329300f972/renders/r0_candidate_02.png", "sha256": "f72272a4ce533a9227156189d976045dc10652e7c15710563d96ef6d45c0f695", "size_bytes": 112270}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7e99b1350e8329300f972/inputs/r3/r3_asset_manifest.json", "sha256": "a0265e856dc825d8c2234190b5fca18a3f5fd923dc15d06a9674767b30447b12", "size_bytes": 3573}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b3cbdd1b18d19187d3305113bb448cfc9d186b8638314ffedd446aa4a3916609", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 16, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 22.0, 180.0, 271.0], "bbox_xyxy_clipped": [24.0, 22.0, 204.0, 293.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [390.0, 28.0, 118.0, 7.0], "bbox_xyxy_clipped": [390.0, 28.0, 508.0, 35.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [402.0, 46.0, 92.0, 21.0], "bbox_xyxy_clipped": [402.0, 46.0, 494.0, 67.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [408.0, 76.0, 82.0, 19.0], "bbox_xyxy_clipped": [408.0, 76.0, 490.0, 95.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [452.0, 18.0, 68.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [398.0, 22.0, 110.0, 265.0], "bbox_xyxy_clipped": [398.0, 22.0, 508.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [378.0, 66.0, 92.0, 221.0], "bbox_xyxy_clipped": [378.0, 66.0, 470.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [36.0, 96.0, 222.0, 47.0], "bbox_xyxy_clipped": [36.0, 96.0, 258.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [38.0, 148.0, 109.0, 32.0], "bbox_xyxy_clipped": [38.0, 148.0, 147.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [36.0, 182.0, 91.0, 60.0], "bbox_xyxy_clipped": [36.0, 182.0, 127.0, 242.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [129.0, 187.0, 55.0, 51.0], "bbox_xyxy_clipped": [129.0, 187.0, 184.0, 238.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 604.0, 204.0, 41.0], "bbox_xyxy_clipped": [34.0, 604.0, 238.0, 645.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [35.0, 748.0, 132.0, 12.0], "bbox_xyxy_clipped": [35.0, 748.0, 167.0, 760.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [470.0, 612.0, 22.0, 22.0], "bbox_xyxy_clipped": [470.0, 612.0, 492.0, 634.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [488.0, 636.0, 18.0, 18.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0015", "bbox_lwh_raw": [446.0, 666.0, 24.0, 24.0], "bbox_xyxy_clipped": [446.0, 666.0, 470.0, 690.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0013858129804444866}, "Ove": {"reason": null, "status": "ok", "value": 0.07677332487791247}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "58b5677e95a7a863ddcca4a9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b5677e95a7a863ddcca4a9/pipeline/l0_result.json", "sha256": "8574da079e79a4164b0fdabbf54264eb8fd7d12fccda76f1779ea3fa063a59db", "size_bytes": 12530}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b5677e95a7a863ddcca4a9/inputs/pfull/asset_manifest.json", "sha256": "7da420a398085651b4827b3d25c1ad8e038dcb685e6213f867f00ef214b6de63", "size_bytes": 8771}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b5677e95a7a863ddcca4a9/renders/r0_candidate_02.png", "sha256": "b3cbdd1b18d19187d3305113bb448cfc9d186b8638314ffedd446aa4a3916609", "size_bytes": 106747}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b5677e95a7a863ddcca4a9/inputs/r3/r3_asset_manifest.json", "sha256": "4003517be37ffcb6d9354eecbde7931b6c4a22e2132e6e805f4a2e3c83ab7696", "size_bytes": 7702}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fe5c58c48ef38c4763c9204b0d4b1597ebc2d577e85a6df8da5027aeb46aad30", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/inputs/pfull/assets/asset_0000.png", "asset_sha256": "ce72405c7d1e78148066ac5cc1b168d1a4826fd311375875c77647f38baea299", "asset_size_bytes": 4372, "kind": "asset", "pfull_asset_sha256": "ce72405c7d1e78148066ac5cc1b168d1a4826fd311375875c77647f38baea299", "r3_asset_sha256": "ce72405c7d1e78148066ac5cc1b168d1a4826fd311375875c77647f38baea299", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [160.0, 60.0, 680.0, 193.0], "bbox_xyxy_clipped": [160.0, 60.0, 840.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [318.0, 84.0, 365.0, 128.0], "bbox_xyxy_clipped": [318.0, 84.0, 683.0, 212.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [401.0, 22.0, 390.0, 97.0], "bbox_xyxy_clipped": [401.0, 22.0, 791.0, 119.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [238.0, 286.0, 524.0, 417.0], "bbox_xyxy_clipped": [238.0, 286.0, 762.0, 700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [25.0, 170.0, 260.0, 302.0], "bbox_xyxy_clipped": [25.0, 170.0, 285.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [62.0, 642.0, 316.0, 115.0], "bbox_xyxy_clipped": [62.0, 642.0, 378.0, 700.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [71.0, 620.0, 182.0, 4.0], "bbox_xyxy_clipped": [71.0, 620.0, 253.0, 624.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [71.0, 632.0, 182.0, 4.0], "bbox_xyxy_clipped": [71.0, 632.0, 253.0, 636.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [71.0, 644.0, 182.0, 4.0], "bbox_xyxy_clipped": [71.0, 644.0, 253.0, 648.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007415204021971203}, "Ove": {"reason": null, "status": "ok", "value": 0.0893902590723224}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5d94c70eabc8ea6d1cc8b7cf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/pipeline/l0_result.json", "sha256": "291bfce532c56c13a13790732cf12b4adb1e7ae4eebcf85fe665c1a1fcbfe938", "size_bytes": 9612}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/inputs/pfull/asset_manifest.json", "sha256": "a7c30bf5b0b46e6e9129cbe1ab0154898defe7ce147d577891d94c41f582f624", "size_bytes": 5674}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/renders/r0_candidate_03.png", "sha256": "fe5c58c48ef38c4763c9204b0d4b1597ebc2d577e85a6df8da5027aeb46aad30", "size_bytes": 454893}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/inputs/r3/r3_asset_manifest.json", "sha256": "b13e84f1da1e870b9d10ea724905277f56bbcad87875653453d7e1fca589b619", "size_bytes": 4934}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d94c70eabc8ea6d1cc8b7cf/inputs/pfull/assets/asset_0000.png", "sha256": "ce72405c7d1e78148066ac5cc1b168d1a4826fd311375875c77647f38baea299", "size_bytes": 4372}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e4e5c9ef67145af048de09d982c8b486f4278264745889eaba73ea87603c4e4a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [225.0, 340.0, 630.0, 948.0], "bbox_xyxy_clipped": [225.0, 340.0, 855.0, 1288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [148.0, 78.0, 784.0, 179.0], "bbox_xyxy_clipped": [148.0, 78.0, 932.0, 257.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [190.0, 210.0, 700.0, 79.0], "bbox_xyxy_clipped": [190.0, 210.0, 890.0, 289.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [186.0, 292.0, 708.0, 61.0], "bbox_xyxy_clipped": [186.0, 292.0, 894.0, 353.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [248.0, 1220.0, 584.0, 132.0], "bbox_xyxy_clipped": [248.0, 1220.0, 832.0, 1352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [40.0, 260.0, 84.0, 1389.0], "bbox_xyxy_clipped": [40.0, 260.0, 124.0, 1649.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [100.0, 260.0, 92.0, 1389.0], "bbox_xyxy_clipped": [100.0, 260.0, 192.0, 1649.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 613.0, 1086.0], "bbox_xyxy_clipped": [0.0, 0.0, 613.0, 1086.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [632.0, 0.0, 448.0, 166.0], "bbox_xyxy_clipped": [632.0, 0.0, 1080.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [650.0, 168.0, 430.0, 157.0], "bbox_xyxy_clipped": [650.0, 168.0, 1080.0, 325.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035054825100963574}, "Ove": {"reason": null, "status": "ok", "value": 0.1679048465567323}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c45a3df048d064dbcbe1709", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c45a3df048d064dbcbe1709/pipeline/l0_result.json", "sha256": "3ffa56225c3f2180014fca60592bd5ff0bca330cd6ad13ea08b32b259d9eca14", "size_bytes": 9720}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c45a3df048d064dbcbe1709/inputs/pfull/asset_manifest.json", "sha256": "56ca7edd52db7fa9d0c1c22dd8a252b142a2d4fd7785b768cb916a8286c9dfc9", "size_bytes": 5693}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c45a3df048d064dbcbe1709/renders/r0_candidate_02.png", "sha256": "e4e5c9ef67145af048de09d982c8b486f4278264745889eaba73ea87603c4e4a", "size_bytes": 552389}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c45a3df048d064dbcbe1709/inputs/r3/r3_asset_manifest.json", "sha256": "027477a5aec275d8a3520b64489a7de8b3ff1bfda93b567ff7695d35be919028", "size_bytes": 5159}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "adc87e449fc431e747e30e0fc105b53063af4ee7b0e6595360e2bb3a225c14dd", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [155.0, 170.0, 771.0, 319.0], "bbox_xyxy_clipped": [155.0, 170.0, 926.0, 489.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [344.0, 495.0, 392.0, 54.0], "bbox_xyxy_clipped": [344.0, 495.0, 736.0, 549.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [205.0, 565.0, 670.0, 277.0], "bbox_xyxy_clipped": [205.0, 565.0, 875.0, 842.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [720.0, 690.0, 180.0, 320.0], "bbox_xyxy_clipped": [720.0, 690.0, 900.0, 1010.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [514.0, 1210.0, 360.0, 360.0], "bbox_xyxy_clipped": [514.0, 1210.0, 874.0, 1570.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029991230399129872}, "Ove": {"reason": null, "status": "ok", "value": 0.02145426398943678}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c99f9fa85ea3c16f95330e1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c99f9fa85ea3c16f95330e1/pipeline/l0_result.json", "sha256": "6bac0092b6120afc5070191c12c3bca492e52a9dad4ce7286ffb762a4a1c2212", "size_bytes": 7294}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c99f9fa85ea3c16f95330e1/inputs/pfull/asset_manifest.json", "sha256": "d5f17a7a144c2dfd2fb146ffb552c7e57fc6d8f9155927657ffa8472c5deaf32", "size_bytes": 3100}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c99f9fa85ea3c16f95330e1/renders/r0_candidate_03.png", "sha256": "adc87e449fc431e747e30e0fc105b53063af4ee7b0e6595360e2bb3a225c14dd", "size_bytes": 278589}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c99f9fa85ea3c16f95330e1/inputs/r3/r3_asset_manifest.json", "sha256": "096e4825f0ae34a0a693042543ccab1d7652931b329bb46b1aad734243d590d9", "size_bytes": 2863}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "873a8cb1c2e0a21125468e3b4aafd4c8a4019e2277a928e0f15ce92b4261a0de", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [78.0, 165.0, 488.0, 51.0], "bbox_xyxy_clipped": [78.0, 165.0, 566.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [82.0, 228.0, 329.0, 42.0], "bbox_xyxy_clipped": [82.0, 228.0, 411.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [82.0, 284.0, 191.0, 57.0], "bbox_xyxy_clipped": [82.0, 284.0, 273.0, 341.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [83.0, 353.0, 360.0, 30.0], "bbox_xyxy_clipped": [83.0, 353.0, 443.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [905.0, 25.0, 245.0, 251.0], "bbox_xyxy_clipped": [905.0, 25.0, 1150.0, 276.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [520.0, 110.0, 150.0, 199.0], "bbox_xyxy_clipped": [520.0, 110.0, 670.0, 309.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [431.0, 214.0, 220.0, 85.0], "bbox_xyxy_clipped": [431.0, 214.0, 651.0, 299.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 414.0, 330.0, 173.0], "bbox_xyxy_clipped": [0.0, 414.0, 330.0, 587.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [10.0, 470.0, 220.0, 115.0], "bbox_xyxy_clipped": [10.0, 470.0, 230.0, 585.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003045711630863987}, "Ove": {"reason": null, "status": "ok", "value": 0.08797540417947641}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5b1e58251eb1c99e2a5f2a52", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b1e58251eb1c99e2a5f2a52/pipeline/l0_result.json", "sha256": "480357170d671bb6e475a923d37efb6e91359ffde0ba1aeefc73e1db0a4c11bf", "size_bytes": 9571}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b1e58251eb1c99e2a5f2a52/inputs/pfull/asset_manifest.json", "sha256": "9771ef15b8328f1bc4ba5b6c1f0360b967b05925bb2044c12eb0d588c87e20a9", "size_bytes": 5117}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b1e58251eb1c99e2a5f2a52/renders/r0_candidate_03.png", "sha256": "873a8cb1c2e0a21125468e3b4aafd4c8a4019e2277a928e0f15ce92b4261a0de", "size_bytes": 178193}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b1e58251eb1c99e2a5f2a52/inputs/r3/r3_asset_manifest.json", "sha256": "681e75adbf43fab0e50e00a4aebc93ba50b8d1f77d241c129d5fded7f4fb7e95", "size_bytes": 4611}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0c491257ff490008e759d481e39804d8c782264d6a69858b5f98ace1fead2691", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 32.0, 260.0, 333.0], "bbox_xyxy_clipped": [0.0, 32.0, 260.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [70.0, 72.0, 169.0, 130.0], "bbox_xyxy_clipped": [70.0, 72.0, 239.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [95.0, 145.0, 360.0, 140.0], "bbox_xyxy_clipped": [95.0, 145.0, 455.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [110.0, 302.0, 360.0, 40.0], "bbox_xyxy_clipped": [110.0, 302.0, 470.0, 342.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [95.0, 372.0, 248.0, 46.0], "bbox_xyxy_clipped": [95.0, 372.0, 343.0, 418.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [30.0, 468.0, 172.0, 131.0], "bbox_xyxy_clipped": [30.0, 468.0, 202.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [684.0, 178.0, 490.0, 327.0], "bbox_xyxy_clipped": [684.0, 178.0, 1174.0, 505.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0048464178409898875}, "Ove": {"reason": null, "status": "ok", "value": 0.09252803351917936}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "58aed2aa95a7a863ddcc8811", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed2aa95a7a863ddcc8811/pipeline/l0_result.json", "sha256": "518e31dfd95803eee7f09853a7075ef82a2ab15ded43ffa6e7919e11aed74345", "size_bytes": 7994}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed2aa95a7a863ddcc8811/inputs/pfull/asset_manifest.json", "sha256": "19414c36c6646523a90e7a4ef2773b3b7cdf773a6942bf3445534d64ef56f636", "size_bytes": 4058}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed2aa95a7a863ddcc8811/renders/r0_candidate_02.png", "sha256": "0c491257ff490008e759d481e39804d8c782264d6a69858b5f98ace1fead2691", "size_bytes": 416356}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed2aa95a7a863ddcc8811/inputs/r3/r3_asset_manifest.json", "sha256": "43b0f780884c28524fe7bf6c6b5808262161d51a67c2091dfb3a250dc22c7827", "size_bytes": 3569}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "26e32c39190be89f0eececd9a7b7f81d3ec9a43eb07c9b462c3aaa50e0fa015d", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [90.0, 90.0, 980.0, 1102.0], "bbox_xyxy_clipped": [90.0, 90.0, 1070.0, 1192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [860.0, 170.0, 420.0, 473.0], "bbox_xyxy_clipped": [860.0, 170.0, 1280.0, 643.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [55.0, 55.0, 1100.0, 1100.0], "bbox_xyxy_clipped": [55.0, 55.0, 1155.0, 1155.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [124.0, 120.0, 820.0, 820.0], "bbox_xyxy_clipped": [124.0, 120.0, 944.0, 940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [740.0, 780.0, 360.0, 360.0], "bbox_xyxy_clipped": [740.0, 780.0, 1100.0, 1140.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [960.0, 260.0, 260.0, 260.0], "bbox_xyxy_clipped": [960.0, 260.0, 1220.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1265.0, 210.0, 980.0, 223.0], "bbox_xyxy_clipped": [1265.0, 210.0, 2245.0, 433.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1620.0, 300.0, 620.0, 202.0], "bbox_xyxy_clipped": [1620.0, 300.0, 2240.0, 502.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1715.0, 390.0, 760.0, 23.0], "bbox_xyxy_clipped": [1715.0, 390.0, 2475.0, 413.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1765.0, 335.0, 698.0, 21.0], "bbox_xyxy_clipped": [1765.0, 335.0, 2463.0, 356.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1600.0, 120.0, 720.0, 170.0], "bbox_xyxy_clipped": [1600.0, 120.0, 2320.0, 290.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1545.0, 295.0, 835.0, 170.0], "bbox_xyxy_clipped": [1545.0, 295.0, 2380.0, 465.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004817038564999627}, "Ove": {"reason": null, "status": "ok", "value": 0.4063870365101166}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "595327fe95a7a863ddce0ad0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595327fe95a7a863ddce0ad0/pipeline/l0_result.json", "sha256": "1290833dad3ed682c5f426790c19e82e0d69c7b2df5eaf6be1804724eedb3238", "size_bytes": 10647}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595327fe95a7a863ddce0ad0/inputs/pfull/asset_manifest.json", "sha256": "95d36900f635e0f4fc5374c8768490c29ed19d60ec5e05fc66b336db6bbc22c6", "size_bytes": 6578}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595327fe95a7a863ddce0ad0/renders/r0_candidate_01.png", "sha256": "26e32c39190be89f0eececd9a7b7f81d3ec9a43eb07c9b462c3aaa50e0fa015d", "size_bytes": 594361}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595327fe95a7a863ddce0ad0/inputs/r3/r3_asset_manifest.json", "sha256": "662caa1adb30c16c756fc44c84b7279cba711213a19c9577a61faf301706b984", "size_bytes": 5635}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "92c6314190ef1f7b7aecf5b603f50dff8ca374866b15474a579f7f1435bf8597", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/inputs/pfull/assets/asset_0000.png", "asset_sha256": "75c4243ad576b5ae9529e1465ded2263aab795b61c3535a748618599fe8bd9d9", "asset_size_bytes": 3292, "kind": "asset", "pfull_asset_sha256": "75c4243ad576b5ae9529e1465ded2263aab795b61c3535a748618599fe8bd9d9", "r3_asset_sha256": "75c4243ad576b5ae9529e1465ded2263aab795b61c3535a748618599fe8bd9d9", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "6d1527df2a3627306a288af2b63247fe64fad3b1bee5d21b79c84c293b9cbffa", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [610.0, 55.0, 360.0, 202.0], "bbox_xyxy_clipped": [610.0, 55.0, 970.0, 257.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [615.0, 22.0, 145.0, 62.0], "bbox_xyxy_clipped": [615.0, 22.0, 760.0, 84.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [90.0, 335.0, 190.0, 74.0], "bbox_xyxy_clipped": [90.0, 335.0, 280.0, 409.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 395.0, 245.0, 57.0], "bbox_xyxy_clipped": [92.0, 395.0, 337.0, 452.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [78.0, 312.0, 320.0, 149.0], "bbox_xyxy_clipped": [78.0, 312.0, 398.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [108.0, 446.0, 270.0, 19.0], "bbox_xyxy_clipped": [108.0, 446.0, 378.0, 465.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [108.0, 468.0, 304.0, 19.0], "bbox_xyxy_clipped": [108.0, 468.0, 412.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 4.372776510292224e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.1294675486525835}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "0a5f9f7731fe9ec9fc5a98bb976149483ede567c938f4dedc7144868b8514ebc", "status": "computed"}, "sample_id": "5bffffad8caf671e1c6fda89", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/pipeline/l0_result.json", "sha256": "6719c40eae98f477136cc7b6e0c331ed73bb9b7b94f6a0819eef25ef0e47491b", "size_bytes": 7658}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/inputs/pfull/asset_manifest.json", "sha256": "8be071b7a32902aaee0a5ffb338527cfd8a08d3d0d6e8de04aa09a752e480a31", "size_bytes": 4682}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/renders/r0_candidate_03.png", "sha256": "92c6314190ef1f7b7aecf5b603f50dff8ca374866b15474a579f7f1435bf8597", "size_bytes": 103931}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/inputs/r3/r3_asset_manifest.json", "sha256": "e90f74747ccde3bd7d0c40a0a74c69448bd74fa597458780ca0b4ce36be91ae5", "size_bytes": 4175}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bffffad8caf671e1c6fda89/inputs/pfull/assets/asset_0000.png", "sha256": "75c4243ad576b5ae9529e1465ded2263aab795b61c3535a748618599fe8bd9d9", "size_bytes": 3292}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a47f4b77126c28c8887eff8055ece608f7d767951ba3e1f6ff2804870e6f690f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/inputs/pfull/assets/asset_0000.png", "asset_sha256": "ebfa6ec5c6641faa564014cd65b13cf9919bbf89d3286aa79910960c8f86ccee", "asset_size_bytes": 236719, "kind": "asset", "pfull_asset_sha256": "ebfa6ec5c6641faa564014cd65b13cf9919bbf89d3286aa79910960c8f86ccee", "r3_asset_sha256": "ebfa6ec5c6641faa564014cd65b13cf9919bbf89d3286aa79910960c8f86ccee", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "906b6cd8b7ba72b4af608abeaea73776cd55eeffa6f81984c06dcb0974153e57", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [208.0, 34.0, 126.0, 29.0], "bbox_xyxy_clipped": [208.0, 34.0, 334.0, 63.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [230.0, 66.0, 104.0, 26.0], "bbox_xyxy_clipped": [230.0, 66.0, 334.0, 92.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 96.0, 184.0, 14.0], "bbox_xyxy_clipped": [150.0, 96.0, 334.0, 110.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [252.0, 118.0, 82.0, 29.0], "bbox_xyxy_clipped": [252.0, 118.0, 334.0, 147.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [251.0, 151.0, 83.0, 18.0], "bbox_xyxy_clipped": [251.0, 151.0, 334.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [269.0, 174.0, 65.0, 29.0], "bbox_xyxy_clipped": [269.0, 174.0, 334.0, 203.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [208.0, 206.0, 126.0, 25.0], "bbox_xyxy_clipped": [208.0, 206.0, 334.0, 231.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [24.0, 286.0, 158.0, 169.0], "bbox_xyxy_clipped": [24.0, 286.0, 182.0, 455.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [12.0, 238.0, 78.0, 64.0], "bbox_xyxy_clipped": [12.0, 238.0, 90.0, 302.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [134.0, 344.0, 91.0, 59.0], "bbox_xyxy_clipped": [134.0, 344.0, 225.0, 403.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.15658461660618728}, "Ove": {"reason": null, "status": "ok", "value": 0.013132393941428362}, "Rea": {"reason": null, "status": "ok", "value": 0.07151764381683282}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e561f9eac57cc15e73aa9283c507131a150a54a80b8dec9e7d5d92cb46b9cb0c", "status": "computed"}, "sample_id": "58b4382295a7a863ddcca0c3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/pipeline/l0_result.json", "sha256": "056c70d416666116cac02cdd299aab80d11ef0c59365c5965c3aa4510a6d7bb7", "size_bytes": 11301}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/inputs/pfull/asset_manifest.json", "sha256": "8ba7841d79342884758e9df2df08c30f4d12b3a5e541e2144f9f284ab1a7b3f1", "size_bytes": 6286}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/renders/r0_candidate_03.png", "sha256": "a47f4b77126c28c8887eff8055ece608f7d767951ba3e1f6ff2804870e6f690f", "size_bytes": 225588}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/inputs/r3/r3_asset_manifest.json", "sha256": "4dfe7ecbd1250c4b1c461e5187ba2ea854dfd8aef2e88e36943e2167bf63e0d6", "size_bytes": 5723}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b4382295a7a863ddcca0c3/inputs/pfull/assets/asset_0000.png", "sha256": "ebfa6ec5c6641faa564014cd65b13cf9919bbf89d3286aa79910960c8f86ccee", "size_bytes": 236719}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e941c73331cd56d19fca4f91b2479e11450faf4312194e24384b344b61f1b749", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [250.0, 86.0, 195.0, 57.0], "bbox_xyxy_clipped": [250.0, 86.0, 445.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [459.0, 97.0, 75.0, 66.0], "bbox_xyxy_clipped": [459.0, 97.0, 534.0, 163.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [551.0, 84.0, 196.0, 68.0], "bbox_xyxy_clipped": [551.0, 84.0, 747.0, 152.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [757.0, 96.0, 211.0, 50.0], "bbox_xyxy_clipped": [757.0, 96.0, 968.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [228.0, 488.0, 410.0, 274.0], "bbox_xyxy_clipped": [228.0, 488.0, 638.0, 762.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [72.0, 366.0, 240.0, 311.0], "bbox_xyxy_clipped": [72.0, 366.0, 312.0, 677.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [112.0, 404.0, 183.0, 182.0], "bbox_xyxy_clipped": [112.0, 404.0, 295.0, 586.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [655.0, 356.0, 286.0, 361.0], "bbox_xyxy_clipped": [655.0, 356.0, 941.0, 717.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [707.0, 452.0, 216.0, 216.0], "bbox_xyxy_clipped": [707.0, 452.0, 923.0, 668.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [664.0, 379.0, 250.0, 4.0], "bbox_xyxy_clipped": [664.0, 379.0, 914.0, 383.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.005658560825310557}, "Occ": {"reason": null, "status": "ok", "value": 0.008598764509997438}, "Ove": {"reason": null, "status": "ok", "value": 0.10477949818326142}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5abcf6f94b568b8eec611a50", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5abcf6f94b568b8eec611a50/pipeline/l0_result.json", "sha256": "7241eeaa581542ad2bc5d1fbd2406acd518e5a96bac424f89a81be29a0cc73b1", "size_bytes": 11413}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5abcf6f94b568b8eec611a50/inputs/pfull/asset_manifest.json", "sha256": "2af0aba53a5fbf27f609c9e488f96d9e14b4ecf02452f9ee07f15b6e2127137d", "size_bytes": 5560}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5abcf6f94b568b8eec611a50/renders/r0_candidate_03.png", "sha256": "e941c73331cd56d19fca4f91b2479e11450faf4312194e24384b344b61f1b749", "size_bytes": 208942}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5abcf6f94b568b8eec611a50/inputs/r3/r3_asset_manifest.json", "sha256": "9990f3eda558a20933d67d5b52dc02903390ccb7064d695b3d13b90bef9a7f0d", "size_bytes": 4943}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "965bbdacc070fefbb39c172354d04924b3810245c37eeae1b67dc7a09fbd9a00", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 80.0, 420.0, 280.0], "bbox_xyxy_clipped": [0.0, 80.0, 420.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [560.0, 70.0, 560.0, 55.0], "bbox_xyxy_clipped": [560.0, 70.0, 1120.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [560.0, 145.0, 650.0, 520.0], "bbox_xyxy_clipped": [560.0, 145.0, 1210.0, 665.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [560.0, 610.0, 600.0, 105.0], "bbox_xyxy_clipped": [560.0, 610.0, 1160.0, 715.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1120.0, 610.0, 160.0, 27.0], "bbox_xyxy_clipped": [1120.0, 610.0, 1280.0, 637.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [560.0, 650.0, 240.0, 42.0], "bbox_xyxy_clipped": [560.0, 650.0, 800.0, 692.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [820.0, 650.0, 320.0, 56.0], "bbox_xyxy_clipped": [820.0, 650.0, 1140.0, 706.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006238181820716925}, "Ove": {"reason": null, "status": "ok", "value": 0.08309902161347872}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5e0216ee9fea0cc3742096c2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc3742096c2/pipeline/l0_result.json", "sha256": "9dcfc0fe3f13ca8e5095de33d46a96a8157fee68b9a07f0061210dffec77b9ce", "size_bytes": 7209}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc3742096c2/inputs/pfull/asset_manifest.json", "sha256": "2a8e8fe5e3c88647367511df82ac69ec96d68c59df2fd48bf27ca5fb78fcb6ff", "size_bytes": 4037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc3742096c2/renders/r0_candidate_02.png", "sha256": "965bbdacc070fefbb39c172354d04924b3810245c37eeae1b67dc7a09fbd9a00", "size_bytes": 212238}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc3742096c2/inputs/r3/r3_asset_manifest.json", "sha256": "fec3e3855aa3c94212969210317d19c3992706f46ddef993200286d8b0d3fa0a", "size_bytes": 3565}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93f625a7d6c991651af06736f7455cc33b5999123f3dcdd6de41d38a7198bc09", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 14, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 34.0, 150.0, 102.0], "bbox_xyxy_clipped": [18.0, 34.0, 168.0, 136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [204.0, 34.0, 121.0, 20.0], "bbox_xyxy_clipped": [204.0, 34.0, 325.0, 54.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [206.0, 16.0, 109.0, 16.0], "bbox_xyxy_clipped": [206.0, 16.0, 315.0, 32.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [204.0, 62.0, 106.0, 33.0], "bbox_xyxy_clipped": [204.0, 62.0, 310.0, 95.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [194.0, 24.0, 92.0, 70.0], "bbox_xyxy_clipped": [194.0, 24.0, 286.0, 94.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [203.0, 94.0, 142.0, 5.0], "bbox_xyxy_clipped": [203.0, 94.0, 345.0, 99.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [205.0, 112.0, 110.0, 18.0], "bbox_xyxy_clipped": [205.0, 112.0, 315.0, 130.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [205.0, 134.0, 121.0, 52.0], "bbox_xyxy_clipped": [205.0, 134.0, 326.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [205.0, 221.0, 105.0, 25.0], "bbox_xyxy_clipped": [205.0, 221.0, 310.0, 246.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [286.0, 221.0, 63.0, 14.0], "bbox_xyxy_clipped": [286.0, 221.0, 349.0, 235.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [205.0, 392.0, 102.0, 15.0], "bbox_xyxy_clipped": [205.0, 392.0, 307.0, 407.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [205.0, 411.0, 98.0, 17.0], "bbox_xyxy_clipped": [205.0, 411.0, 303.0, 428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [206.0, 472.0, 150.0, 15.0], "bbox_xyxy_clipped": [206.0, 472.0, 356.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [313.0, 446.0, 36.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0023760016024522925}, "Ove": {"reason": null, "status": "ok", "value": 0.06173444443340097}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5b891d4c18654940f7ce96d7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b891d4c18654940f7ce96d7/pipeline/l0_result.json", "sha256": "0a1139a193fa9731137df36062ac1de2b10a3da8d61d6f55e93c06ab427140cf", "size_bytes": 12061}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b891d4c18654940f7ce96d7/inputs/pfull/asset_manifest.json", "sha256": "474a08c3ed652abf6aa2dc7401d15f194abb9493bddc10104e0444b27748618c", "size_bytes": 7895}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b891d4c18654940f7ce96d7/renders/r0_candidate_02.png", "sha256": "93f625a7d6c991651af06736f7455cc33b5999123f3dcdd6de41d38a7198bc09", "size_bytes": 73287}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b891d4c18654940f7ce96d7/inputs/r3/r3_asset_manifest.json", "sha256": "4f2f249c0f80c03507cd472ab93406b20b2a2efe685bfceac0dd0adc5462793b", "size_bytes": 7248}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c08e63849028c845c7fdba279da0a6e14916de3605278f541f3e647b4ae4f1ab", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [332.0, 248.0, 416.0, 416.0], "bbox_xyxy_clipped": [332.0, 248.0, 748.0, 664.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [294.0, 210.0, 492.0, 492.0], "bbox_xyxy_clipped": [294.0, 210.0, 786.0, 702.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [248.0, 164.0, 584.0, 610.0], "bbox_xyxy_clipped": [248.0, 164.0, 832.0, 774.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [318.0, 376.0, 445.0, 121.0], "bbox_xyxy_clipped": [318.0, 376.0, 763.0, 497.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [412.0, 456.0, 257.0, 89.0], "bbox_xyxy_clipped": [412.0, 456.0, 669.0, 545.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [311.0, 530.0, 458.0, 115.0], "bbox_xyxy_clipped": [311.0, 530.0, 769.0, 645.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [222.0, 332.0, 195.0, 181.0], "bbox_xyxy_clipped": [222.0, 332.0, 417.0, 513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [661.0, 679.0, 182.0, 170.0], "bbox_xyxy_clipped": [661.0, 679.0, 843.0, 849.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002949736562801984}, "Ove": {"reason": null, "status": "ok", "value": 0.5179329410736792}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5a6079518c32ec6f8b7eeaa9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a6079518c32ec6f8b7eeaa9/pipeline/l0_result.json", "sha256": "fc5e103165a534624791af4d8187cecc47e0a4700796d40215076572ca86f4af", "size_bytes": 8430}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a6079518c32ec6f8b7eeaa9/inputs/pfull/asset_manifest.json", "sha256": "2d64a44449f6f467779cd3d99dfed30192e17925f2ffaf8593479b1b495e5b37", "size_bytes": 4546}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a6079518c32ec6f8b7eeaa9/renders/r0_candidate_02.png", "sha256": "c08e63849028c845c7fdba279da0a6e14916de3605278f541f3e647b4ae4f1ab", "size_bytes": 293503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a6079518c32ec6f8b7eeaa9/inputs/r3/r3_asset_manifest.json", "sha256": "676e4a29efe8036a4dbc87570f0848b271b91bfe3de62a71069e86895604ee1a", "size_bytes": 4031}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d5f527f0a3985ede77255d44276fa5dcc776916fcd43414755ec2cedbed80b0a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/inputs/pfull/assets/asset_0000.png", "asset_sha256": "4847f73be6f60579e90051d3363cc47e7bc370b2824980601ce2ed0b6e12f834", "asset_size_bytes": 543, "kind": "asset", "pfull_asset_sha256": "4847f73be6f60579e90051d3363cc47e7bc370b2824980601ce2ed0b6e12f834", "r3_asset_sha256": "4847f73be6f60579e90051d3363cc47e7bc370b2824980601ce2ed0b6e12f834", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "93cd916daae32f001079b1d45a757b91a9bfddc159f24420cb38f9e99240759a", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 3, "valid": 3}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [42.0, 18.0, 360.0, 44.0], "bbox_xyxy_clipped": [42.0, 18.0, 402.0, 62.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [242.0, 40.0, 190.0, 70.0], "bbox_xyxy_clipped": [242.0, 40.0, 432.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [611.0, 4.0, 17.0, 86.0], "bbox_xyxy_clipped": [611.0, 4.0, 628.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 5.027486147232128e-05}, "Ove": {"reason": null, "status": "ok", "value": 0.05377329666972197}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "593d15b6b416135e3bdb7ded3aae7e5254b7ecd25a2a89672a6cbd7da3037e95", "status": "computed"}, "sample_id": "58ab077b95a7a863ddcc72b8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/pipeline/l0_result.json", "sha256": "cadebd0d623dc0b98460dbca7a66d7f6e8e78e45082b038b2280082c395ca869", "size_bytes": 5769}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/inputs/pfull/asset_manifest.json", "sha256": "431660d5f5979ce15851d6e8390052aaf6e23292e52050ee83245eb97c70b98f", "size_bytes": 2487}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/renders/r0_candidate_03.png", "sha256": "d5f527f0a3985ede77255d44276fa5dcc776916fcd43414755ec2cedbed80b0a", "size_bytes": 20520}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/inputs/r3/r3_asset_manifest.json", "sha256": "ea8668280345631e0b7d66fa1e69360b28e00fc6be327c2e50899df313d77aa6", "size_bytes": 2205}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ab077b95a7a863ddcc72b8/inputs/pfull/assets/asset_0000.png", "sha256": "4847f73be6f60579e90051d3363cc47e7bc370b2824980601ce2ed0b6e12f834", "size_bytes": 543}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fc2c0101286c5bf982fd3d9a9d5f3771877cb4e2857bf5c8a19d3222a1403423", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 13, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 110.0, 760.0, 507.0], "bbox_xyxy_clipped": [120.0, 110.0, 880.0, 617.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [764.0, 188.0, 260.0, 121.0], "bbox_xyxy_clipped": [764.0, 188.0, 1024.0, 309.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1200.0, 92.0, 290.0, 219.0], "bbox_xyxy_clipped": [1200.0, 92.0, 1490.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1188.0, 148.0, 520.0, 200.0], "bbox_xyxy_clipped": [1188.0, 148.0, 1708.0, 348.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1180.0, 304.0, 640.0, 182.0], "bbox_xyxy_clipped": [1180.0, 304.0, 1820.0, 486.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1168.0, 470.0, 520.0, 5.0], "bbox_xyxy_clipped": [1168.0, 470.0, 1688.0, 475.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1168.0, 516.0, 580.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1170.0, 582.0, 270.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1170.0, 628.0, 270.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1210.0, 372.0, 235.0, 76.0], "bbox_xyxy_clipped": [1210.0, 372.0, 1445.0, 448.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1210.0, 470.0, 390.0, 71.0], "bbox_xyxy_clipped": [1210.0, 470.0, 1600.0, 541.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1210.0, 570.0, 460.0, 52.0], "bbox_xyxy_clipped": [1210.0, 570.0, 1670.0, 622.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1210.0, 668.0, 255.0, 51.0], "bbox_xyxy_clipped": [1210.0, 668.0, 1465.0, 719.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010188990000015278}, "Ove": {"reason": null, "status": "ok", "value": 0.08443516744975373}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d234fbf8cba87f943250964", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d234fbf8cba87f943250964/pipeline/l0_result.json", "sha256": "1c757b0caa620b988177950ab814d87e3d764f6db648a3bd0d155c2a33bd153d", "size_bytes": 13004}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d234fbf8cba87f943250964/inputs/pfull/asset_manifest.json", "sha256": "7632c83d8385c57dbbf50d8c79e38ca0a6eee9d09170a078cfe0d5d0975e86f3", "size_bytes": 7228}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d234fbf8cba87f943250964/renders/r0_candidate_01.png", "sha256": "fc2c0101286c5bf982fd3d9a9d5f3771877cb4e2857bf5c8a19d3222a1403423", "size_bytes": 637464}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d234fbf8cba87f943250964/inputs/r3/r3_asset_manifest.json", "sha256": "93887a11697891932057397dedbec19e7f6618982a26eb7625e2f920ea54d507", "size_bytes": 6503}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93a664c176d922d4ec46e3b208753c48ee7aeb9aa4c38a94e4cba5d515c3e603", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/inputs/pfull/assets/asset_0000.png", "asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "asset_size_bytes": 2089, "kind": "asset", "pfull_asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "r3_asset_sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "435a4f58b2a8af98e3fee167ba0d0bf84db5515971fd0b0dc34fc437c3eddcfb", "canvas": {"height": 500, "width": 500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 3, "valid": 3}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [125.0, 56.0, 250.0, 212.0], "bbox_xyxy_clipped": [125.0, 56.0, 375.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [95.0, 292.0, 310.0, 86.0], "bbox_xyxy_clipped": [95.0, 292.0, 405.0, 378.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [105.0, 390.0, 290.0, 28.0], "bbox_xyxy_clipped": [105.0, 390.0, 395.0, 418.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004498065384408286}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d7230682b80a7781e0da26b8665e4c5c590ac72d8787ec42e1e88d699c38c5f8", "status": "computed"}, "sample_id": "5da735deabc8ea6d1cc70d09", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/pipeline/l0_result.json", "sha256": "61f346ec47cea299a6cca00f03035734339d4b40b302e55be2d32879f44ff5be", "size_bytes": 5466}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/inputs/pfull/asset_manifest.json", "sha256": "79c662d4be71d8431226366451586b9a622b79ecb8f322defb6e5fdf70090852", "size_bytes": 2540}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/renders/r0_candidate_02.png", "sha256": "93a664c176d922d4ec46e3b208753c48ee7aeb9aa4c38a94e4cba5d515c3e603", "size_bytes": 50641}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/inputs/r3/r3_asset_manifest.json", "sha256": "d41c35a3adfb87db3087973cb5a81e4c2c6df0ce8dd05a701a70877c4d10f24b", "size_bytes": 2257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5da735deabc8ea6d1cc70d09/inputs/pfull/assets/asset_0000.png", "sha256": "040ed58bf188ad01497bb1f7b4677b979d4b9b826429be6e3db9cb6a028549a3", "size_bytes": 2089}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "eb83d327dab963ee6e48d29a23515f8231beff1c681a1e4ade2390a4ecd7b3af", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 28, "valid": 28}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [329.0, 560.0, 240.0, 480.0], "bbox_xyxy_clipped": [329.0, 560.0, 569.0, 1040.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [426.0, 606.0, 145.0, 139.0], "bbox_xyxy_clipped": [426.0, 606.0, 571.0, 745.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [452.0, 733.0, 118.0, 248.0], "bbox_xyxy_clipped": [452.0, 733.0, 570.0, 981.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [34.0, 82.0, 206.0, 47.0], "bbox_xyxy_clipped": [34.0, 82.0, 240.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 134.0, 166.0, 34.0], "bbox_xyxy_clipped": [34.0, 134.0, 200.0, 168.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 175.0, 118.0, 49.0], "bbox_xyxy_clipped": [34.0, 175.0, 152.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [34.0, 232.0, 213.0, 31.0], "bbox_xyxy_clipped": [34.0, 232.0, 247.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 272.0, 177.0, 30.0], "bbox_xyxy_clipped": [34.0, 272.0, 211.0, 302.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [34.0, 310.0, 133.0, 44.0], "bbox_xyxy_clipped": [34.0, 310.0, 167.0, 354.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [34.0, 44.0, 368.0, 90.0], "bbox_xyxy_clipped": [34.0, 44.0, 402.0, 134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [24.0, 49.0, 548.0, 7.0], "bbox_xyxy_clipped": [24.0, 49.0, 572.0, 56.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [26.0, 142.0, 544.0, 7.0], "bbox_xyxy_clipped": [26.0, 142.0, 570.0, 149.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [29.0, 232.0, 504.0, 22.0], "bbox_xyxy_clipped": [29.0, 232.0, 533.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [31.0, 359.0, 503.0, 22.0], "bbox_xyxy_clipped": [31.0, 359.0, 534.0, 381.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [29.0, 470.0, 504.0, 22.0], "bbox_xyxy_clipped": [29.0, 470.0, 533.0, 492.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [30.0, 584.0, 504.0, 22.0], "bbox_xyxy_clipped": [30.0, 584.0, 534.0, 606.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [29.0, 699.0, 504.0, 22.0], "bbox_xyxy_clipped": [29.0, 699.0, 533.0, 721.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [29.0, 815.0, 504.0, 22.0], "bbox_xyxy_clipped": [29.0, 815.0, 533.0, 837.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [34.0, 952.0, 335.0, 5.0], "bbox_xyxy_clipped": [34.0, 952.0, 369.0, 957.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [33.0, 1011.0, 335.0, 5.0], "bbox_xyxy_clipped": [33.0, 1011.0, 368.0, 1016.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [33.0, 1070.0, 335.0, 5.0], "bbox_xyxy_clipped": [33.0, 1070.0, 368.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [33.0, 1129.0, 335.0, 5.0], "bbox_xyxy_clipped": [33.0, 1129.0, 368.0, 1134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [33.0, 1188.0, 335.0, 5.0], "bbox_xyxy_clipped": [33.0, 1188.0, 368.0, 1193.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [382.0, 965.0, 173.0, 12.0], "bbox_xyxy_clipped": [382.0, 965.0, 555.0, 977.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [516.0, 949.0, 31.0, 31.0], "bbox_xyxy_clipped": [516.0, 949.0, 547.0, 980.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [492.0, 1002.0, 29.0, 29.0], "bbox_xyxy_clipped": [492.0, 1002.0, 521.0, 1031.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [538.0, 1044.0, 31.0, 31.0], "bbox_xyxy_clipped": [538.0, 1044.0, 569.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [469.0, 1088.0, 33.0, 33.0], "bbox_xyxy_clipped": [469.0, 1088.0, 502.0, 1121.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0044488026151774385}, "Ove": {"reason": null, "status": "ok", "value": 0.06463063686473693}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "58b822ad95a7a863ddccadc9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b822ad95a7a863ddccadc9/pipeline/l0_result.json", "sha256": "e486e5689bab8aff8bbd2c4c20f1bcccf2355c99c39aa9aba61df90aadf75b95", "size_bytes": 20379}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b822ad95a7a863ddccadc9/inputs/pfull/asset_manifest.json", "sha256": "c013efead60a4010b69078f0f167f62e284f651994558a319e4f8cb46a2ebde8", "size_bytes": 14899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b822ad95a7a863ddccadc9/renders/r0_candidate_03.png", "sha256": "eb83d327dab963ee6e48d29a23515f8231beff1c681a1e4ade2390a4ecd7b3af", "size_bytes": 232962}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b822ad95a7a863ddccadc9/inputs/r3/r3_asset_manifest.json", "sha256": "b5f4ff163f658ad388c8a82bd6ccf43109e781a50ab47a2384cbbf4421fa6cae", "size_bytes": 12648}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2e6d9bae249207b95091c7506312daba17ba35d2eca868a922fffb8cbdf49c0d", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 16, "valid": 15}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [700.0, 125.0, 330.0, 174.0], "bbox_xyxy_clipped": [700.0, 125.0, 1030.0, 299.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [700.0, 78.0, 145.0, 19.0], "bbox_xyxy_clipped": [700.0, 78.0, 845.0, 97.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [705.0, 322.0, 215.0, 26.0], "bbox_xyxy_clipped": [705.0, 322.0, 920.0, 348.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [704.0, 365.0, 278.0, 25.0], "bbox_xyxy_clipped": [704.0, 365.0, 982.0, 390.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [848.0, 410.0, 120.0, 36.0], "bbox_xyxy_clipped": [848.0, 410.0, 968.0, 446.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1000.0, 408.0, 70.0, 79.0], "bbox_xyxy_clipped": [1000.0, 408.0, 1070.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [708.0, 448.0, 168.0, 39.0], "bbox_xyxy_clipped": [708.0, 448.0, 876.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [690.0, 1493.0, 360.0, 34.0], "bbox_xyxy_clipped": [690.0, 1493.0, 1050.0, 1527.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 150.0, 210.0, 303.0], "bbox_xyxy_clipped": [40.0, 150.0, 250.0, 453.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 430.0, 150.0, 357.0], "bbox_xyxy_clipped": [0.0, 430.0, 150.0, 787.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [140.0, 650.0, 180.0, 340.0], "bbox_xyxy_clipped": [140.0, 650.0, 320.0, 990.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [70.0, 950.0, 320.0, 295.0], "bbox_xyxy_clipped": [70.0, 950.0, 390.0, 1245.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [338.0, 1080.0, 84.0, 16.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 540.0, 1164.0], "bbox_xyxy_clipped": [0.0, 0.0, 540.0, 1164.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [60.0, 160.0, 575.0, 540.0], "bbox_xyxy_clipped": [60.0, 160.0, 635.0, 700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 1180.0, 470.0, 406.0], "bbox_xyxy_clipped": [0.0, 1180.0, 470.0, 1586.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005302749855575921}, "Ove": {"reason": null, "status": "ok", "value": 0.08014379637074254}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5c3c6ed8048d064dbc3d79a3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c3c6ed8048d064dbc3d79a3/pipeline/l0_result.json", "sha256": "b76b42c6f10638a191617a9f6e57f2654126d0192f6355782dc58a9371330de7", "size_bytes": 12309}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c3c6ed8048d064dbc3d79a3/inputs/pfull/asset_manifest.json", "sha256": "bcfeef712aabef7c97860635c72da1a6ded9f8c8671fd8d13b234fd491a82fbc", "size_bytes": 8817}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c3c6ed8048d064dbc3d79a3/renders/r0_candidate_01.png", "sha256": "2e6d9bae249207b95091c7506312daba17ba35d2eca868a922fffb8cbdf49c0d", "size_bytes": 126302}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c3c6ed8048d064dbc3d79a3/inputs/r3/r3_asset_manifest.json", "sha256": "8e597ef4365e786d91ecb3228490847b82604c9956878d89eab3d570bea53ee4", "size_bytes": 7903}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "62e80908e706d68e5feaf87c002534120c33b2a14031219995576f4f578203f7", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [560.0, 240.0, 448.0, 226.0], "bbox_xyxy_clipped": [560.0, 240.0, 1008.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [74.0, 84.0, 292.0, 139.0], "bbox_xyxy_clipped": [74.0, 84.0, 366.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [58.0, 72.0, 394.0, 53.0], "bbox_xyxy_clipped": [58.0, 72.0, 452.0, 125.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [154.0, 136.0, 42.0, 40.0], "bbox_xyxy_clipped": [154.0, 136.0, 196.0, 176.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [208.0, 147.0, 42.0, 40.0], "bbox_xyxy_clipped": [208.0, 147.0, 250.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [262.0, 138.0, 42.0, 40.0], "bbox_xyxy_clipped": [262.0, 138.0, 304.0, 178.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [92.0, 96.0, 312.0, 29.0], "bbox_xyxy_clipped": [92.0, 96.0, 404.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [110.0, 130.0, 166.0, 40.0], "bbox_xyxy_clipped": [110.0, 130.0, 276.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [744.0, 392.0, 92.0, 118.0], "bbox_xyxy_clipped": [744.0, 392.0, 836.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [842.0, 382.0, 97.0, 126.0], "bbox_xyxy_clipped": [842.0, 382.0, 939.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005487107725143673}, "Ove": {"reason": null, "status": "ok", "value": 0.1691010223448591}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5a4e0e518c32ec6f8b930119", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4e0e518c32ec6f8b930119/pipeline/l0_result.json", "sha256": "ea486f60415bf9da1e7f37648180f90f5bd2074985d05c25a9a3eb8864929c01", "size_bytes": 9596}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4e0e518c32ec6f8b930119/inputs/pfull/asset_manifest.json", "sha256": "6d7dc0b666923faedf6f2ac043e6b22305d6d41e81b2ab560b59cd9168147675", "size_bytes": 5560}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4e0e518c32ec6f8b930119/renders/r0_candidate_03.png", "sha256": "62e80908e706d68e5feaf87c002534120c33b2a14031219995576f4f578203f7", "size_bytes": 153727}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4e0e518c32ec6f8b930119/inputs/r3/r3_asset_manifest.json", "sha256": "b91e9d063e70f0b008998d330d3c4a5c99691a05b007dd9b319f16a05438062c", "size_bytes": 4836}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e31d2c8981e56a95c18633d7fa487d024c37c52a411d4ba1d07ad55c64460186", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0e1096616e9b03a50161584507c7511fa47d0aa511d6a9f9fd3e9873d12c8921", "canvas": {"height": 1728, "width": 1296}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1296.0, 648.0], "bbox_xyxy_clipped": [0.0, 0.0, 1296.0, 648.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [930.0, 70.0, 250.0, 341.0], "bbox_xyxy_clipped": [930.0, 70.0, 1180.0, 411.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [602.0, 92.0, 92.0, 178.0], "bbox_xyxy_clipped": [602.0, 92.0, 694.0, 270.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [330.0, 760.0, 636.0, 472.0], "bbox_xyxy_clipped": [330.0, 760.0, 966.0, 1232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [344.0, 1265.0, 608.0, 90.0], "bbox_xyxy_clipped": [344.0, 1265.0, 952.0, 1355.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [300.0, 1375.0, 696.0, 190.0], "bbox_xyxy_clipped": [300.0, 1375.0, 996.0, 1565.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [250.0, 1605.0, 796.0, 123.0], "bbox_xyxy_clipped": [250.0, 1605.0, 1046.0, 1728.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006310096575612618}, "Ove": {"reason": null, "status": "ok", "value": 0.01728728471269624}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b45151d495426202cbcc69fd71097fa9e1b0cffe9f9925c94e2a055e624762c1", "status": "computed"}, "sample_id": "599ecac21350e832930076f1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/599ecac21350e832930076f1/pipeline/l0_result.json", "sha256": "2bafabe53f1e73536347eb8162ee71a266526713a8ffca1f6b1ca31f3f457b87", "size_bytes": 7121}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/599ecac21350e832930076f1/inputs/pfull/asset_manifest.json", "sha256": "d8a88574b0c1e5ae1ceffe316c7881fa2ced33c26a1f02b532211f2e8050ec0c", "size_bytes": 4197}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/599ecac21350e832930076f1/renders/r0_candidate_01.png", "sha256": "e31d2c8981e56a95c18633d7fa487d024c37c52a411d4ba1d07ad55c64460186", "size_bytes": 19031}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/599ecac21350e832930076f1/inputs/r3/r3_asset_manifest.json", "sha256": "c4e32a2dd6a516d62440c30bbd2e1387d3f7c6e3f44f9ccfc81e0688857e0a22", "size_bytes": 3838}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7bdb658ce34e8f58a00f889d7613750a3f0a5127e1b3a2169f4dff15feffc65f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/inputs/pfull/assets/asset_0000.png", "asset_sha256": "a4049e1aaa8ac2fc33b7b8349d4b4a97e59aa4542f730e747aa1053fc4facc2e", "asset_size_bytes": 1004, "kind": "asset", "pfull_asset_sha256": "a4049e1aaa8ac2fc33b7b8349d4b4a97e59aa4542f730e747aa1053fc4facc2e", "r3_asset_sha256": "a4049e1aaa8ac2fc33b7b8349d4b4a97e59aa4542f730e747aa1053fc4facc2e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "45c1af92f25e79343f3f92ef874bed9d4aa64f2d63b2cee50a375329e369e1b6", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0011", "bbox_lwh_raw": [18.0, 24.0, 140.0, 44.0], "bbox_xyxy_clipped": [18.0, 24.0, 158.0, 68.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [22.0, 74.0, 112.0, 52.0], "bbox_xyxy_clipped": [22.0, 74.0, 134.0, 126.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [204.0, 48.0, 112.0, 112.0], "bbox_xyxy_clipped": [204.0, 48.0, 316.0, 160.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [184.0, 86.0, 82.0, 82.0], "bbox_xyxy_clipped": [184.0, 86.0, 266.0, 168.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [228.0, 116.0, 54.0, 54.0], "bbox_xyxy_clipped": [228.0, 116.0, 282.0, 170.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [170.0, 136.0, 44.0, 44.0], "bbox_xyxy_clipped": [170.0, 136.0, 214.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [246.0, 78.0, 64.0, 64.0], "bbox_xyxy_clipped": [246.0, 78.0, 310.0, 142.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [286.0, 34.0, 16.0, 16.0], "bbox_xyxy_clipped": [286.0, 34.0, 302.0, 50.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [304.0, 62.0, 12.0, 12.0], "bbox_xyxy_clipped": [304.0, 62.0, 316.0, 74.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [292.0, 176.0, 10.0, 10.0], "bbox_xyxy_clipped": [292.0, 176.0, 302.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [310.0, 148.0, 14.0, 14.0], "bbox_xyxy_clipped": [310.0, 148.0, 324.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002179498811206513}, "Ove": {"reason": null, "status": "ok", "value": 0.13720006229633253}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "1a0729fc17cff8a751fcc96b564e53b85d3747771dbe54e5a450fba5d4115ab0", "status": "computed"}, "sample_id": "58b032a995a7a863ddcc9615", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/pipeline/l0_result.json", "sha256": "a7f8af7fbdcc8c41c6e8fdcd3f309ddd07c6a81e6ace90e6dce1f54b7c58ed63", "size_bytes": 9973}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/inputs/pfull/asset_manifest.json", "sha256": "9f2178125915a5d6516193ce1964e19a538911fc3c812da7d39405b66b33ec94", "size_bytes": 6714}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/renders/r0_candidate_03.png", "sha256": "7bdb658ce34e8f58a00f889d7613750a3f0a5127e1b3a2169f4dff15feffc65f", "size_bytes": 34657}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/inputs/r3/r3_asset_manifest.json", "sha256": "77595783dd0c7aa7c733badffd8edd0091f330dceaec2beccf5a49022d0ffd0b", "size_bytes": 5651}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58b032a995a7a863ddcc9615/inputs/pfull/assets/asset_0000.png", "sha256": "a4049e1aaa8ac2fc33b7b8349d4b4a97e59aa4542f730e747aa1053fc4facc2e", "size_bytes": 1004}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"metrics": {}, "reason": "A3 summary did not mark sample completed", "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "sample_id": "5d0cf30b8cba87f94359542b", "source_artifacts": [], "source_status": "failed", "status": "source_skipped", "summary_entry": {"error_type": "OperatorSkip", "message": "operator-declared skip on resume; prior attempt exhausted validation retries and retry was not authorized", "sample_id": "5d0cf30b8cba87f94359542b", "status": "failed"}} +{"b0_render_sha256": "37d23bf7e2cf920fc478ec56a4c0a8c59a9e3834335b7d970975e9f9c9b25b55", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 120.0, 980.0, 555.0], "bbox_xyxy_clipped": [120.0, 120.0, 1100.0, 675.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [980.0, 155.0, 760.0, 428.0], "bbox_xyxy_clipped": [980.0, 155.0, 1740.0, 583.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1090.0, 650.0, 650.0, 500.0], "bbox_xyxy_clipped": [1090.0, 650.0, 1740.0, 1150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1810.0, 170.0, 620.0, 8.0], "bbox_xyxy_clipped": [1810.0, 170.0, 2430.0, 178.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1410.0, 250.0, 820.0, 205.0], "bbox_xyxy_clipped": [1410.0, 250.0, 2230.0, 455.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1435.0, 470.0, 920.0, 138.0], "bbox_xyxy_clipped": [1435.0, 470.0, 2355.0, 608.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1410.0, 615.0, 860.0, 185.0], "bbox_xyxy_clipped": [1410.0, 615.0, 2270.0, 800.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0019365423111196835}, "Ove": {"reason": null, "status": "ok", "value": 0.0597695478487293}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "595293f495a7a863ddcdffe7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595293f495a7a863ddcdffe7/pipeline/l0_result.json", "sha256": "c79dca3611a38eafa5d34ca6cadab0e0b9ee8250e133c36853dac7a06182f604", "size_bytes": 8412}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595293f495a7a863ddcdffe7/inputs/pfull/asset_manifest.json", "sha256": "8b75ef68fcd076d2a612455e1fa510406af4775dab5387484f633710859a5edb", "size_bytes": 4020}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595293f495a7a863ddcdffe7/renders/r0_candidate_01.png", "sha256": "37d23bf7e2cf920fc478ec56a4c0a8c59a9e3834335b7d970975e9f9c9b25b55", "size_bytes": 999760}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/595293f495a7a863ddcdffe7/inputs/r3/r3_asset_manifest.json", "sha256": "29436156deb0e35820745bfeadaf938b6dd33ca0f966beac2af6f181abebc306", "size_bytes": 3619}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3ed61f081ba7ef98f77488e28e3e1950b7d728365d72c4cbf92f6e6985e51a3a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [44.0, 78.0, 248.0, 42.0], "bbox_xyxy_clipped": [44.0, 78.0, 292.0, 120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [73.0, 130.0, 160.0, 22.0], "bbox_xyxy_clipped": [73.0, 130.0, 233.0, 152.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [520.0, 24.0, 300.0, 449.0], "bbox_xyxy_clipped": [520.0, 24.0, 820.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [666.0, 40.0, 162.0, 60.0], "bbox_xyxy_clipped": [666.0, 40.0, 828.0, 100.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [620.0, 250.0, 192.0, 57.0], "bbox_xyxy_clipped": [620.0, 250.0, 812.0, 307.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [248.0, 74.0, 26.0, 19.0], "bbox_xyxy_clipped": [248.0, 74.0, 274.0, 93.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [592.0, 146.0, 146.0, 35.0], "bbox_xyxy_clipped": [592.0, 146.0, 738.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [703.0, 201.0, 118.0, 104.0], "bbox_xyxy_clipped": [703.0, 201.0, 821.0, 305.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004085074962361366}, "Occ": {"reason": null, "status": "ok", "value": 0.0044540908889527985}, "Ove": {"reason": null, "status": "ok", "value": 0.10169588670444661}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "59c9fd0a1350e832930151ef", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59c9fd0a1350e832930151ef/pipeline/l0_result.json", "sha256": "9121a7a5d3f35a759e88c65a6f61e3d556c87166e80cccd96b5e13b06d148eae", "size_bytes": 8648}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59c9fd0a1350e832930151ef/inputs/pfull/asset_manifest.json", "sha256": "f3119866c9601a01660415c88138e5cddb6d678da8f472989dd34074bebd9d9c", "size_bytes": 4543}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59c9fd0a1350e832930151ef/renders/r0_candidate_03.png", "sha256": "3ed61f081ba7ef98f77488e28e3e1950b7d728365d72c4cbf92f6e6985e51a3a", "size_bytes": 194301}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59c9fd0a1350e832930151ef/inputs/r3/r3_asset_manifest.json", "sha256": "a2ff943c668a48637cbf486ea13db2c7cacdc61467d23220818e297cb8cd9a82", "size_bytes": 3996}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "491d81409c6761b3a9d8b7ad2e53c17be9395385ce249ac55154fb4883186647", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/inputs/pfull/assets/asset_0000.png", "asset_sha256": "91b07c89f37fa0e54bd35dbb5a71c0b2062ef6375920c8755f1e3951835d654f", "asset_size_bytes": 138442, "kind": "asset", "pfull_asset_sha256": "91b07c89f37fa0e54bd35dbb5a71c0b2062ef6375920c8755f1e3951835d654f", "r3_asset_sha256": "91b07c89f37fa0e54bd35dbb5a71c0b2062ef6375920c8755f1e3951835d654f", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "777f8eed8dda84f43c2666829ef0a27ed561bf10d6f2d69ef9cf1abb209ece9c", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 20, "valid": 19}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [20.0, 22.0, 296.0, 214.0], "bbox_xyxy_clipped": [20.0, 22.0, 316.0, 236.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [38.0, 31.0, 122.0, 91.0], "bbox_xyxy_clipped": [38.0, 31.0, 160.0, 122.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [216.0, 166.0, 74.0, 54.0], "bbox_xyxy_clipped": [216.0, 166.0, 290.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [108.0, 40.0, 85.0, 23.0], "bbox_xyxy_clipped": [108.0, 40.0, 193.0, 63.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [202.0, 45.0, 36.0, 24.0], "bbox_xyxy_clipped": [202.0, 45.0, 238.0, 69.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [94.0, 34.0, 108.0, 64.0], "bbox_xyxy_clipped": [94.0, 34.0, 202.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [143.0, 29.0, 12.0, 180.0], "bbox_xyxy_clipped": [143.0, 29.0, 155.0, 209.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [151.0, 58.0, 97.0, 1.0], "bbox_xyxy_clipped": [151.0, 58.0, 248.0, 59.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 81.0, 96.0, 1.0], "bbox_xyxy_clipped": [150.0, 81.0, 246.0, 82.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [78.0, 104.0, 126.0, 23.0], "bbox_xyxy_clipped": [78.0, 104.0, 204.0, 127.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [118.0, 128.0, 51.0, 19.0], "bbox_xyxy_clipped": [118.0, 128.0, 169.0, 147.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [106.0, 140.0, 70.0, 13.0], "bbox_xyxy_clipped": [106.0, 140.0, 176.0, 153.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [118.0, 154.0, 54.0, 10.0], "bbox_xyxy_clipped": [118.0, 154.0, 172.0, 164.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [57.0, 183.0, 222.0, 18.0], "bbox_xyxy_clipped": [57.0, 183.0, 279.0, 201.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [97.0, 206.0, 74.0, 9.0], "bbox_xyxy_clipped": [97.0, 206.0, 171.0, 215.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [73.0, 216.0, 191.0, 24.0], "bbox_xyxy_clipped": [73.0, 216.0, 264.0, 240.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [23.0, 170.0, 30.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0019", "bbox_lwh_raw": [38.0, 159.0, 54.0, 32.0], "bbox_xyxy_clipped": [38.0, 159.0, 92.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [86.0, 253.0, 116.0, 12.0], "bbox_xyxy_clipped": [86.0, 253.0, 202.0, 265.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [87.0, 268.0, 100.0, 10.0], "bbox_xyxy_clipped": [87.0, 268.0, 187.0, 278.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.06441572192199248}, "Ove": {"reason": null, "status": "ok", "value": 0.13556008417424767}, "Rea": {"reason": null, "status": "ok", "value": 0.10106853629388163}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "98dbcdd3bb0840fd84ad89036080a0168875b6038f17460b05f1709c9b856d79", "status": "computed"}, "sample_id": "58891e6395a7a863ddcc2f57", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/pipeline/l0_result.json", "sha256": "357b84d8d8c2c38cdf03d81b412678561c6e4967bbd47cbca7cebd9c0213449d", "size_bytes": 16519}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/inputs/pfull/asset_manifest.json", "sha256": "aef937f32a15551b8d5cf1fecba5fb3053ec292ce50115e4b88d7c82ab0f5a75", "size_bytes": 11477}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/renders/r0_candidate_02.png", "sha256": "491d81409c6761b3a9d8b7ad2e53c17be9395385ce249ac55154fb4883186647", "size_bytes": 97238}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/inputs/r3/r3_asset_manifest.json", "sha256": "e8305f351c22fe054b8714de2b8330b5c0550d99bca1033bc48bd8f3de03b3e2", "size_bytes": 10219}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58891e6395a7a863ddcc2f57/inputs/pfull/assets/asset_0000.png", "sha256": "91b07c89f37fa0e54bd35dbb5a71c0b2062ef6375920c8755f1e3951835d654f", "size_bytes": 138442}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "30e935a2ca2576a803a17710760d68f1cb851605085900afd5116201a3eacd3b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [48.0, 140.0, 330.0, 276.0], "bbox_xyxy_clipped": [48.0, 140.0, 378.0, 416.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 118.0, 150.0, 126.0], "bbox_xyxy_clipped": [18.0, 118.0, 168.0, 244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [54.0, 296.0, 120.0, 75.0], "bbox_xyxy_clipped": [54.0, 296.0, 174.0, 371.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [170.0, 308.0, 82.0, 111.0], "bbox_xyxy_clipped": [170.0, 308.0, 252.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [444.0, 252.0, 370.0, 71.0], "bbox_xyxy_clipped": [444.0, 252.0, 814.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [506.0, 132.0, 296.0, 54.0], "bbox_xyxy_clipped": [506.0, 132.0, 802.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [462.0, 366.0, 380.0, 33.0], "bbox_xyxy_clipped": [462.0, 366.0, 842.0, 399.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [520.0, 648.0, 340.0, 45.0], "bbox_xyxy_clipped": [520.0, 648.0, 860.0, 693.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.007400121765073799}, "Occ": {"reason": null, "status": "ok", "value": 0.004364271863968288}, "Ove": {"reason": null, "status": "ok", "value": 0.04223789574667862}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "590af6a995a7a863ddcd6ab6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/590af6a995a7a863ddcd6ab6/pipeline/l0_result.json", "sha256": "971ac7a3e004626f53a09eb1c0a2c25feaf0167820fc3271d92ce9693e751183", "size_bytes": 8022}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/590af6a995a7a863ddcd6ab6/inputs/pfull/asset_manifest.json", "sha256": "ae7c3ed719764bbfd309dcd3a23e4a5544b98ff798ccb360867d3ea813de7b3e", "size_bytes": 4660}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/590af6a995a7a863ddcd6ab6/renders/r0_candidate_02.png", "sha256": "30e935a2ca2576a803a17710760d68f1cb851605085900afd5116201a3eacd3b", "size_bytes": 95281}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/590af6a995a7a863ddcd6ab6/inputs/r3/r3_asset_manifest.json", "sha256": "8215fb70bea2ae8894dac5fae59b0ea43ad1508182ff6bc727993adb1a5eee49", "size_bytes": 4222}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "259c8941b51311e1d1819179880fe795177c71c4d96884ea15aa1bbc29adf850", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 17, "valid": 15}, "elements": [{"asset_id": "asset_0013", "bbox_lwh_raw": [60.0, 34.0, 338.0, 64.0], "bbox_xyxy_clipped": [60.0, 34.0, 398.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [46.0, 28.0, 278.0, 387.0], "bbox_xyxy_clipped": [46.0, 28.0, 324.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 116.0, 13.0, 138.0], "bbox_xyxy_clipped": [44.0, 116.0, 57.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [62.0, 108.0, 10.0, 130.0], "bbox_xyxy_clipped": [62.0, 108.0, 72.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [62.0, 168.0, 250.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [62.0, 180.0, 250.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [60.0, 262.0, 210.0, 5.0], "bbox_xyxy_clipped": [60.0, 262.0, 270.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [64.0, 132.0, 120.0, 79.0], "bbox_xyxy_clipped": [64.0, 132.0, 184.0, 211.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [64.0, 210.0, 92.0, 51.0], "bbox_xyxy_clipped": [64.0, 210.0, 156.0, 261.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [66.0, 284.0, 125.0, 37.0], "bbox_xyxy_clipped": [66.0, 284.0, 191.0, 321.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [664.0, 92.0, 260.0, 370.0], "bbox_xyxy_clipped": [664.0, 92.0, 924.0, 462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [676.0, 112.0, 236.0, 243.0], "bbox_xyxy_clipped": [676.0, 112.0, 912.0, 355.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [838.0, 102.0, 152.0, 152.0], "bbox_xyxy_clipped": [838.0, 102.0, 990.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [854.0, 284.0, 98.0, 166.0], "bbox_xyxy_clipped": [854.0, 284.0, 952.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [68.0, 392.0, 170.0, 43.0], "bbox_xyxy_clipped": [68.0, 392.0, 238.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [58.0, 390.0, 50.0, 32.0], "bbox_xyxy_clipped": [58.0, 390.0, 108.0, 422.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [62.0, 440.0, 212.0, 51.0], "bbox_xyxy_clipped": [62.0, 440.0, 274.0, 491.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0037830391289568523}, "Ove": {"reason": null, "status": "ok", "value": 0.11433683814867068}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5db2ba06abc8ea6d1c4770b7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2ba06abc8ea6d1c4770b7/pipeline/l0_result.json", "sha256": "6847588fb52c1f430f71939e6c4e74160969628b3521b5f874c3ee40f7c72e17", "size_bytes": 12893}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2ba06abc8ea6d1c4770b7/inputs/pfull/asset_manifest.json", "sha256": "313c9501e0a81538a43020a64f182842f6c034aa9694d2a65d32c74a823a1d93", "size_bytes": 9360}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2ba06abc8ea6d1c4770b7/renders/r0_candidate_03.png", "sha256": "259c8941b51311e1d1819179880fe795177c71c4d96884ea15aa1bbc29adf850", "size_bytes": 134131}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2ba06abc8ea6d1c4770b7/inputs/r3/r3_asset_manifest.json", "sha256": "77a868d74f8eb83cf94f8f10b0cb555f6d8fb3b4641abab1eceb6a5120bb0aeb", "size_bytes": 8266}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "88eae14f2f666541c8ae334e17379e11e0dc4989cad5582dc666813566e7d3a1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/inputs/pfull/assets/asset_0000.png", "asset_sha256": "927d9e019ad3d7d491e64453ebfce08188f715b9253e436cd83ae0e304cfb42c", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "927d9e019ad3d7d491e64453ebfce08188f715b9253e436cd83ae0e304cfb42c", "r3_asset_sha256": "927d9e019ad3d7d491e64453ebfce08188f715b9253e436cd83ae0e304cfb42c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "76a6c491f24129c67f752ec70f9ee0738185a8a85e77abc07ce9e8da6b01f5bc", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [28.0, 44.0, 168.0, 37.0], "bbox_xyxy_clipped": [28.0, 44.0, 196.0, 81.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 92.0, 173.0, 14.0], "bbox_xyxy_clipped": [28.0, 92.0, 201.0, 106.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [28.0, 144.0, 190.0, 42.0], "bbox_xyxy_clipped": [28.0, 144.0, 218.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 214.0, 176.0, 18.0], "bbox_xyxy_clipped": [28.0, 214.0, 204.0, 232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [28.0, 292.0, 135.0, 10.0], "bbox_xyxy_clipped": [28.0, 292.0, 163.0, 302.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [194.0, 52.0, 138.0, 32.0], "bbox_xyxy_clipped": [194.0, 52.0, 332.0, 84.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.03894825120846449}, "Ove": {"reason": null, "status": "ok", "value": 0.0009141920433768363}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "8648fb269416c0233d7a09bcdf1ecca0bee97ff1d199a53798a212f13a571e55", "status": "computed"}, "sample_id": "59b27df41350e8329300d95d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/pipeline/l0_result.json", "sha256": "3d6bcd3d2bbf2c27289e98924938256aae47b49baafac856986e6e9536a8b206", "size_bytes": 8250}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/inputs/pfull/asset_manifest.json", "sha256": "dd97993381c62b83923a0002b34ec106aeb458734a8063b4480c657b890d55aa", "size_bytes": 4377}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/renders/r0_candidate_01.png", "sha256": "88eae14f2f666541c8ae334e17379e11e0dc4989cad5582dc666813566e7d3a1", "size_bytes": 38220}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/inputs/r3/r3_asset_manifest.json", "sha256": "f58c0afc7c3393dbd83d3361e72c25075ba8629ecc62e10e5d07281515e9cefb", "size_bytes": 4036}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b27df41350e8329300d95d/inputs/pfull/assets/asset_0000.png", "sha256": "927d9e019ad3d7d491e64453ebfce08188f715b9253e436cd83ae0e304cfb42c", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3a1f0b04301565b0d529b6ba78de70fe83dd94eaa2f093414a25403141b96689", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc6e5f6b16db1a64789c64daa557ba7ad0250c37cece34bf827354789a980649", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [8.0, 7.0, 148.0, 80.0], "bbox_xyxy_clipped": [8.0, 7.0, 156.0, 87.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [175.0, 16.0, 503.0, 58.0], "bbox_xyxy_clipped": [175.0, 16.0, 678.0, 74.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [295.0, 24.0, 267.0, 82.0], "bbox_xyxy_clipped": [295.0, 24.0, 562.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [510.0, 57.0, 85.0, 35.0], "bbox_xyxy_clipped": [510.0, 57.0, 595.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [214.0, 21.0, 36.0, 25.0], "bbox_xyxy_clipped": [214.0, 21.0, 250.0, 46.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [579.0, 20.0, 30.0, 11.0], "bbox_xyxy_clipped": [579.0, 20.0, 609.0, 31.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [608.0, 24.0, 108.0, 60.0], "bbox_xyxy_clipped": [608.0, 24.0, 716.0, 84.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [626.0, 38.0, 46.0, 32.0], "bbox_xyxy_clipped": [626.0, 38.0, 672.0, 70.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [650.0, 29.0, 39.0, 22.0], "bbox_xyxy_clipped": [650.0, 29.0, 689.0, 51.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [671.0, 43.0, 31.0, 16.0], "bbox_xyxy_clipped": [671.0, 43.0, 702.0, 59.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007215407704136267}, "Ove": {"reason": null, "status": "ok", "value": 0.14686507116051448}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f0d8e59a4c4d0091ee540d43a9e78c9993ad8a59fcc519bd0d92fbcfabca8038", "status": "computed"}, "sample_id": "5bb488ea78e1194aa6365f98", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bb488ea78e1194aa6365f98/pipeline/l0_result.json", "sha256": "8af1c9e3d2ea87837a51a6671ddec32e3c3ed5c2afacdd17ebdf2b02a2d6862b", "size_bytes": 10010}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bb488ea78e1194aa6365f98/inputs/pfull/asset_manifest.json", "sha256": "515c420f79afcbbdf7c0182a1901c09aeeccafcc4d1b54ae8c86ee7a705afa24", "size_bytes": 5572}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bb488ea78e1194aa6365f98/renders/r0_candidate_01.png", "sha256": "3a1f0b04301565b0d529b6ba78de70fe83dd94eaa2f093414a25403141b96689", "size_bytes": 28243}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bb488ea78e1194aa6365f98/inputs/r3/r3_asset_manifest.json", "sha256": "2cbda0e928a6a8d0b33123f3f36e3b4b6b2ab13322ea054dccf61177d460fa77", "size_bytes": 4830}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1f8aa2ac6e352174d2b04f062f1a04611aaa1afd64085a5fd15466ec00e0c9bc", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [56.0, 78.0, 132.0, 132.0], "bbox_xyxy_clipped": [56.0, 78.0, 188.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [870.0, 84.0, 110.0, 110.0], "bbox_xyxy_clipped": [870.0, 84.0, 980.0, 194.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [130.0, 520.0, 820.0, 85.0], "bbox_xyxy_clipped": [130.0, 520.0, 950.0, 605.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [112.0, 626.0, 860.0, 12.0], "bbox_xyxy_clipped": [112.0, 626.0, 972.0, 638.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [98.0, 662.0, 904.0, 13.0], "bbox_xyxy_clipped": [98.0, 662.0, 1002.0, 675.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [84.0, 702.0, 944.0, 12.0], "bbox_xyxy_clipped": [84.0, 702.0, 1028.0, 714.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [72.0, 740.0, 960.0, 13.0], "bbox_xyxy_clipped": [72.0, 740.0, 1032.0, 753.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [650.0, 620.0, 360.0, 202.0], "bbox_xyxy_clipped": [650.0, 620.0, 1010.0, 822.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [62.0, 92.0, 520.0, 101.0], "bbox_xyxy_clipped": [62.0, 92.0, 582.0, 193.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [66.0, 214.0, 470.0, 70.0], "bbox_xyxy_clipped": [66.0, 214.0, 536.0, 284.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [300.0, 330.0, 120.0, 116.0], "bbox_xyxy_clipped": [300.0, 330.0, 420.0, 446.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [432.0, 398.0, 104.0, 110.0], "bbox_xyxy_clipped": [432.0, 398.0, 536.0, 508.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [66.0, 296.0, 520.0, 45.0], "bbox_xyxy_clipped": [66.0, 296.0, 586.0, 341.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [64.0, 360.0, 420.0, 59.0], "bbox_xyxy_clipped": [64.0, 360.0, 484.0, 419.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062465652026266714}, "Ove": {"reason": null, "status": "ok", "value": 0.07036596879213836}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "589b28d195a7a863ddcc4c2d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b28d195a7a863ddcc4c2d/pipeline/l0_result.json", "sha256": "2fa42e4c99c34a5fb30791411726c6ee8ebf227028febd2a31b7a7da0caf773a", "size_bytes": 13320}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b28d195a7a863ddcc4c2d/inputs/pfull/asset_manifest.json", "sha256": "84346d0c0bf897ab1611c090185a64e4bf8138c7488794ae6633cd71e88e99c8", "size_bytes": 8234}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b28d195a7a863ddcc4c2d/renders/r0_candidate_03.png", "sha256": "1f8aa2ac6e352174d2b04f062f1a04611aaa1afd64085a5fd15466ec00e0c9bc", "size_bytes": 441770}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/589b28d195a7a863ddcc4c2d/inputs/r3/r3_asset_manifest.json", "sha256": "fef0c69187743652e38f5ae273f3ae410a8721b13e600c55e5d11d70727bfd7e", "size_bytes": 7216}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"metrics": {}, "reason": "A3 summary did not mark sample completed", "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "sample_id": "5e7c71244b3890eb071e6e40", "source_artifacts": [], "source_status": "failed", "status": "source_skipped", "summary_entry": {"error_type": "OperatorSkip", "message": "operator-declared skip on resume; prior attempt exhausted validation retries and retry was not authorized", "sample_id": "5e7c71244b3890eb071e6e40", "status": "failed"}} +{"b0_render_sha256": "96075b3a61ee93f7ef9fc4591a76dc3ebcfe4978a6c8f97e199ec12c64b63c8e", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 86.0, 548.0, 543.0], "bbox_xyxy_clipped": [52.0, 86.0, 600.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [668.0, 92.0, 290.0, 193.0], "bbox_xyxy_clipped": [668.0, 92.0, 958.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [678.0, 306.0, 218.0, 35.0], "bbox_xyxy_clipped": [678.0, 306.0, 896.0, 341.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [678.0, 364.0, 292.0, 264.0], "bbox_xyxy_clipped": [678.0, 364.0, 970.0, 628.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [678.0, 678.0, 320.0, 63.0], "bbox_xyxy_clipped": [678.0, 678.0, 998.0, 741.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010277518674522046}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5909b86d95a7a863ddcd309c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909b86d95a7a863ddcd309c/pipeline/l0_result.json", "sha256": "9358912b5b2a7db410c29ada56e4ce304da9a0db46a6318efd4734c11b5726c6", "size_bytes": 7319}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909b86d95a7a863ddcd309c/inputs/pfull/asset_manifest.json", "sha256": "3d96c3b9b7f689fac406d19eafa26347d8266824aebbe24ffe01e747be6de507", "size_bytes": 3221}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909b86d95a7a863ddcd309c/renders/r0_candidate_01.png", "sha256": "96075b3a61ee93f7ef9fc4591a76dc3ebcfe4978a6c8f97e199ec12c64b63c8e", "size_bytes": 265329}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909b86d95a7a863ddcd309c/inputs/r3/r3_asset_manifest.json", "sha256": "9f9d56d12a26cb7358a2e911125aae6bdbc6aa9224c83db7fc4ceeb3ee300436", "size_bytes": 3035}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "95bd742fd15546cb8ec9d25d32fd4a58618b2772ae55ccc09dffe55bc5b30f76", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [62.0, 188.0, 322.0, 322.0], "bbox_xyxy_clipped": [62.0, 188.0, 384.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [76.0, 204.0, 270.0, 270.0], "bbox_xyxy_clipped": [76.0, 204.0, 346.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [56.0, 164.0, 236.0, 250.0], "bbox_xyxy_clipped": [56.0, 164.0, 292.0, 414.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [664.0, 248.0, 300.0, 77.0], "bbox_xyxy_clipped": [664.0, 248.0, 964.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [720.0, 340.0, 200.0, 68.0], "bbox_xyxy_clipped": [720.0, 340.0, 920.0, 408.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [676.0, 428.0, 270.0, 66.0], "bbox_xyxy_clipped": [676.0, 428.0, 946.0, 494.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [725.0, 515.0, 195.0, 63.0], "bbox_xyxy_clipped": [725.0, 515.0, 920.0, 578.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [662.0, 596.0, 88.0, 79.0], "bbox_xyxy_clipped": [662.0, 596.0, 750.0, 675.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [609.0, 693.0, 401.0, 22.0], "bbox_xyxy_clipped": [609.0, 693.0, 1010.0, 715.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [654.0, 742.0, 172.0, 40.0], "bbox_xyxy_clipped": [654.0, 742.0, 826.0, 782.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [748.0, 206.0, 260.0, 22.0], "bbox_xyxy_clipped": [748.0, 206.0, 1008.0, 228.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [941.0, 574.0, 68.0, 190.0], "bbox_xyxy_clipped": [941.0, 574.0, 1009.0, 764.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012293727590567435}, "Ove": {"reason": null, "status": "ok", "value": 0.14755667425645533}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "592d6c1d95a7a863ddcda131", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d6c1d95a7a863ddcda131/pipeline/l0_result.json", "sha256": "853d1402d41c8a8d0a2557256f2708118572db696535e9097707755857e16894", "size_bytes": 13073}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d6c1d95a7a863ddcda131/inputs/pfull/asset_manifest.json", "sha256": "41d6a336d0dab0a8e52000ee5e807dc77c1ee2c82dc4703a3f22fc5b407f2c80", "size_bytes": 6620}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d6c1d95a7a863ddcda131/renders/r0_candidate_01.png", "sha256": "95bd742fd15546cb8ec9d25d32fd4a58618b2772ae55ccc09dffe55bc5b30f76", "size_bytes": 187474}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d6c1d95a7a863ddcda131/inputs/r3/r3_asset_manifest.json", "sha256": "891d1e12e19bb20af675f3628c474977a3c42b88e70ffcfaf76ffff3251d7619", "size_bytes": 5880}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4afd62dcaacc3aa0f158b14afef2aac88c5c6eb9780876cba95fa45b396ffc64", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [180.0, 150.0, 760.0, 269.0], "bbox_xyxy_clipped": [180.0, 150.0, 940.0, 419.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1590.0, 120.0, 730.0, 930.0], "bbox_xyxy_clipped": [1590.0, 120.0, 2320.0, 1050.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1290.0, 420.0, 1030.0, 471.0], "bbox_xyxy_clipped": [1290.0, 420.0, 2320.0, 891.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [80.0, 1020.0, 1020.0, 680.0], "bbox_xyxy_clipped": [80.0, 1020.0, 1100.0, 1440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032265392056266516}, "Ove": {"reason": null, "status": "ok", "value": 0.10480065837600586}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "5f23d732a637ee11e36c0f12", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f23d732a637ee11e36c0f12/pipeline/l0_result.json", "sha256": "273284704f542806b4e78499c3621958f1b9ddc23f83be9186bc72e46b9d3126", "size_bytes": 5788}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f23d732a637ee11e36c0f12/inputs/pfull/asset_manifest.json", "sha256": "1dd3596163bfe2b95bcf1ec737539988894b9bea26495ac4661b6c7629c56f6e", "size_bytes": 2452}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f23d732a637ee11e36c0f12/renders/r0_candidate_01.png", "sha256": "4afd62dcaacc3aa0f158b14afef2aac88c5c6eb9780876cba95fa45b396ffc64", "size_bytes": 1138607}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f23d732a637ee11e36c0f12/inputs/r3/r3_asset_manifest.json", "sha256": "5b841617ca60038bc10b97b96aa42d09cfb16dec8505cfe7440795ee3118a4c7", "size_bytes": 2196}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "04414ba08bad1649c8b6fd2c6773062b54813b330c99a6c778636347788970dc", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [62.0, 240.0, 300.0, 38.0], "bbox_xyxy_clipped": [62.0, 240.0, 362.0, 278.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [825.0, 92.0, 260.0, 258.0], "bbox_xyxy_clipped": [825.0, 92.0, 1085.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [840.0, 356.0, 220.0, 223.0], "bbox_xyxy_clipped": [840.0, 356.0, 1060.0, 579.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [725.0, 235.0, 78.0, 81.0], "bbox_xyxy_clipped": [725.0, 235.0, 803.0, 316.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1018.0, 236.0, 56.0, 48.0], "bbox_xyxy_clipped": [1018.0, 236.0, 1074.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1078.0, 165.0, 48.0, 51.0], "bbox_xyxy_clipped": [1078.0, 165.0, 1126.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [470.0, 42.0, 300.0, 150.0], "bbox_xyxy_clipped": [470.0, 42.0, 770.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [382.0, 410.0, 220.0, 110.0], "bbox_xyxy_clipped": [382.0, 410.0, 602.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0057954239546581555}, "Occ": {"reason": null, "status": "ok", "value": 0.0027908351897393785}, "Ove": {"reason": null, "status": "ok", "value": 0.005654084848291118}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5a686e448c32ec6f8b69a4ef", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a686e448c32ec6f8b69a4ef/pipeline/l0_result.json", "sha256": "063882bda0de0ba2bbe24ad3ad441f2d943a45066c38ac812c5cd129ab4c23fe", "size_bytes": 7783}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a686e448c32ec6f8b69a4ef/inputs/pfull/asset_manifest.json", "sha256": "f2e36cfc2921d69d750ae5cece065b6ca9d7346b7a7321a54647d280963021c4", "size_bytes": 4519}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a686e448c32ec6f8b69a4ef/renders/r0_candidate_02.png", "sha256": "04414ba08bad1649c8b6fd2c6773062b54813b330c99a6c778636347788970dc", "size_bytes": 172635}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a686e448c32ec6f8b69a4ef/inputs/r3/r3_asset_manifest.json", "sha256": "09792fbd53b2800406ff953e25801c6c34b3df7d058fb4749338f4215019d042", "size_bytes": 3900}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6a045dc28de14a38ece4ad92ccca39356f85b707b8dcf3f5cd8c6261c904932b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fce92382fc1a95b72e7f7f49b7eaf3008054951a9bac0b0c68b16b193f49a3dc", "canvas": {"height": 400, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [240.0, 118.0, 1120.0, 280.0], "bbox_xyxy_clipped": [240.0, 118.0, 1360.0, 398.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [605.0, 46.0, 390.0, 71.0], "bbox_xyxy_clipped": [605.0, 46.0, 995.0, 117.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [640.0, 58.0, 320.0, 60.0], "bbox_xyxy_clipped": [640.0, 58.0, 960.0, 118.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [540.0, 88.0, 520.0, 68.0], "bbox_xyxy_clipped": [540.0, 88.0, 1060.0, 156.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [700.0, 148.0, 200.0, 38.0], "bbox_xyxy_clipped": [700.0, 148.0, 900.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1600.0, 32.0], "bbox_xyxy_clipped": [0.0, 0.0, 1600.0, 32.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 368.0, 1600.0, 32.0], "bbox_xyxy_clipped": [0.0, 368.0, 1600.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 34.0, 1600.0, 24.0], "bbox_xyxy_clipped": [0.0, 34.0, 1600.0, 58.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 342.0, 1600.0, 24.0], "bbox_xyxy_clipped": [0.0, 342.0, 1600.0, 366.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006689541300762042}, "Ove": {"reason": null, "status": "ok", "value": 0.16549336915173188}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7a8679295e10c7a6d1309b25f64cfdf33078a2e5079604001044f00dcb08ef67", "status": "computed"}, "sample_id": "592e782b95a7a863ddcda4d0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592e782b95a7a863ddcda4d0/pipeline/l0_result.json", "sha256": "9eee5946357d0422a9dafd64ab6bc1af6a8391a780cd55bcced55e79c444ee1d", "size_bytes": 8677}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592e782b95a7a863ddcda4d0/inputs/pfull/asset_manifest.json", "sha256": "2b973a37d9be524a69502305ce7b9b7f5185e0b7c24b047544639e4083fbea6c", "size_bytes": 5037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592e782b95a7a863ddcda4d0/renders/r0_candidate_02.png", "sha256": "6a045dc28de14a38ece4ad92ccca39356f85b707b8dcf3f5cd8c6261c904932b", "size_bytes": 540482}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592e782b95a7a863ddcda4d0/inputs/r3/r3_asset_manifest.json", "sha256": "64ee0bca71b4aa7421c019093528e07944620794c5770879e28327d5cf05fda1", "size_bytes": 4418}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "dcc9dca20ad4514d4018b7c1bf9f46aae72b453ca1681749aa42c85baddbce6e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [44.0, 20.0, 820.0, 409.0], "bbox_xyxy_clipped": [44.0, 20.0, 864.0, 429.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [640.0, 56.0, 320.0, 110.0], "bbox_xyxy_clipped": [640.0, 56.0, 960.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [690.0, 60.0, 180.0, 11.0], "bbox_xyxy_clipped": [690.0, 60.0, 870.0, 71.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [700.0, 82.0, 180.0, 11.0], "bbox_xyxy_clipped": [700.0, 82.0, 880.0, 93.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [350.0, 304.0, 324.0, 79.0], "bbox_xyxy_clipped": [350.0, 304.0, 674.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [398.0, 384.0, 228.0, 53.0], "bbox_xyxy_clipped": [398.0, 384.0, 626.0, 437.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [447.0, 432.0, 101.0, 52.0], "bbox_xyxy_clipped": [447.0, 432.0, 548.0, 484.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [374.0, 457.0, 276.0, 42.0], "bbox_xyxy_clipped": [374.0, 457.0, 650.0, 499.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [322.0, 488.0, 380.0, 30.0], "bbox_xyxy_clipped": [322.0, 488.0, 702.0, 512.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [322.0, 504.0, 380.0, 30.0], "bbox_xyxy_clipped": [322.0, 504.0, 702.0, 512.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005359127231748013}, "Ove": {"reason": null, "status": "ok", "value": 0.10298214590238752}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "592d211c95a7a863ddcd9e61", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d211c95a7a863ddcd9e61/pipeline/l0_result.json", "sha256": "1f6522773e760e2cf4bf988bdb4cf41b6360ed038a527f9355d0d686a1a795a4", "size_bytes": 11083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d211c95a7a863ddcd9e61/inputs/pfull/asset_manifest.json", "sha256": "0fb5e2aeb96ea105945317a13b065db00a9ac1fadc6de3a6035d46b7b4e5b5b6", "size_bytes": 5643}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d211c95a7a863ddcd9e61/renders/r0_candidate_02.png", "sha256": "dcc9dca20ad4514d4018b7c1bf9f46aae72b453ca1681749aa42c85baddbce6e", "size_bytes": 449134}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/592d211c95a7a863ddcd9e61/inputs/r3/r3_asset_manifest.json", "sha256": "88ad7ac60a822409b009e706c753187f2c2105d862435a6bf321a510577f2ef7", "size_bytes": 5172}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c2331c2d16d55c7c4c31ec9546eac142270d51e4934c7ca6629e10d7b89b21d9", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 860.0, 483.0], "bbox_xyxy_clipped": [0.0, 0.0, 860.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [110.0, 54.0, 560.0, 348.0], "bbox_xyxy_clipped": [110.0, 54.0, 670.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 360.0, 760.0, 177.0], "bbox_xyxy_clipped": [0.0, 360.0, 760.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [760.0, 0.0, 160.0, 437.0], "bbox_xyxy_clipped": [760.0, 0.0, 920.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [470.0, 108.0, 440.0, 123.0], "bbox_xyxy_clipped": [470.0, 108.0, 910.0, 231.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1050.0, 120.0, 700.0, 124.0], "bbox_xyxy_clipped": [1050.0, 120.0, 1750.0, 244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1125.0, 265.0, 560.0, 226.0], "bbox_xyxy_clipped": [1125.0, 265.0, 1685.0, 491.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1110.0, 505.0, 744.0, 75.0], "bbox_xyxy_clipped": [1110.0, 505.0, 1854.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [210.0, 360.0, 630.0, 653.0], "bbox_xyxy_clipped": [210.0, 360.0, 840.0, 1013.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [570.0, 290.0, 260.0, 90.0], "bbox_xyxy_clipped": [570.0, 290.0, 830.0, 380.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004288658835671165}, "Ove": {"reason": null, "status": "ok", "value": 0.18228049393124257}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5ea97afb499b85dcc7e25995", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ea97afb499b85dcc7e25995/pipeline/l0_result.json", "sha256": "b3932ef60afd3ef186127dc737ea277901317b4180920baa2a56cf855dd34986", "size_bytes": 9607}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ea97afb499b85dcc7e25995/inputs/pfull/asset_manifest.json", "sha256": "8e1f907ed4d9ed761a13718272cf511c66cfd3191efee87f8ad8d6afb56e5ec7", "size_bytes": 5560}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ea97afb499b85dcc7e25995/renders/r0_candidate_01.png", "sha256": "c2331c2d16d55c7c4c31ec9546eac142270d51e4934c7ca6629e10d7b89b21d9", "size_bytes": 313416}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5ea97afb499b85dcc7e25995/inputs/r3/r3_asset_manifest.json", "sha256": "1c02f81d053f924ba1549734a276889686da7e998e7f8637c25b9158e263fe51", "size_bytes": 4862}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93879a35dc37cae9f4736af8bbb6de9ea9e50ce28f6af5002d0515c68e6c6b0b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/inputs/pfull/assets/asset_0000.png", "asset_sha256": "9cec8d235b4fb41e593518d639a4200c132b606727b00dff22fbc1ff593b420a", "asset_size_bytes": 207231, "kind": "asset", "pfull_asset_sha256": "9cec8d235b4fb41e593518d639a4200c132b606727b00dff22fbc1ff593b420a", "r3_asset_sha256": "9cec8d235b4fb41e593518d639a4200c132b606727b00dff22fbc1ff593b420a", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "597aa0bb69e6a019cee55ffde7e0b047dc80208f13bdd4c8f4d31a9c917e7bf6", "canvas": {"height": 200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [48.0, 46.0, 173.0, 31.0], "bbox_xyxy_clipped": [48.0, 46.0, 221.0, 77.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [62.0, 79.0, 128.0, 51.0], "bbox_xyxy_clipped": [62.0, 79.0, 190.0, 130.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [56.0, 132.0, 148.0, 41.0], "bbox_xyxy_clipped": [56.0, 132.0, 204.0, 173.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [235.0, 18.0, 142.0, 19.0], "bbox_xyxy_clipped": [235.0, 18.0, 377.0, 37.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [404.0, 6.0, 151.0, 21.0], "bbox_xyxy_clipped": [404.0, 6.0, 555.0, 27.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [482.0, 52.0, 96.0, 13.0], "bbox_xyxy_clipped": [482.0, 52.0, 578.0, 65.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.017429943860443334}, "Occ": {"reason": null, "status": "ok", "value": 0.010784254440718965}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.04770660502167667}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "248842fad0b431d78ad7e18b21fa121223af2f7d79a1fd7d95c08b1969058997", "status": "computed"}, "sample_id": "58ac638c95a7a863ddcc7c2b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/pipeline/l0_result.json", "sha256": "d02e3209cf6c66d5836633987b4e31a561eabcfde2968bb8feee315ec7c1adb3", "size_bytes": 7936}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/inputs/pfull/asset_manifest.json", "sha256": "26ca2f9d4e1dbbeac7a9fc2c53dcd4dad9cda59bd4fcc53fcfed99e365680242", "size_bytes": 4086}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/renders/r0_candidate_01.png", "sha256": "93879a35dc37cae9f4736af8bbb6de9ea9e50ce28f6af5002d0515c68e6c6b0b", "size_bytes": 191901}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/inputs/r3/r3_asset_manifest.json", "sha256": "dec4a77b317fef344a931dd9eff53c4a386ecc9be0b4c10604841514ae338e36", "size_bytes": 3620}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac638c95a7a863ddcc7c2b/inputs/pfull/assets/asset_0000.png", "sha256": "9cec8d235b4fb41e593518d639a4200c132b606727b00dff22fbc1ff593b420a", "size_bytes": 207231}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e27c7bb4d84619b28b06ac12bf73448d79ab7cbbd629507d9c0965bad9f54075", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 13, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [180.0, 115.0, 430.0, 287.0], "bbox_xyxy_clipped": [180.0, 115.0, 610.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [610.0, 95.0, 315.0, 30.0], "bbox_xyxy_clipped": [610.0, 95.0, 925.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [660.0, 135.0, 140.0, 41.0], "bbox_xyxy_clipped": [660.0, 135.0, 800.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [585.0, 180.0, 360.0, 4.0], "bbox_xyxy_clipped": [585.0, 180.0, 945.0, 184.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [610.0, 217.0, 255.0, 5.0], "bbox_xyxy_clipped": [610.0, 217.0, 865.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [640.0, 255.0, 220.0, 4.0], "bbox_xyxy_clipped": [640.0, 255.0, 860.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [575.0, 120.0, 12.0, 109.0], "bbox_xyxy_clipped": [575.0, 120.0, 587.0, 229.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [590.0, 118.0, 14.0, 14.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [630.0, 292.0, 190.0, 54.0], "bbox_xyxy_clipped": [630.0, 292.0, 820.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [770.0, 302.0, 70.0, 37.0], "bbox_xyxy_clipped": [770.0, 302.0, 840.0, 339.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [842.0, 312.0, 30.0, 17.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [823.0, 283.0, 80.0, 149.0], "bbox_xyxy_clipped": [823.0, 283.0, 903.0, 432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [695.0, 612.0, 275.0, 60.0], "bbox_xyxy_clipped": [695.0, 612.0, 970.0, 672.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012955565257660989}, "Ove": {"reason": null, "status": "ok", "value": 0.020710516779304747}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5e5f7079b04a3d1f19e6d299", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e5f7079b04a3d1f19e6d299/pipeline/l0_result.json", "sha256": "8cebfd4f2863f25b0e45ef98343ced229be3e911139050b64a939038d1489cde", "size_bytes": 12139}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e5f7079b04a3d1f19e6d299/inputs/pfull/asset_manifest.json", "sha256": "87183a02106015db62eb290467e24a0f0113c12968cba05738017b36eb09a03f", "size_bytes": 7254}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e5f7079b04a3d1f19e6d299/renders/r0_candidate_03.png", "sha256": "e27c7bb4d84619b28b06ac12bf73448d79ab7cbbd629507d9c0965bad9f54075", "size_bytes": 61284}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e5f7079b04a3d1f19e6d299/inputs/r3/r3_asset_manifest.json", "sha256": "474220cf1122011c8d9ea209d129005d0ce79f125ad9f858c1842f73b33ef357", "size_bytes": 6459}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3fd6ff5b5ba5906001de5c2f66b93812c45cb6738f89a92238fd3d516d0251a5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3b41f2ec7aa4d5b8818ae47fa4f6584bb208c30cdf00562414a6317e4ee18070", "canvas": {"height": 612, "width": 792}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 16, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [16.0, 16.0, 760.0, 575.0], "bbox_xyxy_clipped": [16.0, 16.0, 776.0, 591.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [56.0, 38.0, 110.0, 110.0], "bbox_xyxy_clipped": [56.0, 38.0, 166.0, 148.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [356.0, 70.0, 250.0, 89.0], "bbox_xyxy_clipped": [356.0, 70.0, 606.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [356.0, 162.0, 190.0, 28.0], "bbox_xyxy_clipped": [356.0, 162.0, 546.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [356.0, 192.0, 230.0, 41.0], "bbox_xyxy_clipped": [356.0, 192.0, 586.0, 233.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [220.0, 270.0, 430.0, 24.0], "bbox_xyxy_clipped": [220.0, 270.0, 650.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [210.0, 304.0, 372.0, 4.0], "bbox_xyxy_clipped": [210.0, 304.0, 582.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [222.0, 319.0, 361.0, 10.0], "bbox_xyxy_clipped": [222.0, 319.0, 583.0, 329.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [236.0, 336.0, 352.0, 10.0], "bbox_xyxy_clipped": [236.0, 336.0, 588.0, 346.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [534.0, 507.0, 104.0, 31.0], "bbox_xyxy_clipped": [534.0, 507.0, 638.0, 538.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [534.0, 540.0, 230.0, 25.0], "bbox_xyxy_clipped": [534.0, 540.0, 764.0, 565.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [534.0, 567.0, 193.0, 39.0], "bbox_xyxy_clipped": [534.0, 567.0, 727.0, 606.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [688.0, 508.0, 24.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [688.0, 517.0, 24.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [688.0, 526.0, 24.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [688.0, 535.0, 24.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005118504953064084}, "Ove": {"reason": null, "status": "ok", "value": 0.015563218205745287}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "01748acae88359682970cac43bc46e72928c52e46ec485fc11adbc6100db5f5e", "status": "computed"}, "sample_id": "5e81d0554b3890eb0719b148", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e81d0554b3890eb0719b148/pipeline/l0_result.json", "sha256": "bd17c680e9100087f461e360282dba8eff362865e5d95c0d950405894f615da6", "size_bytes": 12710}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e81d0554b3890eb0719b148/inputs/pfull/asset_manifest.json", "sha256": "fcde65bed729a08277e5a0c9fd72c95c900f2fe86a896da96cf0ff8af306a35f", "size_bytes": 8885}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e81d0554b3890eb0719b148/renders/r0_candidate_02.png", "sha256": "3fd6ff5b5ba5906001de5c2f66b93812c45cb6738f89a92238fd3d516d0251a5", "size_bytes": 97903}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e81d0554b3890eb0719b148/inputs/r3/r3_asset_manifest.json", "sha256": "ed2bd6c02d9c72325566f2c5cf216b8385b145c8dd759e8a7f77bfe3673c1335", "size_bytes": 7834}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ebc85d40797de83c42ec21a47ad182029f66576dadb22815e84dc108bb715bf5", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 419.0, 298.0], "bbox_xyxy_clipped": [0.0, 0.0, 419.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 18.0, 52.0, 125.0], "bbox_xyxy_clipped": [18.0, 18.0, 70.0, 143.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [352.0, 22.0, 46.0, 115.0], "bbox_xyxy_clipped": [352.0, 22.0, 398.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [96.0, 20.0, 50.0, 15.0], "bbox_xyxy_clipped": [96.0, 20.0, 146.0, 35.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [302.0, 248.0, 54.0, 16.0], "bbox_xyxy_clipped": [302.0, 248.0, 356.0, 264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [230.0, 44.0, 150.0, 163.0], "bbox_xyxy_clipped": [230.0, 44.0, 380.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [32.0, 48.0, 190.0, 28.0], "bbox_xyxy_clipped": [32.0, 48.0, 222.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [32.0, 82.0, 170.0, 17.0], "bbox_xyxy_clipped": [32.0, 82.0, 202.0, 99.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006193261677297987}, "Ove": {"reason": null, "status": "ok", "value": 0.07971014192993653}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5acf77784b568b8eec317748", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5acf77784b568b8eec317748/pipeline/l0_result.json", "sha256": "ecbdaef02422fc9d23fb60478724783f233a18fcf34a01315f28ee30d0db396c", "size_bytes": 8642}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5acf77784b568b8eec317748/inputs/pfull/asset_manifest.json", "sha256": "84f9e0939183d24de04295a48dc728818898c6b0ea1ecbb528b6ce548440ae09", "size_bytes": 4557}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5acf77784b568b8eec317748/renders/r0_candidate_01.png", "sha256": "ebc85d40797de83c42ec21a47ad182029f66576dadb22815e84dc108bb715bf5", "size_bytes": 38031}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5acf77784b568b8eec317748/inputs/r3/r3_asset_manifest.json", "sha256": "39524d8a750bff65d8cb36a9d4b56cc0348711998b3fc0349d2f3d16f3043673", "size_bytes": 4016}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "04e0a97240cca780dc5b988725f44f0f96f42b14109261083151426a6688af45", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [16.0, 28.0, 123.0, 184.0], "bbox_xyxy_clipped": [16.0, 28.0, 139.0, 212.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [203.0, 42.0, 129.0, 31.0], "bbox_xyxy_clipped": [203.0, 42.0, 332.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [206.0, 79.0, 119.0, 25.0], "bbox_xyxy_clipped": [206.0, 79.0, 325.0, 104.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [239.0, 119.0, 43.0, 32.0], "bbox_xyxy_clipped": [239.0, 119.0, 282.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [240.0, 154.0, 43.0, 32.0], "bbox_xyxy_clipped": [240.0, 154.0, 283.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [239.0, 189.0, 43.0, 32.0], "bbox_xyxy_clipped": [239.0, 189.0, 282.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [317.0, 108.0, 2.0, 180.0], "bbox_xyxy_clipped": [317.0, 108.0, 319.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [327.0, 108.0, 2.0, 180.0], "bbox_xyxy_clipped": [327.0, 108.0, 329.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [337.0, 108.0, 2.0, 180.0], "bbox_xyxy_clipped": [337.0, 108.0, 339.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [206.0, 233.0, 135.0, 15.0], "bbox_xyxy_clipped": [206.0, 233.0, 341.0, 248.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [206.0, 272.0, 150.0, 19.0], "bbox_xyxy_clipped": [206.0, 272.0, 356.0, 291.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [206.0, 309.0, 118.0, 95.0], "bbox_xyxy_clipped": [206.0, 309.0, 324.0, 404.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [207.0, 424.0, 140.0, 25.0], "bbox_xyxy_clipped": [207.0, 424.0, 347.0, 449.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032106186013567146}, "Ove": {"reason": null, "status": "ok", "value": 0.005263402945717264}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5bd878089259f9ba54c07345", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bd878089259f9ba54c07345/pipeline/l0_result.json", "sha256": "b50fd7f5f1a4f84ba8b37f23ea20f2fd0b2167c4ebd70ece8bc8abf793dc5d82", "size_bytes": 13008}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bd878089259f9ba54c07345/inputs/pfull/asset_manifest.json", "sha256": "8877409c42f0d2662219de90f92dcc811b3f93036c3b8c459c16ed8d352a307e", "size_bytes": 7394}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bd878089259f9ba54c07345/renders/r0_candidate_01.png", "sha256": "04e0a97240cca780dc5b988725f44f0f96f42b14109261083151426a6688af45", "size_bytes": 59714}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5bd878089259f9ba54c07345/inputs/r3/r3_asset_manifest.json", "sha256": "859da745a8475a8858b1bafb382716fd46d80621c87dfb009f1a761ba7f8c3f8", "size_bytes": 6821}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "94ef119629951fff255769bc55196a09233fbea112ba9f545a47fd7bc52a3092", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/inputs/pfull/assets/asset_0000.png", "asset_sha256": "4c360faaa0d04b0f59f23f58120409e26fbb0c106d026026229cd87f515f4e04", "asset_size_bytes": 2094, "kind": "asset", "pfull_asset_sha256": "4c360faaa0d04b0f59f23f58120409e26fbb0c106d026026229cd87f515f4e04", "r3_asset_sha256": "4c360faaa0d04b0f59f23f58120409e26fbb0c106d026026229cd87f515f4e04", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "5b52cc4fb705d97b9eac0960198316214792da7b06ed1e64c1733a4534101137", "canvas": {"height": 500, "width": 500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [210.0, 112.0, 104.0, 101.0], "bbox_xyxy_clipped": [210.0, 112.0, 314.0, 213.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [183.0, 225.0, 156.0, 38.0], "bbox_xyxy_clipped": [183.0, 225.0, 339.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [258.0, 286.0, 39.0, 20.0], "bbox_xyxy_clipped": [258.0, 286.0, 297.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [303.0, 285.0, 48.0, 26.0], "bbox_xyxy_clipped": [303.0, 285.0, 351.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [332.0, 132.0, 145.0, 3.0], "bbox_xyxy_clipped": [332.0, 132.0, 477.0, 135.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004347293563144458}, "Occ": {"reason": null, "status": "ok", "value": 1.1185599630489082e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "402053b573bda38e1e89e4fe3ac50e9a487ff05f0f5ee2bfd4d03c6b02ac2d40", "status": "computed"}, "sample_id": "5db2dac5abc8ea6d1c80b699", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/pipeline/l0_result.json", "sha256": "d8dd0e19379548598222110516afab320cc3f8c3d7fc3f694317fdc059e21765", "size_bytes": 7620}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/inputs/pfull/asset_manifest.json", "sha256": "dc26cae394f019c700f6ff31a2e86b0869a1fe89764e76e02babb10347912132", "size_bytes": 3555}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/renders/r0_candidate_02.png", "sha256": "94ef119629951fff255769bc55196a09233fbea112ba9f545a47fd7bc52a3092", "size_bytes": 21870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/inputs/r3/r3_asset_manifest.json", "sha256": "02213bff834bb1d4a7170194ed64c2b8a830a3bfdeb231b0987f3c0f9b1da1bb", "size_bytes": 3181}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5db2dac5abc8ea6d1c80b699/inputs/pfull/assets/asset_0000.png", "sha256": "4c360faaa0d04b0f59f23f58120409e26fbb0c106d026026229cd87f515f4e04", "size_bytes": 2094}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "577fb61457c526a93dac67678ab1f0d943a4d8b6efecee61d78032361839170a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 21, "valid": 21}, "elements": [{"asset_id": "asset_0018", "bbox_lwh_raw": [220.0, 68.0, 641.0, 151.0], "bbox_xyxy_clipped": [220.0, 68.0, 861.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [250.0, 206.0, 580.0, 41.0], "bbox_xyxy_clipped": [250.0, 206.0, 830.0, 247.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [70.0, 232.0, 380.0, 48.0], "bbox_xyxy_clipped": [70.0, 232.0, 450.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [360.0, 260.0, 360.0, 115.0], "bbox_xyxy_clipped": [360.0, 260.0, 720.0, 375.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [195.0, 328.0, 690.0, 77.0], "bbox_xyxy_clipped": [195.0, 328.0, 885.0, 405.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [134.0, 405.0, 812.0, 10.0], "bbox_xyxy_clipped": [134.0, 405.0, 946.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [110.0, 418.0, 860.0, 10.0], "bbox_xyxy_clipped": [110.0, 418.0, 970.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [452.0, 250.0, 430.0, 316.0], "bbox_xyxy_clipped": [452.0, 250.0, 882.0, 566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [110.0, 273.0, 210.0, 210.0], "bbox_xyxy_clipped": [110.0, 273.0, 320.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [438.0, 612.0, 170.0, 42.0], "bbox_xyxy_clipped": [438.0, 612.0, 608.0, 654.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [438.0, 675.0, 160.0, 44.0], "bbox_xyxy_clipped": [438.0, 675.0, 598.0, 719.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [368.0, 742.0, 344.0, 94.0], "bbox_xyxy_clipped": [368.0, 742.0, 712.0, 836.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [312.0, 716.0, 456.0, 334.0], "bbox_xyxy_clipped": [312.0, 716.0, 768.0, 1050.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [342.0, 735.0, 392.0, 140.0], "bbox_xyxy_clipped": [342.0, 735.0, 734.0, 875.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [318.0, 705.0, 434.0, 211.0], "bbox_xyxy_clipped": [318.0, 705.0, 752.0, 916.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [358.0, 757.0, 278.0, 137.0], "bbox_xyxy_clipped": [358.0, 757.0, 636.0, 894.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [412.0, 787.0, 196.0, 91.0], "bbox_xyxy_clipped": [412.0, 787.0, 608.0, 878.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [436.0, 803.0, 160.0, 11.0], "bbox_xyxy_clipped": [436.0, 803.0, 596.0, 814.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [224.0, 836.0, 633.0, 28.0], "bbox_xyxy_clipped": [224.0, 836.0, 857.0, 864.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [169.0, 868.0, 742.0, 9.0], "bbox_xyxy_clipped": [169.0, 868.0, 911.0, 877.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [157.0, 985.0, 766.0, 64.0], "bbox_xyxy_clipped": [157.0, 985.0, 923.0, 1049.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005348452135907398}, "Ove": {"reason": null, "status": "ok", "value": 0.388738749275715}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "58a440f195a7a863ddcc71c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58a440f195a7a863ddcc71c9/pipeline/l0_result.json", "sha256": "a8a6b8eba97f2cad2c51437b8340d05910064be89252bed1926ee6691a09efd4", "size_bytes": 14928}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58a440f195a7a863ddcc71c9/inputs/pfull/asset_manifest.json", "sha256": "dbf5d5acef8f01d16ce10c50d8e61f817ded0afd6bd3d995d478c19bbd568e60", "size_bytes": 11467}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58a440f195a7a863ddcc71c9/renders/r0_candidate_02.png", "sha256": "577fb61457c526a93dac67678ab1f0d943a4d8b6efecee61d78032361839170a", "size_bytes": 344938}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58a440f195a7a863ddcc71c9/inputs/r3/r3_asset_manifest.json", "sha256": "dfbec07b61b5aaed840293036bc9591f77c80225b63d78bf2f63f6845746be8d", "size_bytes": 10074}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "951c18418a910a429c95446a4e0ff9429ec154712bb31c89e957f5d5b256ebcc", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "909f4e490aa3005b550e773f9d0eef4de27fa64400516d311cb5a6931ba4609b", "canvas": {"height": 1055, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [170.0, 120.0, 760.0, 144.0], "bbox_xyxy_clipped": [170.0, 120.0, 930.0, 264.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [170.0, 285.0, 160.0, 149.0], "bbox_xyxy_clipped": [170.0, 285.0, 330.0, 434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [170.0, 445.0, 760.0, 83.0], "bbox_xyxy_clipped": [170.0, 445.0, 930.0, 528.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [170.0, 870.0, 520.0, 109.0], "bbox_xyxy_clipped": [170.0, 870.0, 690.0, 979.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2190.0, 70.0, 810.0, 2538.0], "bbox_xyxy_clipped": [2190.0, 70.0, 3000.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1370.0, 180.0, 380.0, 376.0], "bbox_xyxy_clipped": [1370.0, 180.0, 1750.0, 556.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1230.0, 360.0, 260.0, 639.0], "bbox_xyxy_clipped": [1230.0, 360.0, 1490.0, 999.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1040.0, 150.0, 420.0, 148.0], "bbox_xyxy_clipped": [1040.0, 150.0, 1460.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [980.0, 620.0, 470.0, 150.0], "bbox_xyxy_clipped": [980.0, 620.0, 1450.0, 770.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025706238712287694}, "Ove": {"reason": null, "status": "ok", "value": 0.03322849709797247}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "896a92b3e1f134ecd05ce476cd3afd01b49d1626723c3e1e6573f2de2ee0f55b", "status": "computed"}, "sample_id": "5a4cf7ed8c32ec6f8b0ceb70", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4cf7ed8c32ec6f8b0ceb70/pipeline/l0_result.json", "sha256": "05ca2a97b0f4f8b1fc957a212bf75414728f33456d549c9ac0558baabd13b5ca", "size_bytes": 8964}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4cf7ed8c32ec6f8b0ceb70/inputs/pfull/asset_manifest.json", "sha256": "9d38dac93fcd50be160210579a14ec0b7245fa6f3aab8051e408259f69224c1d", "size_bytes": 5083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4cf7ed8c32ec6f8b0ceb70/renders/r0_candidate_03.png", "sha256": "951c18418a910a429c95446a4e0ff9429ec154712bb31c89e957f5d5b256ebcc", "size_bytes": 697770}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a4cf7ed8c32ec6f8b0ceb70/inputs/r3/r3_asset_manifest.json", "sha256": "12eaa98c07cc2c512fee480224f24a284369c14d94dde672ede657c70eefe855", "size_bytes": 4572}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "453d541a104ca148885573147cb310ab4c2a5acbefeeb3c7d92efdf0d2c243c8", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "5c38a6ef498f414f953f8f382af5ad17fca9aab2e9c93f9804887d20e0c1d8db", "canvas": {"height": 240, "width": 537}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 20.0, 182.0, 121.0], "bbox_xyxy_clipped": [24.0, 20.0, 206.0, 141.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [146.0, 32.0, 82.0, 88.0], "bbox_xyxy_clipped": [146.0, 32.0, 228.0, 120.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [112.0, 90.0, 68.0, 73.0], "bbox_xyxy_clipped": [112.0, 90.0, 180.0, 163.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [176.0, 96.0, 56.0, 96.0], "bbox_xyxy_clipped": [176.0, 96.0, 232.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 128.0, 76.0, 120.0], "bbox_xyxy_clipped": [92.0, 128.0, 168.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [14.0, 132.0, 118.0, 99.0], "bbox_xyxy_clipped": [14.0, 132.0, 132.0, 231.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [138.0, 166.0, 96.0, 92.0], "bbox_xyxy_clipped": [138.0, 166.0, 234.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [270.0, 26.0, 180.0, 44.0], "bbox_xyxy_clipped": [270.0, 26.0, 450.0, 70.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [272.0, 72.0, 205.0, 37.0], "bbox_xyxy_clipped": [272.0, 72.0, 477.0, 109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [272.0, 110.0, 154.0, 16.0], "bbox_xyxy_clipped": [272.0, 110.0, 426.0, 126.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0041384526113087666}, "Ove": {"reason": null, "status": "ok", "value": 0.14614442445069156}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "065f05bd692839e2cd1c502063b358acc8813f121f778caa2868db1aeb3d5749", "status": "computed"}, "sample_id": "5d973119abc8ea6d1c603048", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d973119abc8ea6d1c603048/pipeline/l0_result.json", "sha256": "dec81dbd098d44975335dcd14750583ae0b8f7807d602b9ce7e939b33907305f", "size_bytes": 9798}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d973119abc8ea6d1c603048/inputs/pfull/asset_manifest.json", "sha256": "83db99ed2d95e3a715a94410b9379971128b7358a42635e659969c54708fa8dc", "size_bytes": 5635}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d973119abc8ea6d1c603048/renders/r0_candidate_01.png", "sha256": "453d541a104ca148885573147cb310ab4c2a5acbefeeb3c7d92efdf0d2c243c8", "size_bytes": 59193}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d973119abc8ea6d1c603048/inputs/r3/r3_asset_manifest.json", "sha256": "402c90420b28c4fee6122686fadd7d0e84ada0441df92adf9a75913523aaca3a", "size_bytes": 4982}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ed2585116000b86deb93b3a991c5135e64b4905fc542ca7024e147d47f7692a6", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [90.0, 140.0, 700.0, 482.0], "bbox_xyxy_clipped": [90.0, 140.0, 790.0, 622.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [808.0, 140.0, 182.0, 324.0], "bbox_xyxy_clipped": [808.0, 140.0, 990.0, 464.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [90.0, 70.0, 120.0, 138.0], "bbox_xyxy_clipped": [90.0, 70.0, 210.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [222.0, 130.0, 560.0, 5.0], "bbox_xyxy_clipped": [222.0, 130.0, 782.0, 135.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [222.0, 151.0, 560.0, 5.0], "bbox_xyxy_clipped": [222.0, 151.0, 782.0, 156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [595.0, 1410.0, 335.0, 46.0], "bbox_xyxy_clipped": [595.0, 1410.0, 930.0, 1456.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [597.0, 1468.0, 180.0, 46.0], "bbox_xyxy_clipped": [597.0, 1468.0, 777.0, 1514.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [598.0, 1532.0, 166.0, 38.0], "bbox_xyxy_clipped": [598.0, 1532.0, 764.0, 1570.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0017704636606784747}, "Ove": {"reason": null, "status": "ok", "value": 0.003987026295390567}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5f4e5304a637ee11e3928aa6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f4e5304a637ee11e3928aa6/pipeline/l0_result.json", "sha256": "b347efb92250d953f6f7d71d3f2158a170f0d07e171d9ed99f3119b534e06fbe", "size_bytes": 8138}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f4e5304a637ee11e3928aa6/inputs/pfull/asset_manifest.json", "sha256": "2dfb5839d607ce263775c984079118b3e47f20a63f2a16a57759c55649f922e7", "size_bytes": 4544}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f4e5304a637ee11e3928aa6/renders/r0_candidate_01.png", "sha256": "ed2585116000b86deb93b3a991c5135e64b4905fc542ca7024e147d47f7692a6", "size_bytes": 574911}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f4e5304a637ee11e3928aa6/inputs/r3/r3_asset_manifest.json", "sha256": "48cdd180c67aae7d852c865e3b92fd99c020764ca7f99b2a59de8ac1730dc532", "size_bytes": 4058}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a18c1b20262474340ab3839e97297b2ff985d0038028b623530db2e42852200f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1230.0, 120.0, 520.0, 375.0], "bbox_xyxy_clipped": [1230.0, 120.0, 1750.0, 495.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1920.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1140.0, 60.0, 690.0, 123.0], "bbox_xyxy_clipped": [1140.0, 60.0, 1830.0, 183.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 95.0, 350.0, 123.0], "bbox_xyxy_clipped": [120.0, 95.0, 470.0, 218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 230.0, 360.0, 53.0], "bbox_xyxy_clipped": [120.0, 230.0, 480.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 335.0, 250.0, 89.0], "bbox_xyxy_clipped": [120.0, 335.0, 370.0, 424.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [120.0, 930.0, 147.0, 160.0], "bbox_xyxy_clipped": [120.0, 930.0, 267.0, 1080.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006251716142819251}, "Ove": {"reason": null, "status": "ok", "value": 0.04555241511850537}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5a2322bcd8141396fe9a94ec", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a2322bcd8141396fe9a94ec/pipeline/l0_result.json", "sha256": "c9592a86655e2d38417041ed75db55867cc936b9c2091e2026319482231f9c67", "size_bytes": 8083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a2322bcd8141396fe9a94ec/inputs/pfull/asset_manifest.json", "sha256": "24c99469248166a785c629a15413dad28dacf6ec2056cb8e2d6c27ad273a6341", "size_bytes": 4096}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a2322bcd8141396fe9a94ec/renders/r0_candidate_03.png", "sha256": "a18c1b20262474340ab3839e97297b2ff985d0038028b623530db2e42852200f", "size_bytes": 244553}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a2322bcd8141396fe9a94ec/inputs/r3/r3_asset_manifest.json", "sha256": "7fc9975a64039e81385cd9e3f3ef5e6f4d3997099f206aa8ed5af70e73075b80", "size_bytes": 3733}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "945e754027de5c0ede22c7e76ad73c7cb37b7f28e000ded9755bedf60f23e1d4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [84.0, 78.0, 260.0, 57.0], "bbox_xyxy_clipped": [84.0, 78.0, 344.0, 135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [84.0, 145.0, 320.0, 47.0], "bbox_xyxy_clipped": [84.0, 145.0, 404.0, 192.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [88.0, 204.0, 120.0, 105.0], "bbox_xyxy_clipped": [88.0, 204.0, 208.0, 309.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [86.0, 328.0, 145.0, 47.0], "bbox_xyxy_clipped": [86.0, 328.0, 231.0, 375.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [86.0, 388.0, 315.0, 98.0], "bbox_xyxy_clipped": [86.0, 388.0, 401.0, 486.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [86.0, 515.0, 220.0, 46.0], "bbox_xyxy_clipped": [86.0, 515.0, 306.0, 561.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [86.0, 602.0, 280.0, 73.0], "bbox_xyxy_clipped": [86.0, 602.0, 366.0, 675.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [88.0, 1124.0, 330.0, 74.0], "bbox_xyxy_clipped": [88.0, 1124.0, 418.0, 1198.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [88.0, 1213.0, 235.0, 31.0], "bbox_xyxy_clipped": [88.0, 1213.0, 323.0, 1244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [89.0, 1296.0, 182.0, 37.0], "bbox_xyxy_clipped": [89.0, 1296.0, 271.0, 1333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [710.0, 352.0, 430.0, 287.0], "bbox_xyxy_clipped": [710.0, 352.0, 1140.0, 639.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [800.0, 692.0, 300.0, 300.0], "bbox_xyxy_clipped": [800.0, 692.0, 1100.0, 992.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [675.0, 1018.0, 360.0, 360.0], "bbox_xyxy_clipped": [675.0, 1018.0, 1035.0, 1378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [528.0, 764.0, 132.0, 132.0], "bbox_xyxy_clipped": [528.0, 764.0, 660.0, 896.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [528.0, 447.0, 430.0, 14.0], "bbox_xyxy_clipped": [528.0, 447.0, 958.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [528.0, 1446.0, 430.0, 14.0], "bbox_xyxy_clipped": [528.0, 1446.0, 958.0, 1460.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004048878416990578}, "Ove": {"reason": null, "status": "ok", "value": 0.0017227964877181282}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5df219169fea0cc374bf4d9a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df219169fea0cc374bf4d9a/pipeline/l0_result.json", "sha256": "71d74364b9b50b261cb50d3dc7513a1130b5972757773ffe6d95f97a88f369dc", "size_bytes": 12264}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df219169fea0cc374bf4d9a/inputs/pfull/asset_manifest.json", "sha256": "e6bc8e08f4cc6895e7711b0ee7938b947243e9cfebeda99e3ec4e6471303f9f6", "size_bytes": 8897}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df219169fea0cc374bf4d9a/renders/r0_candidate_03.png", "sha256": "945e754027de5c0ede22c7e76ad73c7cb37b7f28e000ded9755bedf60f23e1d4", "size_bytes": 486583}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df219169fea0cc374bf4d9a/inputs/r3/r3_asset_manifest.json", "sha256": "df1730a20d450ec280acd4cb638fd7e9ba16c71d300a059077988ce0fa5b6fde", "size_bytes": 7991}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6ae11425ccc6c3e1f10931dd6f2441fb45b77d460def4fbca2cc32269467a49b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/inputs/pfull/assets/asset_0000.png", "asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "asset_size_bytes": 1000, "kind": "asset", "pfull_asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "r3_asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "73c2214a7855001b50f78c27b7ea689d2a6dd541c904527d838054010065e173", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 18.0, 300.0, 151.0], "bbox_xyxy_clipped": [18.0, 18.0, 318.0, 169.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [178.0, 173.0, 142.0, 89.0], "bbox_xyxy_clipped": [178.0, 173.0, 320.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [257.0, 189.0, 60.0, 20.0], "bbox_xyxy_clipped": [257.0, 189.0, 317.0, 209.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [192.0, 186.0, 44.0, 33.0], "bbox_xyxy_clipped": [192.0, 186.0, 236.0, 219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [194.0, 214.0, 118.0, 13.0], "bbox_xyxy_clipped": [194.0, 214.0, 312.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [194.0, 228.0, 132.0, 11.0], "bbox_xyxy_clipped": [194.0, 228.0, 326.0, 239.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [196.0, 243.0, 55.0, 25.0], "bbox_xyxy_clipped": [196.0, 243.0, 251.0, 268.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [195.0, 250.0, 109.0, 30.0], "bbox_xyxy_clipped": [195.0, 250.0, 304.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [246.0, 241.0, 58.0, 12.0], "bbox_xyxy_clipped": [246.0, 241.0, 304.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [246.0, 257.0, 58.0, 12.0], "bbox_xyxy_clipped": [246.0, 257.0, 304.0, 269.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0040559258807855705}, "Ove": {"reason": null, "status": "ok", "value": 0.13450615890948933}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "365dc3130b069b074b35453485be8e85b9c90afb9e99b620cfcc8c6d0b0fc112", "status": "computed"}, "sample_id": "5936865895a7a863ddcdd152", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/pipeline/l0_result.json", "sha256": "b86a87e5ca42bd15d2f3f0adadf33ae138c6e1464426b0adfc6c17e25f712341", "size_bytes": 9852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/inputs/pfull/asset_manifest.json", "sha256": "1dd888bf4b410a4cdec1775407459d334e19a74c6beae2d6fe3029b1018bce9e", "size_bytes": 6203}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/renders/r0_candidate_01.png", "sha256": "6ae11425ccc6c3e1f10931dd6f2441fb45b77d460def4fbca2cc32269467a49b", "size_bytes": 117439}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/inputs/r3/r3_asset_manifest.json", "sha256": "43d4be70789bff1eb73c372e84690f692db62b012b22f5cb9843d1ac124273fa", "size_bytes": 5432}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936865895a7a863ddcdd152/inputs/pfull/assets/asset_0000.png", "sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "size_bytes": 1000}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "40009b8ba621980c17667e1545f2704f6d26452ac15bd3fe1e7bc78856d82962", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 9, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [470.0, 132.0, 381.0, 142.0], "bbox_xyxy_clipped": [470.0, 132.0, 851.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 28.0, 205.0, 62.0], "bbox_xyxy_clipped": [42.0, 28.0, 247.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [48.0, 92.0, 190.0, 38.0], "bbox_xyxy_clipped": [48.0, 92.0, 238.0, 130.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [50.0, 132.0, 240.0, 27.0], "bbox_xyxy_clipped": [50.0, 132.0, 290.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [44.0, 263.0, 212.0, 29.0], "bbox_xyxy_clipped": [44.0, 263.0, 256.0, 292.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [44.0, 293.0, 166.0, 18.0], "bbox_xyxy_clipped": [44.0, 293.0, 210.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [251.0, 74.0, 94.0, 79.0], "bbox_xyxy_clipped": [251.0, 74.0, 345.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [288.0, 208.0, 138.0, 3.0], "bbox_xyxy_clipped": [288.0, 208.0, 426.0, 211.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [336.0, 238.0, 104.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003959497994909659}, "Ove": {"reason": null, "status": "ok", "value": 0.007822648429739436}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5d4aa16dcf657b21ef68d8d3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d4aa16dcf657b21ef68d8d3/pipeline/l0_result.json", "sha256": "7d728c94592fbadd56408bbba683189ecf7d741d68f9b5379ccaa0e19dd4faf1", "size_bytes": 8516}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d4aa16dcf657b21ef68d8d3/inputs/pfull/asset_manifest.json", "sha256": "7c41548ff25ed5c8a30703fa1068919413e3de5905439ad36fd0b2f5a58bdea1", "size_bytes": 5106}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d4aa16dcf657b21ef68d8d3/renders/r0_candidate_02.png", "sha256": "40009b8ba621980c17667e1545f2704f6d26452ac15bd3fe1e7bc78856d82962", "size_bytes": 94135}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d4aa16dcf657b21ef68d8d3/inputs/r3/r3_asset_manifest.json", "sha256": "71ea9c80355b1d9685c16033f4be160742c7fe6a0bc55fc021f3e58f4d6e8095", "size_bytes": 4626}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "945a5cd6ea106cf332ff9a62fcacc8eefafdcddb60aef369fd8b360fe8a5108b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [694.0, 142.0, 486.0, 324.0], "bbox_xyxy_clipped": [694.0, 142.0, 1180.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 170.0, 520.0, 120.0], "bbox_xyxy_clipped": [120.0, 170.0, 640.0, 290.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [120.0, 170.0, 340.0, 138.0], "bbox_xyxy_clipped": [120.0, 170.0, 460.0, 308.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 290.0, 320.0, 77.0], "bbox_xyxy_clipped": [120.0, 290.0, 440.0, 367.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [920.0, 474.0, 250.0, 182.0], "bbox_xyxy_clipped": [920.0, 474.0, 1170.0, 656.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1110.0, 548.0, 120.0, 120.0], "bbox_xyxy_clipped": [1110.0, 548.0, 1230.0, 668.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 590.0, 344.0, 75.0], "bbox_xyxy_clipped": [120.0, 590.0, 464.0, 665.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 675.0, 380.0, 19.0], "bbox_xyxy_clipped": [120.0, 675.0, 500.0, 694.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012466068289468943}, "Ove": {"reason": null, "status": "ok", "value": 0.1005359327093877}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5e0216ee9fea0cc37420967d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc37420967d/pipeline/l0_result.json", "sha256": "4181886537889e43f7fd0fcc9304710c8bb3d990f4367da500bfe765d8d56f17", "size_bytes": 8396}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc37420967d/inputs/pfull/asset_manifest.json", "sha256": "05c16e3dbe7913f6654498ee9aec3733c30b730dc02d643d055a618a1ffa3e28", "size_bytes": 4567}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc37420967d/renders/r0_candidate_02.png", "sha256": "945a5cd6ea106cf332ff9a62fcacc8eefafdcddb60aef369fd8b360fe8a5108b", "size_bytes": 304331}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e0216ee9fea0cc37420967d/inputs/r3/r3_asset_manifest.json", "sha256": "2febce8c7b8fd2d5dbe4778bf30e3d3fb475829b42c34eb5905c6ac4d12deff5", "size_bytes": 4068}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b267b49a169d51ee5965dab632e96311e5263deddca32f2e2138441cecfb414e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [690.0, 40.0, 420.0, 474.0], "bbox_xyxy_clipped": [690.0, 40.0, 1110.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [742.0, 64.0, 18.0, 418.0], "bbox_xyxy_clipped": [742.0, 64.0, 760.0, 482.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [726.0, 86.0, 420.0, 2.0], "bbox_xyxy_clipped": [726.0, 86.0, 1146.0, 88.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [726.0, 120.0, 316.0, 4.0], "bbox_xyxy_clipped": [726.0, 120.0, 1042.0, 124.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [726.0, 158.0, 316.0, 4.0], "bbox_xyxy_clipped": [726.0, 158.0, 1042.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [760.0, 74.0, 320.0, 66.0], "bbox_xyxy_clipped": [760.0, 74.0, 1080.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [760.0, 152.0, 290.0, 73.0], "bbox_xyxy_clipped": [760.0, 152.0, 1050.0, 225.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [305.0, 240.0, 470.0, 313.0], "bbox_xyxy_clipped": [305.0, 240.0, 775.0, 553.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [365.0, 282.0, 154.0, 119.0], "bbox_xyxy_clipped": [365.0, 282.0, 519.0, 401.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005272351471378518}, "Ove": {"reason": null, "status": "ok", "value": 0.07214846352974841}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5b6da9001cc8aa542948b10e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b6da9001cc8aa542948b10e/pipeline/l0_result.json", "sha256": "62d672ee439692bf37409c3c7406661b3f1432cd911287e21cd95c4b3c8cf571", "size_bytes": 8610}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b6da9001cc8aa542948b10e/inputs/pfull/asset_manifest.json", "sha256": "f6ca8642c5daf547b6571545d66ec5e163710d248ffc57084ea0a85811d7d8ab", "size_bytes": 5044}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b6da9001cc8aa542948b10e/renders/r0_candidate_03.png", "sha256": "b267b49a169d51ee5965dab632e96311e5263deddca32f2e2138441cecfb414e", "size_bytes": 280857}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b6da9001cc8aa542948b10e/inputs/r3/r3_asset_manifest.json", "sha256": "dfc7c7e1ae0e97f2d8694a0a80e1d7611944eb5b33c1f56f135b1b981b47e90c", "size_bytes": 4380}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93771a60aae613fb7c4389c796d8643115ade6fadf867952ea27a103df311bb1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/inputs/pfull/assets/asset_0000.png", "asset_sha256": "2d7705f02e4e349231ae44bba1b75f6d2270777d6c6fc15925c8f14793a653e1", "asset_size_bytes": 2093, "kind": "asset", "pfull_asset_sha256": "2d7705f02e4e349231ae44bba1b75f6d2270777d6c6fc15925c8f14793a653e1", "r3_asset_sha256": "2d7705f02e4e349231ae44bba1b75f6d2270777d6c6fc15925c8f14793a653e1", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "40d7d98a7384fd572d038d002feba9a593226175f01aee00d8d0935aeeb6a4fe", "canvas": {"height": 500, "width": 500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [187.0, 42.0, 127.0, 116.0], "bbox_xyxy_clipped": [187.0, 42.0, 314.0, 158.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [104.0, 87.0, 95.0, 22.0], "bbox_xyxy_clipped": [104.0, 87.0, 199.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [302.0, 87.0, 95.0, 22.0], "bbox_xyxy_clipped": [302.0, 87.0, 397.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [132.0, 188.0, 237.0, 47.0], "bbox_xyxy_clipped": [132.0, 188.0, 369.0, 235.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [111.0, 243.0, 278.0, 41.0], "bbox_xyxy_clipped": [111.0, 243.0, 389.0, 284.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 2.160810753646675e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.006377581833554777}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "a711f9a541d14e2970460ea15ff19d82c0d66fbef4d32e0408175ad42bd1c54b", "status": "computed"}, "sample_id": "5dc93d439fea0cc3740e81b7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/pipeline/l0_result.json", "sha256": "4f18bc714e1909d83b23de8d6016e6770aba02a27a384b1b2024de309920fdfc", "size_bytes": 6513}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/inputs/pfull/asset_manifest.json", "sha256": "2f46fb839c528e3dfd4604b42e8def77cd5d3dbd4db3a71e32367fc825ec0477", "size_bytes": 3540}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/renders/r0_candidate_03.png", "sha256": "93771a60aae613fb7c4389c796d8643115ade6fadf867952ea27a103df311bb1", "size_bytes": 26441}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/inputs/r3/r3_asset_manifest.json", "sha256": "190315aae094d14e9271d0391c934b71653fbcab527409e8fc6c370624a66622", "size_bytes": 3094}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5dc93d439fea0cc3740e81b7/inputs/pfull/assets/asset_0000.png", "sha256": "2d7705f02e4e349231ae44bba1b75f6d2270777d6c6fc15925c8f14793a653e1", "size_bytes": 2093}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "907e8e0c07d312300fc7c828e8cd7c79b2d48381a3a219f7d06babe95c6d5b9c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [123.0, 54.0, 114.0, 128.0], "bbox_xyxy_clipped": [123.0, 54.0, 237.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [214.0, 62.0, 29.0, 36.0], "bbox_xyxy_clipped": [214.0, 62.0, 243.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [101.0, 176.0, 89.0, 31.0], "bbox_xyxy_clipped": [101.0, 176.0, 190.0, 207.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [96.0, 214.0, 169.0, 18.0], "bbox_xyxy_clipped": [96.0, 214.0, 265.0, 232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [77.0, 244.0, 206.0, 23.0], "bbox_xyxy_clipped": [77.0, 244.0, 283.0, 267.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [55.0, 276.0, 250.0, 26.0], "bbox_xyxy_clipped": [55.0, 276.0, 305.0, 302.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [100.0, 320.0, 161.0, 18.0], "bbox_xyxy_clipped": [100.0, 320.0, 261.0, 338.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [45.0, 346.0, 271.0, 20.0], "bbox_xyxy_clipped": [45.0, 346.0, 316.0, 366.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [82.0, 374.0, 196.0, 25.0], "bbox_xyxy_clipped": [82.0, 374.0, 278.0, 399.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [112.0, 408.0, 136.0, 19.0], "bbox_xyxy_clipped": [112.0, 408.0, 248.0, 427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [67.0, 440.0, 226.0, 18.0], "bbox_xyxy_clipped": [67.0, 440.0, 293.0, 458.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [38.0, 48.0, 12.0, 25.0], "bbox_xyxy_clipped": [38.0, 48.0, 50.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [56.0, 52.0, 18.0, 23.0], "bbox_xyxy_clipped": [56.0, 52.0, 74.0, 75.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [282.0, 50.0, 25.0, 22.0], "bbox_xyxy_clipped": [282.0, 50.0, 307.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [314.0, 48.0, 14.0, 24.0], "bbox_xyxy_clipped": [314.0, 48.0, 328.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 492.0, 324.0, 11.0], "bbox_xyxy_clipped": [18.0, 492.0, 342.0, 503.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00832974752645895}, "Ove": {"reason": null, "status": "ok", "value": 0.004977120918480487}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5b62ffeb1cc8aa542947b0ca", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b62ffeb1cc8aa542947b0ca/pipeline/l0_result.json", "sha256": "3d0e2f0afd51e70c90a30b01ab07adf63869e7c131aac98c720e0965bc67f396", "size_bytes": 12670}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b62ffeb1cc8aa542947b0ca/inputs/pfull/asset_manifest.json", "sha256": "0951388d32317177d01a255b0949ea0b702abf68ba36a7470689d4e4a7777d5b", "size_bytes": 8990}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b62ffeb1cc8aa542947b0ca/renders/r0_candidate_02.png", "sha256": "907e8e0c07d312300fc7c828e8cd7c79b2d48381a3a219f7d06babe95c6d5b9c", "size_bytes": 61891}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b62ffeb1cc8aa542947b0ca/inputs/r3/r3_asset_manifest.json", "sha256": "3f028324782a13733b5e01e0cab24e7df0175f0d9684a8b3f446579b21b5a291", "size_bytes": 8347}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1d9eb7b064cf192013073732ae7f909bd5e4fcc1d936c687d6064546b6e8c360", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [562.0, 22.0, 240.0, 163.0], "bbox_xyxy_clipped": [562.0, 22.0, 802.0, 185.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [100.0, 247.0, 679.0, 35.0], "bbox_xyxy_clipped": [100.0, 247.0, 779.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [688.0, 51.0, 133.0, 25.0], "bbox_xyxy_clipped": [688.0, 51.0, 821.0, 76.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [804.0, 38.0, 14.0, 51.0], "bbox_xyxy_clipped": [804.0, 38.0, 818.0, 89.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [41.0, 230.0, 128.0, 32.0], "bbox_xyxy_clipped": [41.0, 230.0, 169.0, 262.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [41.0, 264.0, 182.0, 30.0], "bbox_xyxy_clipped": [41.0, 264.0, 223.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005209350280896808}, "Ove": {"reason": null, "status": "ok", "value": 0.04790067074203704}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5f9a8be0a637ee11e37a8a88", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f9a8be0a637ee11e37a8a88/pipeline/l0_result.json", "sha256": "32c088dccbad291331e09eae5b2ac02ebc789b446f93a86648d77bd0109429b8", "size_bytes": 7143}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f9a8be0a637ee11e37a8a88/inputs/pfull/asset_manifest.json", "sha256": "10b8a2f873e5768269977403763790908f61ed56a163b4f805c4b9de0f0eaf75", "size_bytes": 3456}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f9a8be0a637ee11e37a8a88/renders/r0_candidate_02.png", "sha256": "1d9eb7b064cf192013073732ae7f909bd5e4fcc1d936c687d6064546b6e8c360", "size_bytes": 34605}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f9a8be0a637ee11e37a8a88/inputs/r3/r3_asset_manifest.json", "sha256": "6927b6f529db8d6fbc004725317f7a1d5604b468f772e033c3daee295139e14a", "size_bytes": 3084}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "59d1b2f91d1b909ca9970665c69f688af69004a1885be9d8e53932953b20d8d2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "11217e9a8883c2f2e8529f1bb744f403fd69b979aa781cb901beeaeedf01a747", "canvas": {"height": 654, "width": 420}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [82.0, 82.0, 256.0, 256.0], "bbox_xyxy_clipped": [82.0, 82.0, 338.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [103.0, 108.0, 214.0, 171.0], "bbox_xyxy_clipped": [103.0, 108.0, 317.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [172.0, 92.0, 184.0, 350.0], "bbox_xyxy_clipped": [172.0, 92.0, 356.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [28.0, 40.0, 74.0, 26.0], "bbox_xyxy_clipped": [28.0, 40.0, 102.0, 66.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [30.0, 68.0, 92.0, 27.0], "bbox_xyxy_clipped": [30.0, 68.0, 122.0, 95.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [54.0, 398.0, 124.0, 186.0], "bbox_xyxy_clipped": [54.0, 398.0, 178.0, 584.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [166.0, 452.0, 92.0, 92.0], "bbox_xyxy_clipped": [166.0, 452.0, 258.0, 544.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 258.0, 418.0, 90.0], "bbox_xyxy_clipped": [0.0, 258.0, 418.0, 348.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 480.0, 420.0, 134.0], "bbox_xyxy_clipped": [0.0, 480.0, 420.0, 614.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [314.0, 410.0, 86.0, 161.0], "bbox_xyxy_clipped": [314.0, 410.0, 400.0, 571.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [332.0, 24.0, 70.0, 71.0], "bbox_xyxy_clipped": [332.0, 24.0, 402.0, 95.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004978658828024377}, "Ove": {"reason": null, "status": "ok", "value": 0.2122198408338294}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d09109066a15e44b18dd96cd5d5d3bf52cb21140804f0b9a19e9249c4795b48a", "status": "computed"}, "sample_id": "5f92dc7ea637ee11e341b058", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f92dc7ea637ee11e341b058/pipeline/l0_result.json", "sha256": "d0ad50783eed12d1f0b8e829de6a5c27f652873f2e8b4ec335314422ebdc1fd2", "size_bytes": 9644}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f92dc7ea637ee11e341b058/inputs/pfull/asset_manifest.json", "sha256": "92bb21db9c7ad5e5fc4ce7b9b50652056cc251f6d90d6ab355e2701f891d9bfb", "size_bytes": 6066}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f92dc7ea637ee11e341b058/renders/r0_candidate_02.png", "sha256": "59d1b2f91d1b909ca9970665c69f688af69004a1885be9d8e53932953b20d8d2", "size_bytes": 166526}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f92dc7ea637ee11e341b058/inputs/r3/r3_asset_manifest.json", "sha256": "1fcc354caa2a4c81ff4d5f500491b5670ca59c07682c5718fbcd9b687323565d", "size_bytes": 5240}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b6ef32e4226506c04aa9253aff08be5875fc2e07c1902d59b0d33f03b1c3a2e3", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fb39b41aefffd5a732fc6b447509caea2f846b715e97d333d9267f73bb35ec44", "canvas": {"height": 1102, "width": 735}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [49.0, 68.0, 350.0, 195.0], "bbox_xyxy_clipped": [49.0, 68.0, 399.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [55.0, 240.0, 223.0, 74.0], "bbox_xyxy_clipped": [55.0, 240.0, 278.0, 314.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [49.0, 352.0, 256.0, 55.0], "bbox_xyxy_clipped": [49.0, 352.0, 305.0, 407.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [445.0, 430.0, 250.0, 186.0], "bbox_xyxy_clipped": [445.0, 430.0, 695.0, 616.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [491.0, 470.0, 200.0, 149.0], "bbox_xyxy_clipped": [491.0, 470.0, 691.0, 619.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [417.0, 164.0, 297.0, 171.0], "bbox_xyxy_clipped": [417.0, 164.0, 714.0, 335.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [64.0, 566.0, 607.0, 31.0], "bbox_xyxy_clipped": [64.0, 566.0, 671.0, 597.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0005331027847767081}, "Ove": {"reason": null, "status": "ok", "value": 0.1334540474760985}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "a0e9fd79f4c057b28ede6ee29051320c02592c0696c2933e91929434329a0ddb", "status": "computed"}, "sample_id": "5936895895a7a863ddcdd31f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936895895a7a863ddcdd31f/pipeline/l0_result.json", "sha256": "19e7cd7436389e3410a365c6ece5b61b9a012941e099e074266e3f40eb0c09b5", "size_bytes": 7250}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936895895a7a863ddcdd31f/inputs/pfull/asset_manifest.json", "sha256": "5f2a91484c1f3ee96d6116b826b50e25079b0cf289f826992f261dd55b429a6b", "size_bytes": 4121}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936895895a7a863ddcdd31f/renders/r0_candidate_01.png", "sha256": "b6ef32e4226506c04aa9253aff08be5875fc2e07c1902d59b0d33f03b1c3a2e3", "size_bytes": 81978}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5936895895a7a863ddcdd31f/inputs/r3/r3_asset_manifest.json", "sha256": "ac27aa5490836679994a92a0e8691187c14d2a6b599ba10d80ff75a0b84b3dde", "size_bytes": 3738}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fc10d30f4227149d9dbbde102b23d417d672bbab7c24bf9836a8c4dc75a567aa", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fb39b41aefffd5a732fc6b447509caea2f846b715e97d333d9267f73bb35ec44", "canvas": {"height": 1102, "width": 735}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [123.0, 96.0, 488.0, 398.0], "bbox_xyxy_clipped": [123.0, 96.0, 611.0, 494.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [232.0, 42.0, 271.0, 187.0], "bbox_xyxy_clipped": [232.0, 42.0, 503.0, 229.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [154.0, 530.0, 428.0, 86.0], "bbox_xyxy_clipped": [154.0, 530.0, 582.0, 616.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [173.0, 617.0, 389.0, 83.0], "bbox_xyxy_clipped": [173.0, 617.0, 562.0, 700.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [256.0, 702.0, 224.0, 81.0], "bbox_xyxy_clipped": [256.0, 702.0, 480.0, 783.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [112.0, 793.0, 510.0, 50.0], "bbox_xyxy_clipped": [112.0, 793.0, 622.0, 843.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [99.0, 779.0, 538.0, 130.0], "bbox_xyxy_clipped": [99.0, 779.0, 637.0, 909.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [170.0, 895.0, 396.0, 37.0], "bbox_xyxy_clipped": [170.0, 895.0, 566.0, 932.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [173.0, 951.0, 390.0, 37.0], "bbox_xyxy_clipped": [173.0, 951.0, 563.0, 988.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [197.0, 1007.0, 342.0, 41.0], "bbox_xyxy_clipped": [197.0, 1007.0, 539.0, 1048.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [86.0, 862.0, 564.0, 3.0], "bbox_xyxy_clipped": [86.0, 862.0, 650.0, 865.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [53.0, 486.0, 629.0, 149.0], "bbox_xyxy_clipped": [53.0, 486.0, 682.0, 635.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [64.0, 560.0, 607.0, 14.0], "bbox_xyxy_clipped": [64.0, 560.0, 671.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [64.0, 586.0, 607.0, 14.0], "bbox_xyxy_clipped": [64.0, 586.0, 671.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [32.0, 24.0, 671.0, 455.0], "bbox_xyxy_clipped": [32.0, 24.0, 703.0, 479.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0038280308701721826}, "Ove": {"reason": null, "status": "ok", "value": 0.15706472201408433}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "a0e9fd79f4c057b28ede6ee29051320c02592c0696c2933e91929434329a0ddb", "status": "computed"}, "sample_id": "5df7436b9fea0cc3748d96b3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df7436b9fea0cc3748d96b3/pipeline/l0_result.json", "sha256": "f87666464b8ce4c68c77caf892a61ccbc32972ab088d3a649a29af08b5ecf3e6", "size_bytes": 11912}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df7436b9fea0cc3748d96b3/inputs/pfull/asset_manifest.json", "sha256": "e3a030355dd30c05872aabed31cb1ef1ae9571e5ab4cacc79555add2671216ca", "size_bytes": 8278}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df7436b9fea0cc3748d96b3/renders/r0_candidate_02.png", "sha256": "fc10d30f4227149d9dbbde102b23d417d672bbab7c24bf9836a8c4dc75a567aa", "size_bytes": 265227}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df7436b9fea0cc3748d96b3/inputs/r3/r3_asset_manifest.json", "sha256": "ea49e7d9addd28f3ab3fd229422bcee95c8ce822c7fa174d90750bef16e63ba3", "size_bytes": 7360}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4b8fe537051fea62809e869cb9bfec3a01e63e94671081dc66429dc547420c61", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [316.0, 170.0, 224.0, 228.0], "bbox_xyxy_clipped": [316.0, 170.0, 540.0, 398.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [350.0, 94.0, 112.0, 224.0], "bbox_xyxy_clipped": [350.0, 94.0, 462.0, 318.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [56.0, 430.0, 253.0, 36.0], "bbox_xyxy_clipped": [56.0, 430.0, 309.0, 466.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [56.0, 482.0, 108.0, 28.0], "bbox_xyxy_clipped": [56.0, 482.0, 164.0, 510.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [56.0, 528.0, 262.0, 37.0], "bbox_xyxy_clipped": [56.0, 528.0, 318.0, 565.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [56.0, 579.0, 272.0, 32.0], "bbox_xyxy_clipped": [56.0, 579.0, 328.0, 611.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0007307333399828967}, "Ove": {"reason": null, "status": "ok", "value": 0.046365914786967416}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5952720b95a7a863ddcdedee", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952720b95a7a863ddcdedee/pipeline/l0_result.json", "sha256": "a017a58e54b9da96b4233a51b9b63c6994671972ec97b32d97be75b3f4bc1366", "size_bytes": 8191}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952720b95a7a863ddcdedee/inputs/pfull/asset_manifest.json", "sha256": "c0adf47d71dc01128b11256921985a2250e4757ddb5bf59cc0504358a46a28e3", "size_bytes": 3522}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952720b95a7a863ddcdedee/renders/r0_candidate_02.png", "sha256": "4b8fe537051fea62809e869cb9bfec3a01e63e94671081dc66429dc547420c61", "size_bytes": 34965}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952720b95a7a863ddcdedee/inputs/r3/r3_asset_manifest.json", "sha256": "b2849a331a4473d250c0b71caa4e09d870c3090b4d92f32ab6a75a25df7f097c", "size_bytes": 3261}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c57b7c884af1f182ea4d2e624be7e726bf2932f90a6a3505d58018d94ad6e38b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [64.0, 76.0, 390.0, 256.0], "bbox_xyxy_clipped": [64.0, 76.0, 454.0, 332.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 325.0, 240.0, 110.0], "bbox_xyxy_clipped": [78.0, 325.0, 318.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 410.0, 150.0, 317.0], "bbox_xyxy_clipped": [42.0, 410.0, 192.0, 727.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [535.0, 418.0, 292.0, 233.0], "bbox_xyxy_clipped": [535.0, 418.0, 827.0, 651.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [590.0, 485.0, 252.0, 215.0], "bbox_xyxy_clipped": [590.0, 485.0, 842.0, 700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [760.0, 526.0, 160.0, 134.0], "bbox_xyxy_clipped": [760.0, 526.0, 920.0, 660.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [710.0, 498.0, 120.0, 101.0], "bbox_xyxy_clipped": [710.0, 498.0, 830.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [214.0, 626.0, 180.0, 135.0], "bbox_xyxy_clipped": [214.0, 626.0, 394.0, 761.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [112.0, 650.0, 150.0, 113.0], "bbox_xyxy_clipped": [112.0, 650.0, 262.0, 763.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.002480895251254411}, "Occ": {"reason": null, "status": "ok", "value": 0.00465212955616038}, "Ove": {"reason": null, "status": "ok", "value": 0.18130069873243515}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5c7fbb0785ea3c16f94a594e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c7fbb0785ea3c16f94a594e/pipeline/l0_result.json", "sha256": "b91801f37e0272c09e47f9d41879fe7f095b855fdeb6304054fdfccd91bb50cd", "size_bytes": 8763}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c7fbb0785ea3c16f94a594e/inputs/pfull/asset_manifest.json", "sha256": "13b27d9cf7e869ec6035e0c59204fb8cc9b1e101bc9f23473668a219d69ceb6f", "size_bytes": 5044}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c7fbb0785ea3c16f94a594e/renders/r0_candidate_01.png", "sha256": "c57b7c884af1f182ea4d2e624be7e726bf2932f90a6a3505d58018d94ad6e38b", "size_bytes": 83362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c7fbb0785ea3c16f94a594e/inputs/r3/r3_asset_manifest.json", "sha256": "57c5cad8082d18af2720815562c4488b7ca4eef34f240894f7da0d61dac35d16", "size_bytes": 4419}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3ab73310bb4762582fcc234f8f6eca04669a629c6cc7dfdbd102319571173ef5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 17, "valid": 15}, "elements": [{"asset_id": "asset_0012", "bbox_lwh_raw": [40.0, 170.0, 330.0, 506.0], "bbox_xyxy_clipped": [40.0, 170.0, 370.0, 676.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [18.0, 190.0, 22.0, 51.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [18.0, 255.0, 22.0, 51.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [540.0, 110.0, 420.0, 39.0], "bbox_xyxy_clipped": [540.0, 110.0, 960.0, 149.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [540.0, 170.0, 410.0, 155.0], "bbox_xyxy_clipped": [540.0, 170.0, 950.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [540.0, 1025.0, 360.0, 23.0], "bbox_xyxy_clipped": [540.0, 1025.0, 900.0, 1048.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [705.0, 620.0, 140.0, 94.0], "bbox_xyxy_clipped": [705.0, 620.0, 845.0, 714.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [855.0, 650.0, 54.0, 51.0], "bbox_xyxy_clipped": [855.0, 650.0, 909.0, 701.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [540.0, 700.0, 215.0, 59.0], "bbox_xyxy_clipped": [540.0, 700.0, 755.0, 759.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [540.0, 770.0, 170.0, 68.0], "bbox_xyxy_clipped": [540.0, 770.0, 710.0, 838.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [540.0, 850.0, 420.0, 39.0], "bbox_xyxy_clipped": [540.0, 850.0, 960.0, 889.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [980.0, 120.0, 3.0, 891.0], "bbox_xyxy_clipped": [980.0, 120.0, 983.0, 1011.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1000.0, 180.0, 5.0, 717.0], "bbox_xyxy_clipped": [1000.0, 180.0, 1005.0, 897.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1020.0, 220.0, 5.0, 717.0], "bbox_xyxy_clipped": [1020.0, 220.0, 1025.0, 937.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1040.0, 260.0, 5.0, 717.0], "bbox_xyxy_clipped": [1040.0, 260.0, 1045.0, 977.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1060.0, 300.0, 5.0, 972.0], "bbox_xyxy_clipped": [1060.0, 300.0, 1065.0, 1272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1072.0, 340.0, 5.0, 972.0], "bbox_xyxy_clipped": [1072.0, 340.0, 1077.0, 1312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010391330463008282}, "Ove": {"reason": null, "status": "ok", "value": 0.0018559024325578313}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b0913048d064dbc785e7c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c5b0913048d064dbc785e7c/pipeline/l0_result.json", "sha256": "5148b5e8a9d4e12a0f3509f1e481f8a7e2dd8926fc1ceafe2ae8290706e3e3de", "size_bytes": 13346}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c5b0913048d064dbc785e7c/inputs/pfull/asset_manifest.json", "sha256": "685de4bbe95495aef28b08683d77b904e91bf3d0c68ceb6264dc53ddf0511248", "size_bytes": 9305}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_02.png", "sha256": "3ab73310bb4762582fcc234f8f6eca04669a629c6cc7dfdbd102319571173ef5", "size_bytes": 323214}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5c5b0913048d064dbc785e7c/inputs/r3/r3_asset_manifest.json", "sha256": "a7b0de2af3664af41d0d3d366786ee388b3207513dbe3e5bee6df728d452ab75", "size_bytes": 8322}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "cf6101dbde3f23c95b8d2778a33208cf4ce1a6342b79c2c81e56e2cdf037d07f", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [34.0, 22.0, 124.0, 30.0], "bbox_xyxy_clipped": [34.0, 22.0, 158.0, 52.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 55.0, 118.0, 18.0], "bbox_xyxy_clipped": [34.0, 55.0, 152.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 82.0, 106.0, 19.0], "bbox_xyxy_clipped": [34.0, 82.0, 140.0, 101.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 104.0, 92.0, 41.0], "bbox_xyxy_clipped": [34.0, 104.0, 126.0, 145.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [323.0, 38.0, 420.0, 131.0], "bbox_xyxy_clipped": [323.0, 38.0, 743.0, 169.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [718.0, 21.0, 95.0, 101.0], "bbox_xyxy_clipped": [718.0, 21.0, 813.0, 122.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [71.0, 210.0, 70.0, 48.0], "bbox_xyxy_clipped": [71.0, 210.0, 141.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0013585031513213865}, "Ove": {"reason": null, "status": "ok", "value": 0.004798848276413662}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5de7cdc19fea0cc37428e229", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5de7cdc19fea0cc37428e229/pipeline/l0_result.json", "sha256": "e0516a876290637082dd4a834738651401c6478e1195c0517f5b530cd1094a35", "size_bytes": 7405}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5de7cdc19fea0cc37428e229/inputs/pfull/asset_manifest.json", "sha256": "0ec8d46fc79372da38d17151b507981f12dfb49f639b6b8baa86db103e7c42ba", "size_bytes": 4057}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5de7cdc19fea0cc37428e229/renders/r0_candidate_02.png", "sha256": "cf6101dbde3f23c95b8d2778a33208cf4ce1a6342b79c2c81e56e2cdf037d07f", "size_bytes": 98350}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5de7cdc19fea0cc37428e229/inputs/r3/r3_asset_manifest.json", "sha256": "38780dc70c21ca97093f1f73b93cc762041922321a252e1bd96c1bfcb4a2b976", "size_bytes": 3717}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "33eb5307ff09d9cc48f8a438d1e1a327e19e9d7fc8215b9adb99bbf769a3f60d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 26, "valid": 25}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [106.0, 103.0, 149.0, 105.0], "bbox_xyxy_clipped": [106.0, 103.0, 255.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [286.0, 82.0, 58.0, 81.0], "bbox_xyxy_clipped": [286.0, 82.0, 344.0, 163.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [285.0, 182.0, 24.0, 20.0], "bbox_xyxy_clipped": [285.0, 182.0, 309.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [313.0, 193.0, 20.0, 24.0], "bbox_xyxy_clipped": [313.0, 193.0, 333.0, 217.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [300.0, 149.0, 32.0, 32.0], "bbox_xyxy_clipped": [300.0, 149.0, 332.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [297.0, 221.0, 18.0, 17.0], "bbox_xyxy_clipped": [297.0, 221.0, 315.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [321.0, 225.0, 18.0, 17.0], "bbox_xyxy_clipped": [321.0, 225.0, 339.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [281.0, 236.0, 28.0, 24.0], "bbox_xyxy_clipped": [281.0, 236.0, 309.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [309.0, 286.0, 19.0, 19.0], "bbox_xyxy_clipped": [309.0, 286.0, 328.0, 305.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [287.0, 274.0, 24.0, 24.0], "bbox_xyxy_clipped": [287.0, 274.0, 311.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [327.0, 287.0, 19.0, 19.0], "bbox_xyxy_clipped": [327.0, 287.0, 346.0, 306.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [301.0, 338.0, 22.0, 19.0], "bbox_xyxy_clipped": [301.0, 338.0, 323.0, 357.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [326.0, 345.0, 18.0, 19.0], "bbox_xyxy_clipped": [326.0, 345.0, 344.0, 364.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [280.0, 331.0, 36.0, 31.0], "bbox_xyxy_clipped": [280.0, 331.0, 316.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [319.0, 319.0, 25.0, 22.0], "bbox_xyxy_clipped": [319.0, 319.0, 344.0, 341.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [292.0, 405.0, 31.0, 21.0], "bbox_xyxy_clipped": [292.0, 405.0, 323.0, 426.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [322.0, 394.0, 24.0, 19.0], "bbox_xyxy_clipped": [322.0, 394.0, 346.0, 413.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [168.0, 27.0, 24.0, 77.0], "bbox_xyxy_clipped": [168.0, 27.0, 192.0, 104.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [156.0, 372.0, 48.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0019", "bbox_lwh_raw": [196.0, 56.0, 41.0, 35.0], "bbox_xyxy_clipped": [196.0, 56.0, 237.0, 91.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [24.0, 438.0, 72.0, 51.0], "bbox_xyxy_clipped": [24.0, 438.0, 96.0, 489.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [22.0, 155.0, 69.0, 21.0], "bbox_xyxy_clipped": [22.0, 155.0, 91.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [20.0, 185.0, 69.0, 21.0], "bbox_xyxy_clipped": [20.0, 185.0, 89.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [18.0, 236.0, 103.0, 18.0], "bbox_xyxy_clipped": [18.0, 236.0, 121.0, 254.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [18.0, 260.0, 130.0, 54.0], "bbox_xyxy_clipped": [18.0, 260.0, 148.0, 314.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [24.0, 315.0, 61.0, 19.0], "bbox_xyxy_clipped": [24.0, 315.0, 85.0, 334.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0017067533173510385}, "Ove": {"reason": null, "status": "ok", "value": 0.01645381793050298}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5954bde095a7a863ddce14da", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bde095a7a863ddce14da/pipeline/l0_result.json", "sha256": "5b837ba6111bbdc49d0060dd81cd46fbc5ac935111087817dba863f08272bb1a", "size_bytes": 19500}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bde095a7a863ddce14da/inputs/pfull/asset_manifest.json", "sha256": "85542fd6162788d57528af2cc12ed790668511a8bec13cf49408392ec7ed7a28", "size_bytes": 13842}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bde095a7a863ddce14da/renders/r0_candidate_02.png", "sha256": "33eb5307ff09d9cc48f8a438d1e1a327e19e9d7fc8215b9adb99bbf769a3f60d", "size_bytes": 48607}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bde095a7a863ddce14da/inputs/r3/r3_asset_manifest.json", "sha256": "e94f661fadf50ec9b17c838aa8feb2d65607720730f88fa96a0a0f66e7da65ac", "size_bytes": 11845}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f864665e99b21a6528e317690cadb1056e3f7451d920770143b6c91fbb6c69ce", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [110.0, 92.0, 300.0, 70.0], "bbox_xyxy_clipped": [110.0, 92.0, 410.0, 162.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [110.0, 205.0, 350.0, 48.0], "bbox_xyxy_clipped": [110.0, 205.0, 460.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [110.0, 300.0, 320.0, 56.0], "bbox_xyxy_clipped": [110.0, 300.0, 430.0, 356.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1320.0, 90.0, 500.0, 344.0], "bbox_xyxy_clipped": [1320.0, 90.0, 1820.0, 434.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [884.0, 474.0, 152.0, 175.0], "bbox_xyxy_clipped": [884.0, 474.0, 1036.0, 649.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 540.0, 1680.0, 15.0], "bbox_xyxy_clipped": [120.0, 540.0, 1800.0, 555.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [120.0, 612.0, 1680.0, 15.0], "bbox_xyxy_clipped": [120.0, 612.0, 1800.0, 627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1368.0, 468.0, 360.0, 203.0], "bbox_xyxy_clipped": [1368.0, 468.0, 1728.0, 671.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0004009503637266901}, "Ove": {"reason": null, "status": "ok", "value": 0.026045384528684674}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5fc0b87ba637ee11e3a49e4c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc0b87ba637ee11e3a49e4c/pipeline/l0_result.json", "sha256": "e4eb0db264fee9a234a505a103e3855fca1b5f8646aeb8522ad2ac4ff2d946f5", "size_bytes": 8032}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc0b87ba637ee11e3a49e4c/inputs/pfull/asset_manifest.json", "sha256": "f3c02457e05bc95081954d1c1ad46c622d42ccaa97ca1bb8686443480b763592", "size_bytes": 4520}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc0b87ba637ee11e3a49e4c/renders/r0_candidate_03.png", "sha256": "f864665e99b21a6528e317690cadb1056e3f7451d920770143b6c91fbb6c69ce", "size_bytes": 364948}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fc0b87ba637ee11e3a49e4c/inputs/r3/r3_asset_manifest.json", "sha256": "ec13157dd4bf8bca521f5581d37669ca5f3e062590d6aa69970c65e9c92f1c87", "size_bytes": 4047}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3dfd6278e4ea8a89edc3256d0ede06026b5224430271c6d8b7cae4c32addc9b5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 33.0, 288.0, 134.0], "bbox_xyxy_clipped": [42.0, 33.0, 330.0, 167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [403.0, 36.0, 378.0, 252.0], "bbox_xyxy_clipped": [403.0, 36.0, 781.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [333.0, 18.0, 271.0, 253.0], "bbox_xyxy_clipped": [333.0, 18.0, 604.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [610.0, 74.0, 120.0, 131.0], "bbox_xyxy_clipped": [610.0, 74.0, 730.0, 205.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.01662383908463081}, "Occ": {"reason": null, "status": "ok", "value": 0.003926909190511902}, "Ove": {"reason": null, "status": "ok", "value": 0.14254687171752078}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5f885a9aa637ee11e3498504", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f885a9aa637ee11e3498504/pipeline/l0_result.json", "sha256": "fcd48a6d447d3ca80bcda69376b15c6bfea29886e822a5d8995c42b957ca2075", "size_bytes": 5464}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f885a9aa637ee11e3498504/inputs/pfull/asset_manifest.json", "sha256": "3ee598e7c00185a560c79d0a03ac78705879d30c6ca283dc79fac02df7893f81", "size_bytes": 2456}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f885a9aa637ee11e3498504/renders/r0_candidate_02.png", "sha256": "3dfd6278e4ea8a89edc3256d0ede06026b5224430271c6d8b7cae4c32addc9b5", "size_bytes": 126227}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f885a9aa637ee11e3498504/inputs/r3/r3_asset_manifest.json", "sha256": "f22b1a9d7fc4c7fe6670f79779409304364381b4cbb5851a161a8cf10a81eac9", "size_bytes": 2203}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "07e72be1b2eae3131cbf4e857e119e6c4169bfc009417cf93448efc5e7b6276f", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fb39b41aefffd5a732fc6b447509caea2f846b715e97d333d9267f73bb35ec44", "canvas": {"height": 1102, "width": 735}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [38.0, 352.0, 355.0, 295.0], "bbox_xyxy_clipped": [38.0, 352.0, 393.0, 647.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [476.0, 142.0, 215.0, 21.0], "bbox_xyxy_clipped": [476.0, 142.0, 691.0, 163.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [470.0, 169.0, 96.0, 110.0], "bbox_xyxy_clipped": [470.0, 169.0, 566.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [470.0, 224.0, 221.0, 34.0], "bbox_xyxy_clipped": [470.0, 224.0, 691.0, 258.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [470.0, 278.0, 229.0, 43.0], "bbox_xyxy_clipped": [470.0, 278.0, 699.0, 321.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [470.0, 1005.0, 220.0, 19.0], "bbox_xyxy_clipped": [470.0, 1005.0, 690.0, 1024.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 250.0, 375.0], "bbox_xyxy_clipped": [0.0, 0.0, 250.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [43.0, 32.0, 120.0, 184.0], "bbox_xyxy_clipped": [43.0, 32.0, 163.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032088168972540278}, "Ove": {"reason": null, "status": "ok", "value": 0.06072802633321157}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "a0e9fd79f4c057b28ede6ee29051320c02592c0696c2933e91929434329a0ddb", "status": "computed"}, "sample_id": "58ac657a95a7a863ddcc7d8c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac657a95a7a863ddcc7d8c/pipeline/l0_result.json", "sha256": "97b4589d070f0ada37e4b3e3e5693ea33efb3731e6b67dd869e21908fee075ea", "size_bytes": 7640}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac657a95a7a863ddcc7d8c/inputs/pfull/asset_manifest.json", "sha256": "80760b674ea4843c8df9720bf92cea2d3b31a0802b93cdbc65c32d4c93279cb8", "size_bytes": 4715}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac657a95a7a863ddcc7d8c/renders/r0_candidate_01.png", "sha256": "07e72be1b2eae3131cbf4e857e119e6c4169bfc009417cf93448efc5e7b6276f", "size_bytes": 123602}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58ac657a95a7a863ddcc7d8c/inputs/r3/r3_asset_manifest.json", "sha256": "387c0df18fcdd99ed36a379abcf2f40f75938a7f2a242333357011b8e9f3c441", "size_bytes": 4262}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c265f2610721e2273aaf5b18e97540892c78474274a571b9f1ace9618c26d50b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 54.0, 164.0, 113.0], "bbox_xyxy_clipped": [28.0, 54.0, 192.0, 167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [30.0, 180.0, 210.0, 66.0], "bbox_xyxy_clipped": [30.0, 180.0, 240.0, 246.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [30.0, 268.0, 246.0, 59.0], "bbox_xyxy_clipped": [30.0, 268.0, 276.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [31.0, 386.0, 275.0, 26.0], "bbox_xyxy_clipped": [31.0, 386.0, 306.0, 412.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [31.0, 1262.0, 210.0, 25.0], "bbox_xyxy_clipped": [31.0, 1262.0, 241.0, 1287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [480.0, 255.0, 560.0, 840.0], "bbox_xyxy_clipped": [480.0, 255.0, 1040.0, 1095.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [455.0, 220.0, 620.0, 553.0], "bbox_xyxy_clipped": [455.0, 220.0, 1075.0, 773.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [312.0, 232.0, 185.0, 80.0], "bbox_xyxy_clipped": [312.0, 232.0, 497.0, 312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [364.0, 948.0, 120.0, 271.0], "bbox_xyxy_clipped": [364.0, 948.0, 484.0, 1219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [402.0, 1540.0, 98.0, 240.0], "bbox_xyxy_clipped": [402.0, 1540.0, 500.0, 1780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0009360039507577347}, "Ove": {"reason": null, "status": "ok", "value": 0.05671105857521904}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5d108d688cba87f9438e85f7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d108d688cba87f9438e85f7/pipeline/l0_result.json", "sha256": "0a5853f7d6b51f12506e78c629aaf77cbef3374badd151a3ed2eaafb40a72794", "size_bytes": 9102}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d108d688cba87f9438e85f7/inputs/pfull/asset_manifest.json", "sha256": "bb6494a006ee877020cdb6383d1583d6cb26e4dab1eb5918ff3b92b8ef77ba42", "size_bytes": 5612}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d108d688cba87f9438e85f7/renders/r0_candidate_02.png", "sha256": "c265f2610721e2273aaf5b18e97540892c78474274a571b9f1ace9618c26d50b", "size_bytes": 698360}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5d108d688cba87f9438e85f7/inputs/r3/r3_asset_manifest.json", "sha256": "b1851100b825785950598699e85aba43b005fa6d68fa530bc21c0b242e455445", "size_bytes": 4954}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7b9792f327630957814adebc1134a847bf3928d758c510795d69d1b28924baaa", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 11, "valid": 10}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [60.0, 68.0, 236.0, 19.0], "bbox_xyxy_clipped": [60.0, 68.0, 296.0, 87.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [60.0, 94.0, 101.0, 64.0], "bbox_xyxy_clipped": [60.0, 94.0, 161.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [60.0, 176.0, 235.0, 24.0], "bbox_xyxy_clipped": [60.0, 176.0, 295.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [312.0, 74.0, 18.0, 18.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [634.0, 70.0, 466.0, 305.0], "bbox_xyxy_clipped": [634.0, 70.0, 1100.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [820.0, 28.0, 140.0, 70.0], "bbox_xyxy_clipped": [820.0, 28.0, 960.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [930.0, 64.0, 120.0, 100.0], "bbox_xyxy_clipped": [930.0, 64.0, 1050.0, 164.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [60.0, 444.0, 250.0, 14.0], "bbox_xyxy_clipped": [60.0, 444.0, 310.0, 458.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [60.0, 468.0, 205.0, 33.0], "bbox_xyxy_clipped": [60.0, 468.0, 265.0, 501.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [60.0, 520.0, 342.0, 47.0], "bbox_xyxy_clipped": [60.0, 520.0, 402.0, 567.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [392.0, 500.0, 36.0, 36.0], "bbox_xyxy_clipped": [392.0, 500.0, 428.0, 536.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010123160404136144}, "Ove": {"reason": null, "status": "ok", "value": 0.01638312248602395}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5954bda495a7a863ddce149b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bda495a7a863ddce149b/pipeline/l0_result.json", "sha256": "efce22c2d28757292789019d070b62297d2cb73c7e12de1ebe22199c344d9d3a", "size_bytes": 9869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bda495a7a863ddce149b/inputs/pfull/asset_manifest.json", "sha256": "ee607519b9e912240563d84864a27bbdcb439c507408bad76c2744b44108ecf1", "size_bytes": 6248}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bda495a7a863ddce149b/renders/r0_candidate_02.png", "sha256": "7b9792f327630957814adebc1134a847bf3928d758c510795d69d1b28924baaa", "size_bytes": 216017}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5954bda495a7a863ddce149b/inputs/r3/r3_asset_manifest.json", "sha256": "afe24cc168920f87e2e12b021ff6f1227eddbf0f3ad92b956bf866cf2ad0bad6", "size_bytes": 5558}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "54bf1c654bb26702d7e2eb2b11c6b991b52b0a928ac8c66e0701f99b292e9144", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [575.0, 170.0, 360.0, 546.0], "bbox_xyxy_clipped": [575.0, 170.0, 935.0, 716.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [84.0, 720.0, 322.0, 190.0], "bbox_xyxy_clipped": [84.0, 720.0, 406.0, 910.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [84.0, 902.0, 290.0, 72.0], "bbox_xyxy_clipped": [84.0, 902.0, 374.0, 974.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [82.0, 862.0, 486.0, 26.0], "bbox_xyxy_clipped": [82.0, 862.0, 568.0, 888.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [612.0, 111.0, 364.0, 70.0], "bbox_xyxy_clipped": [612.0, 111.0, 976.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [652.0, 202.0, 312.0, 32.0], "bbox_xyxy_clipped": [652.0, 202.0, 964.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [712.0, 88.0, 222.0, 288.0], "bbox_xyxy_clipped": [712.0, 88.0, 934.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [783.0, 124.0, 167.0, 370.0], "bbox_xyxy_clipped": [783.0, 124.0, 950.0, 494.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [861.0, 70.0, 130.0, 20.0], "bbox_xyxy_clipped": [861.0, 70.0, 991.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [882.0, 472.0, 62.0, 1179.0], "bbox_xyxy_clipped": [882.0, 472.0, 944.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0031651065072817947}, "Ove": {"reason": null, "status": "ok", "value": 0.16956971338859167}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5be9749341fdeab19f607853", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be9749341fdeab19f607853/pipeline/l0_result.json", "sha256": "3e347381d3aa87402779181b64f59057e46ffe672690fc9ccf1dc5aca87dd366", "size_bytes": 8946}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be9749341fdeab19f607853/inputs/pfull/asset_manifest.json", "sha256": "fba80c096fe2e5a2cfdaa061a602a32adeb200cb7ba85c8e530bb65b1770f0b0", "size_bytes": 5567}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be9749341fdeab19f607853/renders/r0_candidate_01.png", "sha256": "54bf1c654bb26702d7e2eb2b11c6b991b52b0a928ac8c66e0701f99b292e9144", "size_bytes": 185450}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be9749341fdeab19f607853/inputs/r3/r3_asset_manifest.json", "sha256": "801012fb985030c231f5792c7559a6c4a56a4c45214be548f55f57db8ef60f96", "size_bytes": 4847}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "686319c25c6086332b5f4e3e038c45919e652036355a463023db652f5bb75eec", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0059d16328ae54cbc2c8331bd1cde676c1092182e747899a68d818c62b630a2f", "canvas": {"height": 315, "width": 560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [28.0, 26.0, 250.0, 141.0], "bbox_xyxy_clipped": [28.0, 26.0, 278.0, 167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [6.0, 170.0, 86.0, 115.0], "bbox_xyxy_clipped": [6.0, 170.0, 92.0, 285.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [98.0, 258.0, 185.0, 19.0], "bbox_xyxy_clipped": [98.0, 258.0, 283.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [294.0, 28.0, 238.0, 61.0], "bbox_xyxy_clipped": [294.0, 28.0, 532.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [296.0, 92.0, 196.0, 23.0], "bbox_xyxy_clipped": [296.0, 92.0, 492.0, 115.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [294.0, 131.0, 185.0, 43.0], "bbox_xyxy_clipped": [294.0, 131.0, 479.0, 174.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [296.0, 182.0, 163.0, 20.0], "bbox_xyxy_clipped": [296.0, 182.0, 459.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [296.0, 209.0, 181.0, 18.0], "bbox_xyxy_clipped": [296.0, 209.0, 477.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [294.0, 247.0, 210.0, 19.0], "bbox_xyxy_clipped": [294.0, 247.0, 504.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036201948219741435}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b869858503a3d55dfea664db908e3920fcfe5c31bcb735039d3c8b7988d2aec5", "status": "computed"}, "sample_id": "5909cf1995a7a863ddcd3742", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909cf1995a7a863ddcd3742/pipeline/l0_result.json", "sha256": "7f8c01ee40b3f36597f5f199305159000557140623f61aa05922578bc3fed6e0", "size_bytes": 8341}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909cf1995a7a863ddcd3742/inputs/pfull/asset_manifest.json", "sha256": "90f92084271f41973d2d4fb725e4c95342fbc5042a69ecfe9815d6335d329002", "size_bytes": 5187}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909cf1995a7a863ddcd3742/renders/r0_candidate_01.png", "sha256": "686319c25c6086332b5f4e3e038c45919e652036355a463023db652f5bb75eec", "size_bytes": 142638}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5909cf1995a7a863ddcd3742/inputs/r3/r3_asset_manifest.json", "sha256": "ec7a96ba12c90c0b13e911bd29540d242ad6ff5da876a583585db225449692ba", "size_bytes": 4787}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "295a587409bcb4fdc8d69b2a6af1c94272ea3a552f5ca10f9dd6c0ec0e919f00", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1200.0, 600.0], "bbox_xyxy_clipped": [0.0, 0.0, 1200.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [260.0, 255.0, 680.0, 632.0], "bbox_xyxy_clipped": [260.0, 255.0, 940.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [258.0, 248.0, 685.0, 16.0], "bbox_xyxy_clipped": [258.0, 248.0, 943.0, 264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [286.0, 260.0, 870.0, 20.0], "bbox_xyxy_clipped": [286.0, 260.0, 1156.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [300.0, 343.0, 600.0, 159.0], "bbox_xyxy_clipped": [300.0, 343.0, 900.0, 502.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [360.0, 510.0, 481.0, 43.0], "bbox_xyxy_clipped": [360.0, 510.0, 841.0, 553.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062499064127604165}, "Ove": {"reason": null, "status": "ok", "value": 0.20061611660395542}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "59b7a7a71350e8329300f2dc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7a7a71350e8329300f2dc/pipeline/l0_result.json", "sha256": "ac0f3a6501f3dfad0710caca9c035169337bacd00e5126f82899d69f7cf855b5", "size_bytes": 6967}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7a7a71350e8329300f2dc/inputs/pfull/asset_manifest.json", "sha256": "5dd8d0ccabac50f3a328a0cc947185c6e5968107c54ffefc312bbd672512a048", "size_bytes": 3538}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7a7a71350e8329300f2dc/renders/r0_candidate_02.png", "sha256": "295a587409bcb4fdc8d69b2a6af1c94272ea3a552f5ca10f9dd6c0ec0e919f00", "size_bytes": 556636}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59b7a7a71350e8329300f2dc/inputs/r3/r3_asset_manifest.json", "sha256": "378068a1d924fde686eb52eb799df2568cdcbbb1ff0d7343577725258c403993", "size_bytes": 3148}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "64fc85f2e11c298b971932040e952c6beb038cde2caf49f06369989b0a1107a2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [545.0, 520.0, 430.0, 287.0], "bbox_xyxy_clipped": [545.0, 520.0, 975.0, 807.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [390.0, 310.0, 260.0, 335.0], "bbox_xyxy_clipped": [390.0, 310.0, 650.0, 645.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 115.0, 330.0, 249.0], "bbox_xyxy_clipped": [120.0, 115.0, 450.0, 364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [425.0, 145.0, 330.0, 90.0], "bbox_xyxy_clipped": [425.0, 145.0, 755.0, 235.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [70.0, 940.0, 250.0, 62.0], "bbox_xyxy_clipped": [70.0, 940.0, 320.0, 1002.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [86.0, 255.0, 132.0, 132.0], "bbox_xyxy_clipped": [86.0, 255.0, 218.0, 387.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [690.0, 430.0, 120.0, 248.0], "bbox_xyxy_clipped": [690.0, 430.0, 810.0, 678.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [810.0, 600.0, 140.0, 131.0], "bbox_xyxy_clipped": [810.0, 600.0, 950.0, 731.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [500.0, 430.0, 140.0, 143.0], "bbox_xyxy_clipped": [500.0, 430.0, 640.0, 573.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [955.0, 430.0, 90.0, 166.0], "bbox_xyxy_clipped": [955.0, 430.0, 1045.0, 596.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [360.0, 705.0, 92.0, 110.0], "bbox_xyxy_clipped": [360.0, 705.0, 452.0, 815.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0018646804519974844}, "Ove": {"reason": null, "status": "ok", "value": 0.0721725394402964}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5fa9191ca637ee11e35548b1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fa9191ca637ee11e35548b1/pipeline/l0_result.json", "sha256": "5aac95d62a2882570bc0026146269372872ed3585343c1e22f091a9772adea0b", "size_bytes": 9590}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fa9191ca637ee11e35548b1/inputs/pfull/asset_manifest.json", "sha256": "fc9af85b200b84c6289c1798b5bea74eb5b912a92fe92c2c6563ab36b49cab18", "size_bytes": 6109}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fa9191ca637ee11e35548b1/renders/r0_candidate_03.png", "sha256": "64fc85f2e11c298b971932040e952c6beb038cde2caf49f06369989b0a1107a2", "size_bytes": 312397}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5fa9191ca637ee11e35548b1/inputs/r3/r3_asset_manifest.json", "sha256": "a12459a9fdda7efc8b3a1bd1e96470b590b4d9830fe9383089be6ec204ad00c2", "size_bytes": 5364}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d0d662a17178cd1bb258921004d2763e673d868f4d6c6640d88d2f748682960c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "asset_size_bytes": 542, "kind": "asset", "pfull_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "r3_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "99c8c31cea418989f4208523849c14391bcd3df10d29f2617bec65a9c257fd16", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [130.0, 22.0, 469.0, 95.0], "bbox_xyxy_clipped": [130.0, 22.0, 599.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [178.0, 38.0, 190.0, 73.0], "bbox_xyxy_clipped": [178.0, 38.0, 368.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [381.0, 54.0, 21.0, 46.0], "bbox_xyxy_clipped": [381.0, 54.0, 402.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [26.0, 9.0, 180.0, 113.0], "bbox_xyxy_clipped": [26.0, 9.0, 206.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [562.0, 53.0, 128.0, 37.0], "bbox_xyxy_clipped": [562.0, 53.0, 690.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [608.0, 45.0, 67.0, 37.0], "bbox_xyxy_clipped": [608.0, 45.0, 675.0, 82.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [498.0, 73.0, 201.0, 67.0], "bbox_xyxy_clipped": [498.0, 73.0, 699.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.06874491911926808}, "Ove": {"reason": null, "status": "ok", "value": 0.2083417726635798}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "ee039cc0fd90aa12af56946618ae113689b51b1da2d92a64adc2f445a88be65a", "status": "computed"}, "sample_id": "5be97b9241fdeab19f985504", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/pipeline/l0_result.json", "sha256": "14a96240f7ed4cf10a408a1a811d6b8e7cab3459b4803b1afcce7f2989817041", "size_bytes": 9040}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/inputs/pfull/asset_manifest.json", "sha256": "369e3445de84526fe391a1eeae511a3bc6e318305b59afde349f9f204616ada6", "size_bytes": 4626}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/renders/r0_candidate_02.png", "sha256": "d0d662a17178cd1bb258921004d2763e673d868f4d6c6640d88d2f748682960c", "size_bytes": 68922}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/inputs/r3/r3_asset_manifest.json", "sha256": "3f71aaed8d618f920f1ac2eb913c5ab2fa2d7ccbd3b800799b8430e6cfe868cd", "size_bytes": 4163}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "size_bytes": 542}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "467155b673598acff5193f17b050f1aba18d9ee52e26ad7c1a7997a548b3fe88", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 1, "valid": 1}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [720.0, 0.0, 1200.0, 675.0], "bbox_xyxy_clipped": [720.0, 0.0, 1920.0, 675.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0003778638298128858}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5e847c8b4b3890eb07bf3a59", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e847c8b4b3890eb07bf3a59/pipeline/l0_result.json", "sha256": "0fb0056b6654432327e5a3cb95bcbf175267f7517a089e6231de1396031df5fb", "size_bytes": 3821}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e847c8b4b3890eb07bf3a59/inputs/pfull/asset_manifest.json", "sha256": "f946e8c551b477a079a379b0a6ff9e2e09fc3518917d160374a8f7b52559875a", "size_bytes": 887}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e847c8b4b3890eb07bf3a59/renders/r0_candidate_03.png", "sha256": "467155b673598acff5193f17b050f1aba18d9ee52e26ad7c1a7997a548b3fe88", "size_bytes": 1305781}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5e847c8b4b3890eb07bf3a59/inputs/r3/r3_asset_manifest.json", "sha256": "b8660379fcce7ebf19c0818dfbaaf715b46028be1088bb9642c1917fe3814fa8", "size_bytes": 830}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "85db836d90342fa8ca39bddfafaf328a4677ac44f2419155dd27e0c7c9e890b9", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 11, "valid": 8}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [72.0, 212.0, 220.0, 99.0], "bbox_xyxy_clipped": [72.0, 212.0, 292.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [76.0, 315.0, 205.0, 101.0], "bbox_xyxy_clipped": [76.0, 315.0, 281.0, 416.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [492.0, 224.0, 22.0, 33.0], "bbox_xyxy_clipped": [492.0, 224.0, 514.0, 257.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [718.0, 140.0, 365.0, 284.0], "bbox_xyxy_clipped": [718.0, 140.0, 1083.0, 424.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [994.0, 168.0, 92.0, 77.0], "bbox_xyxy_clipped": [994.0, 168.0, 1086.0, 245.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [805.0, 403.0, 54.0, 54.0], "bbox_xyxy_clipped": [805.0, 403.0, 859.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1048.0, 384.0, 42.0, 42.0], "bbox_xyxy_clipped": [1048.0, 384.0, 1090.0, 426.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [548.0, 255.0, 324.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [664.0, 274.0, 16.0, 16.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [691.0, 308.0, 14.0, 14.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [635.0, 458.0, 98.0, 99.0], "bbox_xyxy_clipped": [635.0, 458.0, 733.0, 557.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.008696765129713487}, "Occ": {"reason": null, "status": "ok", "value": 0.004880947078238046}, "Ove": {"reason": null, "status": "ok", "value": 0.011272065729664939}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5b979f3f18654940f764417a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b979f3f18654940f764417a/pipeline/l0_result.json", "sha256": "28f838fd34a264bd8af4bdbe28d20b5277137e340ef6f9681f2e25b770577db5", "size_bytes": 9281}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b979f3f18654940f764417a/inputs/pfull/asset_manifest.json", "sha256": "f98ae3e41942f26fc1f72e5bd121546192a3108c298f62109454e4501fb1afd0", "size_bytes": 6080}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b979f3f18654940f764417a/renders/r0_candidate_03.png", "sha256": "85db836d90342fa8ca39bddfafaf328a4677ac44f2419155dd27e0c7c9e890b9", "size_bytes": 86807}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5b979f3f18654940f764417a/inputs/r3/r3_asset_manifest.json", "sha256": "52150d0a98813e7e5bdf2807c242917c933df3b4ada589bf67c60fcd556760f9", "size_bytes": 5254}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5cb7ebbab46b2d8ab8c3123fbb350773c24587b67182c2247a1f808544b09c16", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "909f4e490aa3005b550e773f9d0eef4de27fa64400516d311cb5a6931ba4609b", "canvas": {"height": 1055, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 27, "valid": 27}, "elements": [{"asset_id": "asset_0026", "bbox_lwh_raw": [170.0, 115.0, 560.0, 85.0], "bbox_xyxy_clipped": [170.0, 115.0, 730.0, 200.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [180.0, 205.0, 185.0, 80.0], "bbox_xyxy_clipped": [180.0, 205.0, 365.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [180.0, 292.0, 405.0, 58.0], "bbox_xyxy_clipped": [180.0, 292.0, 585.0, 350.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [170.0, 380.0, 520.0, 123.0], "bbox_xyxy_clipped": [170.0, 380.0, 690.0, 503.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [175.0, 520.0, 470.0, 40.0], "bbox_xyxy_clipped": [175.0, 520.0, 645.0, 560.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 950.0, 334.0], "bbox_xyxy_clipped": [0.0, 0.0, 950.0, 334.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [104.0, 58.0, 370.0, 214.0], "bbox_xyxy_clipped": [104.0, 58.0, 474.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [356.0, 96.0, 300.0, 179.0], "bbox_xyxy_clipped": [356.0, 96.0, 656.0, 275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [0.0, 0.0, 3000.0, 143.0], "bbox_xyxy_clipped": [0.0, 0.0, 3000.0, 143.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [0.0, 912.0, 3000.0, 168.0], "bbox_xyxy_clipped": [0.0, 912.0, 3000.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2140.0, 140.0, 450.0, 336.0], "bbox_xyxy_clipped": [2140.0, 140.0, 2590.0, 476.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [2475.0, 230.0, 320.0, 214.0], "bbox_xyxy_clipped": [2475.0, 230.0, 2795.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [2020.0, 450.0, 360.0, 243.0], "bbox_xyxy_clipped": [2020.0, 450.0, 2380.0, 693.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [2250.0, 600.0, 250.0, 262.0], "bbox_xyxy_clipped": [2250.0, 600.0, 2500.0, 862.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [2380.0, 740.0, 190.0, 249.0], "bbox_xyxy_clipped": [2380.0, 740.0, 2570.0, 989.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [2630.0, 650.0, 210.0, 217.0], "bbox_xyxy_clipped": [2630.0, 650.0, 2840.0, 867.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [2760.0, 470.0, 170.0, 118.0], "bbox_xyxy_clipped": [2760.0, 470.0, 2930.0, 588.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [2630.0, 875.0, 150.0, 192.0], "bbox_xyxy_clipped": [2630.0, 875.0, 2780.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [2250.0, 80.0, 650.0, 485.0], "bbox_xyxy_clipped": [2250.0, 80.0, 2900.0, 565.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [2450.0, 560.0, 430.0, 323.0], "bbox_xyxy_clipped": [2450.0, 560.0, 2880.0, 883.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [2720.0, 355.0, 240.0, 238.0], "bbox_xyxy_clipped": [2720.0, 355.0, 2960.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [2330.0, 860.0, 250.0, 241.0], "bbox_xyxy_clipped": [2330.0, 860.0, 2580.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [2610.0, 900.0, 220.0, 212.0], "bbox_xyxy_clipped": [2610.0, 900.0, 2830.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [2810.0, 820.0, 190.0, 183.0], "bbox_xyxy_clipped": [2810.0, 820.0, 3000.0, 1003.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [2060.0, 860.0, 300.0, 290.0], "bbox_xyxy_clipped": [2060.0, 860.0, 2360.0, 1055.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [2160.0, 720.0, 170.0, 164.0], "bbox_xyxy_clipped": [2160.0, 720.0, 2330.0, 884.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1910.0, 830.0, 190.0, 190.0], "bbox_xyxy_clipped": [1910.0, 830.0, 2100.0, 1020.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00576870448836174}, "Ove": {"reason": null, "status": "ok", "value": 0.2183765315239252}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "896a92b3e1f134ecd05ce476cd3afd01b49d1626723c3e1e6573f2de2ee0f55b", "status": "computed"}, "sample_id": "5889aa8395a7a863ddcc361a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5889aa8395a7a863ddcc361a/pipeline/l0_result.json", "sha256": "e0375538a2a5b4c3bff617f82b68734a69e401e1b4a698914609791a3928e553", "size_bytes": 19094}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5889aa8395a7a863ddcc361a/inputs/pfull/asset_manifest.json", "sha256": "17a4b2594d63376fdd372d2ae3593006c0bd73187c9e6ce4edbf99b9242225f5", "size_bytes": 14476}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5889aa8395a7a863ddcc361a/renders/r0_candidate_03.png", "sha256": "5cb7ebbab46b2d8ab8c3123fbb350773c24587b67182c2247a1f808544b09c16", "size_bytes": 1083207}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5889aa8395a7a863ddcc361a/inputs/r3/r3_asset_manifest.json", "sha256": "27d243dadec6e6b7e9b82977625fc8da46c160b21790409a14044b6a047592f4", "size_bytes": 12441}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6ba8098fb8515a618cce7166d9f36cfdfb7a05907e2881c892877bdb367c6dd0", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [48.0, 46.0, 205.0, 60.0], "bbox_xyxy_clipped": [48.0, 46.0, 253.0, 106.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [48.0, 132.0, 310.0, 25.0], "bbox_xyxy_clipped": [48.0, 132.0, 358.0, 157.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [48.0, 173.0, 250.0, 133.0], "bbox_xyxy_clipped": [48.0, 173.0, 298.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [48.0, 656.0, 220.0, 40.0], "bbox_xyxy_clipped": [48.0, 656.0, 268.0, 696.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [477.0, 124.0, 395.0, 330.0], "bbox_xyxy_clipped": [477.0, 124.0, 872.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [560.0, 145.0, 210.0, 168.0], "bbox_xyxy_clipped": [560.0, 145.0, 770.0, 313.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [748.0, 430.0, 80.0, 163.0], "bbox_xyxy_clipped": [748.0, 430.0, 828.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.000558935507298242}, "Ove": {"reason": null, "status": "ok", "value": 0.04060395833648293}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "59008beb95a7a863ddcd26e5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59008beb95a7a863ddcd26e5/pipeline/l0_result.json", "sha256": "b0ddf59f4ce548c294148a6fd8acc4d9b593597fdda39d5863bbba5745b591de", "size_bytes": 7176}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59008beb95a7a863ddcd26e5/inputs/pfull/asset_manifest.json", "sha256": "fae8c422cdc66d6e1004d81e860e7ffeea0ea47bbf4f09e5491d3cf2d09dd668", "size_bytes": 4175}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59008beb95a7a863ddcd26e5/renders/r0_candidate_02.png", "sha256": "6ba8098fb8515a618cce7166d9f36cfdfb7a05907e2881c892877bdb367c6dd0", "size_bytes": 264086}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/59008beb95a7a863ddcd26e5/inputs/r3/r3_asset_manifest.json", "sha256": "7b2ea0bfee7e5768079fd20598818f6068315c7e73db7d4aa73c7c3fc58468d3", "size_bytes": 3855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "eee4541d78e8aba6a60703c690d26b9b09bf2a7645d2da7a583d9a579b453d50", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 13, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [354.0, 395.0, 483.0, 645.0], "bbox_xyxy_clipped": [354.0, 395.0, 837.0, 1040.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [118.0, 540.0, 190.0, 277.0], "bbox_xyxy_clipped": [118.0, 540.0, 308.0, 817.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [886.0, 548.0, 184.0, 272.0], "bbox_xyxy_clipped": [886.0, 548.0, 1070.0, 820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [171.0, 885.0, 848.0, 18.0], "bbox_xyxy_clipped": [171.0, 885.0, 1019.0, 903.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [213.0, 889.0, 140.0, 71.0], "bbox_xyxy_clipped": [213.0, 889.0, 353.0, 960.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [837.0, 889.0, 141.0, 71.0], "bbox_xyxy_clipped": [837.0, 889.0, 978.0, 960.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [198.0, 265.0, 794.0, 150.0], "bbox_xyxy_clipped": [198.0, 265.0, 992.0, 415.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [493.0, 425.0, 82.0, 66.0], "bbox_xyxy_clipped": [493.0, 425.0, 575.0, 491.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [343.0, 498.0, 505.0, 88.0], "bbox_xyxy_clipped": [343.0, 498.0, 848.0, 586.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [406.0, 605.0, 379.0, 98.0], "bbox_xyxy_clipped": [406.0, 605.0, 785.0, 703.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [268.0, 1492.0, 653.0, 66.0], "bbox_xyxy_clipped": [268.0, 1492.0, 921.0, 1558.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [805.0, 240.0, 28.0, 27.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [789.0, 711.0, 28.0, 27.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0018391647821193093}, "Ove": {"reason": null, "status": "ok", "value": 0.04468215032311206}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "58aed49195a7a863ddcc8a59", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed49195a7a863ddcc8a59/pipeline/l0_result.json", "sha256": "d2b75d1dcb89d2cd87a6d4803f01e0417f0c6cb59040f693c560bda3155abf4d", "size_bytes": 13377}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed49195a7a863ddcc8a59/inputs/pfull/asset_manifest.json", "sha256": "8d1aed2b678f3c656d9016c0a672ffe8cae433c5059b5325beb8d126d93b0631", "size_bytes": 7163}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed49195a7a863ddcc8a59/renders/r0_candidate_03.png", "sha256": "eee4541d78e8aba6a60703c690d26b9b09bf2a7645d2da7a583d9a579b453d50", "size_bytes": 507072}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/58aed49195a7a863ddcc8a59/inputs/r3/r3_asset_manifest.json", "sha256": "c016df168f9bbedf96f98f89f1bd1f5a515a5451301c0732d054f77e0911fb6e", "size_bytes": 6351}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0a65ce5af1ba352feb58c150a7e1d05831f1ef12c3140cbfceb6b03413654eb1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc052c292a12248a02adce351c4f4af9fb05cd005f83a928d2625cb49bfaf229", "canvas": {"height": 842, "width": 595}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [60.0, 12.0, 475.0, 179.0], "bbox_xyxy_clipped": [60.0, 12.0, 535.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [118.0, 188.0, 360.0, 65.0], "bbox_xyxy_clipped": [118.0, 188.0, 478.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [78.0, 272.0, 85.0, 18.0], "bbox_xyxy_clipped": [78.0, 272.0, 163.0, 290.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [166.0, 272.0, 109.0, 14.0], "bbox_xyxy_clipped": [166.0, 272.0, 275.0, 286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [282.0, 272.0, 75.0, 14.0], "bbox_xyxy_clipped": [282.0, 272.0, 357.0, 286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [365.0, 272.0, 55.0, 14.0], "bbox_xyxy_clipped": [365.0, 272.0, 420.0, 286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [430.0, 272.0, 72.0, 15.0], "bbox_xyxy_clipped": [430.0, 272.0, 502.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [44.0, 300.0, 103.0, 20.0], "bbox_xyxy_clipped": [44.0, 300.0, 147.0, 320.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [161.0, 300.0, 82.0, 17.0], "bbox_xyxy_clipped": [161.0, 300.0, 243.0, 317.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [44.0, 255.0, 508.0, 2.0], "bbox_xyxy_clipped": [44.0, 255.0, 552.0, 257.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [44.0, 289.0, 508.0, 2.0], "bbox_xyxy_clipped": [44.0, 289.0, 552.0, 291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [44.0, 324.0, 508.0, 2.0], "bbox_xyxy_clipped": [44.0, 324.0, 552.0, 326.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [12.0, 418.0, 230.0, 131.0], "bbox_xyxy_clipped": [12.0, 418.0, 242.0, 549.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [378.0, 420.0, 205.0, 117.0], "bbox_xyxy_clipped": [378.0, 420.0, 583.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [482.0, 760.0, 83.0, 53.0], "bbox_xyxy_clipped": [482.0, 760.0, 565.0, 813.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 610.0, 140.0, 89.0], "bbox_xyxy_clipped": [0.0, 610.0, 140.0, 699.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [455.0, 610.0, 140.0, 144.0], "bbox_xyxy_clipped": [455.0, 610.0, 595.0, 754.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001991582573089996}, "Ove": {"reason": null, "status": "ok", "value": 0.002623519033881142}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "bd820d3af9887cb6015f47b4bd3bf39b97d051754112047f27c3d2cf0dce04c9", "status": "computed"}, "sample_id": "5f041f26499b85dcc7b20357", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f041f26499b85dcc7b20357/pipeline/l0_result.json", "sha256": "5de037e338899e8ab5950adfa94421186fcdb259cc39ad943b55b17b13aa35ec", "size_bytes": 12479}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f041f26499b85dcc7b20357/inputs/pfull/asset_manifest.json", "sha256": "72687e90341298e5b26dbb5107a70473939e506878d9b5bedf6d8ecd49def522", "size_bytes": 9142}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f041f26499b85dcc7b20357/renders/r0_candidate_01.png", "sha256": "0a65ce5af1ba352feb58c150a7e1d05831f1ef12c3140cbfceb6b03413654eb1", "size_bytes": 152649}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5f041f26499b85dcc7b20357/inputs/r3/r3_asset_manifest.json", "sha256": "ec3bdabc52cb2c876a74e320819e32423467f19591d53085ca3332352c857655", "size_bytes": 7647}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e2016ae979e25c92db1c5ae6ee92249fba9f1a092cdc45106a9691316cdcf5a6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "56d3d889f420f8d3373e931af4fbb8939bde2cb9d5198242468e5768ae75b22f", "canvas": {"height": 500, "width": 1500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [459.0, 60.0, 582.0, 254.0], "bbox_xyxy_clipped": [459.0, 60.0, 1041.0, 314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [85.0, 332.0, 377.0, 269.0], "bbox_xyxy_clipped": [85.0, 332.0, 462.0, 500.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1120.0, 78.0, 210.0, 283.0], "bbox_xyxy_clipped": [1120.0, 78.0, 1330.0, 361.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1188.0, 156.0, 170.0, 66.0], "bbox_xyxy_clipped": [1188.0, 156.0, 1358.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1038.0, 375.0, 300.0, 46.0], "bbox_xyxy_clipped": [1038.0, 375.0, 1338.0, 421.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.00870330788150635}, "Occ": {"reason": null, "status": "ok", "value": 0.002733562468762773}, "Ove": {"reason": null, "status": "ok", "value": 0.030588465680994808}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "29d611f634479e08e3e507dfeff93f04f7bcdcc3780dbf5adc5d61f63c96284c", "status": "computed"}, "sample_id": "5a034321d8141396fe9897ee", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a034321d8141396fe9897ee/pipeline/l0_result.json", "sha256": "0a9595ab22ea27602a8a44106e5414bdddae44348b680170e779ecaeeb5766d5", "size_bytes": 6280}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a034321d8141396fe9897ee/inputs/pfull/asset_manifest.json", "sha256": "f295f9f649c557006e17343b4b5eaf89d6f51780aca63c8ed9b60e1a868624cb", "size_bytes": 2987}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a034321d8141396fe9897ee/renders/r0_candidate_02.png", "sha256": "e2016ae979e25c92db1c5ae6ee92249fba9f1a092cdc45106a9691316cdcf5a6", "size_bytes": 261235}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5a034321d8141396fe9897ee/inputs/r3/r3_asset_manifest.json", "sha256": "dddab14a0f0ea50784ce7515ab84c6fc22e280c0fbe2674eb6560ee46a80a5bf", "size_bytes": 2659}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "510a727941d7546370c484d8ac49f8503232cba140044747052d9cd2294261fc", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [736.0, 44.0, 404.0, 211.0], "bbox_xyxy_clipped": [736.0, 44.0, 1140.0, 255.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [909.0, 78.0, 21.0, 211.0], "bbox_xyxy_clipped": [909.0, 78.0, 930.0, 289.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [776.0, 68.0, 300.0, 91.0], "bbox_xyxy_clipped": [776.0, 68.0, 1076.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [778.0, 168.0, 254.0, 72.0], "bbox_xyxy_clipped": [778.0, 168.0, 1032.0, 240.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 270.0, 585.0, 438.0], "bbox_xyxy_clipped": [0.0, 270.0, 585.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003622139971661347}, "Occ": {"reason": null, "status": "ok", "value": 0.006667960025378697}, "Ove": {"reason": null, "status": "ok", "value": 0.14119537119751113}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5df395ba9fea0cc374da3cec", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df395ba9fea0cc374da3cec/pipeline/l0_result.json", "sha256": "999efcc533938769fd83e9ec36c5cc79d50f7b8705dc2fbc4f1f778f606dda37", "size_bytes": 6700}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df395ba9fea0cc374da3cec/inputs/pfull/asset_manifest.json", "sha256": "9bc3e679147e6f06cf60ceb50afe81aeb1babd9f34ba747f10fea0c5dab74c9d", "size_bytes": 3023}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df395ba9fea0cc374da3cec/renders/r0_candidate_01.png", "sha256": "510a727941d7546370c484d8ac49f8503232cba140044747052d9cd2294261fc", "size_bytes": 280865}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5df395ba9fea0cc374da3cec/inputs/r3/r3_asset_manifest.json", "sha256": "cfd3e7daf399a83d28944fb3c051ea2721a723da98da7a983348788296224a5f", "size_bytes": 2742}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fad7faab10f1139eba3869fa6954bc27e47e1d4b71b28d9e9afcc047fad85cc1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0059d16328ae54cbc2c8331bd1cde676c1092182e747899a68d818c62b630a2f", "canvas": {"height": 315, "width": 560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [44.0, 26.0, 184.0, 65.0], "bbox_xyxy_clipped": [44.0, 26.0, 228.0, 91.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [44.0, 98.0, 182.0, 18.0], "bbox_xyxy_clipped": [44.0, 98.0, 226.0, 116.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [44.0, 125.0, 165.0, 19.0], "bbox_xyxy_clipped": [44.0, 125.0, 209.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 274.0, 181.0, 32.0], "bbox_xyxy_clipped": [44.0, 274.0, 225.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [266.0, 121.0, 250.0, 142.0], "bbox_xyxy_clipped": [266.0, 121.0, 516.0, 263.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035112201732936453}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b869858503a3d55dfea664db908e3920fcfe5c31bcb735039d3c8b7988d2aec5", "status": "computed"}, "sample_id": "5952689495a7a863ddcde990", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952689495a7a863ddcde990/pipeline/l0_result.json", "sha256": "8d50bd3e1a1df838bedc5ecf280e41e9c3b8d6af3569eb028e710613fb59acf9", "size_bytes": 6656}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952689495a7a863ddcde990/inputs/pfull/asset_manifest.json", "sha256": "2cff05d1fe6e2e91caa1ea0a981781c20c80fa7420479065eb6f07110c13c547", "size_bytes": 3090}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952689495a7a863ddcde990/renders/r0_candidate_03.png", "sha256": "fad7faab10f1139eba3869fa6954bc27e47e1d4b71b28d9e9afcc047fad85cc1", "size_bytes": 56326}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952689495a7a863ddcde990/inputs/r3/r3_asset_manifest.json", "sha256": "a836121de4d605468529c3d53994abe40ebf896810665a6be524092e19cb8d1d", "size_bytes": 2922}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7d093a49c2bdbd0f78acace310420613fd31587bd4cdc031ee7c86286cb0b455", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0e1096616e9b03a50161584507c7511fa47d0aa511d6a9f9fd3e9873d12c8921", "canvas": {"height": 1728, "width": 1296}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [60.0, 120.0, 710.0, 942.0], "bbox_xyxy_clipped": [60.0, 120.0, 770.0, 1062.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [770.0, 140.0, 470.0, 57.0], "bbox_xyxy_clipped": [770.0, 140.0, 1240.0, 197.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [772.0, 208.0, 340.0, 115.0], "bbox_xyxy_clipped": [772.0, 208.0, 1112.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [780.0, 340.0, 430.0, 77.0], "bbox_xyxy_clipped": [780.0, 340.0, 1210.0, 417.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [774.0, 448.0, 410.0, 50.0], "bbox_xyxy_clipped": [774.0, 448.0, 1184.0, 498.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [786.0, 1320.0, 340.0, 51.0], "bbox_xyxy_clipped": [786.0, 1320.0, 1126.0, 1371.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [786.0, 1268.0, 232.0, 45.0], "bbox_xyxy_clipped": [786.0, 1268.0, 1018.0, 1313.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [786.0, 1428.0, 340.0, 82.0], "bbox_xyxy_clipped": [786.0, 1428.0, 1126.0, 1510.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [770.0, 620.0, 320.0, 44.0], "bbox_xyxy_clipped": [770.0, 620.0, 1090.0, 664.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [980.0, 560.0, 250.0, 217.0], "bbox_xyxy_clipped": [980.0, 560.0, 1230.0, 777.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [680.0, 870.0, 180.0, 176.0], "bbox_xyxy_clipped": [680.0, 870.0, 860.0, 1046.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1080.0, 520.0, 150.0, 200.0], "bbox_xyxy_clipped": [1080.0, 520.0, 1230.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1040.0, 710.0, 170.0, 127.0], "bbox_xyxy_clipped": [1040.0, 710.0, 1210.0, 837.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [850.0, 940.0, 210.0, 197.0], "bbox_xyxy_clipped": [850.0, 940.0, 1060.0, 1137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1110.0, 1498.0, 90.0, 82.0], "bbox_xyxy_clipped": [1110.0, 1498.0, 1200.0, 1580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1188.0, 1510.0, 86.0, 78.0], "bbox_xyxy_clipped": [1188.0, 1510.0, 1274.0, 1588.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0022843294713570726}, "Ove": {"reason": null, "status": "ok", "value": 0.04962325911452359}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", "saliency": {"map_sha256": "b45151d495426202cbcc69fd71097fa9e1b0cffe9f9925c94e2a055e624762c1", "status": "computed"}, "sample_id": "5952946495a7a863ddce0052", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952946495a7a863ddce0052/pipeline/l0_result.json", "sha256": "67be2378ec50d4688d5d3ff86d28ac316208819b8073890253b4e5ed33676226", "size_bytes": 12910}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952946495a7a863ddce0052/inputs/pfull/asset_manifest.json", "sha256": "83041208b5e0cf45256037381c3b0e46ac3b900be69fc8bcad1755dc66e76c1f", "size_bytes": 8818}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952946495a7a863ddce0052/renders/r0_candidate_01.png", "sha256": "7d093a49c2bdbd0f78acace310420613fd31587bd4cdc031ee7c86286cb0b455", "size_bytes": 534030}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/samples/5952946495a7a863ddce0052/inputs/r3/r3_asset_manifest.json", "sha256": "d16b1916b03dcc1fa33444f3bfb084ea88ff2bc2eab5ade0a41c5d521a24cdc7", "size_bytes": 7782}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/aggregate.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/aggregate.json new file mode 100644 index 000000000..40057603b --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/aggregate.json @@ -0,0 +1,78 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-general-n100-sega-v1", + "runs": { + "a3-general-n100-t2-l0-01": { + "sample_counts": { + "selected_n": 100, + "source_valid_n": 100, + "source_skipped_n": 0, + "evaluated_n": 100, + "validated_only_n": 0 + }, + "metrics": { + "Ali": { + "value": 0.001967412305375702, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 76 + }, + "Ove": { + "value": 0.10016870165916021, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 4 + }, + "Und_l": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 100, + "zero_contribution_n": 0 + }, + "Und_s": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 100, + "zero_contribution_n": 0 + }, + "Rea": { + "value": 0.0003544205732787414, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 98 + }, + "Occ": { + "value": 0.0055605520877280625, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 0 + } + } + } + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/evaluation_manifest.json new file mode 100644 index 000000000..5156d13e5 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/evaluation_manifest.json @@ -0,0 +1,368 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-general-n100-sega-v1", + "created_at": "2026-07-12T00:25:31.630832+00:00", + "mode": "evaluate", + "command": "/home/hui0705/.conda/envs/meta/bin/python /home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py --run-dir /home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01 --evaluation-id a3-general-n100-sega-v1 --output-root /home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega --saliency-mode basnet-isnet", + "command_argv": [ + "/home/hui0705/.conda/envs/meta/bin/python", + "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "--run-dir", + "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01", + "--evaluation-id", + "a3-general-n100-sega-v1", + "--output-root", + "/home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega", + "--saliency-mode", + "basnet-isnet" + ], + "source_runs": [ + { + "run_id": "a3-general-n100-t2-l0-01", + "run_dir": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01", + "summary": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/a3_run_summary.json", + "sha256": "87dc57fd371b1ffd5142f9faf2dbb24c90a5b5f461e2cd68f332fa94526ff9b8", + "size_bytes": 10724 + }, + "manifest": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/run_manifest.json", + "sha256": "27114e229958c361f1949a634b8ae76f884b317c0e05e00042eb898cce1b6b1d", + "size_bytes": 3478 + }, + "sample_ids": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/sample_ids.json", + "sha256": "ceaa3334634219ff114959607e15f2f409cc255c3a1b7edb616ca528d06ee6d1", + "size_bytes": 2702 + }, + "summary_counts": { + "reported_total": 100, + "reported_completed": null, + "reported_failed": 0, + "reported_sample_n": 100, + "completed_n": 100, + "failed_n": 0, + "other_status_n": 0, + "formal_complete": true + }, + "selection": { + "max_samples": null, + "selected_n": 100, + "formal_complete_run": true + }, + "observed_counts": { + "selected_n": 100, + "source_valid_n": 100, + "source_skipped_n": 0, + "evaluated_n": 100, + "validated_only_n": 0 + } + } + ], + "matched_samples": { + "count": 100, + "ordered_sample_ids": [ + "59526eab95a7a863ddcdeb6c", + "5e7380974b3890eb0747d5c4", + "5da04604abc8ea6d1cbe2935", + "5f4799b9a637ee11e3cda600", + "595298e195a7a863ddce04c2", + "592fdcc595a7a863ddcdbde1", + "5d68df79e79a2a634ea55321", + "5c1e2e71133a78539266d649", + "5fbe1dc7a637ee11e37e5003", + "5a21a25cd8141396fe9a3ddd", + "5a21793fd8141396fe9a2b83", + "5c1e235d133a78539251c177", + "589b10aa95a7a863ddcc47e9", + "592d1c4f95a7a863ddcd99a0", + "5cd6984b7d4459dfe140c0b4", + "5db2addfabc8ea6d1c333fbc", + "5a328987d8141396fe9b856b", + "5f96895da637ee11e38af71a", + "59158b7095a7a863ddcd869c", + "5f881e9fa637ee11e348d19b", + "58b031ab95a7a863ddcc9590", + "58a4176f95a7a863ddcc6f46", + "58dbb63195a7a863ddccf77a", + "592fd54295a7a863ddcdb8e3", + "5f4e0040a637ee11e3bec594", + "5d4ae4aecf657b21effa9831", + "5e8f0039499b85dcc77d42f6", + "5b856b601cc8aa54294702eb", + "5aba3fb6f07aee69771b82ba", + "5fc4a73aa637ee11e335eb3e", + "5b407f331eb1c99e2a9c842a", + "5f50b4f1a637ee11e35331dc", + "5bf823e88caf671e1c07e8f0", + "5947c48595a7a863ddcddb2e", + "58ab189395a7a863ddcc7847", + "58ab0a6395a7a863ddcc737e", + "5cb89d0dadbc796055f8979f", + "5b8d554818654940f7f6384d", + "5bc0ac6978e1194aa673953f", + "5f85a97fa637ee11e360ac15", + "5b2e12d91eb1c99e2a182b41", + "5ca5cf0023c829c821fceeaf", + "5888dd7995a7a863ddcc2e86", + "5e7a36214b3890eb072fb652", + "592d1dd995a7a863ddcd9b7d", + "59527b2495a7a863ddcdf4c5", + "5e68e281b04a3d1f19b3ab85", + "5f718be2a637ee11e33eb689", + "589b130695a7a863ddcc4876", + "5b855d491cc8aa5429cfba88", + "5f96de4aa637ee11e3f23147", + "5bd1e93f78e1194aa6b847de", + "5df9fcaa9fea0cc37404d2d2", + "589dd69895a7a863ddcc5c93", + "5df218709fea0cc374bd7e9f", + "5ab0f6f7f07aee69772a1f1d", + "5bc09e2c78e1194aa64f905f", + "5fa157eba637ee11e309840c", + "591589eb95a7a863ddcd84d7", + "5c89040985ea3c16f9b71287", + "5cf14cf58cba87f9434f1d6f", + "5930135495a7a863ddcdc0ac", + "5ea2a28b499b85dcc726d7d6", + "5f994d42a637ee11e3dddca6", + "5dbbff2eabc8ea6d1c15c382", + "5db2bcf8abc8ea6d1c4c9cb8", + "5df211c29fea0cc374abbbba", + "5cd68c8b7d4459dfe1341b4b", + "5e8ece9d4b3890eb0711d458", + "5a3288d4d8141396fe9b8539", + "5f5b5a3da637ee11e3e5adbf", + "5931159f95a7a863ddcdc76c", + "5e45421a1cc98b350acda05c", + "5d234fcd8cba87f94325280c", + "58a4172995a7a863ddcc6eb8", + "5f6af7baa637ee11e3909ab1", + "5f48b9b9a637ee11e341870b", + "5abd0af44b568b8eec968c46", + "5aab8c95f07aee69776b2742", + "5fbb62b5a637ee11e3cce210", + "589dcf6a95a7a863ddcc5a05", + "5ce6d6a47d4459dfe1cd2b44", + "5df38d389fea0cc374c15178", + "5bd1c85078e1194aa6186300", + "58b5643195a7a863ddcca2ad", + "5a227705d8141396fe9a4657", + "5dbc2153abc8ea6d1c4e3c45", + "5e6f7e1c4b3890eb07240f9b", + "5e86d9124b3890eb0788e268", + "5cde64e47d4459dfe1b81863", + "5e8b2b454b3890eb0748ba51", + "5b855e7a1cc8aa5429da23d2", + "58e264ae95a7a863ddcd0528", + "5f23d114a637ee11e35f5c9e", + "58affed095a7a863ddcc8f6a", + "5cab554023c829c8214ab6a6", + "5e41700e9fea0cc37440961e", + "5fb77b26a637ee11e35420db", + "5b714f7b1cc8aa542914b74d", + "58ab0a9b95a7a863ddcc7397" + ], + "ordered_sample_ids_sha256": "561a3ee2f52fe78861623d16f77d9ab1af3069dcb702a9852ab6a10ff599e894" + }, + "protocol_lineage": { + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "bbox_input": "A3 B0 left-top-width-height", + "bbox_metric_frame": "xyxy, clipped to canvas", + "validity_filter": { + "minimum_canvas_fraction": 0.001, + "comparison": "area >= threshold" + }, + "alignment": "PKU layout-wide-min aggregation quirk", + "overlay_denominator": "non-underlay element count", + "underlay": "P-Full v1 has no legal underlay class; current A3 is N/A", + "readability": "background-only float64 Sobel; definition-aligned, not PKU bit-exact", + "blank_background": { + "renderer_contract": "R3", + "rgb": [ + 255, + 255, + 255 + ] + }, + "occlusion": { + "mode": "basnet-isnet", + "detector": { + "contract": "frozen BASNet + ISNet, pixel-wise maximum", + "fusion": "pixelwise_max", + "fail_closed": true, + "network_downloads_allowed": false, + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "load_contract": { + "revision_argument": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false + }, + "snapshot_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "artifacts": { + "config.json": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/c4646206f7c2ccdcc26b6ec82f44ab4688a92479", + "sha256": "ab4be234682c7d12e4c3e13ffcc8b280065cf843041eb09b11ac34da5474e895", + "size_bytes": 299 + }, + "model.safetensors": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "sha256": "83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "size_bytes": 348466168 + }, + "configuration_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "size_bytes": 364 + }, + "modeling_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "size_bytes": 16207 + } + } + }, + "isnet": { + "model_id": "rembg/isnet-general-use", + "artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "provider": "CPUExecutionProvider", + "download_path": "forbidden; direct verified ONNX bytes" + }, + "pku_deviation": "ISNet replaces the PFPN branch used by PKU PosterLayout", + "implementation_sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "runtime_identity": { + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "requested_revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "resolved_snapshot": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false, + "model_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.modeling_basnet", + "model_class_name": "BASNetModel", + "config_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.configuration_basnet", + "config_class_name": "BASNetConfig", + "torch_version": "2.3.1+cu121", + "transformers_version": "4.57.6", + "executed_code": { + "configuration_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/configuration_basnet.py", + "executed_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "authoritative_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041" + }, + "modeling_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/modeling_basnet.py", + "executed_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "authoritative_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491" + } + } + }, + "isnet": { + "requested_model_name": "isnet-general-use", + "session_model_name": "isnet-general-use", + "session_reported_name": "isnet-general-use", + "session_class_module": "rembg.sessions.dis_general_use", + "session_class_name": "DisSession", + "rembg_version": "2.0.61", + "onnxruntime_version": "1.19.2", + "requested_providers": [ + "CPUExecutionProvider" + ], + "active_providers": [ + "CPUExecutionProvider" + ], + "available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ], + "verified_artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "session_construction": "direct verified bytes; downloader bypassed" + } + } + }, + "sobel_fallback_forbidden": true + }, + "code_runtime_lineage": { + "sources": { + "sega_metrics.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/sega_metrics.py", + "sha256": "d224caffcd4b6bbbe99b90b73c6c2df71aec59b521174741e0678cad32c48cef", + "size_bytes": 20675 + }, + "a3_sega_evaluator.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py", + "sha256": "afd178554579d2b6e8487d7ffe91d75dea37fecf899d21341b26ef0cfc375391", + "size_bytes": 68355 + }, + "evaluate_a3_sega.py": { + "path": "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "sha256": "372a62c4e688a3f9f7c32d6ee93e067ffbd06179ce4bc32868d0a0a956f90c5f", + "size_bytes": 17316 + }, + "saliency_basnet_isnet.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py", + "sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "size_bytes": 18912 + } + }, + "runtime": { + "python": { + "version": "3.9.25", + "implementation": "CPython", + "executable": "/home/hui0705/.conda/envs/meta/bin/python3.9" + }, + "platform": { + "system": "Linux", + "release": "5.15.0-139-generic", + "machine": "x86_64", + "platform": "Linux-5.15.0-139-generic-x86_64-with-glibc2.31" + }, + "numpy": "1.26.4", + "cv2": "4.10.0", + "Pillow": "11.3.0", + "torch": "2.3.1+cu121", + "torchvision": "0.18.1+cu121", + "transformers": "4.57.6", + "rembg": "2.0.61", + "onnxruntime": "1.19.2", + "pydantic": "2.9.2", + "pooch": "v1.9.0", + "onnxruntime_available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ] + } + } + }, + "write_policy": { + "source_runs_read_only": true, + "output_is_versioned_sidecar": true, + "existing_output_overwrite": false, + "atomic_staging_publish": true, + "atomic_no_replace_publish": "renameat2(RENAME_NOREPLACE)" + }, + "cost": { + "llm_api_calls": 0, + "llm_cost_usd": 0.0, + "model_downloads": 0 + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/per_sample.jsonl b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/per_sample.jsonl new file mode 100644 index 000000000..ce2550817 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/per_sample.jsonl @@ -0,0 +1,100 @@ +{"b0_render_sha256": "a3500008f6ee80bef3d82b7477b092ba74760df3b89c814569ebb2000ada6cda", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/inputs/pfull/assets/asset_0000.png", "asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "asset_size_bytes": 1000, "kind": "asset", "pfull_asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "r3_asset_sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "73c2214a7855001b50f78c27b7ea689d2a6dd541c904527d838054010065e173", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 18.0, 167.0, 113.0], "bbox_xyxy_clipped": [18.0, 18.0, 185.0, 131.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [24.0, 134.0, 146.0, 36.0], "bbox_xyxy_clipped": [24.0, 134.0, 170.0, 170.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [238.0, 92.0, 78.0, 40.0], "bbox_xyxy_clipped": [238.0, 92.0, 316.0, 132.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [245.0, 140.0, 69.0, 30.0], "bbox_xyxy_clipped": [245.0, 140.0, 314.0, 170.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [221.0, 58.0, 86.0, 40.0], "bbox_xyxy_clipped": [221.0, 58.0, 307.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [184.0, 178.0, 133.0, 43.0], "bbox_xyxy_clipped": [184.0, 178.0, 317.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [186.0, 225.0, 131.0, 52.0], "bbox_xyxy_clipped": [186.0, 225.0, 317.0, 277.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [184.0, 232.0, 119.0, 35.0], "bbox_xyxy_clipped": [184.0, 232.0, 303.0, 267.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [202.0, 262.0, 114.0, 25.0], "bbox_xyxy_clipped": [202.0, 262.0, 316.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004822263889070988}, "Ove": {"reason": null, "status": "ok", "value": 0.1099809868173271}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "365dc3130b069b074b35453485be8e85b9c90afb9e99b620cfcc8c6d0b0fc112", "status": "computed"}, "sample_id": "59526eab95a7a863ddcdeb6c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/pipeline/l0_result.json", "sha256": "b49ed66379592372094ff814246e49b7bd924bb736da2fece40275d7ad4cd775", "size_bytes": 8431}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/inputs/pfull/asset_manifest.json", "sha256": "395d79eca4e16f71f095cc3d6fbd18ae1ddd0a9e05f31345fb29d3427a9421d9", "size_bytes": 5738}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/renders/r0_candidate_01.png", "sha256": "a3500008f6ee80bef3d82b7477b092ba74760df3b89c814569ebb2000ada6cda", "size_bytes": 38015}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/inputs/r3/r3_asset_manifest.json", "sha256": "2939e8984c6e0087f3f00f5a1ae14156c1a5872b696695a64cf867a1e66ee8a1", "size_bytes": 5079}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59526eab95a7a863ddcdeb6c/inputs/pfull/assets/asset_0000.png", "sha256": "acaa47bd20df928c71dd1baf7bd410f70630fafd17220cedfefb55963210ab3d", "size_bytes": 1000}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "04fdf9c009690407050db7bd4378f3f35fce1fee6d37690b8710d16060772595", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [112.0, 186.0, 412.0, 565.0], "bbox_xyxy_clipped": [112.0, 186.0, 524.0, 751.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [54.0, 734.0, 196.0, 196.0], "bbox_xyxy_clipped": [54.0, 734.0, 250.0, 930.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [258.0, 704.0, 210.0, 243.0], "bbox_xyxy_clipped": [258.0, 704.0, 468.0, 947.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [688.0, 140.0, 242.0, 58.0], "bbox_xyxy_clipped": [688.0, 140.0, 930.0, 198.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [622.0, 268.0, 392.0, 28.0], "bbox_xyxy_clipped": [622.0, 268.0, 1014.0, 296.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [622.0, 318.0, 284.0, 76.0], "bbox_xyxy_clipped": [622.0, 318.0, 906.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [622.0, 836.0, 268.0, 36.0], "bbox_xyxy_clipped": [622.0, 836.0, 890.0, 872.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004799871919594223}, "Ove": {"reason": null, "status": "ok", "value": 0.00639369185227949}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e7380974b3890eb0747d5c4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7380974b3890eb0747d5c4/pipeline/l0_result.json", "sha256": "5dbddd0722fd95a240b6ed95033dcbbf6051c2e0913e56e395f87e0fa895b6e3", "size_bytes": 7461}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7380974b3890eb0747d5c4/inputs/pfull/asset_manifest.json", "sha256": "336588890792d4d6f2180cd2a01fe2c8105e319c886c3f57b828854eca58c90c", "size_bytes": 4008}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7380974b3890eb0747d5c4/renders/r0_candidate_02.png", "sha256": "04fdf9c009690407050db7bd4378f3f35fce1fee6d37690b8710d16060772595", "size_bytes": 436720}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7380974b3890eb0747d5c4/inputs/r3/r3_asset_manifest.json", "sha256": "6cc22c93093f9a9b52be40cc6af571d307793fc1b042e31f870a784a7937efad", "size_bytes": 3646}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "06557b62f097edc5b313476e58da718de79cc79c3af54f1259df6d23dc1d34c0", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [92.0, 86.0, 260.0, 55.0], "bbox_xyxy_clipped": [92.0, 86.0, 352.0, 141.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [95.0, 165.0, 235.0, 24.0], "bbox_xyxy_clipped": [95.0, 165.0, 330.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [95.0, 208.0, 194.0, 81.0], "bbox_xyxy_clipped": [95.0, 208.0, 289.0, 289.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [97.0, 327.0, 205.0, 32.0], "bbox_xyxy_clipped": [97.0, 327.0, 302.0, 359.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [97.0, 382.0, 236.0, 25.0], "bbox_xyxy_clipped": [97.0, 382.0, 333.0, 407.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [97.0, 995.0, 165.0, 30.0], "bbox_xyxy_clipped": [97.0, 995.0, 262.0, 1025.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1060.0, 110.0, 760.0, 1047.0], "bbox_xyxy_clipped": [1060.0, 110.0, 1820.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1390.0, 118.0, 530.0, 382.0], "bbox_xyxy_clipped": [1390.0, 118.0, 1920.0, 500.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1490.0, 562.0, 290.0, 434.0], "bbox_xyxy_clipped": [1490.0, 562.0, 1780.0, 996.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1660.0, 845.0, 260.0, 260.0], "bbox_xyxy_clipped": [1660.0, 845.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005657191656939143}, "Ove": {"reason": null, "status": "ok", "value": 0.053931482466462774}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5da04604abc8ea6d1cbe2935", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5da04604abc8ea6d1cbe2935/pipeline/l0_result.json", "sha256": "732c4cb275e43e433d1a1bf628d847915875e4796619b3907dc07c583f594d34", "size_bytes": 9881}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5da04604abc8ea6d1cbe2935/inputs/pfull/asset_manifest.json", "sha256": "177ed56a2c9d197711372d710512eca4fdb6287631da2a19198cc67df5a5cd0a", "size_bytes": 5541}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_03.png", "sha256": "06557b62f097edc5b313476e58da718de79cc79c3af54f1259df6d23dc1d34c0", "size_bytes": 366052}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5da04604abc8ea6d1cbe2935/inputs/r3/r3_asset_manifest.json", "sha256": "014a7885698b9e45b6a51b7af7584b8b648abeb40382e840d98b72105eb7d8ee", "size_bytes": 5020}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "529e227eff96d88ca60c47240e0c080d1491e330faf9997edf965c39124043b2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "f0e2a8407ea4da6325829f4da3163d5ff0091fb4c3b0582bc0e443a91f4ce1c3", "canvas": {"height": 480, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [730.0, 18.0, 430.0, 323.0], "bbox_xyxy_clipped": [730.0, 18.0, 1160.0, 341.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [36.0, 124.0, 250.0, 168.0], "bbox_xyxy_clipped": [36.0, 124.0, 286.0, 292.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [69.0, 150.0, 184.0, 85.0], "bbox_xyxy_clipped": [69.0, 150.0, 253.0, 235.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [308.0, 106.0, 236.0, 84.0], "bbox_xyxy_clipped": [308.0, 106.0, 544.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [325.0, 190.0, 229.0, 78.0], "bbox_xyxy_clipped": [325.0, 190.0, 554.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [350.0, 275.0, 200.0, 75.0], "bbox_xyxy_clipped": [350.0, 275.0, 550.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [58.0, 56.0, 365.0, 170.0], "bbox_xyxy_clipped": [58.0, 56.0, 423.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [393.0, 61.0, 94.0, 97.0], "bbox_xyxy_clipped": [393.0, 61.0, 487.0, 158.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [56.0, 334.0, 258.0, 49.0], "bbox_xyxy_clipped": [56.0, 334.0, 314.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [58.0, 389.0, 310.0, 56.0], "bbox_xyxy_clipped": [58.0, 389.0, 368.0, 445.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [56.0, 436.0, 202.0, 48.0], "bbox_xyxy_clipped": [56.0, 436.0, 258.0, 480.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [842.0, 438.0, 329.0, 28.0], "bbox_xyxy_clipped": [842.0, 438.0, 1171.0, 466.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0026607566622005568}, "Ove": {"reason": null, "status": "ok", "value": 0.11492972495372256}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "038d06dedb2ba10c79f372ddf03d0892f5e05b36ad99261d490332476a166721", "status": "computed"}, "sample_id": "5f4799b9a637ee11e3cda600", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4799b9a637ee11e3cda600/pipeline/l0_result.json", "sha256": "4f422d41882ef7320f1b07a20f22bbbbef9fbb2b58fdb2bd786eb52bb3c1f3a0", "size_bytes": 10201}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4799b9a637ee11e3cda600/inputs/pfull/asset_manifest.json", "sha256": "246a8511967c4010d07667ec73437868c5aaddf6aae578b5be9f39248512f77b", "size_bytes": 6498}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4799b9a637ee11e3cda600/renders/r0_candidate_03.png", "sha256": "529e227eff96d88ca60c47240e0c080d1491e330faf9997edf965c39124043b2", "size_bytes": 460309}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4799b9a637ee11e3cda600/inputs/r3/r3_asset_manifest.json", "sha256": "00dd2d010b164ca2719c19c3f8cba570096212d8f6828b7f3adb4358f19be55b", "size_bytes": 5805}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b742a6ba3ce38b6219805df0548969e9bab7641f38f905063a7487d565a845a7", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/inputs/pfull/assets/asset_0000.png", "asset_sha256": "2edee0c747d4de5750bb01bf52e174b97fe89c94bfb4b56042df9b270d4c9931", "asset_size_bytes": 1164, "kind": "asset", "pfull_asset_sha256": "2edee0c747d4de5750bb01bf52e174b97fe89c94bfb4b56042df9b270d4c9931", "r3_asset_sha256": "2edee0c747d4de5750bb01bf52e174b97fe89c94bfb4b56042df9b270d4c9931", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [242.0, 18.0, 150.0, 27.0], "bbox_xyxy_clipped": [242.0, 18.0, 392.0, 45.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [248.0, 58.0, 142.0, 15.0], "bbox_xyxy_clipped": [248.0, 58.0, 390.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [250.0, 90.0, 122.0, 16.0], "bbox_xyxy_clipped": [250.0, 90.0, 372.0, 106.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [250.0, 112.0, 143.0, 14.0], "bbox_xyxy_clipped": [250.0, 112.0, 393.0, 126.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [248.0, 250.0, 154.0, 10.0], "bbox_xyxy_clipped": [248.0, 250.0, 402.0, 260.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [22.0, 171.0, 128.0, 106.0], "bbox_xyxy_clipped": [22.0, 171.0, 150.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [6.0, 263.0, 120.0, 4.0], "bbox_xyxy_clipped": [6.0, 263.0, 126.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [18.0, 278.0, 96.0, 4.0], "bbox_xyxy_clipped": [18.0, 278.0, 114.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005336980942206051}, "Ove": {"reason": null, "status": "ok", "value": 0.0038145539906103286}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "595298e195a7a863ddce04c2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/pipeline/l0_result.json", "sha256": "307f800b20a2807744f8bf5f1549f313e6d696aa02a5211f4c844b668fd5acbd", "size_bytes": 8173}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/inputs/pfull/asset_manifest.json", "sha256": "85f4898c67a81b226fc9c3d41a545aabf0f3c9cb5bb0f58d9e3805e623f714cd", "size_bytes": 5110}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/renders/r0_candidate_03.png", "sha256": "b742a6ba3ce38b6219805df0548969e9bab7641f38f905063a7487d565a845a7", "size_bytes": 45716}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/inputs/r3/r3_asset_manifest.json", "sha256": "0eb82f3b023280903a58fb12ca061be95850f248e91634e0818c00fa48871a63", "size_bytes": 4565}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/595298e195a7a863ddce04c2/inputs/pfull/assets/asset_0000.png", "sha256": "2edee0c747d4de5750bb01bf52e174b97fe89c94bfb4b56042df9b270d4c9931", "size_bytes": 1164}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a60a4bbc9b751788b76fbd478cb40f90c27af21c43120f766fbf84ed1cb06c29", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/inputs/pfull/assets/asset_0000.png", "asset_sha256": "edfcad92d88ab49deb56a7d02d14c626dabc404ebea8969cb8ec70db50c8664f", "asset_size_bytes": 4721, "kind": "asset", "pfull_asset_sha256": "edfcad92d88ab49deb56a7d02d14c626dabc404ebea8969cb8ec70db50c8664f", "r3_asset_sha256": "edfcad92d88ab49deb56a7d02d14c626dabc404ebea8969cb8ec70db50c8664f", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "4d84d6aa0c6179b3e3fad68384111e42ea3aaa1ddfe368627b32a884b2668407", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 40.0, 300.0, 305.0], "bbox_xyxy_clipped": [18.0, 40.0, 318.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [560.0, 48.0, 330.0, 63.0], "bbox_xyxy_clipped": [560.0, 48.0, 890.0, 111.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [612.0, 8.0, 230.0, 166.0], "bbox_xyxy_clipped": [612.0, 8.0, 842.0, 174.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [805.0, 150.0, 92.0, 92.0], "bbox_xyxy_clipped": [805.0, 150.0, 897.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [648.0, 182.0, 84.0, 84.0], "bbox_xyxy_clipped": [648.0, 182.0, 732.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [530.0, 118.0, 390.0, 82.0], "bbox_xyxy_clipped": [530.0, 118.0, 920.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [62.0, 482.0, 430.0, 253.0], "bbox_xyxy_clipped": [62.0, 482.0, 492.0, 735.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.03071919751818661}, "Ove": {"reason": null, "status": "ok", "value": 0.10552287393473203}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "a276fe8f9361e10f11512513f6c669e0a7acdf113abc9b56ec28967cc50eab77", "status": "computed"}, "sample_id": "592fdcc595a7a863ddcdbde1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/pipeline/l0_result.json", "sha256": "d9e84f4b0c3e3d70d0ad0f0fda59ba8329030b75cfc9db09220e465b913ddbe7", "size_bytes": 7629}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/inputs/pfull/asset_manifest.json", "sha256": "e70c8a4240227738cbf032daf56db6508df2e950eaf5fc002013494cb53a0468", "size_bytes": 4451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/renders/r0_candidate_03.png", "sha256": "a60a4bbc9b751788b76fbd478cb40f90c27af21c43120f766fbf84ed1cb06c29", "size_bytes": 174181}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/inputs/r3/r3_asset_manifest.json", "sha256": "6323eac4462f77a4c637eeae722c5243b72b3a83619533d0860229f5053327af", "size_bytes": 3782}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fdcc595a7a863ddcdbde1/inputs/pfull/assets/asset_0000.png", "sha256": "edfcad92d88ab49deb56a7d02d14c626dabc404ebea8969cb8ec70db50c8664f", "size_bytes": 4721}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "be8ec02850a4df9df1c6ee503e60b2bd7410c8d95267c5716267e0669cb5fd7b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [34.0, 48.0, 620.0, 1102.0], "bbox_xyxy_clipped": [34.0, 48.0, 654.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [180.0, 180.0, 360.0, 349.0], "bbox_xyxy_clipped": [180.0, 180.0, 540.0, 529.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [540.0, 170.0, 250.0, 367.0], "bbox_xyxy_clipped": [540.0, 170.0, 790.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [708.0, 176.0, 420.0, 153.0], "bbox_xyxy_clipped": [708.0, 176.0, 1128.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [716.0, 302.0, 365.0, 132.0], "bbox_xyxy_clipped": [716.0, 302.0, 1081.0, 434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [712.0, 430.0, 520.0, 197.0], "bbox_xyxy_clipped": [712.0, 430.0, 1232.0, 627.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003621636290315102}, "Occ": {"reason": null, "status": "ok", "value": 0.006014683955863528}, "Ove": {"reason": null, "status": "ok", "value": 0.1174148502878989}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5d68df79e79a2a634ea55321", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d68df79e79a2a634ea55321/pipeline/l0_result.json", "sha256": "e524e9d415266065db1b7c4c1b1fada8ba5917bc534106f8e5b493ac32117c65", "size_bytes": 7660}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d68df79e79a2a634ea55321/inputs/pfull/asset_manifest.json", "sha256": "2d18922deadbd4a5e08240ba7213ada618e58e800370f12a07c895f103a99c4a", "size_bytes": 3437}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d68df79e79a2a634ea55321/renders/r0_candidate_01.png", "sha256": "be8ec02850a4df9df1c6ee503e60b2bd7410c8d95267c5716267e0669cb5fd7b", "size_bytes": 1050462}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d68df79e79a2a634ea55321/inputs/r3/r3_asset_manifest.json", "sha256": "c6e8ea9deca5af1d00b0208d497a9d7392620909a58d8d8ecee2041c50944a54", "size_bytes": 3123}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "674430cf1c67e15eb19f0f3c6e50efb62102cd05c0559923e949fcf850412520", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [645.0, 121.0, 220.0, 319.0], "bbox_xyxy_clipped": [645.0, 121.0, 865.0, 440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [584.0, 425.0, 240.0, 355.0], "bbox_xyxy_clipped": [584.0, 425.0, 824.0, 780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [86.0, 545.0, 430.0, 75.0], "bbox_xyxy_clipped": [86.0, 545.0, 516.0, 620.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [88.0, 628.0, 220.0, 120.0], "bbox_xyxy_clipped": [88.0, 628.0, 308.0, 748.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [86.0, 742.0, 680.0, 55.0], "bbox_xyxy_clipped": [86.0, 742.0, 766.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 286.0, 130.0, 252.0], "bbox_xyxy_clipped": [44.0, 286.0, 174.0, 538.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [186.0, 286.0, 112.0, 261.0], "bbox_xyxy_clipped": [186.0, 286.0, 298.0, 547.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.008656875202859042}, "Ove": {"reason": null, "status": "ok", "value": 0.015397789646735922}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5c1e2e71133a78539266d649", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e2e71133a78539266d649/pipeline/l0_result.json", "sha256": "0df6e179190918611201dd7cad4fe3c809530a62af432cc2fa71b299d17b59b9", "size_bytes": 7411}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e2e71133a78539266d649/inputs/pfull/asset_manifest.json", "sha256": "4c36151f202f5a397e45438c39c413520e062a13bc35f66820546528bfd27e5a", "size_bytes": 3912}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e2e71133a78539266d649/renders/r0_candidate_03.png", "sha256": "674430cf1c67e15eb19f0f3c6e50efb62102cd05c0559923e949fcf850412520", "size_bytes": 249585}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e2e71133a78539266d649/inputs/r3/r3_asset_manifest.json", "sha256": "39eacc16fd55956747be9bbb2e4f06df76b5b7866cf51a7b3c36e320d1867281", "size_bytes": 3470}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "53ef034be5c035515ce21e42267122128d6bfdac6d9a6748f4315003d18c3272", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [720.0, 184.0, 440.0, 293.0], "bbox_xyxy_clipped": [720.0, 184.0, 1160.0, 477.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [72.0, 72.0, 420.0, 78.0], "bbox_xyxy_clipped": [72.0, 72.0, 492.0, 150.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [74.0, 148.0, 520.0, 116.0], "bbox_xyxy_clipped": [74.0, 148.0, 594.0, 264.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [112.0, 248.0, 474.0, 127.0], "bbox_xyxy_clipped": [112.0, 248.0, 586.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [962.0, 28.0, 190.0, 85.0], "bbox_xyxy_clipped": [962.0, 28.0, 1152.0, 113.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1020.0, 106.0, 154.0, 92.0], "bbox_xyxy_clipped": [1020.0, 106.0, 1174.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [892.0, 64.0, 168.0, 102.0], "bbox_xyxy_clipped": [892.0, 64.0, 1060.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0050709959603258865}, "Occ": {"reason": null, "status": "ok", "value": 0.0014829035719021633}, "Ove": {"reason": null, "status": "ok", "value": 0.05330851977630794}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5fbe1dc7a637ee11e37e5003", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbe1dc7a637ee11e37e5003/pipeline/l0_result.json", "sha256": "dcc3ec3f28c8f690ec15a0897ceceffa83b0f46f6e66c8a2dc991f3e36b09446", "size_bytes": 7241}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbe1dc7a637ee11e37e5003/inputs/pfull/asset_manifest.json", "sha256": "21b0200398fcbbbebe9dbd3d156376062250670b13fb8eee1d5a73300d997f3a", "size_bytes": 3884}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbe1dc7a637ee11e37e5003/renders/r0_candidate_02.png", "sha256": "53ef034be5c035515ce21e42267122128d6bfdac6d9a6748f4315003d18c3272", "size_bytes": 155719}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbe1dc7a637ee11e37e5003/inputs/r3/r3_asset_manifest.json", "sha256": "b2fc500e35e0a47c3e5f6bba9e39d5d86e7241cc6e954303fb68aa7bac3337ec", "size_bytes": 3466}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "21330913437c73d8d07709e82330d98e72ccbe3546976d7271955ecdb7da8fdf", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/inputs/pfull/assets/asset_0000.png", "asset_sha256": "fc256b9340aced813e68dfad401245405063b5683ea5f3970806c3b3f7df9d11", "asset_size_bytes": 4721, "kind": "asset", "pfull_asset_sha256": "fc256b9340aced813e68dfad401245405063b5683ea5f3970806c3b3f7df9d11", "r3_asset_sha256": "fc256b9340aced813e68dfad401245405063b5683ea5f3970806c3b3f7df9d11", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "38ed0fa360049c15a7d9f561f6ea0197b2ff1c9e12ff3c46b0e7ec582bc3634b", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 145.0, 145.0], "bbox_xyxy_clipped": [0.0, 0.0, 145.0, 145.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [18.0, 170.0, 120.0, 88.0], "bbox_xyxy_clipped": [18.0, 170.0, 138.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 280.0, 220.0, 271.0], "bbox_xyxy_clipped": [0.0, 280.0, 220.0, 551.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [548.0, 340.0, 280.0, 28.0], "bbox_xyxy_clipped": [548.0, 340.0, 828.0, 368.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [566.0, 92.0, 290.0, 48.0], "bbox_xyxy_clipped": [566.0, 92.0, 856.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [595.0, 155.0, 194.0, 49.0], "bbox_xyxy_clipped": [595.0, 155.0, 789.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [566.0, 224.0, 328.0, 39.0], "bbox_xyxy_clipped": [566.0, 224.0, 894.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [757.0, 293.0, 95.0, 96.0], "bbox_xyxy_clipped": [757.0, 293.0, 852.0, 389.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [754.0, 404.0, 126.0, 29.0], "bbox_xyxy_clipped": [754.0, 404.0, 880.0, 433.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.04333154829457922}, "Ove": {"reason": null, "status": "ok", "value": 0.01475346572861935}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "ba406c6a2d36c6254e7fabb475480eb90b94b8231d9a3215867dfbf79695106a", "status": "computed"}, "sample_id": "5a21a25cd8141396fe9a3ddd", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/pipeline/l0_result.json", "sha256": "3a6c4bafa44228b493c0ca83e8ac4952163ee13cfce7906732c3736c1ea3f85f", "size_bytes": 10055}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/inputs/pfull/asset_manifest.json", "sha256": "f5ddb6a6f76747b9383c74205d2dcdd725e919380064b69e7677d6b717a121a2", "size_bytes": 5532}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/renders/r0_candidate_02.png", "sha256": "21330913437c73d8d07709e82330d98e72ccbe3546976d7271955ecdb7da8fdf", "size_bytes": 100692}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/inputs/r3/r3_asset_manifest.json", "sha256": "9f9697648902a7a029869c4175547b41667a464a9290e2d0687958208ef76673", "size_bytes": 4933}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21a25cd8141396fe9a3ddd/inputs/pfull/assets/asset_0000.png", "sha256": "fc256b9340aced813e68dfad401245405063b5683ea5f3970806c3b3f7df9d11", "size_bytes": 4721}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e04ed316b2f522fc927cd908ba2b57779fb8f46acd22b9c5b7a1a2574ed6fd73", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 24, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 18.0, 892.0, 745.0], "bbox_xyxy_clipped": [24.0, 18.0, 916.0, 763.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [34.0, 28.0, 240.0, 156.0], "bbox_xyxy_clipped": [34.0, 28.0, 274.0, 184.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [668.0, 26.0, 238.0, 155.0], "bbox_xyxy_clipped": [668.0, 26.0, 906.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 188.0, 756.0, 8.0], "bbox_xyxy_clipped": [92.0, 188.0, 848.0, 196.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [128.0, 213.0, 684.0, 36.0], "bbox_xyxy_clipped": [128.0, 213.0, 812.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [162.0, 260.0, 616.0, 41.0], "bbox_xyxy_clipped": [162.0, 260.0, 778.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [124.0, 612.0, 692.0, 7.0], "bbox_xyxy_clipped": [124.0, 612.0, 816.0, 619.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [170.0, 585.0, 600.0, 7.0], "bbox_xyxy_clipped": [170.0, 585.0, 770.0, 592.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [66.0, 86.0, 260.0, 96.0], "bbox_xyxy_clipped": [66.0, 86.0, 326.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [636.0, 88.0, 238.0, 88.0], "bbox_xyxy_clipped": [636.0, 88.0, 874.0, 176.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [312.0, 314.0, 126.0, 133.0], "bbox_xyxy_clipped": [312.0, 314.0, 438.0, 447.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [506.0, 318.0, 122.0, 129.0], "bbox_xyxy_clipped": [506.0, 318.0, 628.0, 447.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [366.0, 252.0, 210.0, 405.0], "bbox_xyxy_clipped": [366.0, 252.0, 576.0, 657.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [624.0, 432.0, 84.0, 82.0], "bbox_xyxy_clipped": [624.0, 432.0, 708.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [557.0, 370.0, 58.0, 58.0], "bbox_xyxy_clipped": [557.0, 370.0, 615.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [198.0, 628.0, 22.0, 22.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [728.0, 626.0, 22.0, 22.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [238.0, 352.0, 132.0, 36.0], "bbox_xyxy_clipped": [238.0, 352.0, 370.0, 388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [392.0, 346.0, 120.0, 33.0], "bbox_xyxy_clipped": [392.0, 346.0, 512.0, 379.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [530.0, 354.0, 112.0, 31.0], "bbox_xyxy_clipped": [530.0, 354.0, 642.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [198.0, 646.0, 196.0, 44.0], "bbox_xyxy_clipped": [198.0, 646.0, 394.0, 690.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [392.0, 642.0, 252.0, 38.0], "bbox_xyxy_clipped": [392.0, 642.0, 644.0, 680.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [652.0, 654.0, 37.0, 34.0], "bbox_xyxy_clipped": [652.0, 654.0, 689.0, 688.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [318.0, 692.0, 304.0, 46.0], "bbox_xyxy_clipped": [318.0, 692.0, 622.0, 738.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0047297622580093}, "Ove": {"reason": null, "status": "ok", "value": 0.12037044463074568}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5a21793fd8141396fe9a2b83", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21793fd8141396fe9a2b83/pipeline/l0_result.json", "sha256": "5733cdc918f3108d06c39dbe575ce473d0164d914f0a16b9fb04e6cdfd6df73f", "size_bytes": 17881}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21793fd8141396fe9a2b83/inputs/pfull/asset_manifest.json", "sha256": "390fd3cd3b61a0cc35b92ae02067751624c08e224d34fa6e1bbc9aed6b640596", "size_bytes": 12465}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21793fd8141396fe9a2b83/renders/r0_candidate_03.png", "sha256": "e04ed316b2f522fc927cd908ba2b57779fb8f46acd22b9c5b7a1a2574ed6fd73", "size_bytes": 722926}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a21793fd8141396fe9a2b83/inputs/r3/r3_asset_manifest.json", "sha256": "2ad4677d49e451bd26ed3b929a823f11ca3629befb083d62c2fe97d706a74050", "size_bytes": 10489}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4ac1319d8336aa2e4bac42049ad64a048cb225b3e5c11455cfe38a777c3374b7", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [110.0, 260.0, 360.0, 360.0], "bbox_xyxy_clipped": [110.0, 260.0, 470.0, 620.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [85.0, 185.0, 455.0, 521.0], "bbox_xyxy_clipped": [85.0, 185.0, 540.0, 706.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [405.0, 215.0, 185.0, 270.0], "bbox_xyxy_clipped": [405.0, 215.0, 590.0, 485.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [645.0, 105.0, 330.0, 64.0], "bbox_xyxy_clipped": [645.0, 105.0, 975.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [655.0, 180.0, 95.0, 30.0], "bbox_xyxy_clipped": [655.0, 180.0, 750.0, 210.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [655.0, 225.0, 175.0, 30.0], "bbox_xyxy_clipped": [655.0, 225.0, 830.0, 255.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [650.0, 285.0, 180.0, 165.0], "bbox_xyxy_clipped": [650.0, 285.0, 830.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [820.0, 175.0, 180.0, 41.0], "bbox_xyxy_clipped": [820.0, 175.0, 1000.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [650.0, 255.0, 305.0, 10.0], "bbox_xyxy_clipped": [650.0, 255.0, 955.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [835.0, 238.0, 150.0, 147.0], "bbox_xyxy_clipped": [835.0, 238.0, 985.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0017226100162117026}, "Ove": {"reason": null, "status": "ok", "value": 0.08310714869453567}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5c1e235d133a78539251c177", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e235d133a78539251c177/pipeline/l0_result.json", "sha256": "630eeb6507a36bec06508b7abbb9eca9862e391893998c76dc8cf966d61fa9ca", "size_bytes": 9712}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e235d133a78539251c177/inputs/pfull/asset_manifest.json", "sha256": "21cd6d6d09fe40e8a60af8b6b0b192c1d2703b566c2199fc8cd02dd7b42418d8", "size_bytes": 5445}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e235d133a78539251c177/renders/r0_candidate_01.png", "sha256": "4ac1319d8336aa2e4bac42049ad64a048cb225b3e5c11455cfe38a777c3374b7", "size_bytes": 506051}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c1e235d133a78539251c177/inputs/r3/r3_asset_manifest.json", "sha256": "6704ada54a94c8ea2e0f03e72028f6fd6edaf3021dfada3d6e3e499ab49f132a", "size_bytes": 4764}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4c8d60545dd217a0ba8c27fb855102e9775fe959d010d1df64c466cdaf119b9f", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0013", "bbox_lwh_raw": [116.0, 292.0, 514.0, 91.0], "bbox_xyxy_clipped": [116.0, 292.0, 630.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [120.0, 394.0, 172.0, 60.0], "bbox_xyxy_clipped": [120.0, 394.0, 292.0, 454.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [120.0, 462.0, 211.0, 52.0], "bbox_xyxy_clipped": [120.0, 462.0, 331.0, 514.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 524.0, 206.0, 142.0], "bbox_xyxy_clipped": [120.0, 524.0, 326.0, 666.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [120.0, 682.0, 305.0, 94.0], "bbox_xyxy_clipped": [120.0, 682.0, 425.0, 776.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [733.0, 205.0, 250.0, 381.0], "bbox_xyxy_clipped": [733.0, 205.0, 983.0, 586.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [754.0, 228.0, 208.0, 208.0], "bbox_xyxy_clipped": [754.0, 228.0, 962.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [694.0, 170.0, 136.0, 122.0], "bbox_xyxy_clipped": [694.0, 170.0, 830.0, 292.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [802.0, 503.0, 120.0, 107.0], "bbox_xyxy_clipped": [802.0, 503.0, 922.0, 610.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [692.0, 590.0, 297.0, 16.0], "bbox_xyxy_clipped": [692.0, 590.0, 989.0, 606.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [706.0, 613.0, 263.0, 13.0], "bbox_xyxy_clipped": [706.0, 613.0, 969.0, 626.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [735.0, 645.0, 194.0, 341.0], "bbox_xyxy_clipped": [735.0, 645.0, 929.0, 986.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [762.0, 719.0, 171.0, 173.0], "bbox_xyxy_clipped": [762.0, 719.0, 933.0, 892.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [671.0, 525.0, 58.0, 347.0], "bbox_xyxy_clipped": [671.0, 525.0, 729.0, 872.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [642.0, 560.0, 52.0, 311.0], "bbox_xyxy_clipped": [642.0, 560.0, 694.0, 871.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004377687316338738}, "Ove": {"reason": null, "status": "ok", "value": 0.1043124917280594}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "589b10aa95a7a863ddcc47e9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b10aa95a7a863ddcc47e9/pipeline/l0_result.json", "sha256": "c02e7b6e016b72ca2b767c7ee4932ccc568d48072907d1ed543aff67897967c0", "size_bytes": 12198}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b10aa95a7a863ddcc47e9/inputs/pfull/asset_manifest.json", "sha256": "9bd9b9310f4b50cd18ab95d0c545fa39ad3edb23b3e5745ad231c547978ce535", "size_bytes": 8051}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b10aa95a7a863ddcc47e9/renders/r0_candidate_02.png", "sha256": "4c8d60545dd217a0ba8c27fb855102e9775fe959d010d1df64c466cdaf119b9f", "size_bytes": 78869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b10aa95a7a863ddcc47e9/inputs/r3/r3_asset_manifest.json", "sha256": "92cc4bdbab29e897148955ac5cb0337b09f08427be5a98f13336a6019430de00", "size_bytes": 7045}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "184db8f4e9ae15a34f1b2dccae0a33e8bea47c92c4f6c0886ce6dfc16370216c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9cb1a443207bce73c0f03469462c58ea7cbeec7f0dd14016fdf88f64b54d9162", "canvas": {"height": 250, "width": 300}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [81.0, 48.0, 150.0, 134.0], "bbox_xyxy_clipped": [81.0, 48.0, 231.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [18.0, 20.0, 196.0, 46.0], "bbox_xyxy_clipped": [18.0, 20.0, 214.0, 66.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [175.0, 205.0, 106.0, 9.0], "bbox_xyxy_clipped": [175.0, 205.0, 281.0, 214.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [167.0, 219.0, 110.0, 59.0], "bbox_xyxy_clipped": [167.0, 219.0, 277.0, 250.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [173.0, 168.0, 110.0, 11.0], "bbox_xyxy_clipped": [173.0, 168.0, 283.0, 179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 0.0, 300.0, 57.0], "bbox_xyxy_clipped": [0.0, 0.0, 300.0, 57.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [40.0, 58.0, 10.0, 30.0], "bbox_xyxy_clipped": [40.0, 58.0, 50.0, 88.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [208.0, 63.0, 54.0, 36.0], "bbox_xyxy_clipped": [208.0, 63.0, 262.0, 99.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 123.0, 121.0, 30.0], "bbox_xyxy_clipped": [34.0, 123.0, 155.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [237.0, 16.0, 58.0, 50.0], "bbox_xyxy_clipped": [237.0, 16.0, 295.0, 66.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00406805598590765}, "Ove": {"reason": null, "status": "ok", "value": 0.0845758250187498}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "381287d0ea82fb8f07717a21d2294273bfd9028437c93b531bab8c80933fe19f", "status": "computed"}, "sample_id": "592d1c4f95a7a863ddcd99a0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1c4f95a7a863ddcd99a0/pipeline/l0_result.json", "sha256": "58ee00e71fb2781fccdf176f240e0929a07318825b864c1b6ea9c4638b307cb1", "size_bytes": 8975}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1c4f95a7a863ddcd99a0/inputs/pfull/asset_manifest.json", "sha256": "7328fdc84dd06be38eff29c16bbf4a39cf660d09fdf492175f996e38ac831e9a", "size_bytes": 5606}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1c4f95a7a863ddcd99a0/renders/r0_candidate_03.png", "sha256": "184db8f4e9ae15a34f1b2dccae0a33e8bea47c92c4f6c0886ce6dfc16370216c", "size_bytes": 37163}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1c4f95a7a863ddcd99a0/inputs/r3/r3_asset_manifest.json", "sha256": "cb81a0d89b747b9eb39a849ae851862fdf6b4e1a6bdd4529a59b375677c78764", "size_bytes": 5008}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c870adfffffd3a41162e857ac354c77d9583e476003e079ade6e3959b49977de", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [82.0, 132.0, 365.0, 148.0], "bbox_xyxy_clipped": [82.0, 132.0, 447.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [104.0, 142.0, 330.0, 134.0], "bbox_xyxy_clipped": [104.0, 142.0, 434.0, 276.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [136.0, 279.0, 298.0, 68.0], "bbox_xyxy_clipped": [136.0, 279.0, 434.0, 347.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [146.0, 350.0, 235.0, 73.0], "bbox_xyxy_clipped": [146.0, 350.0, 381.0, 423.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [150.0, 424.0, 230.0, 71.0], "bbox_xyxy_clipped": [150.0, 424.0, 380.0, 495.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [345.0, 104.0, 86.0, 78.0], "bbox_xyxy_clipped": [345.0, 104.0, 431.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [37.0, 233.0, 116.0, 34.0], "bbox_xyxy_clipped": [37.0, 233.0, 153.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [54.0, 326.0, 126.0, 33.0], "bbox_xyxy_clipped": [54.0, 326.0, 180.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [63.0, 468.0, 118.0, 35.0], "bbox_xyxy_clipped": [63.0, 468.0, 181.0, 503.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [228.0, 505.0, 123.0, 32.0], "bbox_xyxy_clipped": [228.0, 505.0, 351.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [832.0, 79.0, 270.0, 514.0], "bbox_xyxy_clipped": [832.0, 79.0, 1102.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [857.0, 377.0, 184.0, 54.0], "bbox_xyxy_clipped": [857.0, 377.0, 1041.0, 431.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [941.0, 232.0, 133.0, 121.0], "bbox_xyxy_clipped": [941.0, 232.0, 1074.0, 353.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0034917496305547475}, "Ove": {"reason": null, "status": "ok", "value": 0.10266468761044667}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5cd6984b7d4459dfe140c0b4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd6984b7d4459dfe140c0b4/pipeline/l0_result.json", "sha256": "7a0ac2ffec63a3076bf98a928f77c206d26938ff3511593d63a1b79c62f483e8", "size_bytes": 11349}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd6984b7d4459dfe140c0b4/inputs/pfull/asset_manifest.json", "sha256": "ff42720597d7947a718cd4e3ec70f5926d1f2bbd3540cc8bc3f8699a9440530a", "size_bytes": 6979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_01.png", "sha256": "c870adfffffd3a41162e857ac354c77d9583e476003e079ade6e3959b49977de", "size_bytes": 436812}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd6984b7d4459dfe140c0b4/inputs/r3/r3_asset_manifest.json", "sha256": "28de47c608a1d70a135c3a336d86b018523d2bcf50bbab7359803cfee603294c", "size_bytes": 6136}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "18d25eeafb02732b295b6fe281f091439a8ffb6158e340f7bf34bbcecc7834f4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0011", "bbox_lwh_raw": [40.0, 38.0, 220.0, 110.0], "bbox_xyxy_clipped": [40.0, 38.0, 260.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 120.0, 126.0, 98.0], "bbox_xyxy_clipped": [42.0, 120.0, 168.0, 218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [44.0, 214.0, 210.0, 49.0], "bbox_xyxy_clipped": [44.0, 214.0, 254.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [44.0, 274.0, 78.0, 40.0], "bbox_xyxy_clipped": [44.0, 274.0, 122.0, 314.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [128.0, 266.0, 150.0, 44.0], "bbox_xyxy_clipped": [128.0, 266.0, 278.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [44.0, 326.0, 250.0, 53.0], "bbox_xyxy_clipped": [44.0, 326.0, 294.0, 379.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [44.0, 432.0, 290.0, 50.0], "bbox_xyxy_clipped": [44.0, 432.0, 334.0, 482.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [735.0, 52.0, 230.0, 230.0], "bbox_xyxy_clipped": [735.0, 52.0, 965.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [742.0, 34.0, 122.0, 42.0], "bbox_xyxy_clipped": [742.0, 34.0, 864.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [760.0, 210.0, 205.0, 205.0], "bbox_xyxy_clipped": [760.0, 210.0, 965.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [844.0, 402.0, 104.0, 44.0], "bbox_xyxy_clipped": [844.0, 402.0, 948.0, 446.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [690.0, 152.0, 92.0, 88.0], "bbox_xyxy_clipped": [690.0, 152.0, 782.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [636.0, 14.0, 300.0, 300.0], "bbox_xyxy_clipped": [636.0, 14.0, 936.0, 314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [706.0, 30.0, 220.0, 220.0], "bbox_xyxy_clipped": [706.0, 30.0, 926.0, 250.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [928.0, 18.0, 74.0, 74.0], "bbox_xyxy_clipped": [928.0, 18.0, 1002.0, 92.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [910.0, 382.0, 70.0, 70.0], "bbox_xyxy_clipped": [910.0, 382.0, 980.0, 452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [612.0, 360.0, 86.0, 86.0], "bbox_xyxy_clipped": [612.0, 360.0, 698.0, 446.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [580.0, 92.0, 66.0, 66.0], "bbox_xyxy_clipped": [580.0, 92.0, 646.0, 158.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [936.0, 246.0, 58.0, 58.0], "bbox_xyxy_clipped": [936.0, 246.0, 994.0, 304.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [424.0, 194.0, 150.0, 122.0], "bbox_xyxy_clipped": [424.0, 194.0, 574.0, 316.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [470.0, 226.0, 88.0, 72.0], "bbox_xyxy_clipped": [470.0, 226.0, 558.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [534.0, 154.0, 160.0, 4.0], "bbox_xyxy_clipped": [534.0, 154.0, 694.0, 158.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002803490985923099}, "Ove": {"reason": null, "status": "ok", "value": 0.1581377751769753}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5db2addfabc8ea6d1c333fbc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2addfabc8ea6d1c333fbc/pipeline/l0_result.json", "sha256": "86d560df9ddaf545494e922ad75b58b0b8b67a8bf9e69a93079d522cede63ddd", "size_bytes": 15720}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2addfabc8ea6d1c333fbc/inputs/pfull/asset_manifest.json", "sha256": "bb4ce2285ccbf71273f504e3de2ec74b8cf24801307d54f44ea27b3315457406", "size_bytes": 11619}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2addfabc8ea6d1c333fbc/renders/r0_candidate_03.png", "sha256": "18d25eeafb02732b295b6fe281f091439a8ffb6158e340f7bf34bbcecc7834f4", "size_bytes": 195015}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2addfabc8ea6d1c333fbc/inputs/r3/r3_asset_manifest.json", "sha256": "614b743eb721071a14ca3ca343db13186daa239df3dde31b675fa1995e2655e7", "size_bytes": 10045}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "785b001842a1eeaadc74f73d6a5fa9dd8010e2e23bd65cccc1eceea38b9ccc09", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [78.0, 182.0, 330.0, 165.0], "bbox_xyxy_clipped": [78.0, 182.0, 408.0, 347.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 120.0, 285.0, 64.0], "bbox_xyxy_clipped": [78.0, 120.0, 363.0, 184.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [82.0, 194.0, 257.0, 83.0], "bbox_xyxy_clipped": [82.0, 194.0, 339.0, 277.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [40.0, 92.0, 390.0, 87.0], "bbox_xyxy_clipped": [40.0, 92.0, 430.0, 179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [675.0, 110.0, 460.0, 229.0], "bbox_xyxy_clipped": [675.0, 110.0, 1135.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016308678444807594}, "Ove": {"reason": null, "status": "ok", "value": 0.17505239578705017}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5a328987d8141396fe9b856b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a328987d8141396fe9b856b/pipeline/l0_result.json", "sha256": "2aa486222f1446c3393538eae370d461519d52acf19898540c3c192691338b97", "size_bytes": 6214}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a328987d8141396fe9b856b/inputs/pfull/asset_manifest.json", "sha256": "710616145ad76f3a53a304722953a051708741ed171d13897ba1f3219fc08455", "size_bytes": 2938}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a328987d8141396fe9b856b/renders/r0_candidate_03.png", "sha256": "785b001842a1eeaadc74f73d6a5fa9dd8010e2e23bd65cccc1eceea38b9ccc09", "size_bytes": 222624}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a328987d8141396fe9b856b/inputs/r3/r3_asset_manifest.json", "sha256": "21ddac9c46e5b2a44377fcdd126933b3a9c4c8aeabbe633ce8b7862a428b1f7a", "size_bytes": 2632}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f7749283953d7b8f010bc403311363983c530d5dc1bb8102fa4af4e310fc004e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "11217e9a8883c2f2e8529f1bb744f403fd69b979aa781cb901beeaeedf01a747", "canvas": {"height": 654, "width": 420}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 116.0, 186.0, 290.0], "bbox_xyxy_clipped": [24.0, 116.0, 210.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [20.0, 66.0, 121.0, 404.0], "bbox_xyxy_clipped": [20.0, 66.0, 141.0, 470.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [228.0, 124.0, 168.0, 196.0], "bbox_xyxy_clipped": [228.0, 124.0, 396.0, 320.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [312.0, 106.0, 78.0, 78.0], "bbox_xyxy_clipped": [312.0, 106.0, 390.0, 184.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [33.0, 93.0, 186.0, 138.0], "bbox_xyxy_clipped": [33.0, 93.0, 219.0, 231.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.02077979885578851}, "Occ": {"reason": null, "status": "ok", "value": 0.0022474369780862524}, "Ove": {"reason": null, "status": "ok", "value": 0.24444089627073753}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "d09109066a15e44b18dd96cd5d5d3bf52cb21140804f0b9a19e9249c4795b48a", "status": "computed"}, "sample_id": "5f96895da637ee11e38af71a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96895da637ee11e38af71a/pipeline/l0_result.json", "sha256": "334e7e96c64cd69b4da81ddef03e2fb4cddf91a818b6ab682f310b550b8cf44b", "size_bytes": 6420}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96895da637ee11e38af71a/inputs/pfull/asset_manifest.json", "sha256": "ea482918256130c1e9dfe800a41f74aee3ed895259473b6ef3082c9ad8e097ad", "size_bytes": 2885}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96895da637ee11e38af71a/renders/r0_candidate_03.png", "sha256": "f7749283953d7b8f010bc403311363983c530d5dc1bb8102fa4af4e310fc004e", "size_bytes": 80603}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96895da637ee11e38af71a/inputs/r3/r3_asset_manifest.json", "sha256": "633c40021468cc1fde8e656ab5fb00536d5dd144a6312a69513199bc96abb84d", "size_bytes": 2548}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "69adc5faf3ea6cd10f9b4d8c851b62ff65a28e1350c5d94038ef8c6d77f20f4a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 170.0, 840.0, 320.0], "bbox_xyxy_clipped": [120.0, 170.0, 960.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [760.0, 210.0, 240.0, 242.0], "bbox_xyxy_clipped": [760.0, 210.0, 1000.0, 452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [350.0, 90.0, 380.0, 305.0], "bbox_xyxy_clipped": [350.0, 90.0, 730.0, 395.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [395.0, 390.0, 290.0, 179.0], "bbox_xyxy_clipped": [395.0, 390.0, 685.0, 569.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [165.0, 560.0, 750.0, 158.0], "bbox_xyxy_clipped": [165.0, 560.0, 915.0, 718.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012071222301207754}, "Ove": {"reason": null, "status": "ok", "value": 0.11664934684052186}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "59158b7095a7a863ddcd869c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59158b7095a7a863ddcd869c/pipeline/l0_result.json", "sha256": "1f9196838d29d49c47301339297596f6bbbb5a995b6ca8dd13633841b3118582", "size_bytes": 5866}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59158b7095a7a863ddcd869c/inputs/pfull/asset_manifest.json", "sha256": "b8974f44d08496edbda5ff62c1a6f4056fe145bfd62437403ba8d3ad273e16ec", "size_bytes": 2913}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59158b7095a7a863ddcd869c/renders/r0_candidate_02.png", "sha256": "69adc5faf3ea6cd10f9b4d8c851b62ff65a28e1350c5d94038ef8c6d77f20f4a", "size_bytes": 130067}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59158b7095a7a863ddcd869c/inputs/r3/r3_asset_manifest.json", "sha256": "0409be485b9fd1bd6d06f3d26e3116697031c94f988fe3561f93fe75587565a9", "size_bytes": 2578}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1b960200222a2e55b39d12ac69e3a82426174210ee8c1c7a4ff415d690883c24", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [58.0, 44.0, 360.0, 134.0], "bbox_xyxy_clipped": [58.0, 44.0, 418.0, 178.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [176.0, 72.0, 286.0, 290.0], "bbox_xyxy_clipped": [176.0, 72.0, 462.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [214.0, 122.0, 202.0, 179.0], "bbox_xyxy_clipped": [214.0, 122.0, 416.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [132.0, 94.0, 318.0, 604.0], "bbox_xyxy_clipped": [132.0, 94.0, 450.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [548.0, 34.0, 245.0, 171.0], "bbox_xyxy_clipped": [548.0, 34.0, 793.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [724.0, 58.0, 31.0, 130.0], "bbox_xyxy_clipped": [724.0, 58.0, 755.0, 188.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [781.0, 122.0, 31.0, 130.0], "bbox_xyxy_clipped": [781.0, 122.0, 812.0, 252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [740.0, 22.0, 19.0, 80.0], "bbox_xyxy_clipped": [740.0, 22.0, 759.0, 102.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [610.0, 208.0, 167.0, 40.0], "bbox_xyxy_clipped": [610.0, 208.0, 777.0, 248.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [690.0, 172.0, 31.0, 130.0], "bbox_xyxy_clipped": [690.0, 172.0, 721.0, 302.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003947249333724822}, "Ove": {"reason": null, "status": "ok", "value": 0.2924437863552205}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5f881e9fa637ee11e348d19b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f881e9fa637ee11e348d19b/pipeline/l0_result.json", "sha256": "8d206dd92a40bafc7277f093b379dd651b72d0f5f9de1817d11c272915291e5a", "size_bytes": 10704}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f881e9fa637ee11e348d19b/inputs/pfull/asset_manifest.json", "sha256": "3750c3a2a2924aaadb342887d5ca01ca11bb3fe45d40a4c5d7c430ca59961f20", "size_bytes": 5392}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f881e9fa637ee11e348d19b/renders/r0_candidate_03.png", "sha256": "1b960200222a2e55b39d12ac69e3a82426174210ee8c1c7a4ff415d690883c24", "size_bytes": 130289}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f881e9fa637ee11e348d19b/inputs/r3/r3_asset_manifest.json", "sha256": "86e8d322f6e99c11dd7981b7edafca7678189b5f9a4cff74ad47b913056812c2", "size_bytes": 4632}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6fa04f20acf2a16caa8baa6affe29c376384ea2c92ffc95dcf11de1f64e32b0b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [5.0, 78.0, 128.0, 130.0], "bbox_xyxy_clipped": [5.0, 78.0, 133.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [198.0, 126.0, 135.0, 59.0], "bbox_xyxy_clipped": [198.0, 126.0, 333.0, 185.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [236.0, 191.0, 97.0, 21.0], "bbox_xyxy_clipped": [236.0, 191.0, 333.0, 212.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [198.0, 223.0, 152.0, 33.0], "bbox_xyxy_clipped": [198.0, 223.0, 350.0, 256.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0031010883622178834}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "58b031ab95a7a863ddcc9590", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b031ab95a7a863ddcc9590/pipeline/l0_result.json", "sha256": "e1022b1e14091e52f3c25b211760402ef005e436152327df98f6a28233b2e8bf", "size_bytes": 5523}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b031ab95a7a863ddcc9590/inputs/pfull/asset_manifest.json", "sha256": "fcf318641be0a8f0b880ef648c6c56adbdf2945101b5fc959a0cbb36e2749ef1", "size_bytes": 2548}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b031ab95a7a863ddcc9590/renders/r0_candidate_02.png", "sha256": "6fa04f20acf2a16caa8baa6affe29c376384ea2c92ffc95dcf11de1f64e32b0b", "size_bytes": 45185}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b031ab95a7a863ddcc9590/inputs/r3/r3_asset_manifest.json", "sha256": "c3d9bd97fae7fe180282216335a2ebf7a04f6bda3c4b643fe17060bba5a53127", "size_bytes": 2404}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d06cc18b0dab45d63896bb6abe98214bade2e0d77d6e9a3a3977b3df606f7efa", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "56d3d889f420f8d3373e931af4fbb8939bde2cb9d5198242468e5768ae75b22f", "canvas": {"height": 500, "width": 1500}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [885.0, 60.0, 515.0, 171.0], "bbox_xyxy_clipped": [885.0, 60.0, 1400.0, 231.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [840.0, 220.0, 320.0, 143.0], "bbox_xyxy_clipped": [840.0, 220.0, 1160.0, 363.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [815.0, 305.0, 260.0, 68.0], "bbox_xyxy_clipped": [815.0, 305.0, 1075.0, 373.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [95.0, 170.0, 520.0, 110.0], "bbox_xyxy_clipped": [95.0, 170.0, 615.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [115.0, 95.0, 420.0, 49.0], "bbox_xyxy_clipped": [115.0, 95.0, 535.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.029147718303619216}, "Occ": {"reason": null, "status": "ok", "value": 0.0018978997085973876}, "Ove": {"reason": null, "status": "ok", "value": 0.05935334853482991}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "29d611f634479e08e3e507dfeff93f04f7bcdcc3780dbf5adc5d61f63c96284c", "status": "computed"}, "sample_id": "58a4176f95a7a863ddcc6f46", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4176f95a7a863ddcc6f46/pipeline/l0_result.json", "sha256": "290dcc6aff4e59f882341cb62011df9a42f1ba472535c35a45d00df3c78b9b53", "size_bytes": 6141}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4176f95a7a863ddcc6f46/inputs/pfull/asset_manifest.json", "sha256": "5d9f42237bd7626d22058c927249d6aa575c8b80726efbd1237c6488615217f5", "size_bytes": 2890}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4176f95a7a863ddcc6f46/renders/r0_candidate_03.png", "sha256": "d06cc18b0dab45d63896bb6abe98214bade2e0d77d6e9a3a3977b3df606f7efa", "size_bytes": 159239}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4176f95a7a863ddcc6f46/inputs/r3/r3_asset_manifest.json", "sha256": "337f9bc26d44e82deeea2fb001b814c851d09c9b9d5d7a89cd7285acfaf6edf0", "size_bytes": 2615}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d2cca49d3cb630b3827938612006de5c3076b544dab81180315281a9f941bcc4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/inputs/pfull/assets/asset_0000.png", "asset_sha256": "4bf527e685cfbbc8053dc34d6f595ffc495d430fd365722ffcf7d594e998c5f7", "asset_size_bytes": 1783, "kind": "asset", "pfull_asset_sha256": "4bf527e685cfbbc8053dc34d6f595ffc495d430fd365722ffcf7d594e998c5f7", "r3_asset_sha256": "4bf527e685cfbbc8053dc34d6f595ffc495d430fd365722ffcf7d594e998c5f7", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [125.0, 64.0, 315.0, 210.0], "bbox_xyxy_clipped": [125.0, 64.0, 440.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [410.0, 66.0, 284.0, 75.0], "bbox_xyxy_clipped": [410.0, 66.0, 694.0, 141.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [431.0, 153.0, 263.0, 70.0], "bbox_xyxy_clipped": [431.0, 153.0, 694.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [448.0, 236.0, 253.0, 11.0], "bbox_xyxy_clipped": [448.0, 236.0, 701.0, 247.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [690.0, 53.0, 145.0, 74.0], "bbox_xyxy_clipped": [690.0, 53.0, 835.0, 127.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [684.0, 145.0, 167.0, 25.0], "bbox_xyxy_clipped": [684.0, 145.0, 851.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [713.0, 235.0, 126.0, 31.0], "bbox_xyxy_clipped": [713.0, 235.0, 839.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036031779554701344}, "Ove": {"reason": null, "status": "ok", "value": 0.007025035487822051}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "58dbb63195a7a863ddccf77a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/pipeline/l0_result.json", "sha256": "22f6d7d96d51b63a1e0a967f5960ad2f0122d3e14a11870656a2fe31ef5dd5dc", "size_bytes": 7222}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/inputs/pfull/asset_manifest.json", "sha256": "df6886b614e1761a1b24779733a9affaa2a19b89e0e2b13bf04ae6318107d9f9", "size_bytes": 4587}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/renders/r0_candidate_03.png", "sha256": "d2cca49d3cb630b3827938612006de5c3076b544dab81180315281a9f941bcc4", "size_bytes": 145549}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/inputs/r3/r3_asset_manifest.json", "sha256": "3d7aa27b4c5aee242750b40244244a13c0447e72b842b3943ff526b6b6b81fe4", "size_bytes": 4029}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58dbb63195a7a863ddccf77a/inputs/pfull/assets/asset_0000.png", "sha256": "4bf527e685cfbbc8053dc34d6f595ffc495d430fd365722ffcf7d594e998c5f7", "size_bytes": 1783}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7c725d229d0150e71b7d42374eb85c14ea482321cd3572106c661e759960bde8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/inputs/pfull/assets/asset_0000.png", "asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "asset_size_bytes": 1851, "kind": "asset", "pfull_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "r3_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 10, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [34.0, 120.0, 182.0, 184.0], "bbox_xyxy_clipped": [34.0, 120.0, 216.0, 304.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 110.0, 504.0], "bbox_xyxy_clipped": [0.0, 0.0, 110.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [246.0, 86.0, 96.0, 35.0], "bbox_xyxy_clipped": [246.0, 86.0, 342.0, 121.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [248.0, 194.0, 92.0, 13.0], "bbox_xyxy_clipped": [248.0, 194.0, 340.0, 207.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [248.0, 216.0, 92.0, 13.0], "bbox_xyxy_clipped": [248.0, 216.0, 340.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [248.0, 290.0, 92.0, 13.0], "bbox_xyxy_clipped": [248.0, 290.0, 340.0, 303.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [246.0, 135.0, 100.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [246.0, 243.0, 100.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [334.0, 132.0, 9.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [334.0, 240.0, 9.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005559655281141053}, "Ove": {"reason": null, "status": "ok", "value": 0.031098775974950185}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "592fd54295a7a863ddcdb8e3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/pipeline/l0_result.json", "sha256": "4bd71ef724bfed87e152f0355e6a679da0320718426317175e9c1ae157aff833", "size_bytes": 9206}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/inputs/pfull/asset_manifest.json", "sha256": "62f3080ad7d5ac21719e5da118b99dfb9a950ae6776401791ffe6a2e3baff076", "size_bytes": 6052}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/renders/r0_candidate_03.png", "sha256": "7c725d229d0150e71b7d42374eb85c14ea482321cd3572106c661e759960bde8", "size_bytes": 71095}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/inputs/r3/r3_asset_manifest.json", "sha256": "a7bb12ff5e6883584ab757d09c178bf61d92510fcd3b387e189a0aa341174911", "size_bytes": 5286}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592fd54295a7a863ddcdb8e3/inputs/pfull/assets/asset_0000.png", "sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "size_bytes": 1851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5d324be48ae46e38a3b1dbdb2fd90ddde67c84b3696e8b86cc411da4c25559a6", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [254.0, 128.0, 572.0, 201.0], "bbox_xyxy_clipped": [254.0, 128.0, 826.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [388.0, 52.0, 304.0, 119.0], "bbox_xyxy_clipped": [388.0, 52.0, 692.0, 171.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [141.0, 348.0, 798.0, 86.0], "bbox_xyxy_clipped": [141.0, 348.0, 939.0, 434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [176.0, 742.0, 728.0, 638.0], "bbox_xyxy_clipped": [176.0, 742.0, 904.0, 1380.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025919871231592723}, "Ove": {"reason": null, "status": "ok", "value": 0.023668124800834325}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5f4e0040a637ee11e3bec594", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4e0040a637ee11e3bec594/pipeline/l0_result.json", "sha256": "4d364148bb01f04134ea3fe1130e0e2d21c2f362d77aaa00eaad8a4fdfd075ae", "size_bytes": 6268}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4e0040a637ee11e3bec594/inputs/pfull/asset_manifest.json", "sha256": "e3c33bd5afaa750f319811b129c77a0a70efe787639d6c58f970d255d4335882", "size_bytes": 2434}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4e0040a637ee11e3bec594/renders/r0_candidate_01.png", "sha256": "5d324be48ae46e38a3b1dbdb2fd90ddde67c84b3696e8b86cc411da4c25559a6", "size_bytes": 271102}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f4e0040a637ee11e3bec594/inputs/r3/r3_asset_manifest.json", "sha256": "8d70f9d0fe593091b69354eaf0e546f59aab6e2dd2d168e0a2c5f2131319a360", "size_bytes": 2240}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1496539aea250385c3df5447ac8ec97257c6667c8d02a0abd2152c426b3646a8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 24, "valid": 23}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1140.0, 68.0, 520.0, 709.0], "bbox_xyxy_clipped": [1140.0, 68.0, 1660.0, 777.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1325.0, 116.0, 360.0, 625.0], "bbox_xyxy_clipped": [1325.0, 116.0, 1685.0, 741.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1188.0, 56.0, 560.0, 289.0], "bbox_xyxy_clipped": [1188.0, 56.0, 1748.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1270.0, 170.0, 460.0, 460.0], "bbox_xyxy_clipped": [1270.0, 170.0, 1730.0, 630.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1310.0, 0.0, 610.0, 591.0], "bbox_xyxy_clipped": [1310.0, 0.0, 1920.0, 591.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1460.0, 78.0, 300.0, 291.0], "bbox_xyxy_clipped": [1460.0, 78.0, 1760.0, 369.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1415.0, 40.0, 380.0, 442.0], "bbox_xyxy_clipped": [1415.0, 40.0, 1795.0, 482.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1585.0, 290.0, 220.0, 415.0], "bbox_xyxy_clipped": [1585.0, 290.0, 1805.0, 705.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1700.0, 125.0, 42.0, 42.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [140.0, 90.0, 4.0, 896.0], "bbox_xyxy_clipped": [140.0, 90.0, 144.0, 986.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [214.0, 118.0, 1386.0, 21.0], "bbox_xyxy_clipped": [214.0, 118.0, 1600.0, 139.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [248.0, 840.0, 1023.0, 238.0], "bbox_xyxy_clipped": [248.0, 840.0, 1271.0, 1078.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [210.0, 740.0, 1497.0, 55.0], "bbox_xyxy_clipped": [210.0, 740.0, 1707.0, 795.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [265.0, 526.0, 392.0, 228.0], "bbox_xyxy_clipped": [265.0, 526.0, 657.0, 754.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1500.0, 742.0, 220.0, 172.0], "bbox_xyxy_clipped": [1500.0, 742.0, 1720.0, 914.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1450.0, 96.0, 430.0, 89.0], "bbox_xyxy_clipped": [1450.0, 96.0, 1880.0, 185.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [210.0, 246.0, 430.0, 276.0], "bbox_xyxy_clipped": [210.0, 246.0, 640.0, 522.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [214.0, 186.0, 260.0, 35.0], "bbox_xyxy_clipped": [214.0, 186.0, 474.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [214.0, 378.0, 185.0, 50.0], "bbox_xyxy_clipped": [214.0, 378.0, 399.0, 428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [214.0, 570.0, 300.0, 91.0], "bbox_xyxy_clipped": [214.0, 570.0, 514.0, 661.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [214.0, 728.0, 240.0, 45.0], "bbox_xyxy_clipped": [214.0, 728.0, 454.0, 773.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [214.0, 786.0, 260.0, 146.0], "bbox_xyxy_clipped": [214.0, 786.0, 474.0, 932.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [214.0, 925.0, 252.0, 146.0], "bbox_xyxy_clipped": [214.0, 925.0, 466.0, 1071.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [214.0, 978.0, 280.0, 71.0], "bbox_xyxy_clipped": [214.0, 978.0, 494.0, 1049.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005379002294433405}, "Ove": {"reason": null, "status": "ok", "value": 0.4765579897886334}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d4ae4aecf657b21effa9831", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d4ae4aecf657b21effa9831/pipeline/l0_result.json", "sha256": "6fcf3741b6fe1a671feb6f4dac40a7990457c4affaaf6809012763bd29d3b569", "size_bytes": 16989}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d4ae4aecf657b21effa9831/inputs/pfull/asset_manifest.json", "sha256": "cfb471f56f084ee7416d55139e04941020090506bff04072b22ff870236e18c4", "size_bytes": 12712}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "sha256": "1496539aea250385c3df5447ac8ec97257c6667c8d02a0abd2152c426b3646a8", "size_bytes": 636080}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d4ae4aecf657b21effa9831/inputs/r3/r3_asset_manifest.json", "sha256": "9a16ecf891a12bafd59db5c637a1c18b44d453209c56524a32d191a70310eedc", "size_bytes": 11040}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b34e69c2fd71c1f973df378bbddba8883da7959899c0bafab7cadd887c76ff62", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 33, "valid": 33}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [36.0, 82.0, 128.0, 101.0], "bbox_xyxy_clipped": [36.0, 82.0, 164.0, 183.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 199.0, 96.0, 76.0], "bbox_xyxy_clipped": [44.0, 199.0, 140.0, 275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [66.0, 296.0, 104.0, 82.0], "bbox_xyxy_clipped": [66.0, 296.0, 170.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [52.0, 407.0, 100.0, 79.0], "bbox_xyxy_clipped": [52.0, 407.0, 152.0, 486.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [60.0, 520.0, 112.0, 89.0], "bbox_xyxy_clipped": [60.0, 520.0, 172.0, 609.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [186.0, 206.0, 72.0, 72.0], "bbox_xyxy_clipped": [186.0, 206.0, 258.0, 278.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [188.0, 315.0, 72.0, 72.0], "bbox_xyxy_clipped": [188.0, 315.0, 260.0, 387.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [58.0, 630.0, 108.0, 86.0], "bbox_xyxy_clipped": [58.0, 630.0, 166.0, 716.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [190.0, 424.0, 74.0, 74.0], "bbox_xyxy_clipped": [190.0, 424.0, 264.0, 498.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [194.0, 528.0, 70.0, 70.0], "bbox_xyxy_clipped": [194.0, 528.0, 264.0, 598.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [190.0, 632.0, 72.0, 72.0], "bbox_xyxy_clipped": [190.0, 632.0, 262.0, 704.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [194.0, 705.0, 70.0, 70.0], "bbox_xyxy_clipped": [194.0, 705.0, 264.0, 775.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [318.0, 86.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 86.0, 486.0, 140.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [318.0, 164.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 164.0, 486.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [318.0, 242.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 242.0, 486.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [318.0, 320.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 320.0, 486.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [318.0, 398.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 398.0, 486.0, 452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [318.0, 476.0, 168.0, 54.0], "bbox_xyxy_clipped": [318.0, 476.0, 486.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [560.0, 52.0, 320.0, 49.0], "bbox_xyxy_clipped": [560.0, 52.0, 880.0, 101.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [580.0, 136.0, 110.0, 18.0], "bbox_xyxy_clipped": [580.0, 136.0, 690.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [744.0, 128.0, 116.0, 20.0], "bbox_xyxy_clipped": [744.0, 128.0, 860.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [580.0, 236.0, 66.0, 18.0], "bbox_xyxy_clipped": [580.0, 236.0, 646.0, 254.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [744.0, 228.0, 100.0, 20.0], "bbox_xyxy_clipped": [744.0, 228.0, 844.0, 248.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [580.0, 334.0, 66.0, 17.0], "bbox_xyxy_clipped": [580.0, 334.0, 646.0, 351.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [744.0, 326.0, 118.0, 20.0], "bbox_xyxy_clipped": [744.0, 326.0, 862.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [580.0, 428.0, 78.0, 20.0], "bbox_xyxy_clipped": [580.0, 428.0, 658.0, 448.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [744.0, 420.0, 106.0, 21.0], "bbox_xyxy_clipped": [744.0, 420.0, 850.0, 441.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [580.0, 522.0, 66.0, 18.0], "bbox_xyxy_clipped": [580.0, 522.0, 646.0, 540.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0028", "bbox_lwh_raw": [744.0, 514.0, 106.0, 22.0], "bbox_xyxy_clipped": [744.0, 514.0, 850.0, 536.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0029", "bbox_lwh_raw": [580.0, 624.0, 130.0, 17.0], "bbox_xyxy_clipped": [580.0, 624.0, 710.0, 641.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0032", "bbox_lwh_raw": [744.0, 614.0, 100.0, 21.0], "bbox_xyxy_clipped": [744.0, 614.0, 844.0, 635.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0030", "bbox_lwh_raw": [570.0, 686.0, 320.0, 29.0], "bbox_xyxy_clipped": [570.0, 686.0, 890.0, 715.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0031", "bbox_lwh_raw": [734.0, 740.0, 140.0, 15.0], "bbox_xyxy_clipped": [734.0, 740.0, 874.0, 755.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003578784906681867}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5e8f0039499b85dcc77d42f6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8f0039499b85dcc77d42f6/pipeline/l0_result.json", "sha256": "6488424bc7883fb49f4a60a44eea100435189452afbd54f0cce4245ce31f5814", "size_bytes": 23246}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8f0039499b85dcc77d42f6/inputs/pfull/asset_manifest.json", "sha256": "22980e49add59b258eb81ef9ecee3407834f3bdd31cf221096fc6afce8f0ffac", "size_bytes": 17394}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8f0039499b85dcc77d42f6/renders/r0_candidate_02.png", "sha256": "b34e69c2fd71c1f973df378bbddba8883da7959899c0bafab7cadd887c76ff62", "size_bytes": 51842}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8f0039499b85dcc77d42f6/inputs/r3/r3_asset_manifest.json", "sha256": "daab5fb1e1667077211452e17419b68776460ba270038470247964ee86de74b9", "size_bytes": 15250}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d00acc0a750794fc09e8e7560fc75bb09f2fed24f0a6efa5045d34754d88aea4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc6e5f6b16db1a64789c64daa557ba7ad0250c37cece34bf827354789a980649", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 13, "valid": 10}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [50.0, 12.0, 71.0, 48.0], "bbox_xyxy_clipped": [50.0, 12.0, 121.0, 60.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [168.0, 18.0, 405.0, 107.0], "bbox_xyxy_clipped": [168.0, 18.0, 573.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [286.0, 22.0, 118.0, 21.0], "bbox_xyxy_clipped": [286.0, 22.0, 404.0, 43.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [410.0, 22.0, 104.0, 20.0], "bbox_xyxy_clipped": [410.0, 22.0, 514.0, 42.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [520.0, 24.0, 54.0, 26.0], "bbox_xyxy_clipped": [520.0, 24.0, 574.0, 50.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [286.0, 48.0, 194.0, 43.0], "bbox_xyxy_clipped": [286.0, 48.0, 480.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [592.0, 19.0, 126.0, 1.0], "bbox_xyxy_clipped": [592.0, 19.0, 718.0, 20.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [593.0, 41.0, 1.0, 71.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [248.0, 96.0, 1.0, 71.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [566.0, 96.0, 25.0, 71.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [231.0, 44.0, 2.0, 46.0], "bbox_xyxy_clipped": [231.0, 44.0, 233.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [222.0, 61.0, 42.0, 40.0], "bbox_xyxy_clipped": [222.0, 61.0, 264.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [230.0, 70.0, 28.0, 24.0], "bbox_xyxy_clipped": [230.0, 70.0, 258.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007692577669847857}, "Ove": {"reason": null, "status": "ok", "value": 0.11185327143212949}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f0d8e59a4c4d0091ee540d43a9e78c9993ad8a59fcc519bd0d92fbcfabca8038", "status": "computed"}, "sample_id": "5b856b601cc8aa54294702eb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b856b601cc8aa54294702eb/pipeline/l0_result.json", "sha256": "080124ad7fe6aca5550835f5cf5db6359b5eb7bb8f723449687cd3904fbb9e94", "size_bytes": 11958}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b856b601cc8aa54294702eb/inputs/pfull/asset_manifest.json", "sha256": "998c6f045c1f055571fa217c9bee93d8817be1428c6681bbadbfbd7ac60bae7c", "size_bytes": 6970}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b856b601cc8aa54294702eb/renders/r0_candidate_03.png", "sha256": "d00acc0a750794fc09e8e7560fc75bb09f2fed24f0a6efa5045d34754d88aea4", "size_bytes": 23288}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b856b601cc8aa54294702eb/inputs/r3/r3_asset_manifest.json", "sha256": "89b2cb074d17c354fc27b589773c5b28fb7bf9e36f39490311951ba005797568", "size_bytes": 6092}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ccc3d1e4c16998a7e7414718935ac006cf1214dfeae9e90ce74894d8f2aa60dc", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [515.0, 165.0, 456.0, 345.0], "bbox_xyxy_clipped": [515.0, 165.0, 971.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [884.0, 237.0, 98.0, 219.0], "bbox_xyxy_clipped": [884.0, 237.0, 982.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [844.0, 312.0, 74.0, 203.0], "bbox_xyxy_clipped": [844.0, 312.0, 918.0, 515.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [794.0, 385.0, 60.0, 174.0], "bbox_xyxy_clipped": [794.0, 385.0, 854.0, 559.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 255.0, 292.0, 53.0], "bbox_xyxy_clipped": [92.0, 255.0, 384.0, 308.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [96.0, 320.0, 265.0, 241.0], "bbox_xyxy_clipped": [96.0, 320.0, 361.0, 561.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.006794702393448284}, "Occ": {"reason": null, "status": "ok", "value": 0.0028690616291414343}, "Ove": {"reason": null, "status": "ok", "value": 0.07796629674989632}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5aba3fb6f07aee69771b82ba", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aba3fb6f07aee69771b82ba/pipeline/l0_result.json", "sha256": "5dd91d0af3feb23e706142228aeec501737f42adbf12f5f8859ce7042690e55b", "size_bytes": 7211}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aba3fb6f07aee69771b82ba/inputs/pfull/asset_manifest.json", "sha256": "8740078665ce3bc1cdf66b7583912efc695b2bcc1017581fb8b2517fd9af06af", "size_bytes": 3412}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aba3fb6f07aee69771b82ba/renders/r0_candidate_02.png", "sha256": "ccc3d1e4c16998a7e7414718935ac006cf1214dfeae9e90ce74894d8f2aa60dc", "size_bytes": 149054}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aba3fb6f07aee69771b82ba/inputs/r3/r3_asset_manifest.json", "sha256": "230560258cba14ee7af877f005f732f798b6711d34d579c33597a9dc23534362", "size_bytes": 3070}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7901731aa113e108b2f58b46561d168b33b1b51adb87156054f803c339cb9aa8", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 74.0, 500.0, 265.0], "bbox_xyxy_clipped": [44.0, 74.0, 544.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [70.0, 135.0, 320.0, 131.0], "bbox_xyxy_clipped": [70.0, 135.0, 390.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [96.0, 270.0, 300.0, 79.0], "bbox_xyxy_clipped": [96.0, 270.0, 396.0, 349.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [48.0, 248.0, 110.0, 188.0], "bbox_xyxy_clipped": [48.0, 248.0, 158.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [319.0, 289.0, 132.0, 223.0], "bbox_xyxy_clipped": [319.0, 289.0, 451.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [116.0, 337.0, 418.0, 60.0], "bbox_xyxy_clipped": [116.0, 337.0, 534.0, 397.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [165.0, 322.0, 132.0, 146.0], "bbox_xyxy_clipped": [165.0, 322.0, 297.0, 468.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [578.0, 46.0, 576.0, 384.0], "bbox_xyxy_clipped": [578.0, 46.0, 1154.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0028965035902092815}, "Occ": {"reason": null, "status": "ok", "value": 0.0024328530001640437}, "Ove": {"reason": null, "status": "ok", "value": 0.18214892258167276}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5fc4a73aa637ee11e335eb3e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fc4a73aa637ee11e335eb3e/pipeline/l0_result.json", "sha256": "740178379dc400a70d3ab54767a95b15b67f084e3d421a0e77e1326fe39e59b1", "size_bytes": 8067}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fc4a73aa637ee11e335eb3e/inputs/pfull/asset_manifest.json", "sha256": "893e03b6aa8cb54b1bae038581381ce764c9bae94eccd609fd57e48a4e176bf4", "size_bytes": 4382}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fc4a73aa637ee11e335eb3e/renders/r0_candidate_02.png", "sha256": "7901731aa113e108b2f58b46561d168b33b1b51adb87156054f803c339cb9aa8", "size_bytes": 408316}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fc4a73aa637ee11e335eb3e/inputs/r3/r3_asset_manifest.json", "sha256": "2b71a4317d94b7cbf110ca25ce0468a1fdd790b045e24de14bb39034f385db5d", "size_bytes": 3879}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9a917e5f87b610669d61cadb6c224d1e992090e002ac1a9dfdaea5d03e882f43", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 10, "valid": 9}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [72.0, 86.0, 420.0, 81.0], "bbox_xyxy_clipped": [72.0, 86.0, 492.0, 167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [70.0, 152.0, 390.0, 139.0], "bbox_xyxy_clipped": [70.0, 152.0, 460.0, 291.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [74.0, 288.0, 340.0, 61.0], "bbox_xyxy_clipped": [74.0, 288.0, 414.0, 349.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [72.0, 342.0, 240.0, 30.0], "bbox_xyxy_clipped": [72.0, 342.0, 312.0, 372.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [74.0, 388.0, 240.0, 4.0], "bbox_xyxy_clipped": [74.0, 388.0, 314.0, 392.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [74.0, 404.0, 263.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [302.0, 322.0, 121.0, 100.0], "bbox_xyxy_clipped": [302.0, 322.0, 423.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [418.0, 336.0, 121.0, 100.0], "bbox_xyxy_clipped": [418.0, 336.0, 539.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [766.0, 430.0, 184.0, 222.0], "bbox_xyxy_clipped": [766.0, 430.0, 950.0, 652.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [566.0, 352.0, 380.0, 253.0], "bbox_xyxy_clipped": [566.0, 352.0, 946.0, 605.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0022388316123663835}, "Ove": {"reason": null, "status": "ok", "value": 0.06504785005463781}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5b407f331eb1c99e2a9c842a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b407f331eb1c99e2a9c842a/pipeline/l0_result.json", "sha256": "453516f81b77f3e5383b9ea73bf2da0d516935c1a6dc5f81864fc4199016f159", "size_bytes": 8760}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b407f331eb1c99e2a9c842a/inputs/pfull/asset_manifest.json", "sha256": "0f44d0aba64e80f4c5fdc0719a8909777ecab997364a41dedebd75f1484974c7", "size_bytes": 5439}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b407f331eb1c99e2a9c842a/renders/r0_candidate_03.png", "sha256": "9a917e5f87b610669d61cadb6c224d1e992090e002ac1a9dfdaea5d03e882f43", "size_bytes": 206707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b407f331eb1c99e2a9c842a/inputs/r3/r3_asset_manifest.json", "sha256": "a1de669759fb5ef4ab36870bdbe230b7775158762f6193270a5f99c4929b6492", "size_bytes": 4747}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3be95cb669e6852fde1494f59c834707bc0bc6f6d7a9bffdd2f0519f24b093f8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "e73c9773db43b649f5d9eaa5d87991059c25ae45a93fbc656c7d044cb8cab25d", "canvas": {"height": 216, "width": 576}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 9, "valid": 8}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 30.0, 135.0, 52.0], "bbox_xyxy_clipped": [28.0, 30.0, 163.0, 82.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [30.0, 88.0, 98.0, 43.0], "bbox_xyxy_clipped": [30.0, 88.0, 128.0, 131.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [172.0, 30.0, 4.0, 168.0], "bbox_xyxy_clipped": [172.0, 30.0, 176.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [172.0, 198.0, 4.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 132.0, 170.0, 20.0], "bbox_xyxy_clipped": [28.0, 132.0, 198.0, 152.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [28.0, 158.0, 150.0, 15.0], "bbox_xyxy_clipped": [28.0, 158.0, 178.0, 173.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [28.0, 178.0, 112.0, 34.0], "bbox_xyxy_clipped": [28.0, 178.0, 140.0, 212.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [236.0, 28.0, 260.0, 128.0], "bbox_xyxy_clipped": [236.0, 28.0, 496.0, 156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [285.0, 20.0, 201.0, 167.0], "bbox_xyxy_clipped": [285.0, 20.0, 486.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004445947517037799}, "Ove": {"reason": null, "status": "ok", "value": 0.08333757386819099}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b6452fb20019ded6471c9673c4f37e2a12857db148cc16408cd3a03fd0d0e838", "status": "computed"}, "sample_id": "5f50b4f1a637ee11e35331dc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f50b4f1a637ee11e35331dc/pipeline/l0_result.json", "sha256": "1cd53309265a9774ac86d506d5d52a029c17723117b9bce43afbcbfec5f83be4", "size_bytes": 9503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f50b4f1a637ee11e35331dc/inputs/pfull/asset_manifest.json", "sha256": "db866ba78ba988d80cf0ce5869ac23d382c8ce8335fe64ba4d0dba09282f8cd3", "size_bytes": 5009}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f50b4f1a637ee11e35331dc/renders/r0_candidate_03.png", "sha256": "3be95cb669e6852fde1494f59c834707bc0bc6f6d7a9bffdd2f0519f24b093f8", "size_bytes": 68664}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f50b4f1a637ee11e35331dc/inputs/r3/r3_asset_manifest.json", "sha256": "b69e90a5622e2e461243b1b509d5c496d0b3482f8b3d0c8eb79d6121476d33ee", "size_bytes": 4562}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3a8c1e5bc8e9918a9f9e5e8f532e0afaa2a2304624b057f5a16e4900000269b1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/inputs/pfull/assets/asset_0000.png", "asset_sha256": "77462e250ac78cef2e846cbfa01355c5b4131a8fef0c2c7a70105fa316730386", "asset_size_bytes": 1856, "kind": "asset", "pfull_asset_sha256": "77462e250ac78cef2e846cbfa01355c5b4131a8fef0c2c7a70105fa316730386", "r3_asset_sha256": "77462e250ac78cef2e846cbfa01355c5b4131a8fef0c2c7a70105fa316730386", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "c7a3e50bab7b8009ff3909ab280ca50383dd0e3da93e95fd9d53e5a914baadda", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 13, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [16.0, 18.0, 112.0, 118.0], "bbox_xyxy_clipped": [16.0, 18.0, 128.0, 136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [38.0, 26.0, 58.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 46.0, 56.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [72.0, 78.0, 34.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [18.0, 92.0, 42.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [206.0, 44.0, 109.0, 18.0], "bbox_xyxy_clipped": [206.0, 44.0, 315.0, 62.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [168.0, 67.0, 160.0, 119.0], "bbox_xyxy_clipped": [168.0, 67.0, 328.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [220.0, 150.0, 91.0, 14.0], "bbox_xyxy_clipped": [220.0, 150.0, 311.0, 164.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [241.0, 214.0, 73.0, 14.0], "bbox_xyxy_clipped": [241.0, 214.0, 314.0, 228.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [202.0, 240.0, 138.0, 20.0], "bbox_xyxy_clipped": [202.0, 240.0, 340.0, 260.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [186.0, 314.0, 154.0, 17.0], "bbox_xyxy_clipped": [186.0, 314.0, 340.0, 331.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [188.0, 350.0, 142.0, 11.0], "bbox_xyxy_clipped": [188.0, 350.0, 330.0, 361.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [188.0, 392.0, 152.0, 12.0], "bbox_xyxy_clipped": [188.0, 392.0, 340.0, 404.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 6.727515837082309e-07}, "Ove": {"reason": null, "status": "ok", "value": 0.007434640522875817}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "3e446b62813521e97addc3ec6fe82b318a53021c5a3b70b65d9169e1e5c9ad4d", "status": "computed"}, "sample_id": "5bf823e88caf671e1c07e8f0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/pipeline/l0_result.json", "sha256": "b877ba7b320bdc39cb6b97d95c87373254185ba2f9b7abd4cfe29baec62960d3", "size_bytes": 13144}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/inputs/pfull/asset_manifest.json", "sha256": "fa3dbec496bac1568aa1df4fb37f5613494e1e6aa9138c5f1fe1398758469c2d", "size_bytes": 7802}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/renders/r0_candidate_01.png", "sha256": "3a8c1e5bc8e9918a9f9e5e8f532e0afaa2a2304624b057f5a16e4900000269b1", "size_bytes": 47928}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/inputs/r3/r3_asset_manifest.json", "sha256": "0b4858bde86337887697ae41b1f12ac36176113165e62a6ae82f43b59aae8435", "size_bytes": 6998}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bf823e88caf671e1c07e8f0/inputs/pfull/assets/asset_0000.png", "sha256": "77462e250ac78cef2e846cbfa01355c5b4131a8fef0c2c7a70105fa316730386", "size_bytes": 1856}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "83d98e998bf868bda10165f7da4898e9ffc3231327b642b67852485e81c78e83", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "73c2214a7855001b50f78c27b7ea689d2a6dd541c904527d838054010065e173", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [24.0, 18.0, 145.0, 15.0], "bbox_xyxy_clipped": [24.0, 18.0, 169.0, 33.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 38.0, 36.0, 36.0], "bbox_xyxy_clipped": [24.0, 38.0, 60.0, 74.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [24.0, 70.0, 188.0, 68.0], "bbox_xyxy_clipped": [24.0, 70.0, 212.0, 138.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [24.0, 146.0, 130.0, 58.0], "bbox_xyxy_clipped": [24.0, 146.0, 154.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [205.0, 154.0, 131.0, 124.0], "bbox_xyxy_clipped": [205.0, 154.0, 336.0, 278.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [24.0, 246.0, 162.0, 16.0], "bbox_xyxy_clipped": [24.0, 246.0, 186.0, 262.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [24.0, 264.0, 170.0, 15.0], "bbox_xyxy_clipped": [24.0, 264.0, 194.0, 279.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006067455864414259}, "Ove": {"reason": null, "status": "ok", "value": 0.0014761358044940135}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "365dc3130b069b074b35453485be8e85b9c90afb9e99b620cfcc8c6d0b0fc112", "status": "computed"}, "sample_id": "5947c48595a7a863ddcddb2e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5947c48595a7a863ddcddb2e/pipeline/l0_result.json", "sha256": "9ca2c5f25ecc596cad192ce90ea249d42db473674cc16dbe0c672e8ae4234beb", "size_bytes": 7070}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5947c48595a7a863ddcddb2e/inputs/pfull/asset_manifest.json", "sha256": "675092d86df5c58fb0fbe967f73552ee8be6ee903b93854d0fea245f68629a14", "size_bytes": 4075}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5947c48595a7a863ddcddb2e/renders/r0_candidate_03.png", "sha256": "83d98e998bf868bda10165f7da4898e9ffc3231327b642b67852485e81c78e83", "size_bytes": 61991}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5947c48595a7a863ddcddb2e/inputs/r3/r3_asset_manifest.json", "sha256": "81df1cbfe84b9ec56eb7fd11c60ecb6bbcb2b103d9bc33937bebd1b23ee1f3f0", "size_bytes": 3788}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7688ff00aefbb0c0e6b17d78a02704e56e83a4e8e45712fc29fce08252bf767a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "asset_size_bytes": 1168, "kind": "asset", "pfull_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "r3_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e7368a74623399c74381a081a94a9cb6279b6c6fc41eff773942bc635e404d67", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [24.0, 18.0, 371.0, 124.0], "bbox_xyxy_clipped": [24.0, 18.0, 395.0, 142.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 22.0, 335.0, 238.0], "bbox_xyxy_clipped": [42.0, 22.0, 377.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [61.0, 42.0, 298.0, 183.0], "bbox_xyxy_clipped": [61.0, 42.0, 359.0, 225.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [63.0, 92.0, 183.0, 93.0], "bbox_xyxy_clipped": [63.0, 92.0, 246.0, 185.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [168.0, 132.0, 119.0, 51.0], "bbox_xyxy_clipped": [168.0, 132.0, 287.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [118.0, 66.0, 192.0, 24.0], "bbox_xyxy_clipped": [118.0, 66.0, 310.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [278.0, 173.0, 71.0, 55.0], "bbox_xyxy_clipped": [278.0, 173.0, 349.0, 228.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [345.0, 183.0, 28.0, 24.0], "bbox_xyxy_clipped": [345.0, 183.0, 373.0, 207.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 3.699807246650587e-07}, "Ove": {"reason": null, "status": "ok", "value": 0.3866924929299909}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "a6d6867d22b3fe8b10abc02a12d35da4263e227990469800e51c4a89eda79323", "status": "computed"}, "sample_id": "58ab189395a7a863ddcc7847", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/pipeline/l0_result.json", "sha256": "fcfbcab4348adc5af5fa968399d4de46eaaf88ee807f97b6c008d8a316ebdc4a", "size_bytes": 9039}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/asset_manifest.json", "sha256": "ff563649cfce469b8a905a709508b61fe246d57b82569843a7e6af351a8257fc", "size_bytes": 5025}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_02.png", "sha256": "7688ff00aefbb0c0e6b17d78a02704e56e83a4e8e45712fc29fce08252bf767a", "size_bytes": 99661}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/inputs/r3/r3_asset_manifest.json", "sha256": "656c5aa0705076f1908b91cec411d79b5539ec1e610dfa1ce990de9be26c8862", "size_bytes": 4524}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "size_bytes": 1168}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b08277dd52ffc210e684f9e8f8c8b1bb4daab5955fb8ba7cef3e943f4010c251", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0e1096616e9b03a50161584507c7511fa47d0aa511d6a9f9fd3e9873d12c8921", "canvas": {"height": 1728, "width": 1296}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1296.0, 1728.0], "bbox_xyxy_clipped": [0.0, 0.0, 1296.0, 1728.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [84.0, 120.0, 1128.0, 1542.0], "bbox_xyxy_clipped": [84.0, 120.0, 1212.0, 1662.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [470.0, 1124.0, 356.0, 600.0], "bbox_xyxy_clipped": [470.0, 1124.0, 826.0, 1724.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1082.0, 110.0, 146.0, 66.0], "bbox_xyxy_clipped": [1082.0, 110.0, 1228.0, 176.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1018.0, 186.0, 178.0, 80.0], "bbox_xyxy_clipped": [1018.0, 186.0, 1196.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [866.0, 342.0, 84.0, 68.0], "bbox_xyxy_clipped": [866.0, 342.0, 950.0, 410.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [944.0, 398.0, 80.0, 80.0], "bbox_xyxy_clipped": [944.0, 398.0, 1024.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [180.0, 330.0, 185.0, 189.0], "bbox_xyxy_clipped": [180.0, 330.0, 365.0, 519.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [244.0, 500.0, 266.0, 176.0], "bbox_xyxy_clipped": [244.0, 500.0, 510.0, 676.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [330.0, 680.0, 300.0, 172.0], "bbox_xyxy_clipped": [330.0, 680.0, 630.0, 852.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [560.0, 850.0, 560.0, 129.0], "bbox_xyxy_clipped": [560.0, 850.0, 1120.0, 979.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [670.0, 1010.0, 323.0, 127.0], "bbox_xyxy_clipped": [670.0, 1010.0, 993.0, 1137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006259805708101584}, "Ove": {"reason": null, "status": "ok", "value": 0.1093495270578636}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b45151d495426202cbcc69fd71097fa9e1b0cffe9f9925c94e2a055e624762c1", "status": "computed"}, "sample_id": "58ab0a6395a7a863ddcc737e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a6395a7a863ddcc737e/pipeline/l0_result.json", "sha256": "dba3b1d058e4003005ab6f8d0c39d2a6808f85aae930816427b9eff12d5e05bb", "size_bytes": 12379}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a6395a7a863ddcc737e/inputs/pfull/asset_manifest.json", "sha256": "4a970ca549eab1eff86c62353a6a8686373b6ea7f2514365fe305655c9026585", "size_bytes": 6466}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a6395a7a863ddcc737e/renders/r0_candidate_03.png", "sha256": "b08277dd52ffc210e684f9e8f8c8b1bb4daab5955fb8ba7cef3e943f4010c251", "size_bytes": 389882}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a6395a7a863ddcc737e/inputs/r3/r3_asset_manifest.json", "sha256": "55bf2ac646589ecea39896d6dd0873bf28a8a8d017c308822a9cbf3e49e208fa", "size_bytes": 5683}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "287d902ae390dfb335edc59161593eb9180f44b17785adfed503c4ede867e9d0", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [111.0, 39.0, 197.0, 17.0], "bbox_xyxy_clipped": [111.0, 39.0, 308.0, 56.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [123.0, 52.0, 174.0, 39.0], "bbox_xyxy_clipped": [123.0, 52.0, 297.0, 91.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [86.0, 62.0, 247.0, 50.0], "bbox_xyxy_clipped": [86.0, 62.0, 333.0, 112.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [72.0, 73.0, 275.0, 54.0], "bbox_xyxy_clipped": [72.0, 73.0, 347.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [104.0, 147.0, 211.0, 140.0], "bbox_xyxy_clipped": [104.0, 147.0, 315.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [287.0, 161.0, 72.0, 48.0], "bbox_xyxy_clipped": [287.0, 161.0, 359.0, 209.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 175.0, 68.0, 45.0], "bbox_xyxy_clipped": [42.0, 175.0, 110.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0066217062874959}, "Ove": {"reason": null, "status": "ok", "value": 0.17147064573335233}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5cb89d0dadbc796055f8979f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cb89d0dadbc796055f8979f/pipeline/l0_result.json", "sha256": "0a0490296c6f09c80f3bc8ceba0e398629b07628144b880b4daa1c8615415ba5", "size_bytes": 7510}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cb89d0dadbc796055f8979f/inputs/pfull/asset_manifest.json", "sha256": "49e3cc4cde80f3d78aa4a08205a80973654c99f3cc5410dcfc3e261dd13c79d4", "size_bytes": 3937}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cb89d0dadbc796055f8979f/renders/r0_candidate_01.png", "sha256": "287d902ae390dfb335edc59161593eb9180f44b17785adfed503c4ede867e9d0", "size_bytes": 80900}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cb89d0dadbc796055f8979f/inputs/r3/r3_asset_manifest.json", "sha256": "bbcbe88dd48f072f462251e3759be3f13e3d3ef8b751aefeec0844717b469154", "size_bytes": 3475}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "abcfcdfaacbd93acb34d6f1b0f23ef4bc0343059db1a81cdac4e1873aef0867e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [26.0, 15.0, 330.0, 122.0], "bbox_xyxy_clipped": [26.0, 15.0, 356.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 36.0, 325.0, 80.0], "bbox_xyxy_clipped": [58.0, 36.0, 383.0, 116.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [72.0, 25.0, 150.0, 68.0], "bbox_xyxy_clipped": [72.0, 25.0, 222.0, 93.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [118.0, 45.0, 198.0, 29.0], "bbox_xyxy_clipped": [118.0, 45.0, 316.0, 74.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [88.0, 132.0, 262.0, 34.0], "bbox_xyxy_clipped": [88.0, 132.0, 350.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [96.0, 173.0, 150.0, 31.0], "bbox_xyxy_clipped": [96.0, 173.0, 246.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [94.0, 208.0, 174.0, 30.0], "bbox_xyxy_clipped": [94.0, 208.0, 268.0, 238.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [122.0, 244.0, 161.0, 24.0], "bbox_xyxy_clipped": [122.0, 244.0, 283.0, 268.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [431.0, 18.0, 395.0, 263.0], "bbox_xyxy_clipped": [431.0, 18.0, 826.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004144524023517892}, "Ove": {"reason": null, "status": "ok", "value": 0.19430495654172789}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5b8d554818654940f7f6384d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b8d554818654940f7f6384d/pipeline/l0_result.json", "sha256": "fda76f0fc7da471489213cb4fd705ad5f2a6e1a4161eb0003a47afc847933212", "size_bytes": 10333}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b8d554818654940f7f6384d/inputs/pfull/asset_manifest.json", "sha256": "c21a3eaab6792ecdd80e859c1c59d1e4b99b0936947f81bb90b7077b7a14cc9d", "size_bytes": 4979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b8d554818654940f7f6384d/renders/r0_candidate_03.png", "sha256": "abcfcdfaacbd93acb34d6f1b0f23ef4bc0343059db1a81cdac4e1873aef0867e", "size_bytes": 221993}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b8d554818654940f7f6384d/inputs/r3/r3_asset_manifest.json", "sha256": "1c5157f077393f7790a4cc207083f40011f30951f9e80fb497a23542c7d9909e", "size_bytes": 4509}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a40a88f2e135a4cedbdb1816bf3455b4676e80c9744565dd80311366b778df8d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [203.0, 274.0, 157.0, 114.0], "bbox_xyxy_clipped": [203.0, 274.0, 360.0, 388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [33.0, 56.0, 143.0, 66.0], "bbox_xyxy_clipped": [33.0, 56.0, 176.0, 122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [33.0, 102.0, 129.0, 56.0], "bbox_xyxy_clipped": [33.0, 102.0, 162.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 150.0, 82.0, 27.0], "bbox_xyxy_clipped": [34.0, 150.0, 116.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [33.0, 190.0, 109.0, 31.0], "bbox_xyxy_clipped": [33.0, 190.0, 142.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [146.0, 190.0, 94.0, 33.0], "bbox_xyxy_clipped": [146.0, 190.0, 240.0, 223.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [33.0, 243.0, 142.0, 23.0], "bbox_xyxy_clipped": [33.0, 243.0, 175.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [33.0, 277.0, 142.0, 23.0], "bbox_xyxy_clipped": [33.0, 277.0, 175.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [33.0, 310.0, 178.0, 3.0], "bbox_xyxy_clipped": [33.0, 310.0, 211.0, 313.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [33.0, 328.0, 149.0, 18.0], "bbox_xyxy_clipped": [33.0, 328.0, 182.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [33.0, 356.0, 118.0, 51.0], "bbox_xyxy_clipped": [33.0, 356.0, 151.0, 407.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004068253784759818}, "Ove": {"reason": null, "status": "ok", "value": 0.023564967202074915}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5bc0ac6978e1194aa673953f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc0ac6978e1194aa673953f/pipeline/l0_result.json", "sha256": "bcd796f373c71123cd6fcad983130f011fb8ffca78bf8f109e6d494d2020227b", "size_bytes": 9574}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc0ac6978e1194aa673953f/inputs/pfull/asset_manifest.json", "sha256": "4a1cda31cae6477506f56052c1b397d5c7cec4b323da6f833a29c6b0716c2497", "size_bytes": 6033}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc0ac6978e1194aa673953f/renders/r0_candidate_03.png", "sha256": "a40a88f2e135a4cedbdb1816bf3455b4676e80c9744565dd80311366b778df8d", "size_bytes": 35477}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc0ac6978e1194aa673953f/inputs/r3/r3_asset_manifest.json", "sha256": "258f9ca11077fd14ba3ab0f7edf06f020e675c22a479fa84c3e33846c3fb4966", "size_bytes": 5514}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "cd88d4a480aa7cddc0a751cebc9c74130a8b3d447dcd53d9c061b202296d7d40", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [74.0, 104.0, 233.0, 31.0], "bbox_xyxy_clipped": [74.0, 104.0, 307.0, 135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [498.0, 56.0, 250.0, 166.0], "bbox_xyxy_clipped": [498.0, 56.0, 748.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [292.0, 150.0, 235.0, 34.0], "bbox_xyxy_clipped": [292.0, 150.0, 527.0, 184.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [342.0, 93.0, 133.0, 30.0], "bbox_xyxy_clipped": [342.0, 93.0, 475.0, 123.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [344.0, 220.0, 133.0, 30.0], "bbox_xyxy_clipped": [344.0, 220.0, 477.0, 250.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.002553171851475612}, "Occ": {"reason": null, "status": "ok", "value": 0.0017752065902126263}, "Ove": {"reason": null, "status": "ok", "value": 0.0040656440705921166}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5f85a97fa637ee11e360ac15", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f85a97fa637ee11e360ac15/pipeline/l0_result.json", "sha256": "9a90fc001e1f85b4b9338fa1f02e9ca1d1e0675117fecec625c9cd9a976c5678", "size_bytes": 5956}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f85a97fa637ee11e360ac15/inputs/pfull/asset_manifest.json", "sha256": "7c7d0799eff674692fc595ec768137c1ff826f5d41eec3228cb527e98f2a3cf5", "size_bytes": 2889}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f85a97fa637ee11e360ac15/renders/r0_candidate_02.png", "sha256": "cd88d4a480aa7cddc0a751cebc9c74130a8b3d447dcd53d9c061b202296d7d40", "size_bytes": 81927}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f85a97fa637ee11e360ac15/inputs/r3/r3_asset_manifest.json", "sha256": "434a8655b4d5ba8a03fcf6c8d42b68ea77fefa9ed9d8b310a3010dd8a8d82c1b", "size_bytes": 2547}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "905743c1773115113461209b0852da8a8e34d963ace32e9d359837e384b2678c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 8, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [246.0, 184.0, 532.0, 397.0], "bbox_xyxy_clipped": [246.0, 184.0, 778.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [108.0, 250.0, 214.0, 34.0], "bbox_xyxy_clipped": [108.0, 250.0, 322.0, 284.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [108.0, 292.0, 233.0, 48.0], "bbox_xyxy_clipped": [108.0, 292.0, 341.0, 340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [108.0, 410.0, 320.0, 27.0], "bbox_xyxy_clipped": [108.0, 410.0, 428.0, 437.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [110.0, 354.0, 120.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [110.0, 374.0, 168.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [287.0, 348.0, 14.0, 14.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [309.0, 348.0, 14.0, 14.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003480143968705524}, "Ove": {"reason": null, "status": "ok", "value": 0.013941482843272616}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5b2e12d91eb1c99e2a182b41", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b2e12d91eb1c99e2a182b41/pipeline/l0_result.json", "sha256": "e5dc546a4e168db22272515191d5064a246f492d420a96eaec89e778ef41d4e7", "size_bytes": 8681}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b2e12d91eb1c99e2a182b41/inputs/pfull/asset_manifest.json", "sha256": "af10dd7ced526a2ccd1a973c4b3f0697e0b3c415ab116d2b3a6e8dfae5481045", "size_bytes": 4416}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b2e12d91eb1c99e2a182b41/renders/r0_candidate_02.png", "sha256": "905743c1773115113461209b0852da8a8e34d963ace32e9d359837e384b2678c", "size_bytes": 315655}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b2e12d91eb1c99e2a182b41/inputs/r3/r3_asset_manifest.json", "sha256": "1bab4d9790279ea53520cf6c6e8a15d9cf74a5b7b67e7d8215f3f139e09a376d", "size_bytes": 3896}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0b415c1a132dd845c3618f9bd57d0626ac69815a0d368b727c8c2200303bef2d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [132.0, 92.0, 620.0, 349.0], "bbox_xyxy_clipped": [132.0, 92.0, 752.0, 441.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1080.0, 120.0, 430.0, 315.0], "bbox_xyxy_clipped": [1080.0, 120.0, 1510.0, 435.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1410.0, 160.0, 300.0, 290.0], "bbox_xyxy_clipped": [1410.0, 160.0, 1710.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1510.0, 470.0, 250.0, 234.0], "bbox_xyxy_clipped": [1510.0, 470.0, 1760.0, 704.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [120.0, 712.0, 430.0, 49.0], "bbox_xyxy_clipped": [120.0, 712.0, 550.0, 761.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 770.0, 410.0, 49.0], "bbox_xyxy_clipped": [120.0, 770.0, 530.0, 819.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 160.0, 355.0, 110.0], "bbox_xyxy_clipped": [120.0, 160.0, 475.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 272.0, 430.0, 105.0], "bbox_xyxy_clipped": [120.0, 272.0, 550.0, 377.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 830.0, 290.0, 148.0], "bbox_xyxy_clipped": [120.0, 830.0, 410.0, 978.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 400.0, 295.0, 120.0], "bbox_xyxy_clipped": [120.0, 400.0, 415.0, 520.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [560.0, 318.0, 260.0, 136.0], "bbox_xyxy_clipped": [560.0, 318.0, 820.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [145.0, 534.0, 115.0, 126.0], "bbox_xyxy_clipped": [145.0, 534.0, 260.0, 660.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [980.0, 560.0, 360.0, 417.0], "bbox_xyxy_clipped": [980.0, 560.0, 1340.0, 977.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1280.0, 560.0, 320.0, 382.0], "bbox_xyxy_clipped": [1280.0, 560.0, 1600.0, 942.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1470.0, 650.0, 250.0, 246.0], "bbox_xyxy_clipped": [1470.0, 650.0, 1720.0, 896.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1285.0, 265.0, 410.0, 557.0], "bbox_xyxy_clipped": [1285.0, 265.0, 1695.0, 822.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1660.0, 430.0, 220.0, 305.0], "bbox_xyxy_clipped": [1660.0, 430.0, 1880.0, 735.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1135.0, 520.0, 210.0, 299.0], "bbox_xyxy_clipped": [1135.0, 520.0, 1345.0, 819.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1645.0, 820.0, 190.0, 202.0], "bbox_xyxy_clipped": [1645.0, 820.0, 1835.0, 1022.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1455.0, 90.0, 350.0, 257.0], "bbox_xyxy_clipped": [1455.0, 90.0, 1805.0, 347.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [1375.0, 210.0, 430.0, 400.0], "bbox_xyxy_clipped": [1375.0, 210.0, 1805.0, 610.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [120.0, 930.0, 330.0, 42.0], "bbox_xyxy_clipped": [120.0, 930.0, 450.0, 972.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004169445589043546}, "Ove": {"reason": null, "status": "ok", "value": 0.2377273850120207}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5ca5cf0023c829c821fceeaf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ca5cf0023c829c821fceeaf/pipeline/l0_result.json", "sha256": "9445d3b9193e3a58cfd278cb774b1dda1253125fb3831276e00480bf3f976183", "size_bytes": 17411}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ca5cf0023c829c821fceeaf/inputs/pfull/asset_manifest.json", "sha256": "214b71a0af13ae2fa172e9571393599157ffbfb4f80bb278f21e642f876f6010", "size_bytes": 11616}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ca5cf0023c829c821fceeaf/renders/r0_candidate_03.png", "sha256": "0b415c1a132dd845c3618f9bd57d0626ac69815a0d368b727c8c2200303bef2d", "size_bytes": 420383}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ca5cf0023c829c821fceeaf/inputs/r3/r3_asset_manifest.json", "sha256": "696d2efbee13dbc1f5a78362995fc55336461ac80dc73371b31365999027ca01", "size_bytes": 10152}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8f11326e7f6e27fdafd32cc29d393875ec8b5c4fdcaffa9e131f6f79c6076310", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "r3_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f794bb2410b195fc618a2f0295ec93e2218cc742a2a8411135405f1f5a748969", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [200.0, 40.0, 140.0, 180.0], "bbox_xyxy_clipped": [200.0, 40.0, 340.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [22.0, 18.0, 145.0, 28.0], "bbox_xyxy_clipped": [22.0, 18.0, 167.0, 46.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [22.0, 48.0, 150.0, 12.0], "bbox_xyxy_clipped": [22.0, 48.0, 172.0, 60.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [22.0, 112.0, 120.0, 46.0], "bbox_xyxy_clipped": [22.0, 112.0, 142.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [22.0, 164.0, 122.0, 69.0], "bbox_xyxy_clipped": [22.0, 164.0, 144.0, 233.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [22.0, 248.0, 120.0, 77.0], "bbox_xyxy_clipped": [22.0, 248.0, 142.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [22.0, 343.0, 125.0, 45.0], "bbox_xyxy_clipped": [22.0, 343.0, 147.0, 388.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [162.0, 78.0, 34.0, 77.0], "bbox_xyxy_clipped": [162.0, 78.0, 196.0, 155.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [148.0, 162.0, 20.0, 20.0], "bbox_xyxy_clipped": [148.0, 162.0, 168.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [168.0, 150.0, 18.0, 29.0], "bbox_xyxy_clipped": [168.0, 150.0, 186.0, 179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [173.0, 195.0, 29.0, 54.0], "bbox_xyxy_clipped": [173.0, 195.0, 202.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [140.0, 228.0, 28.0, 11.0], "bbox_xyxy_clipped": [140.0, 228.0, 168.0, 239.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [167.0, 244.0, 30.0, 24.0], "bbox_xyxy_clipped": [167.0, 244.0, 197.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [154.0, 282.0, 26.0, 19.0], "bbox_xyxy_clipped": [154.0, 282.0, 180.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [176.0, 314.0, 23.0, 36.0], "bbox_xyxy_clipped": [176.0, 314.0, 199.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [142.0, 366.0, 28.0, 38.0], "bbox_xyxy_clipped": [142.0, 366.0, 170.0, 404.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [178.0, 410.0, 20.0, 37.0], "bbox_xyxy_clipped": [178.0, 410.0, 198.0, 447.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [160.0, 455.0, 20.0, 38.0], "bbox_xyxy_clipped": [160.0, 455.0, 180.0, 493.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [191.0, 474.0, 10.0, 54.0], "bbox_xyxy_clipped": [191.0, 474.0, 201.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 3.824587675711166e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.005568343627407337}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f56c56f66d2b8abbd4d42a81da75b75b6223d5f1de922e99293da8094bdd9ff3", "status": "computed"}, "sample_id": "5888dd7995a7a863ddcc2e86", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/pipeline/l0_result.json", "sha256": "8a0ac3cb9aa7516df116e291856367a66e7d3f2b1e54b65d99c5abfe440c20e8", "size_bytes": 15860}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/asset_manifest.json", "sha256": "b857b56630b576273e0b6f6a6c4440aad50f459150a18612324e89f9d7f2c4b5", "size_bytes": 10696}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_03.png", "sha256": "8f11326e7f6e27fdafd32cc29d393875ec8b5c4fdcaffa9e131f6f79c6076310", "size_bytes": 107618}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/inputs/r3/r3_asset_manifest.json", "sha256": "3188bad2641a733330d196c54edc784ad928b7e2dafc0c2f5626e2281788f80b", "size_bytes": 9269}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "06b233e76d0441ee2dd473d740aa76974a93d3414bc2ae59d5d8a30b0f2fe6ae", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [88.0, 72.0, 414.0, 124.0], "bbox_xyxy_clipped": [88.0, 72.0, 502.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 205.0, 498.0, 105.0], "bbox_xyxy_clipped": [92.0, 205.0, 590.0, 310.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [588.0, 286.0, 392.0, 260.0], "bbox_xyxy_clipped": [588.0, 286.0, 980.0, 546.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [142.0, 372.0, 330.0, 251.0], "bbox_xyxy_clipped": [142.0, 372.0, 472.0, 623.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 730.0, 1080.0, 258.0], "bbox_xyxy_clipped": [0.0, 730.0, 1080.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062465652026266714}, "Ove": {"reason": null, "status": "ok", "value": 0.0810726982180937}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e7a36214b3890eb072fb652", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7a36214b3890eb072fb652/pipeline/l0_result.json", "sha256": "d09395ccc20a20ce832954b3fe2a1e701ffc021bee43bbcb834034f385b63fa1", "size_bytes": 6893}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7a36214b3890eb072fb652/inputs/pfull/asset_manifest.json", "sha256": "f7a8024f4b81c6e51bc53770431dc12f93d99f47c9b435479de4ce5018015abd", "size_bytes": 3412}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7a36214b3890eb072fb652/renders/r0_candidate_02.png", "sha256": "06b233e76d0441ee2dd473d740aa76974a93d3414bc2ae59d5d8a30b0f2fe6ae", "size_bytes": 135785}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e7a36214b3890eb072fb652/inputs/r3/r3_asset_manifest.json", "sha256": "7e6efe2cd9327cf389b99b51410753c6e2b3b0921a9d8e24b894f864b2ed205d", "size_bytes": 3027}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c953a0d0f81d6f33fee8f2518e2ba3110e6ac0c3765d9146375fcaacb0f14412", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ed97cead2e129ac02806460a08230b6b4fed0a6fd41905a37058b686ca1e520c", "canvas": {"height": 200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [376.0, 31.0, 180.0, 111.0], "bbox_xyxy_clipped": [376.0, 31.0, 556.0, 142.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 78.0, 208.0, 73.0], "bbox_xyxy_clipped": [78.0, 78.0, 286.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [64.0, 103.0, 420.0, 22.0], "bbox_xyxy_clipped": [64.0, 103.0, 484.0, 125.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [46.0, 70.0, 90.0, 80.0], "bbox_xyxy_clipped": [46.0, 70.0, 136.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [264.0, 70.0, 90.0, 80.0], "bbox_xyxy_clipped": [264.0, 70.0, 354.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035999968561822968}, "Ove": {"reason": null, "status": "ok", "value": 0.17362404508686596}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "d6cfa40800047f1b410dea86278afd50ed55b99796aa92531e37bbc4a2f8b46a", "status": "computed"}, "sample_id": "592d1dd995a7a863ddcd9b7d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1dd995a7a863ddcd9b7d/pipeline/l0_result.json", "sha256": "4e389b0918fab5300a5b706abaa89b4731785f6f62fb8dc0b79fafcf0f6b6ef7", "size_bytes": 5887}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1dd995a7a863ddcd9b7d/inputs/pfull/asset_manifest.json", "sha256": "ceeb2ef5144e09bb26933710d0ccdf571ef28fd750eb78c5501fcc2bfc6260eb", "size_bytes": 2880}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1dd995a7a863ddcd9b7d/renders/r0_candidate_03.png", "sha256": "c953a0d0f81d6f33fee8f2518e2ba3110e6ac0c3765d9146375fcaacb0f14412", "size_bytes": 45299}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/592d1dd995a7a863ddcd9b7d/inputs/r3/r3_asset_manifest.json", "sha256": "0af42800944342c2500e5b2cdbbf9651f49729eb447f78b0aeeabc7cd32eb2fa", "size_bytes": 2526}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "60f3113753e07ecd27fdcbc2609675b3f0387d59db131da949848d82d9c6f3a2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 19, "valid": 18}, "elements": [{"asset_id": "asset_0017", "bbox_lwh_raw": [48.0, 44.0, 190.0, 27.0], "bbox_xyxy_clipped": [48.0, 44.0, 238.0, 71.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [48.0, 75.0, 247.0, 26.0], "bbox_xyxy_clipped": [48.0, 75.0, 295.0, 101.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [50.0, 111.0, 115.0, 24.0], "bbox_xyxy_clipped": [50.0, 111.0, 165.0, 135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [176.0, 111.0, 62.0, 45.0], "bbox_xyxy_clipped": [176.0, 111.0, 238.0, 156.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [48.0, 170.0, 341.0, 193.0], "bbox_xyxy_clipped": [48.0, 170.0, 389.0, 363.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [48.0, 273.0, 280.0, 95.0], "bbox_xyxy_clipped": [48.0, 273.0, 328.0, 368.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [48.0, 355.0, 345.0, 34.0], "bbox_xyxy_clipped": [48.0, 355.0, 393.0, 389.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [674.0, 132.0, 280.0, 195.0], "bbox_xyxy_clipped": [674.0, 132.0, 954.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [729.0, 92.0, 220.0, 151.0], "bbox_xyxy_clipped": [729.0, 92.0, 949.0, 243.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [640.0, 214.0, 320.0, 223.0], "bbox_xyxy_clipped": [640.0, 214.0, 960.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [48.0, 438.0, 258.0, 58.0], "bbox_xyxy_clipped": [48.0, 438.0, 306.0, 496.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [48.0, 476.0, 250.0, 20.0], "bbox_xyxy_clipped": [48.0, 476.0, 298.0, 496.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [48.0, 496.0, 184.0, 25.0], "bbox_xyxy_clipped": [48.0, 496.0, 232.0, 512.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [292.0, 64.0, 309.0, 16.0], "bbox_xyxy_clipped": [292.0, 64.0, 601.0, 80.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [292.0, 92.0, 3.0, 512.0], "bbox_xyxy_clipped": [292.0, 92.0, 295.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [309.0, 96.0, 688.0, 2.0], "bbox_xyxy_clipped": [309.0, 96.0, 997.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [310.0, 402.0, 112.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [384.0, 118.0, 13.0, 500.0], "bbox_xyxy_clipped": [384.0, 118.0, 397.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [396.0, 142.0, 13.0, 500.0], "bbox_xyxy_clipped": [396.0, 142.0, 409.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004481590097548183}, "Ove": {"reason": null, "status": "ok", "value": 0.09845772144432226}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "59527b2495a7a863ddcdf4c5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59527b2495a7a863ddcdf4c5/pipeline/l0_result.json", "sha256": "c1d16bdb40f428d3074517d62dcd662ec4ba38f41acbe64f7f1dd3cc77439406", "size_bytes": 16365}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59527b2495a7a863ddcdf4c5/inputs/pfull/asset_manifest.json", "sha256": "4027c6bbe40529dc0ab80f4e20167806f96c6c0688791643b3dd726d3ceb7b0b", "size_bytes": 10290}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59527b2495a7a863ddcdf4c5/renders/r0_candidate_03.png", "sha256": "60f3113753e07ecd27fdcbc2609675b3f0387d59db131da949848d82d9c6f3a2", "size_bytes": 260801}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/59527b2495a7a863ddcdf4c5/inputs/r3/r3_asset_manifest.json", "sha256": "9ebedfa6dad5eae83cbdf4708886667ef0f76f399fc990d9a30f55dd80ac4e65", "size_bytes": 9219}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "09ef2918c265df1e882f6971a343a34454d83e9724775362383f1d211e8d1146", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9df05b5cb98bccfccb104ff7eb2bb2a9867f92e1762547826ee6babeb6f1b35b", "canvas": {"height": 400, "width": 1590}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [120.0, 62.0, 409.0, 38.0], "bbox_xyxy_clipped": [120.0, 62.0, 529.0, 100.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [122.0, 112.0, 320.0, 34.0], "bbox_xyxy_clipped": [122.0, 112.0, 442.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [535.0, 68.0, 96.0, 80.0], "bbox_xyxy_clipped": [535.0, 68.0, 631.0, 148.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [112.0, 196.0, 312.0, 42.0], "bbox_xyxy_clipped": [112.0, 196.0, 424.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [84.0, 248.0, 179.0, 240.0], "bbox_xyxy_clipped": [84.0, 248.0, 263.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [261.0, 236.0, 164.0, 180.0], "bbox_xyxy_clipped": [261.0, 236.0, 425.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [121.0, 292.0, 298.0, 43.0], "bbox_xyxy_clipped": [121.0, 292.0, 419.0, 335.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [138.0, 301.0, 266.0, 24.0], "bbox_xyxy_clipped": [138.0, 301.0, 404.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [98.0, 302.0, 44.0, 43.0], "bbox_xyxy_clipped": [98.0, 302.0, 142.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [980.0, 112.0, 525.0, 350.0], "bbox_xyxy_clipped": [980.0, 112.0, 1505.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006282202175577159}, "Ove": {"reason": null, "status": "ok", "value": 0.12417911452993009}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "275a510d10a423d2d1dd250d3c1a5b25d117a54ff159197be7cc4471e7c72f59", "status": "computed"}, "sample_id": "5e68e281b04a3d1f19b3ab85", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e68e281b04a3d1f19b3ab85/pipeline/l0_result.json", "sha256": "7369da59775d667217d459709763704e01dbaf6441848013fa0c68b0442a5673", "size_bytes": 9101}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e68e281b04a3d1f19b3ab85/inputs/pfull/asset_manifest.json", "sha256": "4920c2b93aa105752ad7071ffd97ca8224e66745c3e9d190664ecb8fbc9b72f3", "size_bytes": 5530}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e68e281b04a3d1f19b3ab85/renders/r0_candidate_03.png", "sha256": "09ef2918c265df1e882f6971a343a34454d83e9724775362383f1d211e8d1146", "size_bytes": 178195}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e68e281b04a3d1f19b3ab85/inputs/r3/r3_asset_manifest.json", "sha256": "bbae5d7b0b83c2f9cfa7ca37ea4c7310f34803beb2adbdc1f5a6ccea4474bed1", "size_bytes": 4841}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4770812ac215610e55a69fad6e59819b6d0d5f1efd93e6a2fa41d8c34f980ec2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 28, "valid": 28}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 620.0, 820.0, 547.0], "bbox_xyxy_clipped": [120.0, 620.0, 940.0, 1167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [980.0, 650.0, 760.0, 1106.0], "bbox_xyxy_clipped": [980.0, 650.0, 1740.0, 1756.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1700.0, 560.0, 760.0, 949.0], "bbox_xyxy_clipped": [1700.0, 560.0, 2460.0, 1509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [2540.0, 610.0, 360.0, 1132.0], "bbox_xyxy_clipped": [2540.0, 610.0, 2900.0, 1742.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [230.0, 1320.0, 520.0, 1416.0], "bbox_xyxy_clipped": [230.0, 1320.0, 750.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1960.0, 860.0, 760.0, 1106.0], "bbox_xyxy_clipped": [1960.0, 860.0, 2720.0, 1966.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [840.0, 260.0, 890.0, 595.0], "bbox_xyxy_clipped": [840.0, 260.0, 1730.0, 855.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [200.0, 420.0, 2600.0, 303.0], "bbox_xyxy_clipped": [200.0, 420.0, 2800.0, 723.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [320.0, 450.0, 980.0, 114.0], "bbox_xyxy_clipped": [320.0, 450.0, 1300.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1420.0, 520.0, 640.0, 179.0], "bbox_xyxy_clipped": [1420.0, 520.0, 2060.0, 699.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1340.0, 820.0, 1040.0, 698.0], "bbox_xyxy_clipped": [1340.0, 820.0, 2380.0, 1518.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [2200.0, 1180.0, 560.0, 379.0], "bbox_xyxy_clipped": [2200.0, 1180.0, 2760.0, 1559.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [2520.0, 1120.0, 340.0, 257.0], "bbox_xyxy_clipped": [2520.0, 1120.0, 2860.0, 1377.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1860.0, 290.0, 720.0, 543.0], "bbox_xyxy_clipped": [1860.0, 290.0, 2580.0, 833.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [40.0, 1480.0, 920.0, 628.0], "bbox_xyxy_clipped": [40.0, 1480.0, 960.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [2320.0, 1540.0, 420.0, 218.0], "bbox_xyxy_clipped": [2320.0, 1540.0, 2740.0, 1758.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [2380.0, 1540.0, 380.0, 197.0], "bbox_xyxy_clipped": [2380.0, 1540.0, 2760.0, 1737.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [2440.0, 1540.0, 340.0, 176.0], "bbox_xyxy_clipped": [2440.0, 1540.0, 2780.0, 1716.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [2490.0, 1540.0, 300.0, 156.0], "bbox_xyxy_clipped": [2490.0, 1540.0, 2790.0, 1696.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [360.0, 1160.0, 520.0, 183.0], "bbox_xyxy_clipped": [360.0, 1160.0, 880.0, 1343.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [1540.0, 1540.0, 820.0, 1193.0], "bbox_xyxy_clipped": [1540.0, 1540.0, 2360.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [1120.0, 920.0, 760.0, 760.0], "bbox_xyxy_clipped": [1120.0, 920.0, 1880.0, 1680.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [2020.0, 1600.0, 420.0, 331.0], "bbox_xyxy_clipped": [2020.0, 1600.0, 2440.0, 1931.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [560.0, 980.0, 980.0, 274.0], "bbox_xyxy_clipped": [560.0, 980.0, 1540.0, 1254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [210.0, 120.0, 940.0, 314.0], "bbox_xyxy_clipped": [210.0, 120.0, 1150.0, 434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [960.0, 170.0, 1080.0, 550.0], "bbox_xyxy_clipped": [960.0, 170.0, 2040.0, 720.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [170.0, 70.0, 1180.0, 321.0], "bbox_xyxy_clipped": [170.0, 70.0, 1350.0, 391.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [980.0, 760.0, 1320.0, 309.0], "bbox_xyxy_clipped": [980.0, 760.0, 2300.0, 1069.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005436483952964386}, "Ove": {"reason": null, "status": "ok", "value": 0.5173366762445977}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f718be2a637ee11e33eb689", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f718be2a637ee11e33eb689/pipeline/l0_result.json", "sha256": "28b4553667bf9d91fb4b476104fa79d4de7c7e96ecc50e02e3fd14484b4f514d", "size_bytes": 19214}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f718be2a637ee11e33eb689/inputs/pfull/asset_manifest.json", "sha256": "d65ec9bad9daf396b9d6991d255493fe0646c1be35659792964871c10568664e", "size_bytes": 14752}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f718be2a637ee11e33eb689/renders/r0_candidate_02.png", "sha256": "4770812ac215610e55a69fad6e59819b6d0d5f1efd93e6a2fa41d8c34f980ec2", "size_bytes": 2439506}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f718be2a637ee11e33eb689/inputs/r3/r3_asset_manifest.json", "sha256": "601d492a4969e6169a9378163936ce96540f6ec035789b9829805f51546c2753", "size_bytes": 12550}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0d20bb3d748006a3ed34ca3028214f57cc4367c869c9558bc3faf33cfe823414", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 21, "valid": 21}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [7.0, 0.0, 191.0, 268.0], "bbox_xyxy_clipped": [7.0, 0.0, 198.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [250.0, 12.0, 94.0, 133.0], "bbox_xyxy_clipped": [250.0, 12.0, 344.0, 145.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [259.0, 155.0, 86.0, 122.0], "bbox_xyxy_clipped": [259.0, 155.0, 345.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [224.0, 58.0, 120.0, 2.0], "bbox_xyxy_clipped": [224.0, 58.0, 344.0, 60.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [225.0, 194.0, 118.0, 2.0], "bbox_xyxy_clipped": [225.0, 194.0, 343.0, 196.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [224.0, 289.0, 120.0, 2.0], "bbox_xyxy_clipped": [224.0, 289.0, 344.0, 291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [242.0, 40.0, 104.0, 8.0], "bbox_xyxy_clipped": [242.0, 40.0, 346.0, 48.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [244.0, 72.0, 6.0, 78.0], "bbox_xyxy_clipped": [244.0, 72.0, 250.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [251.0, 88.0, 6.0, 78.0], "bbox_xyxy_clipped": [251.0, 88.0, 257.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [259.0, 106.0, 104.0, 8.0], "bbox_xyxy_clipped": [259.0, 106.0, 360.0, 114.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [230.0, 20.0, 106.0, 31.0], "bbox_xyxy_clipped": [230.0, 20.0, 336.0, 51.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [226.0, 56.0, 125.0, 14.0], "bbox_xyxy_clipped": [226.0, 56.0, 351.0, 70.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [229.0, 77.0, 87.0, 34.0], "bbox_xyxy_clipped": [229.0, 77.0, 316.0, 111.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [229.0, 115.0, 95.0, 14.0], "bbox_xyxy_clipped": [229.0, 115.0, 324.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [224.0, 141.0, 136.0, 13.0], "bbox_xyxy_clipped": [224.0, 141.0, 360.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [227.0, 159.0, 125.0, 11.0], "bbox_xyxy_clipped": [227.0, 159.0, 352.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [236.0, 205.0, 82.0, 14.0], "bbox_xyxy_clipped": [236.0, 205.0, 318.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [235.0, 229.0, 86.0, 23.0], "bbox_xyxy_clipped": [235.0, 229.0, 321.0, 252.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [231.0, 263.0, 110.0, 20.0], "bbox_xyxy_clipped": [231.0, 263.0, 341.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [232.0, 323.0, 128.0, 10.0], "bbox_xyxy_clipped": [232.0, 323.0, 360.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [230.0, 342.0, 130.0, 15.0], "bbox_xyxy_clipped": [230.0, 342.0, 360.0, 357.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0019074867815236094}, "Ove": {"reason": null, "status": "ok", "value": 0.08920066375807816}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "589b130695a7a863ddcc4876", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b130695a7a863ddcc4876/pipeline/l0_result.json", "sha256": "93c0c32430e34e04faaa21fd9a58bbb9e7deba17f246eb7632161a0ee68cdb53", "size_bytes": 15701}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b130695a7a863ddcc4876/inputs/pfull/asset_manifest.json", "sha256": "258cad17700d81c38ca99f6ce861883faeecb0c2b554ba6af6be3ca89ce28cbc", "size_bytes": 11192}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b130695a7a863ddcc4876/renders/r0_candidate_02.png", "sha256": "0d20bb3d748006a3ed34ca3028214f57cc4367c869c9558bc3faf33cfe823414", "size_bytes": 121608}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589b130695a7a863ddcc4876/inputs/r3/r3_asset_manifest.json", "sha256": "2deee567f4f838627e67a6f39500ed92fe398876fdd1676f5f4f65e17ca9f593", "size_bytes": 9977}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "75e2635bfdbabe79a5d628a05a8dccee276bf32356c94746e9ef140617352a89", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 12, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [36.0, 220.0, 232.0, 464.0], "bbox_xyxy_clipped": [36.0, 220.0, 268.0, 684.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [300.0, 170.0, 260.0, 132.0], "bbox_xyxy_clipped": [300.0, 170.0, 560.0, 302.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [84.0, 295.0, 432.0, 200.0], "bbox_xyxy_clipped": [84.0, 295.0, 516.0, 495.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [110.0, 318.0, 320.0, 160.0], "bbox_xyxy_clipped": [110.0, 318.0, 430.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [128.0, 336.0, 280.0, 140.0], "bbox_xyxy_clipped": [128.0, 336.0, 408.0, 476.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [402.0, 468.0, 154.0, 15.0], "bbox_xyxy_clipped": [402.0, 468.0, 556.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [396.0, 500.0, 170.0, 16.0], "bbox_xyxy_clipped": [396.0, 500.0, 566.0, 516.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [458.0, 456.0, 84.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [472.0, 486.0, 73.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0002", "bbox_lwh_raw": [220.0, 330.0, 144.0, 310.0], "bbox_xyxy_clipped": [220.0, 330.0, 364.0, 640.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [385.0, 122.0, 157.0, 43.0], "bbox_xyxy_clipped": [385.0, 122.0, 542.0, 165.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [409.0, 169.0, 120.0, 37.0], "bbox_xyxy_clipped": [409.0, 169.0, 529.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003620629487761602}, "Occ": {"reason": null, "status": "ok", "value": 0.0011012777205687836}, "Ove": {"reason": null, "status": "ok", "value": 0.3485745351642272}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5b855d491cc8aa5429cfba88", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855d491cc8aa5429cfba88/pipeline/l0_result.json", "sha256": "6c9dd7160d9b686bbe49e5bd8fae5f00c555b3540c5aa980d27cf16e70c36aea", "size_bytes": 9641}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855d491cc8aa5429cfba88/inputs/pfull/asset_manifest.json", "sha256": "1f3384e3ccd779ef0362f12fabcdc808f16d6b2e727004dfe753707a666ff00a", "size_bytes": 6417}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855d491cc8aa5429cfba88/renders/r0_candidate_03.png", "sha256": "75e2635bfdbabe79a5d628a05a8dccee276bf32356c94746e9ef140617352a89", "size_bytes": 99831}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855d491cc8aa5429cfba88/inputs/r3/r3_asset_manifest.json", "sha256": "aa84febd40c997ff71c0c7a3071a60da40b6fd9ccd8ad51150b6026f904f596d", "size_bytes": 5476}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "143130556e0ac887c1929e03645a692615992a93b7a8bfa0a90420ff932acaff", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 6, "raw": 31, "valid": 25}, "elements": [{"asset_id": "asset_0018", "bbox_lwh_raw": [82.0, 58.0, 402.0, 141.0], "bbox_xyxy_clipped": [82.0, 58.0, 484.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [92.0, 214.0, 250.0, 49.0], "bbox_xyxy_clipped": [92.0, 214.0, 342.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [92.0, 272.0, 360.0, 250.0], "bbox_xyxy_clipped": [92.0, 272.0, 452.0, 522.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [92.0, 292.0, 290.0, 37.0], "bbox_xyxy_clipped": [92.0, 292.0, 382.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [92.0, 340.0, 265.0, 36.0], "bbox_xyxy_clipped": [92.0, 340.0, 357.0, 376.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [92.0, 381.0, 312.0, 91.0], "bbox_xyxy_clipped": [92.0, 381.0, 404.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [92.0, 485.0, 315.0, 36.0], "bbox_xyxy_clipped": [92.0, 485.0, 407.0, 521.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [92.0, 526.0, 298.0, 83.0], "bbox_xyxy_clipped": [92.0, 526.0, 390.0, 609.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [92.0, 610.0, 292.0, 34.0], "bbox_xyxy_clipped": [92.0, 610.0, 384.0, 644.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [92.0, 648.0, 362.0, 65.0], "bbox_xyxy_clipped": [92.0, 648.0, 454.0, 713.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [412.0, 492.0, 240.0, 30.0], "bbox_xyxy_clipped": [412.0, 492.0, 652.0, 522.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [412.0, 530.0, 520.0, 46.0], "bbox_xyxy_clipped": [412.0, 530.0, 932.0, 576.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [724.0, 58.0, 474.0, 281.0], "bbox_xyxy_clipped": [724.0, 58.0, 1198.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [787.0, 105.0, 274.0, 154.0], "bbox_xyxy_clipped": [787.0, 105.0, 1061.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [612.0, 176.0, 294.0, 222.0], "bbox_xyxy_clipped": [612.0, 176.0, 906.0, 398.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0028", "bbox_lwh_raw": [840.0, 70.0, 182.0, 190.0], "bbox_xyxy_clipped": [840.0, 70.0, 1022.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0029", "bbox_lwh_raw": [916.0, 282.0, 155.0, 191.0], "bbox_xyxy_clipped": [916.0, 282.0, 1071.0, 473.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0030", "bbox_lwh_raw": [980.0, 118.0, 260.0, 89.0], "bbox_xyxy_clipped": [980.0, 118.0, 1240.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [556.0, 94.0, 92.0, 100.0], "bbox_xyxy_clipped": [556.0, 94.0, 648.0, 194.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [664.0, 142.0, 63.0, 69.0], "bbox_xyxy_clipped": [664.0, 142.0, 727.0, 211.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [603.0, 270.0, 66.0, 72.0], "bbox_xyxy_clipped": [603.0, 270.0, 669.0, 342.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [746.0, 338.0, 58.0, 63.0], "bbox_xyxy_clipped": [746.0, 338.0, 804.0, 401.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [660.0, 424.0, 76.0, 83.0], "bbox_xyxy_clipped": [660.0, 424.0, 736.0, 507.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [548.0, 350.0, 54.0, 59.0], "bbox_xyxy_clipped": [548.0, 350.0, 602.0, 409.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [808.0, 432.0, 64.0, 70.0], "bbox_xyxy_clipped": [808.0, 432.0, 872.0, 502.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [331.0, 166.0, 28.0, 28.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [372.0, 182.0, 28.0, 28.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [416.0, 198.0, 30.0, 28.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0022", "bbox_lwh_raw": [456.0, 214.0, 26.0, 26.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0023", "bbox_lwh_raw": [492.0, 228.0, 26.0, 26.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0026", "bbox_lwh_raw": [528.0, 242.0, 24.0, 24.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003739229203548255}, "Ove": {"reason": null, "status": "ok", "value": 0.10870073499963392}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5f96de4aa637ee11e3f23147", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96de4aa637ee11e3f23147/pipeline/l0_result.json", "sha256": "26441959ee465b5158a890f226ae28c56634bbf5bba405a46d9863fec96e2242", "size_bytes": 23387}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96de4aa637ee11e3f23147/inputs/pfull/asset_manifest.json", "sha256": "84f4eed77ed68b4e2d67c41a77c97d5abaf83b05d28d3afd0f6846f779ff1434", "size_bytes": 16693}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96de4aa637ee11e3f23147/renders/r0_candidate_02.png", "sha256": "143130556e0ac887c1929e03645a692615992a93b7a8bfa0a90420ff932acaff", "size_bytes": 308587}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f96de4aa637ee11e3f23147/inputs/r3/r3_asset_manifest.json", "sha256": "34905129558044e512673c8f88d2416d0897a25a0963de673a9830868e2203a8", "size_bytes": 14595}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d056313daf46c7f549d5bf5a092a47fe5850e8f483a8687cfe72b3bc3b38a976", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 6, "raw": 14, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [74.0, 55.0, 110.0, 110.0], "bbox_xyxy_clipped": [74.0, 55.0, 184.0, 165.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [231.0, 98.0, 145.0, 42.0], "bbox_xyxy_clipped": [231.0, 98.0, 376.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [196.0, 70.0, 150.0, 105.0], "bbox_xyxy_clipped": [196.0, 70.0, 346.0, 175.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [207.0, 81.0, 105.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [207.0, 159.0, 105.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [203.0, 86.0, 1.0, 298.0], "bbox_xyxy_clipped": [203.0, 86.0, 204.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [348.0, 86.0, 1.0, 298.0], "bbox_xyxy_clipped": [348.0, 86.0, 349.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [359.0, 78.0, 1.0, 50.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [218.0, 70.0, 35.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [310.0, 171.0, 35.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [349.0, 136.0, 1.0, 50.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [217.0, 60.0, 55.0, 8.0], "bbox_xyxy_clipped": [217.0, 60.0, 272.0, 68.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [318.0, 163.0, 55.0, 8.0], "bbox_xyxy_clipped": [318.0, 163.0, 373.0, 171.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [209.0, 105.0, 18.0, 23.0], "bbox_xyxy_clipped": [209.0, 105.0, 227.0, 128.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012517646443510225}, "Ove": {"reason": null, "status": "ok", "value": 0.043625596994276566}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5bd1e93f78e1194aa6b847de", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1e93f78e1194aa6b847de/pipeline/l0_result.json", "sha256": "81cac6f4557c6bcef1bc96e33bf4a1c749eb8fc12537e74a51b3ce3c576750dc", "size_bytes": 11371}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1e93f78e1194aa6b847de/inputs/pfull/asset_manifest.json", "sha256": "dce4b3e7dadb877925f4795bb1f9f94b9d3f8ef52e0ba7126b0f6f17b1f78922", "size_bytes": 7400}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1e93f78e1194aa6b847de/renders/r0_candidate_02.png", "sha256": "d056313daf46c7f549d5bf5a092a47fe5850e8f483a8687cfe72b3bc3b38a976", "size_bytes": 21110}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1e93f78e1194aa6b847de/inputs/r3/r3_asset_manifest.json", "sha256": "0930dd3d4407dab4592d78d3a802d03b7aaa11d8a363911ca625dfa9871811ff", "size_bytes": 6302}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e0c6dab209f3e4ed3ed1c0befe47157345b5a201bfca75c8857ca3a15096f779", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9db97e508681d19bcdd7fc3466eb1de8fd4ff1a8cd758093c8b7b4ecb1e3b7b0", "canvas": {"height": 297, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [22.0, 45.0, 205.0, 306.0], "bbox_xyxy_clipped": [22.0, 45.0, 227.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [232.0, 71.0, 134.0, 95.0], "bbox_xyxy_clipped": [232.0, 71.0, 366.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [230.0, 98.0, 159.0, 115.0], "bbox_xyxy_clipped": [230.0, 98.0, 389.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [246.0, 87.0, 126.0, 8.0], "bbox_xyxy_clipped": [246.0, 87.0, 372.0, 95.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [246.0, 221.0, 126.0, 8.0], "bbox_xyxy_clipped": [246.0, 221.0, 372.0, 229.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [336.0, 186.0, 54.0, 49.0], "bbox_xyxy_clipped": [336.0, 186.0, 390.0, 235.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004795837442739771}, "Ove": {"reason": null, "status": "ok", "value": 0.10834855195962782}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "2f2d7bccaba53903fb1be7665a87ab2ab79ac2dd19f77511e66b71d2773e79ed", "status": "computed"}, "sample_id": "5df9fcaa9fea0cc37404d2d2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df9fcaa9fea0cc37404d2d2/pipeline/l0_result.json", "sha256": "bb4151d49519657747b95d4ab5df6e9df9832c06011cb1e85d55765bfb1b6655", "size_bytes": 6592}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df9fcaa9fea0cc37404d2d2/inputs/pfull/asset_manifest.json", "sha256": "403adb726989a406b9aebd9fd75acc7c0202f5cb85918106cb36b84c5fcf5f6e", "size_bytes": 3432}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df9fcaa9fea0cc37404d2d2/renders/r0_candidate_02.png", "sha256": "e0c6dab209f3e4ed3ed1c0befe47157345b5a201bfca75c8857ca3a15096f779", "size_bytes": 113666}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df9fcaa9fea0cc37404d2d2/inputs/r3/r3_asset_manifest.json", "sha256": "a37758bc44e99f240dc9d6f6050b5eafec826bc44e5b5464244e0db6ea2ed9d1", "size_bytes": 2981}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "bfc69e3160e58aa0c6a34d280294f010a763d2707dcafca9478da4f637e4a0a2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0e1096616e9b03a50161584507c7511fa47d0aa511d6a9f9fd3e9873d12c8921", "canvas": {"height": 1728, "width": 1296}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [430.0, 110.0, 436.0, 578.0], "bbox_xyxy_clipped": [430.0, 110.0, 866.0, 688.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [832.0, 390.0, 220.0, 184.0], "bbox_xyxy_clipped": [832.0, 390.0, 1052.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [105.0, 708.0, 1086.0, 232.0], "bbox_xyxy_clipped": [105.0, 708.0, 1191.0, 940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [736.0, 1018.0, 500.0, 107.0], "bbox_xyxy_clipped": [736.0, 1018.0, 1236.0, 1125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [737.0, 1138.0, 218.0, 40.0], "bbox_xyxy_clipped": [737.0, 1138.0, 955.0, 1178.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [736.0, 1192.0, 349.0, 80.0], "bbox_xyxy_clipped": [736.0, 1192.0, 1085.0, 1272.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [736.0, 1288.0, 335.0, 45.0], "bbox_xyxy_clipped": [736.0, 1288.0, 1071.0, 1333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001832984972376686}, "Ove": {"reason": null, "status": "ok", "value": 0.0031223423157239086}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b45151d495426202cbcc69fd71097fa9e1b0cffe9f9925c94e2a055e624762c1", "status": "computed"}, "sample_id": "589dd69895a7a863ddcc5c93", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dd69895a7a863ddcc5c93/pipeline/l0_result.json", "sha256": "dbf2297abc2b0204384beb6b4e3e6eafdf235f56a2d7d7ae461f06d4779b13d3", "size_bytes": 7694}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dd69895a7a863ddcc5c93/inputs/pfull/asset_manifest.json", "sha256": "d6ffc12f65dd7aee682832447af12a0818c2c9f34f96eb14e0ffa845e91aafef", "size_bytes": 4044}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dd69895a7a863ddcc5c93/renders/r0_candidate_02.png", "sha256": "bfc69e3160e58aa0c6a34d280294f010a763d2707dcafca9478da4f637e4a0a2", "size_bytes": 525037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dd69895a7a863ddcc5c93/inputs/r3/r3_asset_manifest.json", "sha256": "6f04ee4c327273cf1429cf15472b09c33c8798e3d1018e8a9cdaaafd9064bf25", "size_bytes": 3691}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b5557d64fcc088364e450f92799503a2ef632c8a58fd29ce4be62a9c76637c35", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [545.0, 78.0, 327.0, 218.0], "bbox_xyxy_clipped": [545.0, 78.0, 872.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [88.0, 90.0, 320.0, 52.0], "bbox_xyxy_clipped": [88.0, 90.0, 408.0, 142.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [91.0, 150.0, 52.0, 45.0], "bbox_xyxy_clipped": [91.0, 150.0, 143.0, 195.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [330.0, 150.0, 52.0, 45.0], "bbox_xyxy_clipped": [330.0, 150.0, 382.0, 195.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [90.0, 214.0, 420.0, 4.0], "bbox_xyxy_clipped": [90.0, 214.0, 510.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 238.0, 392.0, 32.0], "bbox_xyxy_clipped": [88.0, 238.0, 480.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [88.0, 284.0, 350.0, 4.0], "bbox_xyxy_clipped": [88.0, 284.0, 438.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [88.0, 632.0, 224.0, 21.0], "bbox_xyxy_clipped": [88.0, 632.0, 312.0, 653.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [88.0, 664.0, 170.0, 18.0], "bbox_xyxy_clipped": [88.0, 664.0, 258.0, 682.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [88.0, 693.0, 350.0, 23.0], "bbox_xyxy_clipped": [88.0, 693.0, 438.0, 716.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.000449635405822008}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5df218709fea0cc374bd7e9f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df218709fea0cc374bd7e9f/pipeline/l0_result.json", "sha256": "6e9c10e67bf0b661654a451a804479fb8b0fcb8b51d90f1b4f9f2d73114ab2c9", "size_bytes": 10789}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df218709fea0cc374bd7e9f/inputs/pfull/asset_manifest.json", "sha256": "e3f31d750277448612a04f0ce07daeab676956461ab686a9b576b5c31241cd13", "size_bytes": 5553}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df218709fea0cc374bd7e9f/renders/r0_candidate_03.png", "sha256": "b5557d64fcc088364e450f92799503a2ef632c8a58fd29ce4be62a9c76637c35", "size_bytes": 114810}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df218709fea0cc374bd7e9f/inputs/r3/r3_asset_manifest.json", "sha256": "71290c03bc3ccfdaa50941dba2b5e2cb9234058eaa767889619e0f89ef32627a", "size_bytes": 4987}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "859b9cf099f2cdea90c65dcf06da15c41a0ffb1cd16dfaee55d5ab63ad76f316", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [80.0, 128.0, 259.0, 130.0], "bbox_xyxy_clipped": [80.0, 128.0, 339.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [137.0, 34.0, 145.0, 53.0], "bbox_xyxy_clipped": [137.0, 34.0, 282.0, 87.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [101.0, 84.0, 217.0, 34.0], "bbox_xyxy_clipped": [101.0, 84.0, 318.0, 118.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [39.0, 22.0, 61.0, 56.0], "bbox_xyxy_clipped": [39.0, 22.0, 100.0, 78.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [320.0, 22.0, 60.0, 65.0], "bbox_xyxy_clipped": [320.0, 22.0, 380.0, 87.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 146.0, 65.0, 75.0], "bbox_xyxy_clipped": [0.0, 146.0, 65.0, 221.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [354.0, 146.0, 65.0, 75.0], "bbox_xyxy_clipped": [354.0, 146.0, 419.0, 221.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [55.0, 104.0, 34.0, 119.0], "bbox_xyxy_clipped": [55.0, 104.0, 89.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [330.0, 104.0, 34.0, 119.0], "bbox_xyxy_clipped": [330.0, 104.0, 364.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [104.0, 18.0, 37.0, 43.0], "bbox_xyxy_clipped": [104.0, 18.0, 141.0, 61.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [279.0, 18.0, 37.0, 43.0], "bbox_xyxy_clipped": [279.0, 18.0, 316.0, 61.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005178694126768397}, "Ove": {"reason": null, "status": "ok", "value": 0.025481207777912126}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5ab0f6f7f07aee69772a1f1d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ab0f6f7f07aee69772a1f1d/pipeline/l0_result.json", "sha256": "f2cbbb6bd704a846067b403caa44d4213bc565fa87e6a5c2bc98b13db3326801", "size_bytes": 9681}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ab0f6f7f07aee69772a1f1d/inputs/pfull/asset_manifest.json", "sha256": "2cff961b46d3837f1dbd62872777a374f8d3b19058dece712d21b42a3762e11e", "size_bytes": 5935}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ab0f6f7f07aee69772a1f1d/renders/r0_candidate_02.png", "sha256": "859b9cf099f2cdea90c65dcf06da15c41a0ffb1cd16dfaee55d5ab63ad76f316", "size_bytes": 67541}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ab0f6f7f07aee69772a1f1d/inputs/r3/r3_asset_manifest.json", "sha256": "f1553f7a83e09e7a2d3164662f51f39e6051bc6515aefb143e635381b2776274", "size_bytes": 5127}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "49246e299ea732eb7125833aba2badfea8fd7108fbab1b9ba95368ce2f33eda5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/inputs/pfull/assets/asset_0000.png", "asset_sha256": "36190ad0fdad31c76ca83aa8a422c5e3a78ce05cfddb1565ee97d55c9de559fa", "asset_size_bytes": 501, "kind": "asset", "pfull_asset_sha256": "36190ad0fdad31c76ca83aa8a422c5e3a78ce05cfddb1565ee97d55c9de559fa", "r3_asset_sha256": "36190ad0fdad31c76ca83aa8a422c5e3a78ce05cfddb1565ee97d55c9de559fa", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "7876669a5ffd01a7db044e538894558d38f69f3414f5ad773195d522b7983887", "canvas": {"height": 142, "width": 241}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [156.0, 8.0, 79.0, 43.0], "bbox_xyxy_clipped": [156.0, 8.0, 235.0, 51.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [170.0, 14.0, 63.0, 13.0], "bbox_xyxy_clipped": [170.0, 14.0, 233.0, 27.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [177.0, 56.0, 54.0, 13.0], "bbox_xyxy_clipped": [177.0, 56.0, 231.0, 69.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [181.0, 98.0, 54.0, 12.0], "bbox_xyxy_clipped": [181.0, 98.0, 235.0, 110.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [20.0, 50.0, 125.0, 14.0], "bbox_xyxy_clipped": [20.0, 50.0, 145.0, 64.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [20.0, 69.0, 81.0, 29.0], "bbox_xyxy_clipped": [20.0, 69.0, 101.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [20.0, 109.0, 98.0, 23.0], "bbox_xyxy_clipped": [20.0, 109.0, 118.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 9.734350516720936e-07}, "Ove": {"reason": null, "status": "ok", "value": 0.034442154842508094}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "6446e0d131135402ada78c22accdbed74be46dd51afd62143742e080c2529fdb", "status": "computed"}, "sample_id": "5bc09e2c78e1194aa64f905f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/pipeline/l0_result.json", "sha256": "af38c3aaf418921863c2477342dd79c8962a41899c073786e2713c87d8a8e9f1", "size_bytes": 8327}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/inputs/pfull/asset_manifest.json", "sha256": "d29370dac79d79eeea529b5559b1f9f0fec1a9ce5c349358e7c4812c5ade36b3", "size_bytes": 4468}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/renders/r0_candidate_02.png", "sha256": "49246e299ea732eb7125833aba2badfea8fd7108fbab1b9ba95368ce2f33eda5", "size_bytes": 16705}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/inputs/r3/r3_asset_manifest.json", "sha256": "6f1a5be52616c94c994eea9ef4afdf273cbe37dbf70f74d4f800ff6cb7393c62", "size_bytes": 3934}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bc09e2c78e1194aa64f905f/inputs/pfull/assets/asset_0000.png", "sha256": "36190ad0fdad31c76ca83aa8a422c5e3a78ce05cfddb1565ee97d55c9de559fa", "size_bytes": 501}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "91b2d2d813a563d3b88d212e32b0aaee0167abfe8fee959cefd057ef03fad595", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1120.0, 210.0, 680.0, 454.0], "bbox_xyxy_clipped": [1120.0, 210.0, 1800.0, 664.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1360.0, 90.0, 430.0, 430.0], "bbox_xyxy_clipped": [1360.0, 90.0, 1790.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1500.0, 220.0, 180.0, 180.0], "bbox_xyxy_clipped": [1500.0, 220.0, 1680.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 245.0, 520.0, 53.0], "bbox_xyxy_clipped": [120.0, 245.0, 640.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [122.0, 318.0, 390.0, 46.0], "bbox_xyxy_clipped": [122.0, 318.0, 512.0, 364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0022631293445239415}, "Occ": {"reason": null, "status": "ok", "value": 0.0004574659183128642}, "Ove": {"reason": null, "status": "ok", "value": 0.130025651406011}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5fa157eba637ee11e309840c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fa157eba637ee11e309840c/pipeline/l0_result.json", "sha256": "535f0c1cbae6fe2e540ba82e8891059f91b647f4d58e2ade1a831aee7da2e8cd", "size_bytes": 6427}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fa157eba637ee11e309840c/inputs/pfull/asset_manifest.json", "sha256": "c528b9c6e26121db4a717247c8aa0222ecc0d602a2de7cf6ffe2e5fe376641fa", "size_bytes": 2925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fa157eba637ee11e309840c/renders/r0_candidate_03.png", "sha256": "91b2d2d813a563d3b88d212e32b0aaee0167abfe8fee959cefd057ef03fad595", "size_bytes": 231799}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fa157eba637ee11e309840c/inputs/r3/r3_asset_manifest.json", "sha256": "78837ad583f182834fbed56702e8798ac2a8d0abe8246a30d66f7c34ace00d69", "size_bytes": 2620}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9508ae7d45f58b22addc12c8ad2f558b614887db6fdffa623841c4b630875969", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fce92382fc1a95b72e7f7f49b7eaf3008054951a9bac0b0c68b16b193f49a3dc", "canvas": {"height": 400, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1010.0, 16.0, 520.0, 131.0], "bbox_xyxy_clipped": [1010.0, 16.0, 1530.0, 147.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [372.0, 84.0, 540.0, 138.0], "bbox_xyxy_clipped": [372.0, 84.0, 912.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1110.0, 160.0, 380.0, 2.0], "bbox_xyxy_clipped": [1110.0, 160.0, 1490.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [152.0, 130.0, 728.0, 47.0], "bbox_xyxy_clipped": [152.0, 130.0, 880.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [167.0, 186.0, 510.0, 26.0], "bbox_xyxy_clipped": [167.0, 186.0, 677.0, 212.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [170.0, 295.0, 258.0, 33.0], "bbox_xyxy_clipped": [170.0, 295.0, 428.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003259246067713086}, "Occ": {"reason": null, "status": "ok", "value": 0.0012997693179649366}, "Ove": {"reason": null, "status": "ok", "value": 0.06344478976091011}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7a8679295e10c7a6d1309b25f64cfdf33078a2e5079604001044f00dcb08ef67", "status": "computed"}, "sample_id": "591589eb95a7a863ddcd84d7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/591589eb95a7a863ddcd84d7/pipeline/l0_result.json", "sha256": "9f4a3b766d16f2f767ba6877404e57c55c82d3b9b42b9b998717d40b4f33de73", "size_bytes": 6938}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/591589eb95a7a863ddcd84d7/inputs/pfull/asset_manifest.json", "sha256": "938e8e82a19b3d216ca24138e8edef2175d2238c1301665abb5975baf0197d01", "size_bytes": 3542}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/591589eb95a7a863ddcd84d7/renders/r0_candidate_03.png", "sha256": "9508ae7d45f58b22addc12c8ad2f558b614887db6fdffa623841c4b630875969", "size_bytes": 185203}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/591589eb95a7a863ddcd84d7/inputs/r3/r3_asset_manifest.json", "sha256": "eb3c8e6be0b46332429764413488aecc358b6f60e9dc8727b862def2053d655b", "size_bytes": 3224}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "11f064a67fffd67c7f742506ccba0dc9b43a07203c6c53f0a89afa11db97a880", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [40.0, 130.0, 560.0, 552.0], "bbox_xyxy_clipped": [40.0, 130.0, 600.0, 682.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [38.0, 176.0, 190.0, 485.0], "bbox_xyxy_clipped": [38.0, 176.0, 228.0, 661.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [255.0, 170.0, 130.0, 130.0], "bbox_xyxy_clipped": [255.0, 170.0, 385.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [135.0, 552.0, 220.0, 367.0], "bbox_xyxy_clipped": [135.0, 552.0, 355.0, 919.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [470.0, 215.0, 155.0, 254.0], "bbox_xyxy_clipped": [470.0, 215.0, 625.0, 469.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [405.0, 485.0, 165.0, 302.0], "bbox_xyxy_clipped": [405.0, 485.0, 570.0, 787.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [650.0, 245.0, 360.0, 198.0], "bbox_xyxy_clipped": [650.0, 245.0, 1010.0, 443.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [645.0, 405.0, 360.0, 250.0], "bbox_xyxy_clipped": [645.0, 405.0, 1005.0, 655.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [675.0, 500.0, 330.0, 229.0], "bbox_xyxy_clipped": [675.0, 500.0, 1005.0, 729.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 915.0, 235.0, 41.0], "bbox_xyxy_clipped": [120.0, 915.0, 355.0, 956.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029666440949175955}, "Ove": {"reason": null, "status": "ok", "value": 0.12425571553521986}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5c89040985ea3c16f9b71287", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c89040985ea3c16f9b71287/pipeline/l0_result.json", "sha256": "0e2043b9a3f8caa22c4ff2be2ba9e7f3e4879f9f037eae2c37a1cb8c298820af", "size_bytes": 9689}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c89040985ea3c16f9b71287/inputs/pfull/asset_manifest.json", "sha256": "250994e38bf1c54f94ca40fce60db9c56f7d4421d28c85c01404b436703b7244", "size_bytes": 5458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c89040985ea3c16f9b71287/renders/r0_candidate_02.png", "sha256": "11f064a67fffd67c7f742506ccba0dc9b43a07203c6c53f0a89afa11db97a880", "size_bytes": 218441}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5c89040985ea3c16f9b71287/inputs/r3/r3_asset_manifest.json", "sha256": "3eddb74afc4979cd6f3a48edd7483c4350fde1eff697fa6152a862ee1d85e115", "size_bytes": 4831}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "91687cad84aeeb3c5977076af72cca98d3b922e605d3fa805c5003a5312dcb21", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fb39b41aefffd5a732fc6b447509caea2f846b715e97d333d9267f73bb35ec44", "canvas": {"height": 1102, "width": 735}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 12, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [115.0, 160.0, 505.0, 756.0], "bbox_xyxy_clipped": [115.0, 160.0, 620.0, 916.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [207.0, 84.0, 401.0, 667.0], "bbox_xyxy_clipped": [207.0, 84.0, 608.0, 751.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [262.0, 366.0, 211.0, 205.0], "bbox_xyxy_clipped": [262.0, 366.0, 473.0, 571.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [55.0, 889.0, 194.0, 92.0], "bbox_xyxy_clipped": [55.0, 889.0, 249.0, 981.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [54.0, 964.0, 168.0, 24.0], "bbox_xyxy_clipped": [54.0, 964.0, 222.0, 988.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [38.0, 104.0, 482.0, 33.0], "bbox_xyxy_clipped": [38.0, 104.0, 520.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [51.0, 140.0, 430.0, 29.0], "bbox_xyxy_clipped": [51.0, 140.0, 481.0, 169.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [76.0, 179.0, 398.0, 7.0], "bbox_xyxy_clipped": [76.0, 179.0, 474.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [63.0, 196.0, 430.0, 29.0], "bbox_xyxy_clipped": [63.0, 196.0, 493.0, 225.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [86.0, 232.0, 375.0, 6.0], "bbox_xyxy_clipped": [86.0, 232.0, 461.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [33.0, 188.0, 8.0, 122.0], "bbox_xyxy_clipped": [33.0, 188.0, 41.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [47.0, 206.0, 6.0, 109.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0038776138453470864}, "Ove": {"reason": null, "status": "ok", "value": 0.10612534959602912}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "a0e9fd79f4c057b28ede6ee29051320c02592c0696c2933e91929434329a0ddb", "status": "computed"}, "sample_id": "5cf14cf58cba87f9434f1d6f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cf14cf58cba87f9434f1d6f/pipeline/l0_result.json", "sha256": "c9fc845e7e6f74655f7fad36558f40ebad305ad92e107e5134b533db4ad980ae", "size_bytes": 9638}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cf14cf58cba87f9434f1d6f/inputs/pfull/asset_manifest.json", "sha256": "da3b728729b705edfc5d622d43512a033c6a79f3cd4e6ac21103889c106e5af0", "size_bytes": 6414}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cf14cf58cba87f9434f1d6f/renders/r0_candidate_02.png", "sha256": "91687cad84aeeb3c5977076af72cca98d3b922e605d3fa805c5003a5312dcb21", "size_bytes": 525038}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cf14cf58cba87f9434f1d6f/inputs/r3/r3_asset_manifest.json", "sha256": "8d9c45aeaa600bd8166a4d6b8fb856af7d386a596387a7e22bea43d1464e402b", "size_bytes": 5543}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1c46ea57e74dd5bfb2e447599b71b502a9dafdb604eaba2e0f79cfbabf834247", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "909f4e490aa3005b550e773f9d0eef4de27fa64400516d311cb5a6931ba4609b", "canvas": {"height": 1055, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [860.0, 250.0, 1280.0, 450.0], "bbox_xyxy_clipped": [860.0, 250.0, 2140.0, 700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1070.0, 280.0, 970.0, 335.0], "bbox_xyxy_clipped": [1070.0, 280.0, 2040.0, 615.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [930.0, 410.0, 1040.0, 212.0], "bbox_xyxy_clipped": [930.0, 410.0, 1970.0, 622.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1270.0, 235.0, 470.0, 473.0], "bbox_xyxy_clipped": [1270.0, 235.0, 1740.0, 708.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [740.0, 55.0, 1520.0, 327.0], "bbox_xyxy_clipped": [740.0, 55.0, 2260.0, 382.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1185.0, 345.0, 630.0, 166.0], "bbox_xyxy_clipped": [1185.0, 345.0, 1815.0, 511.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [610.0, 385.0, 1780.0, 136.0], "bbox_xyxy_clipped": [610.0, 385.0, 2390.0, 521.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [220.0, 505.0, 650.0, 211.0], "bbox_xyxy_clipped": [220.0, 505.0, 870.0, 716.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [230.0, 650.0, 740.0, 136.0], "bbox_xyxy_clipped": [230.0, 650.0, 970.0, 786.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [320.0, 755.0, 560.0, 128.0], "bbox_xyxy_clipped": [320.0, 755.0, 880.0, 883.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [2330.0, 505.0, 620.0, 174.0], "bbox_xyxy_clipped": [2330.0, 505.0, 2950.0, 679.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [2250.0, 645.0, 700.0, 178.0], "bbox_xyxy_clipped": [2250.0, 645.0, 2950.0, 823.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [2235.0, 755.0, 760.0, 169.0], "bbox_xyxy_clipped": [2235.0, 755.0, 2995.0, 924.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024689071666215705}, "Ove": {"reason": null, "status": "ok", "value": 0.46848266277040845}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "896a92b3e1f134ecd05ce476cd3afd01b49d1626723c3e1e6573f2de2ee0f55b", "status": "computed"}, "sample_id": "5930135495a7a863ddcdc0ac", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5930135495a7a863ddcdc0ac/pipeline/l0_result.json", "sha256": "2fed225d68b2ad7899e361a7601b97bcc44b461189703f03f25196c39f10646a", "size_bytes": 12234}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5930135495a7a863ddcdc0ac/inputs/pfull/asset_manifest.json", "sha256": "e90cd0f6b9d6a99d407960e9791b8854cb6a1ab89f8bc00e9f892c80a6c056f8", "size_bytes": 7095}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5930135495a7a863ddcdc0ac/renders/r0_candidate_02.png", "sha256": "1c46ea57e74dd5bfb2e447599b71b502a9dafdb604eaba2e0f79cfbabf834247", "size_bytes": 239366}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5930135495a7a863ddcdc0ac/inputs/r3/r3_asset_manifest.json", "sha256": "75447727f55b06db6a3c0078136c69a41ff585bda5efe461cb7693a515e9d644", "size_bytes": 6521}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1ad5897f6015951ef8640e4a8c57ea7205ea7c9b949be65b5951a1ea15e2e92b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [32.0, 10.0, 280.0, 87.0], "bbox_xyxy_clipped": [32.0, 10.0, 312.0, 97.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [466.0, 69.0, 325.0, 208.0], "bbox_xyxy_clipped": [466.0, 69.0, 791.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [505.0, 42.0, 250.0, 65.0], "bbox_xyxy_clipped": [505.0, 42.0, 755.0, 107.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [504.0, 118.0, 282.0, 76.0], "bbox_xyxy_clipped": [504.0, 118.0, 786.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0020425374811804896}, "Occ": {"reason": null, "status": "ok", "value": 0.003754265288332774}, "Ove": {"reason": null, "status": "ok", "value": 0.11120386545325761}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5ea2a28b499b85dcc726d7d6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ea2a28b499b85dcc726d7d6/pipeline/l0_result.json", "sha256": "736e50d5f7ca8a37a53cade6d2eec95d659b75ddabbfaafd74c842c41cd71d37", "size_bytes": 5400}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ea2a28b499b85dcc726d7d6/inputs/pfull/asset_manifest.json", "sha256": "d6d5a403774b66660a459a654bb9f76355b8f522db248f6ff9b73000e8883f8c", "size_bytes": 2418}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ea2a28b499b85dcc726d7d6/renders/r0_candidate_01.png", "sha256": "1ad5897f6015951ef8640e4a8c57ea7205ea7c9b949be65b5951a1ea15e2e92b", "size_bytes": 51369}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ea2a28b499b85dcc726d7d6/inputs/r3/r3_asset_manifest.json", "sha256": "ad43a89c5b2628a26a24ccfa56d31c4512f1110397586b5e554e17e77bdd47fa", "size_bytes": 2235}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "417a4bddb4fa1f1563f252516a25c2cbb3b4fc2c937ab0f800c07203679f09d0", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [535.0, 21.0, 286.0, 286.0], "bbox_xyxy_clipped": [535.0, 21.0, 821.0, 307.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [54.0, 128.0, 318.0, 70.0], "bbox_xyxy_clipped": [54.0, 128.0, 372.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [54.0, 199.0, 699.0, 19.0], "bbox_xyxy_clipped": [54.0, 199.0, 753.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [56.0, 89.0, 297.0, 86.0], "bbox_xyxy_clipped": [56.0, 89.0, 353.0, 175.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0034986721378105013}, "Ove": {"reason": null, "status": "ok", "value": 0.11450311315561033}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5f994d42a637ee11e3dddca6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f994d42a637ee11e3dddca6/pipeline/l0_result.json", "sha256": "76ecc3b8387a583dd65eb77ac0959e3a69fb6835272beb682b370fdf059243a6", "size_bytes": 5420}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f994d42a637ee11e3dddca6/inputs/pfull/asset_manifest.json", "sha256": "94199da3c00648526c0800ba84c4b2b666d3de18016bc74d8d3ca4a851874442", "size_bytes": 2404}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f994d42a637ee11e3dddca6/renders/r0_candidate_02.png", "sha256": "417a4bddb4fa1f1563f252516a25c2cbb3b4fc2c937ab0f800c07203679f09d0", "size_bytes": 151005}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f994d42a637ee11e3dddca6/inputs/r3/r3_asset_manifest.json", "sha256": "ec1ed0bea169f46c18df2ac1fcf7e868cd78f2fe57285289249b457871ecbe3a", "size_bytes": 2121}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d7c0723d295400a94b54924b9259486fa1bbb4e4d7f316e519f033e3f4dbade1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [45.0, 120.0, 470.0, 313.0], "bbox_xyxy_clipped": [45.0, 120.0, 515.0, 433.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [640.0, 110.0, 330.0, 114.0], "bbox_xyxy_clipped": [640.0, 110.0, 970.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [645.0, 215.0, 230.0, 53.0], "bbox_xyxy_clipped": [645.0, 215.0, 875.0, 268.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [640.0, 300.0, 360.0, 53.0], "bbox_xyxy_clipped": [640.0, 300.0, 1000.0, 353.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [640.0, 370.0, 305.0, 103.0], "bbox_xyxy_clipped": [640.0, 370.0, 945.0, 473.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [645.0, 490.0, 255.0, 83.0], "bbox_xyxy_clipped": [645.0, 490.0, 900.0, 573.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [650.0, 815.0, 300.0, 64.0], "bbox_xyxy_clipped": [650.0, 815.0, 950.0, 879.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [650.0, 895.0, 390.0, 156.0], "bbox_xyxy_clipped": [650.0, 895.0, 1040.0, 1051.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [760.0, 55.0, 300.0, 149.0], "bbox_xyxy_clipped": [760.0, 55.0, 1060.0, 204.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [860.0, 230.0, 220.0, 444.0], "bbox_xyxy_clipped": [860.0, 230.0, 1080.0, 674.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [780.0, 510.0, 170.0, 305.0], "bbox_xyxy_clipped": [780.0, 510.0, 950.0, 815.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [610.0, 250.0, 360.0, 77.0], "bbox_xyxy_clipped": [610.0, 250.0, 970.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [70.0, 470.0, 200.0, 200.0], "bbox_xyxy_clipped": [70.0, 470.0, 270.0, 670.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [650.0, 1010.0, 45.0, 65.0], "bbox_xyxy_clipped": [650.0, 1010.0, 695.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [708.0, 1010.0, 45.0, 65.0], "bbox_xyxy_clipped": [708.0, 1010.0, 753.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [766.0, 1010.0, 45.0, 65.0], "bbox_xyxy_clipped": [766.0, 1010.0, 811.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002852005913941988}, "Ove": {"reason": null, "status": "ok", "value": 0.07944389969738043}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5dbbff2eabc8ea6d1c15c382", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbbff2eabc8ea6d1c15c382/pipeline/l0_result.json", "sha256": "bbafd0501cf97e431cb11efe54be55e5415cf76693b97bf585138bbc7612ffe8", "size_bytes": 12335}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/pfull/asset_manifest.json", "sha256": "7fece572f61840e0a56d21aec48957b4273edef2b4560d87fdbce7ad85b52ca4", "size_bytes": 8598}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_01.png", "sha256": "d7c0723d295400a94b54924b9259486fa1bbb4e4d7f316e519f033e3f4dbade1", "size_bytes": 387531}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/r3/r3_asset_manifest.json", "sha256": "f5bb274692c920ec028c234ba99ee0a0fb3173fc573886575b5f80b1901be39d", "size_bytes": 7626}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b5b49584b8ab2078b2a1f5e223054b413b4a30ba96eaea87f317bf81dcc0e26c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fb39b41aefffd5a732fc6b447509caea2f846b715e97d333d9267f73bb35ec44", "canvas": {"height": 1102, "width": 735}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 14, "valid": 11}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [22.0, 55.0, 350.0, 253.0], "bbox_xyxy_clipped": [22.0, 55.0, 372.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 328.0, 240.0, 360.0], "bbox_xyxy_clipped": [24.0, 328.0, 264.0, 688.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [392.0, 86.0, 270.0, 39.0], "bbox_xyxy_clipped": [392.0, 86.0, 662.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [547.0, 54.0, 98.0, 33.0], "bbox_xyxy_clipped": [547.0, 54.0, 645.0, 87.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [413.0, 150.0, 214.0, 42.0], "bbox_xyxy_clipped": [413.0, 150.0, 627.0, 192.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [395.0, 222.0, 180.0, 43.0], "bbox_xyxy_clipped": [395.0, 222.0, 575.0, 265.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [394.0, 283.0, 25.0, 27.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [392.0, 388.0, 286.0, 42.0], "bbox_xyxy_clipped": [392.0, 388.0, 678.0, 430.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [392.0, 505.0, 168.0, 24.0], "bbox_xyxy_clipped": [392.0, 505.0, 560.0, 529.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [626.0, 120.0, 62.0, 69.0], "bbox_xyxy_clipped": [626.0, 120.0, 688.0, 189.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [645.0, 212.0, 54.0, 47.0], "bbox_xyxy_clipped": [645.0, 212.0, 699.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [585.0, 210.0, 34.0, 34.0], "bbox_xyxy_clipped": [585.0, 210.0, 619.0, 244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [704.0, 19.0, 1.0, 32.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [704.0, 66.0, 1.0, 32.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002636197686669316}, "Ove": {"reason": null, "status": "ok", "value": 0.002038614917196545}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "a0e9fd79f4c057b28ede6ee29051320c02592c0696c2933e91929434329a0ddb", "status": "computed"}, "sample_id": "5db2bcf8abc8ea6d1c4c9cb8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2bcf8abc8ea6d1c4c9cb8/pipeline/l0_result.json", "sha256": "72df6d4bc5f6621707ca204e5c41dce0d1450335ee906c32f325fee212bfc0aa", "size_bytes": 11717}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2bcf8abc8ea6d1c4c9cb8/inputs/pfull/asset_manifest.json", "sha256": "8699e81f2b1f97e9ed7bdd6c27e036c5b9279ca96d66d68dfdcddc0a81acfca1", "size_bytes": 7527}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2bcf8abc8ea6d1c4c9cb8/renders/r0_candidate_02.png", "sha256": "b5b49584b8ab2078b2a1f5e223054b413b4a30ba96eaea87f317bf81dcc0e26c", "size_bytes": 158019}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5db2bcf8abc8ea6d1c4c9cb8/inputs/r3/r3_asset_manifest.json", "sha256": "dcc6eae454f305281697ea269f2bb52ca77c3df186583ee2484455dacf73c226", "size_bytes": 6686}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8c56bce38ef6592c297e31bb98961a7e1d3f0b8323af472f8e0af4e0f18ab91a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 9, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [36.0, 158.0, 338.0, 506.0], "bbox_xyxy_clipped": [36.0, 158.0, 374.0, 664.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [476.0, 86.0, 374.0, 46.0], "bbox_xyxy_clipped": [476.0, 86.0, 850.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [479.0, 144.0, 306.0, 73.0], "bbox_xyxy_clipped": [479.0, 144.0, 785.0, 217.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [478.0, 228.0, 318.0, 68.0], "bbox_xyxy_clipped": [478.0, 228.0, 796.0, 296.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [699.0, 644.0, 156.0, 27.0], "bbox_xyxy_clipped": [699.0, 644.0, 855.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [699.0, 696.0, 190.0, 41.0], "bbox_xyxy_clipped": [699.0, 696.0, 889.0, 737.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [867.0, 639.0, 23.0, 21.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 675.0, 274.0, 229.0], "bbox_xyxy_clipped": [0.0, 675.0, 274.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 708.0, 79.0, 79.0], "bbox_xyxy_clipped": [34.0, 708.0, 113.0, 787.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004570942234069834}, "Ove": {"reason": null, "status": "ok", "value": 0.025196208255280666}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5df211c29fea0cc374abbbba", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df211c29fea0cc374abbbba/pipeline/l0_result.json", "sha256": "56f8a7decc0ee6651280a9815b323eca8a20d88ffe7aa7b898de793779b964e4", "size_bytes": 8765}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df211c29fea0cc374abbbba/inputs/pfull/asset_manifest.json", "sha256": "94bf6d7a1761a34c8e67c6225675aef2d27d3b61d6af402b5f08df78d1e0c3c3", "size_bytes": 5029}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_02.png", "sha256": "8c56bce38ef6592c297e31bb98961a7e1d3f0b8323af472f8e0af4e0f18ab91a", "size_bytes": 269529}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df211c29fea0cc374abbbba/inputs/r3/r3_asset_manifest.json", "sha256": "d420fdfe8415b208118aa2a05be167782f30948a02071acf82d6536c6506bf7b", "size_bytes": 4562}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c5e1f178a467ff8cbd254bd6e2a067198c526f223948b63e61281add591b1727", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [42.0, 262.0, 520.0, 506.0], "bbox_xyxy_clipped": [42.0, 262.0, 562.0, 768.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 610.0, 150.0, 150.0], "bbox_xyxy_clipped": [0.0, 610.0, 150.0, 760.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [214.0, 706.0, 120.0, 120.0], "bbox_xyxy_clipped": [214.0, 706.0, 334.0, 826.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [78.0, 770.0, 112.0, 112.0], "bbox_xyxy_clipped": [78.0, 770.0, 190.0, 882.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [328.0, 150.0, 128.0, 128.0], "bbox_xyxy_clipped": [328.0, 150.0, 456.0, 278.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [226.0, 196.0, 122.0, 362.0], "bbox_xyxy_clipped": [226.0, 196.0, 348.0, 558.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [540.0, 120.0, 58.0, 362.0], "bbox_xyxy_clipped": [540.0, 120.0, 598.0, 482.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [246.0, 90.0, 512.0, 52.0], "bbox_xyxy_clipped": [246.0, 90.0, 758.0, 142.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [628.0, 170.0, 340.0, 209.0], "bbox_xyxy_clipped": [628.0, 170.0, 968.0, 379.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [628.0, 242.0, 340.0, 209.0], "bbox_xyxy_clipped": [628.0, 242.0, 968.0, 451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [646.0, 492.0, 290.0, 38.0], "bbox_xyxy_clipped": [646.0, 492.0, 936.0, 530.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [936.0, 474.0, 75.0, 49.0], "bbox_xyxy_clipped": [936.0, 474.0, 1011.0, 523.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [960.0, 518.0, 60.0, 39.0], "bbox_xyxy_clipped": [960.0, 518.0, 1020.0, 557.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [635.0, 916.0, 396.0, 90.0], "bbox_xyxy_clipped": [635.0, 916.0, 1031.0, 1006.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004136717056751496}, "Ove": {"reason": null, "status": "ok", "value": 0.05948193546204652}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5cd68c8b7d4459dfe1341b4b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd68c8b7d4459dfe1341b4b/pipeline/l0_result.json", "sha256": "e9e13f1f29e8e7be33803f750075daa5018b4fcceaa364498620d290fc12749e", "size_bytes": 12628}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd68c8b7d4459dfe1341b4b/inputs/pfull/asset_manifest.json", "sha256": "e0e5d9bad3a92d40ab69f95823dc5c8c329b2e1a568cbbead547192a28001581", "size_bytes": 7548}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd68c8b7d4459dfe1341b4b/renders/r0_candidate_02.png", "sha256": "c5e1f178a467ff8cbd254bd6e2a067198c526f223948b63e61281add591b1727", "size_bytes": 463484}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cd68c8b7d4459dfe1341b4b/inputs/r3/r3_asset_manifest.json", "sha256": "c8af64dce8183ba62d8ff9fed36d8d295925edd33991234e335ee41351e6aa62", "size_bytes": 6659}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "134421a8976887a0af826184397d62bb53cfa46313385e3ec8aace786115eddc", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [28.0, 24.0, 320.0, 225.0], "bbox_xyxy_clipped": [28.0, 24.0, 348.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [672.0, 118.0, 244.0, 173.0], "bbox_xyxy_clipped": [672.0, 118.0, 916.0, 291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [650.0, 318.0, 300.0, 41.0], "bbox_xyxy_clipped": [650.0, 318.0, 950.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [510.0, 48.0, 420.0, 83.0], "bbox_xyxy_clipped": [510.0, 48.0, 930.0, 131.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [515.0, 145.0, 385.0, 59.0], "bbox_xyxy_clipped": [515.0, 145.0, 900.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [515.0, 210.0, 430.0, 76.0], "bbox_xyxy_clipped": [515.0, 210.0, 945.0, 286.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [520.0, 310.0, 320.0, 33.0], "bbox_xyxy_clipped": [520.0, 310.0, 840.0, 343.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [520.0, 600.0, 420.0, 25.0], "bbox_xyxy_clipped": [520.0, 600.0, 940.0, 625.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002270053755026379}, "Ove": {"reason": null, "status": "ok", "value": 0.11195467391709887}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5e8ece9d4b3890eb0711d458", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8ece9d4b3890eb0711d458/pipeline/l0_result.json", "sha256": "cb11a867bf872ec5199792d501a0303e0f92401b21711df2d796b30617c170d8", "size_bytes": 7753}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8ece9d4b3890eb0711d458/inputs/pfull/asset_manifest.json", "sha256": "ed5b3a54dc67b2e9487bc9754bc1cf4a6d368d4d7c77519d8adb4cfb799fdb62", "size_bytes": 4927}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8ece9d4b3890eb0711d458/renders/r0_candidate_01.png", "sha256": "134421a8976887a0af826184397d62bb53cfa46313385e3ec8aace786115eddc", "size_bytes": 83140}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8ece9d4b3890eb0711d458/inputs/r3/r3_asset_manifest.json", "sha256": "c6ee123a06a28790bbea0f619d51cbfb66b3b8ca26584d276cfc6a995bfc7da8", "size_bytes": 4489}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1d967c623898b25175e5f9a28209e2f743f5bef5f76c358aa7620ea829aacf29", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [72.0, 70.0, 454.0, 451.0], "bbox_xyxy_clipped": [72.0, 70.0, 526.0, 521.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [623.0, 642.0, 360.0, 360.0], "bbox_xyxy_clipped": [623.0, 642.0, 983.0, 1002.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [614.0, 610.0, 294.0, 287.0], "bbox_xyxy_clipped": [614.0, 610.0, 908.0, 897.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [660.0, 706.0, 332.0, 105.0], "bbox_xyxy_clipped": [660.0, 706.0, 992.0, 811.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [130.0, 145.0, 328.0, 74.0], "bbox_xyxy_clipped": [130.0, 145.0, 458.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.010076456176627877}, "Occ": {"reason": null, "status": "ok", "value": 0.004634060317353178}, "Ove": {"reason": null, "status": "ok", "value": 0.23441263028305973}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5a3288d4d8141396fe9b8539", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a3288d4d8141396fe9b8539/pipeline/l0_result.json", "sha256": "11bbe57daa39ce11166cc072407871a78a5be84e2f8119e540fc73ab383af97f", "size_bytes": 7029}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a3288d4d8141396fe9b8539/inputs/pfull/asset_manifest.json", "sha256": "875f8c009996a9d6586173c240b7bb722caafe8766948c6aacc00925b95072c2", "size_bytes": 2935}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a3288d4d8141396fe9b8539/renders/r0_candidate_01.png", "sha256": "1d967c623898b25175e5f9a28209e2f743f5bef5f76c358aa7620ea829aacf29", "size_bytes": 424976}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a3288d4d8141396fe9b8539/inputs/r3/r3_asset_manifest.json", "sha256": "07974c4e5745a5cd538967c4a9a6423412569f554eec80cfd00ebf3fb4f41f4b", "size_bytes": 2636}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "264415463d7137d330200296f43f62d7e6338c1d2e1052eaa12b7f38ece5ea35", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0016", "bbox_lwh_raw": [90.0, 72.0, 330.0, 63.0], "bbox_xyxy_clipped": [90.0, 72.0, 420.0, 135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [88.0, 132.0, 690.0, 62.0], "bbox_xyxy_clipped": [88.0, 132.0, 778.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [2160.0, 155.0, 540.0, 122.0], "bbox_xyxy_clipped": [2160.0, 155.0, 2700.0, 277.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [2090.0, 300.0, 860.0, 907.0], "bbox_xyxy_clipped": [2090.0, 300.0, 2950.0, 1207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [2195.0, 1235.0, 650.0, 105.0], "bbox_xyxy_clipped": [2195.0, 1235.0, 2845.0, 1340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [2170.0, 1355.0, 760.0, 203.0], "bbox_xyxy_clipped": [2170.0, 1355.0, 2930.0, 1558.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [2130.0, 520.0, 535.0, 120.0], "bbox_xyxy_clipped": [2130.0, 520.0, 2665.0, 640.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [860.0, 560.0, 920.0, 970.0], "bbox_xyxy_clipped": [860.0, 560.0, 1780.0, 1530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [2120.0, 700.0, 720.0, 113.0], "bbox_xyxy_clipped": [2120.0, 700.0, 2840.0, 813.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [2145.0, 835.0, 680.0, 183.0], "bbox_xyxy_clipped": [2145.0, 835.0, 2825.0, 1018.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [2140.0, 1100.0, 490.0, 120.0], "bbox_xyxy_clipped": [2140.0, 1100.0, 2630.0, 1220.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [2000.0, 1240.0, 860.0, 907.0], "bbox_xyxy_clipped": [2000.0, 1240.0, 2860.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [2090.0, 1630.0, 800.0, 144.0], "bbox_xyxy_clipped": [2090.0, 1630.0, 2890.0, 1774.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [2115.0, 1790.0, 660.0, 248.0], "bbox_xyxy_clipped": [2115.0, 1790.0, 2775.0, 2000.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1500.0, 1001.0], "bbox_xyxy_clipped": [0.0, 0.0, 1500.0, 1001.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2550.0, 0.0, 450.0, 740.0], "bbox_xyxy_clipped": [2550.0, 0.0, 3000.0, 740.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 1500.0, 900.0, 1480.0], "bbox_xyxy_clipped": [0.0, 1500.0, 900.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [2660.0, 430.0, 340.0, 558.0], "bbox_xyxy_clipped": [2660.0, 430.0, 3000.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1500.0, 0.0, 1500.0, 475.0], "bbox_xyxy_clipped": [1500.0, 0.0, 3000.0, 475.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [2890.0, 30.0, 95.0, 298.0], "bbox_xyxy_clipped": [2890.0, 30.0, 2985.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [2885.0, 430.0, 95.0, 297.0], "bbox_xyxy_clipped": [2885.0, 430.0, 2980.0, 727.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1540.0, 420.0, 360.0, 400.0], "bbox_xyxy_clipped": [1540.0, 420.0, 1900.0, 820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0039749790392588965}, "Ove": {"reason": null, "status": "ok", "value": 0.14438091556186292}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f5b5a3da637ee11e3e5adbf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f5b5a3da637ee11e3e5adbf/pipeline/l0_result.json", "sha256": "00838c49388201e3f54b65cf6f9929a91d2be7e93fafc3cfd9f6dc78714dda95", "size_bytes": 16153}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/pfull/asset_manifest.json", "sha256": "be41300614a31e4ba9b91a69db758fefa775e301997e7c8ac61fd4759b5796e6", "size_bytes": 11896}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_02.png", "sha256": "264415463d7137d330200296f43f62d7e6338c1d2e1052eaa12b7f38ece5ea35", "size_bytes": 2097064}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/r3/r3_asset_manifest.json", "sha256": "053a8bddd3faea0ac5f68b076e34e2c9d9ad6b4f84ba58b0877164e794a69a74", "size_bytes": 10605}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d828f8a499a873a16b475bade697a8f76f6d3880d38f1a9f1b96570d46eeb4c6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/inputs/pfull/assets/asset_0000.png", "asset_sha256": "b970d2bcfee9da3df17336afc3d35ad91f4e9994b7c88f1068a74ced9c860642", "asset_size_bytes": 3530, "kind": "asset", "pfull_asset_sha256": "b970d2bcfee9da3df17336afc3d35ad91f4e9994b7c88f1068a74ced9c860642", "r3_asset_sha256": "b970d2bcfee9da3df17336afc3d35ad91f4e9994b7c88f1068a74ced9c860642", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 15, "valid": 14}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [82.0, 118.0, 198.0, 344.0], "bbox_xyxy_clipped": [82.0, 118.0, 280.0, 462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [286.0, 150.0, 201.0, 44.0], "bbox_xyxy_clipped": [286.0, 150.0, 487.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [289.0, 205.0, 160.0, 30.0], "bbox_xyxy_clipped": [289.0, 205.0, 449.0, 235.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [288.0, 255.0, 83.0, 48.0], "bbox_xyxy_clipped": [288.0, 255.0, 371.0, 303.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [382.0, 256.0, 109.0, 56.0], "bbox_xyxy_clipped": [382.0, 256.0, 491.0, 312.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [287.0, 324.0, 208.0, 22.0], "bbox_xyxy_clipped": [287.0, 324.0, 495.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [291.0, 372.0, 174.0, 23.0], "bbox_xyxy_clipped": [291.0, 372.0, 465.0, 395.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [290.0, 399.0, 184.0, 26.0], "bbox_xyxy_clipped": [290.0, 399.0, 474.0, 425.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [289.0, 428.0, 210.0, 25.0], "bbox_xyxy_clipped": [289.0, 428.0, 499.0, 453.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [288.0, 456.0, 208.0, 25.0], "bbox_xyxy_clipped": [288.0, 456.0, 496.0, 481.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [289.0, 485.0, 154.0, 24.0], "bbox_xyxy_clipped": [289.0, 485.0, 443.0, 509.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [272.0, 140.0, 243.0, 100.0], "bbox_xyxy_clipped": [272.0, 140.0, 515.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [278.0, 289.0, 227.0, 48.0], "bbox_xyxy_clipped": [278.0, 289.0, 505.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [275.0, 352.0, 227.0, 68.0], "bbox_xyxy_clipped": [275.0, 352.0, 502.0, 420.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [281.0, 438.0, 10.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001060116082441522}, "Ove": {"reason": null, "status": "ok", "value": 0.11003500173279278}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5931159f95a7a863ddcdc76c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/pipeline/l0_result.json", "sha256": "1dc37820afcfd6021b2210027f07a265143378988d3039d1b741ce99cdb59fcc", "size_bytes": 13861}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/inputs/pfull/asset_manifest.json", "sha256": "ae02941ea8f0e20c7b051a072c36777a46b824aa50f3da6a233ba3eaa4fc4ea8", "size_bytes": 8692}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/renders/r0_candidate_02.png", "sha256": "d828f8a499a873a16b475bade697a8f76f6d3880d38f1a9f1b96570d46eeb4c6", "size_bytes": 75223}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/inputs/r3/r3_asset_manifest.json", "sha256": "08db38d27b726103982c84c987c45725bb33a6671b875dedb7fd29ceb102c959", "size_bytes": 7839}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5931159f95a7a863ddcdc76c/inputs/pfull/assets/asset_0000.png", "sha256": "b970d2bcfee9da3df17336afc3d35ad91f4e9994b7c88f1068a74ced9c860642", "size_bytes": 3530}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8f275b8f65d8388c66f29e5892df38193c5edcb7d3029f9d31415a3a69bc0d27", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 120.0, 520.0, 128.0], "bbox_xyxy_clipped": [42.0, 120.0, 562.0, 248.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [42.0, 268.0, 620.0, 51.0], "bbox_xyxy_clipped": [42.0, 268.0, 662.0, 319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 1260.0, 460.0, 94.0], "bbox_xyxy_clipped": [42.0, 1260.0, 502.0, 1354.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [42.0, 1370.0, 500.0, 64.0], "bbox_xyxy_clipped": [42.0, 1370.0, 542.0, 1434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [42.0, 1474.0, 620.0, 150.0], "bbox_xyxy_clipped": [42.0, 1474.0, 662.0, 1624.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [42.0, 1654.0, 720.0, 35.0], "bbox_xyxy_clipped": [42.0, 1654.0, 762.0, 1689.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [520.0, 1040.0, 518.0, 346.0], "bbox_xyxy_clipped": [520.0, 1040.0, 1038.0, 1386.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006405159769224925}, "Ove": {"reason": null, "status": "ok", "value": 0.0002384610590380806}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e45421a1cc98b350acda05c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e45421a1cc98b350acda05c/pipeline/l0_result.json", "sha256": "94106f2618e9113327c7af0dfc23c885fcb65eff5ffb8566ab23e258b9cb2d1d", "size_bytes": 7401}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e45421a1cc98b350acda05c/inputs/pfull/asset_manifest.json", "sha256": "457170a58ba8389910c987bfab14c1dcbf48cca280e3ee292d032411bdd1e536", "size_bytes": 4006}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e45421a1cc98b350acda05c/renders/r0_candidate_03.png", "sha256": "8f275b8f65d8388c66f29e5892df38193c5edcb7d3029f9d31415a3a69bc0d27", "size_bytes": 204982}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e45421a1cc98b350acda05c/inputs/r3/r3_asset_manifest.json", "sha256": "16baf58edafed2f609ec5cff6a62e61f1cf9555bf5fe6aecd7640a4f874cbfe1", "size_bytes": 3647}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e113171faf13d093f46a33b297fb80320393a63cde10b812b625a00777dc7e13", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [1215.0, 185.0, 620.0, 448.0], "bbox_xyxy_clipped": [1215.0, 185.0, 1835.0, 633.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [150.0, 115.0, 360.0, 136.0], "bbox_xyxy_clipped": [150.0, 115.0, 510.0, 251.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [170.0, 182.0, 320.0, 156.0], "bbox_xyxy_clipped": [170.0, 182.0, 490.0, 338.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [186.0, 196.0, 320.0, 156.0], "bbox_xyxy_clipped": [186.0, 196.0, 506.0, 352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [156.0, 274.0, 390.0, 142.0], "bbox_xyxy_clipped": [156.0, 274.0, 546.0, 416.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [172.0, 288.0, 390.0, 142.0], "bbox_xyxy_clipped": [172.0, 288.0, 562.0, 430.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [165.0, 468.0, 340.0, 60.0], "bbox_xyxy_clipped": [165.0, 468.0, 505.0, 528.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [166.0, 540.0, 178.0, 131.0], "bbox_xyxy_clipped": [166.0, 540.0, 344.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 735.0, 345.0, 39.0], "bbox_xyxy_clipped": [150.0, 735.0, 495.0, 774.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1010.0, 120.0, 350.0, 813.0], "bbox_xyxy_clipped": [1010.0, 120.0, 1360.0, 933.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1040.0, 92.0, 190.0, 811.0], "bbox_xyxy_clipped": [1040.0, 92.0, 1230.0, 903.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1285.0, 78.0, 390.0, 709.0], "bbox_xyxy_clipped": [1285.0, 78.0, 1675.0, 787.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [90.0, 86.0, 260.0, 146.0], "bbox_xyxy_clipped": [90.0, 86.0, 350.0, 232.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1410.0, 660.0, 300.0, 250.0], "bbox_xyxy_clipped": [1410.0, 660.0, 1710.0, 910.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036137146225229655}, "Ove": {"reason": null, "status": "ok", "value": 0.34833404369971843}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d234fcd8cba87f94325280c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d234fcd8cba87f94325280c/pipeline/l0_result.json", "sha256": "6215042f0c521cbe2d6da703e390c322fcba4bbf92d6abc90a29aabd4c61c084", "size_bytes": 12443}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d234fcd8cba87f94325280c/inputs/pfull/asset_manifest.json", "sha256": "95cd9b21a3ee48fcb9536351d9b82a1a5c72ce987e14cb36194119495cbdf3b4", "size_bytes": 7592}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d234fcd8cba87f94325280c/renders/r0_candidate_03.png", "sha256": "e113171faf13d093f46a33b297fb80320393a63cde10b812b625a00777dc7e13", "size_bytes": 402577}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5d234fcd8cba87f94325280c/inputs/r3/r3_asset_manifest.json", "sha256": "3c62d497a41abd1c7b2a30d27266fe1466ce38d878e71a4fde81782e5f2ac646", "size_bytes": 6807}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "246879ffaeaef79aa89397fd1b7ab33a70bb03deaf29ff2834a1f172c8f8a3f4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/inputs/pfull/assets/asset_0000.png", "asset_sha256": "ae94c1eb0596d5f8eb651f94958a40f993630af1562e742f99f81f2fc3fe67f4", "asset_size_bytes": 143191, "kind": "asset", "pfull_asset_sha256": "ae94c1eb0596d5f8eb651f94958a40f993630af1562e742f99f81f2fc3fe67f4", "r3_asset_sha256": "ae94c1eb0596d5f8eb651f94958a40f993630af1562e742f99f81f2fc3fe67f4", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "22a56ec4b2ad6237dd5858e0f932f543a2df62dd4d19c3a3554e4cb31e1126ee", "canvas": {"height": 280, "width": 336}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [18.0, 42.0, 300.0, 11.0], "bbox_xyxy_clipped": [18.0, 42.0, 318.0, 53.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [15.0, 226.0, 28.0, 44.0], "bbox_xyxy_clipped": [15.0, 226.0, 43.0, 270.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [38.0, 58.0, 210.0, 34.0], "bbox_xyxy_clipped": [38.0, 58.0, 248.0, 92.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [121.0, 78.0, 120.0, 42.0], "bbox_xyxy_clipped": [121.0, 78.0, 241.0, 120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [160.0, 69.0, 98.0, 24.0], "bbox_xyxy_clipped": [160.0, 69.0, 258.0, 93.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [86.0, 123.0, 214.0, 20.0], "bbox_xyxy_clipped": [86.0, 123.0, 300.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.009322968411729967}, "Occ": {"reason": null, "status": "ok", "value": 0.11605528365298584}, "Ove": {"reason": null, "status": "ok", "value": 0.10462007625606994}, "Rea": {"reason": null, "status": "ok", "value": 0.026526053587446235}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "6bf2f26809ae0980e7dd60dce688c11640e2e74d8336c2fcd7a5185b5961caf4", "status": "computed"}, "sample_id": "58a4172995a7a863ddcc6eb8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/pipeline/l0_result.json", "sha256": "d28f0ad27a0f5aa596d53bc071385788a350ebaf178a358790f67ea68da99c70", "size_bytes": 7551}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/inputs/pfull/asset_manifest.json", "sha256": "f651efbafc7f958fee827780cd9d2b3d04c550c04ba1f9cab9b6b393e56bba6d", "size_bytes": 3980}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/renders/r0_candidate_03.png", "sha256": "246879ffaeaef79aa89397fd1b7ab33a70bb03deaf29ff2834a1f172c8f8a3f4", "size_bytes": 139875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/inputs/r3/r3_asset_manifest.json", "sha256": "6610a1d4d5b0f1aa3a56b2573a4ad1ce9de71faee73fe92dfadd53bb27c6d188", "size_bytes": 3499}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58a4172995a7a863ddcc6eb8/inputs/pfull/assets/asset_0000.png", "sha256": "ae94c1eb0596d5f8eb651f94958a40f993630af1562e742f99f81f2fc3fe67f4", "size_bytes": 143191}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "523b552290b7a466285512ce0e42c80534e6ddde59594cf851b17736245e2e91", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "c0556990e4db4aaf6d8521ebf28fa1b96fc8bd14cfbe797b49cafbae3b82c2e0", "canvas": {"height": 1600, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [468.0, 520.0, 520.0, 520.0], "bbox_xyxy_clipped": [468.0, 520.0, 988.0, 1040.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [180.0, 210.0, 360.0, 528.0], "bbox_xyxy_clipped": [180.0, 210.0, 540.0, 738.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [188.0, 760.0, 300.0, 101.0], "bbox_xyxy_clipped": [188.0, 760.0, 488.0, 861.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1080.0, 210.0, 420.0, 696.0], "bbox_xyxy_clipped": [1080.0, 210.0, 1500.0, 906.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010808820878892573}, "Ove": {"reason": null, "status": "ok", "value": 0.01051303252687787}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "619368c1cad47b2d1740fc92543374125ab6e42466bb1ae774b4de259639c10c", "status": "computed"}, "sample_id": "5f6af7baa637ee11e3909ab1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f6af7baa637ee11e3909ab1/pipeline/l0_result.json", "sha256": "9261f206cf9780519aad48b1556f19d45d115a8dc2b743ed22c18a0e53a53cab", "size_bytes": 5866}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f6af7baa637ee11e3909ab1/inputs/pfull/asset_manifest.json", "sha256": "8e31342e35ed305531dafed3d219aa53c593a893441abb8284e2f6efb083df88", "size_bytes": 2419}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f6af7baa637ee11e3909ab1/renders/r0_candidate_03.png", "sha256": "523b552290b7a466285512ce0e42c80534e6ddde59594cf851b17736245e2e91", "size_bytes": 262700}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f6af7baa637ee11e3909ab1/inputs/r3/r3_asset_manifest.json", "sha256": "2974bf570b8a01941b77dd9367bf930f7b306522b0611200e5f82ddafad24382", "size_bytes": 2209}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5a0d846ee062433c1e8bb870bdaabffbbe8ffe777369ecc71361fab43bec6b9e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [575.0, 1090.0, 505.0, 337.0], "bbox_xyxy_clipped": [575.0, 1090.0, 1080.0, 1427.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 104.0, 420.0, 141.0], "bbox_xyxy_clipped": [34.0, 104.0, 454.0, 245.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [36.0, 255.0, 260.0, 42.0], "bbox_xyxy_clipped": [36.0, 255.0, 296.0, 297.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [34.0, 388.0, 310.0, 37.0], "bbox_xyxy_clipped": [34.0, 388.0, 344.0, 425.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 442.0, 250.0, 30.0], "bbox_xyxy_clipped": [34.0, 442.0, 284.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [296.0, 398.0, 20.0, 482.0], "bbox_xyxy_clipped": [296.0, 398.0, 316.0, 880.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002463853006340352}, "Ove": {"reason": null, "status": "ok", "value": 0.004375303840544483}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5f48b9b9a637ee11e341870b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f48b9b9a637ee11e341870b/pipeline/l0_result.json", "sha256": "b6f6e96b3f8625c5a3e27d9f5f9c9fc1189ace0ef1f18462a794385815fd40d7", "size_bytes": 7038}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f48b9b9a637ee11e341870b/inputs/pfull/asset_manifest.json", "sha256": "5cbf8dfa9d761d4ffbec0e0576dd63077b7734689379bf14d39537c7f6d37ea8", "size_bytes": 3391}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f48b9b9a637ee11e341870b/renders/r0_candidate_03.png", "sha256": "5a0d846ee062433c1e8bb870bdaabffbbe8ffe777369ecc71361fab43bec6b9e", "size_bytes": 231132}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f48b9b9a637ee11e341870b/inputs/r3/r3_asset_manifest.json", "sha256": "ed2b1246b5d1071ffda0cd15ae83c6b6dcee83bacc368449cc3e42da5349747f", "size_bytes": 3058}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4d411fcff30e5c534b971af6829b9816c220a88026a1200a153bf822d561d2b6", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [620.0, 210.0, 320.0, 232.0], "bbox_xyxy_clipped": [620.0, 210.0, 940.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [90.0, 120.0, 360.0, 233.0], "bbox_xyxy_clipped": [90.0, 120.0, 450.0, 353.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [500.0, 145.0, 120.0, 227.0], "bbox_xyxy_clipped": [500.0, 145.0, 620.0, 372.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [520.0, 180.0, 92.0, 100.0], "bbox_xyxy_clipped": [520.0, 180.0, 612.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [640.0, 130.0, 92.0, 100.0], "bbox_xyxy_clipped": [640.0, 130.0, 732.0, 230.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [320.0, 265.0, 260.0, 16.0], "bbox_xyxy_clipped": [320.0, 265.0, 580.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003395136495186334}, "Occ": {"reason": null, "status": "ok", "value": 0.0006268822195708332}, "Ove": {"reason": null, "status": "ok", "value": 0.08320212665813387}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5abd0af44b568b8eec968c46", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5abd0af44b568b8eec968c46/pipeline/l0_result.json", "sha256": "c62299de79d9f092ec066c3c95a18ea7e6878a6e6ed3251a82b0ed4ee8481d9d", "size_bytes": 6816}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5abd0af44b568b8eec968c46/inputs/pfull/asset_manifest.json", "sha256": "d347d3b70fc12cfba07389804198f7a542ce5685f6384a547af9715c05095ac4", "size_bytes": 3373}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5abd0af44b568b8eec968c46/renders/r0_candidate_03.png", "sha256": "4d411fcff30e5c534b971af6829b9816c220a88026a1200a153bf822d561d2b6", "size_bytes": 109523}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5abd0af44b568b8eec968c46/inputs/r3/r3_asset_manifest.json", "sha256": "e9bff9c2b8f4120520b132b7e9ed17a0c7685a9d148c06ad8bb1a7f94a19b85d", "size_bytes": 2968}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "eb3c2aed00a167aac67304db5fbf8b15d0a14762427ce708f989c381ac65dc34", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/inputs/pfull/assets/asset_0000.png", "asset_sha256": "d460f43cc703bc8549264cf8d7ecbefcc61f9c996d990c085e87f759b732b061", "asset_size_bytes": 1167, "kind": "asset", "pfull_asset_sha256": "d460f43cc703bc8549264cf8d7ecbefcc61f9c996d990c085e87f759b732b061", "r3_asset_sha256": "d460f43cc703bc8549264cf8d7ecbefcc61f9c996d990c085e87f759b732b061", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "be1c83f2aec8b87257dd2c7361c37ea0327e37ceb5ef6c98816a3d32d9435ef2", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 11, "valid": 10}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [26.0, 20.0, 170.0, 19.0], "bbox_xyxy_clipped": [26.0, 20.0, 196.0, 39.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [27.0, 64.0, 139.0, 14.0], "bbox_xyxy_clipped": [27.0, 64.0, 166.0, 78.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [27.0, 86.0, 129.0, 35.0], "bbox_xyxy_clipped": [27.0, 86.0, 156.0, 121.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [27.0, 135.0, 174.0, 19.0], "bbox_xyxy_clipped": [27.0, 135.0, 201.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [27.0, 260.0, 109.0, 17.0], "bbox_xyxy_clipped": [27.0, 260.0, 136.0, 277.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [203.0, 54.0, 179.0, 94.0], "bbox_xyxy_clipped": [203.0, 54.0, 382.0, 148.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [284.0, 154.0, 15.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [178.0, 35.0, 16.0, 16.0], "bbox_xyxy_clipped": [178.0, 35.0, 194.0, 51.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [44.0, 33.0, 14.0, 14.0], "bbox_xyxy_clipped": [44.0, 33.0, 58.0, 47.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [173.0, 184.0, 13.0, 13.0], "bbox_xyxy_clipped": [173.0, 184.0, 186.0, 197.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [356.0, 139.0, 18.0, 18.0], "bbox_xyxy_clipped": [356.0, 139.0, 374.0, 157.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 2.3195756916540703e-05}, "Ove": {"reason": null, "status": "ok", "value": 0.005337330622031551}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "6bc8b196b8aafbcc3276495f18423267a6bbd2d3b610bce44d26d089fb78e64e", "status": "computed"}, "sample_id": "5aab8c95f07aee69776b2742", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/pipeline/l0_result.json", "sha256": "037c1fb52ba378d5487108eeafabc195b98ee40bc74796b0ca5fc39a65704ec9", "size_bytes": 10860}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/inputs/pfull/asset_manifest.json", "sha256": "e4639596439c52c77e3a385eb134d717241666fb4d26f93b74d22a55693275d2", "size_bytes": 6673}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/renders/r0_candidate_03.png", "sha256": "eb3c2aed00a167aac67304db5fbf8b15d0a14762427ce708f989c381ac65dc34", "size_bytes": 39584}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/inputs/r3/r3_asset_manifest.json", "sha256": "00bbc60cc31896c1e61887a5979eecb7605860a7982606714571efbadee250e1", "size_bytes": 5864}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5aab8c95f07aee69776b2742/inputs/pfull/assets/asset_0000.png", "sha256": "d460f43cc703bc8549264cf8d7ecbefcc61f9c996d990c085e87f759b732b061", "size_bytes": 1167}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9e6b83978c854dd9b4f88a151702201ebb6e53185620e4679336c537b3b4fe05", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [566.0, 24.0, 610.0, 319.0], "bbox_xyxy_clipped": [566.0, 24.0, 1176.0, 343.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [80.0, 463.0, 495.0, 69.0], "bbox_xyxy_clipped": [80.0, 463.0, 575.0, 532.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 389.0, 286.0, 83.0], "bbox_xyxy_clipped": [88.0, 389.0, 374.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [386.0, 503.0, 214.0, 5.0], "bbox_xyxy_clipped": [386.0, 503.0, 600.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.01161996257362889}, "Occ": {"reason": null, "status": "ok", "value": 0.0027233832819830253}, "Ove": {"reason": null, "status": "ok", "value": 0.018524304947291705}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5fbb62b5a637ee11e3cce210", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbb62b5a637ee11e3cce210/pipeline/l0_result.json", "sha256": "2dc57216788d25c817d1b783a8dbda0b3e187fd154f1f47b9d52bee571aa7015", "size_bytes": 5870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbb62b5a637ee11e3cce210/inputs/pfull/asset_manifest.json", "sha256": "20ced7a0d881596b12b65595c2cf5792c6f7dd70a491f6348e2976e50e222b28", "size_bytes": 2376}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbb62b5a637ee11e3cce210/renders/r0_candidate_02.png", "sha256": "9e6b83978c854dd9b4f88a151702201ebb6e53185620e4679336c537b3b4fe05", "size_bytes": 223950}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fbb62b5a637ee11e3cce210/inputs/r3/r3_asset_manifest.json", "sha256": "cbffbc634d8adb25091bcc60d8612f7fe55655cbd9f8665d59905d7242c43964", "size_bytes": 2220}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e3601f2098ace887cda9184adb7c9f612a75dbe698bab29fddd0ef02e144df87", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 22.0, 188.0, 260.0], "bbox_xyxy_clipped": [18.0, 22.0, 206.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [222.0, 34.0, 120.0, 14.0], "bbox_xyxy_clipped": [222.0, 34.0, 342.0, 48.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [219.0, 57.0, 133.0, 13.0], "bbox_xyxy_clipped": [219.0, 57.0, 352.0, 70.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [220.0, 89.0, 117.0, 16.0], "bbox_xyxy_clipped": [220.0, 89.0, 337.0, 105.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [220.0, 118.0, 52.0, 16.0], "bbox_xyxy_clipped": [220.0, 118.0, 272.0, 134.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [220.0, 142.0, 74.0, 48.0], "bbox_xyxy_clipped": [220.0, 142.0, 294.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [201.0, 205.0, 3.0, 252.0], "bbox_xyxy_clipped": [201.0, 205.0, 204.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [207.0, 205.0, 3.0, 252.0], "bbox_xyxy_clipped": [207.0, 205.0, 210.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [223.0, 290.0, 108.0, 17.0], "bbox_xyxy_clipped": [223.0, 290.0, 331.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [223.0, 321.0, 31.0, 19.0], "bbox_xyxy_clipped": [223.0, 321.0, 254.0, 340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [256.0, 320.0, 26.0, 18.0], "bbox_xyxy_clipped": [256.0, 320.0, 282.0, 338.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [223.0, 408.0, 105.0, 14.0], "bbox_xyxy_clipped": [223.0, 408.0, 328.0, 422.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [223.0, 431.0, 114.0, 12.0], "bbox_xyxy_clipped": [223.0, 431.0, 337.0, 443.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001902979685177653}, "Ove": {"reason": null, "status": "ok", "value": 0.00035966462441515575}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "589dcf6a95a7a863ddcc5a05", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dcf6a95a7a863ddcc5a05/pipeline/l0_result.json", "sha256": "4bc7ab4884f0d07c37cac4d1496fefc868e9e9a476f9e530425462f2b62d1204", "size_bytes": 11273}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dcf6a95a7a863ddcc5a05/inputs/pfull/asset_manifest.json", "sha256": "b96e3e0d0865d8a0184c189ca54550bd04a859ddc519c22a4618b9df8ad90dfd", "size_bytes": 7113}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dcf6a95a7a863ddcc5a05/renders/r0_candidate_01.png", "sha256": "e3601f2098ace887cda9184adb7c9f612a75dbe698bab29fddd0ef02e144df87", "size_bytes": 75271}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/589dcf6a95a7a863ddcc5a05/inputs/r3/r3_asset_manifest.json", "sha256": "183e87fce238496868a1ae6cabc3294392b2392df3bc39ef68d84e92deff98ba", "size_bytes": 6589}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "32929ce365c763614c83637491c76588052941bb1fe150b0ee27cbc25f5ba879", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [72.0, 82.0, 402.0, 152.0], "bbox_xyxy_clipped": [72.0, 82.0, 474.0, 234.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [76.0, 225.0, 515.0, 94.0], "bbox_xyxy_clipped": [76.0, 225.0, 591.0, 319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [74.0, 342.0, 240.0, 56.0], "bbox_xyxy_clipped": [74.0, 342.0, 314.0, 398.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [76.0, 401.0, 248.0, 52.0], "bbox_xyxy_clipped": [76.0, 401.0, 324.0, 453.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [70.0, 470.0, 430.0, 58.0], "bbox_xyxy_clipped": [70.0, 470.0, 500.0, 528.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [95.0, 533.0, 216.0, 82.0], "bbox_xyxy_clipped": [95.0, 533.0, 311.0, 615.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [78.0, 632.0, 320.0, 40.0], "bbox_xyxy_clipped": [78.0, 632.0, 398.0, 672.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [74.0, 680.0, 196.0, 62.0], "bbox_xyxy_clipped": [74.0, 680.0, 270.0, 742.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [76.0, 748.0, 235.0, 46.0], "bbox_xyxy_clipped": [76.0, 748.0, 311.0, 794.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [642.0, 538.0, 352.0, 352.0], "bbox_xyxy_clipped": [642.0, 538.0, 994.0, 890.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [760.0, 430.0, 220.0, 220.0], "bbox_xyxy_clipped": [760.0, 430.0, 980.0, 650.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [830.0, 86.0, 168.0, 168.0], "bbox_xyxy_clipped": [830.0, 86.0, 998.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [914.0, 182.0, 110.0, 110.0], "bbox_xyxy_clipped": [914.0, 182.0, 1024.0, 292.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [58.0, 322.0, 430.0, 10.0], "bbox_xyxy_clipped": [58.0, 322.0, 488.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [76.0, 615.0, 410.0, 8.0], "bbox_xyxy_clipped": [76.0, 615.0, 486.0, 623.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [58.0, 568.0, 360.0, 12.0], "bbox_xyxy_clipped": [58.0, 568.0, 418.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [58.0, 590.0, 300.0, 6.0], "bbox_xyxy_clipped": [58.0, 590.0, 358.0, 596.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036909757761715276}, "Ove": {"reason": null, "status": "ok", "value": 0.034212296078411676}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5ce6d6a47d4459dfe1cd2b44", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ce6d6a47d4459dfe1cd2b44/pipeline/l0_result.json", "sha256": "1243ea26db6780f45c301956ad169192a32732eddfa1beef5b6b4982d4d944c0", "size_bytes": 13041}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ce6d6a47d4459dfe1cd2b44/inputs/pfull/asset_manifest.json", "sha256": "4e7170040ade50a57bdc50f837b13848471d8ca7428f8375a3432fc42628988c", "size_bytes": 9090}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ce6d6a47d4459dfe1cd2b44/renders/r0_candidate_03.png", "sha256": "32929ce365c763614c83637491c76588052941bb1fe150b0ee27cbc25f5ba879", "size_bytes": 341141}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5ce6d6a47d4459dfe1cd2b44/inputs/r3/r3_asset_manifest.json", "sha256": "6b58e749ea9eaab9a1a591672743cc604f133f3c973eb9663e0b77e81bf2fbdc", "size_bytes": 8025}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d9dca8c52fcdeeefc3641ba57a0c285cd988ec0c8c61af4e96c6b4113e63303f", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 4, "valid": 4}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [36.0, 58.0, 320.0, 164.0], "bbox_xyxy_clipped": [36.0, 58.0, 356.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [420.0, 145.0, 540.0, 57.0], "bbox_xyxy_clipped": [420.0, 145.0, 960.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [574.0, 224.0, 220.0, 181.0], "bbox_xyxy_clipped": [574.0, 224.0, 794.0, 405.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [906.0, 390.0, 64.0, 64.0], "bbox_xyxy_clipped": [906.0, 390.0, 970.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.01020871455628804}, "Occ": {"reason": null, "status": "ok", "value": 0.003042387003987707}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5df38d389fea0cc374c15178", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df38d389fea0cc374c15178/pipeline/l0_result.json", "sha256": "1ac9f4a86de34f61e77b4e530e3d823439e1b28e12feabdb4d093bbb9aecc0a8", "size_bytes": 5528}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df38d389fea0cc374c15178/inputs/pfull/asset_manifest.json", "sha256": "ac91e2c3d08ce2ab1bb076a7520b48543a1764b3213861877215401f0e8bcd67", "size_bytes": 2457}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df38d389fea0cc374c15178/renders/r0_candidate_01.png", "sha256": "d9dca8c52fcdeeefc3641ba57a0c285cd988ec0c8c61af4e96c6b4113e63303f", "size_bytes": 68662}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5df38d389fea0cc374c15178/inputs/r3/r3_asset_manifest.json", "sha256": "6f45d814b3d42254dbff4b91f68c6956bf2cd1c2fa4215edfbaf10ea66ecc3e5", "size_bytes": 2238}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9066778dc7cd62781822c3300712a3768e598dd420c03a8a942864bb769f3f85", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 11, "valid": 10}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [584.0, 73.0, 304.0, 232.0], "bbox_xyxy_clipped": [584.0, 73.0, 888.0, 305.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [729.0, 34.0, 84.0, 110.0], "bbox_xyxy_clipped": [729.0, 34.0, 813.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [580.0, 319.0, 280.0, 30.0], "bbox_xyxy_clipped": [580.0, 319.0, 860.0, 349.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [545.0, 61.0, 320.0, 42.0], "bbox_xyxy_clipped": [545.0, 61.0, 865.0, 103.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [566.0, 422.0, 250.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [98.0, 304.0, 422.0, 456.0], "bbox_xyxy_clipped": [98.0, 304.0, 520.0, 760.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [39.0, 77.0, 286.0, 270.0], "bbox_xyxy_clipped": [39.0, 77.0, 325.0, 347.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 190.0, 353.0], "bbox_xyxy_clipped": [0.0, 0.0, 190.0, 353.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [22.0, 624.0, 114.0, 736.0], "bbox_xyxy_clipped": [22.0, 624.0, 136.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [452.0, 58.0, 2.0, 384.0], "bbox_xyxy_clipped": [452.0, 58.0, 454.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [515.0, 355.0, 2.0, 384.0], "bbox_xyxy_clipped": [515.0, 355.0, 517.0, 739.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.011036714501474518}, "Occ": {"reason": null, "status": "ok", "value": 0.00537572898309642}, "Ove": {"reason": null, "status": "ok", "value": 0.08562063409915457}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5bd1c85078e1194aa6186300", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1c85078e1194aa6186300/pipeline/l0_result.json", "sha256": "f5fc8cb2c664dbeb1b3331946ff8784761db18b37644b1803dff8c77f3196f68", "size_bytes": 9980}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1c85078e1194aa6186300/inputs/pfull/asset_manifest.json", "sha256": "e32ce5a5ae12452816431d79bc8b4f0f8d50c5c95f1918247269d8fd742969d3", "size_bytes": 5976}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1c85078e1194aa6186300/renders/r0_candidate_02.png", "sha256": "9066778dc7cd62781822c3300712a3768e598dd420c03a8a942864bb769f3f85", "size_bytes": 359018}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5bd1c85078e1194aa6186300/inputs/r3/r3_asset_manifest.json", "sha256": "2f40902ca55ead84f70371f77d247d87dc1bec9f7cede48c371ade1805cd0ade", "size_bytes": 5222}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1de293d86656a2f39f31fa8b0a12cd5cecfc24138532b345d5147bdb11ff9510", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [132.0, 88.0, 310.0, 449.0], "bbox_xyxy_clipped": [132.0, 88.0, 442.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [430.0, 126.0, 88.0, 233.0], "bbox_xyxy_clipped": [430.0, 126.0, 518.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [478.0, 161.0, 58.0, 57.0], "bbox_xyxy_clipped": [478.0, 161.0, 536.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [554.0, 274.0, 40.0, 188.0], "bbox_xyxy_clipped": [554.0, 274.0, 594.0, 462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [790.0, 104.0, 238.0, 383.0], "bbox_xyxy_clipped": [790.0, 104.0, 1028.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [830.0, 438.0, 149.0, 117.0], "bbox_xyxy_clipped": [830.0, 438.0, 979.0, 555.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [860.0, 526.0, 220.0, 32.0], "bbox_xyxy_clipped": [860.0, 526.0, 1080.0, 558.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.011421659170819103}, "Occ": {"reason": null, "status": "ok", "value": 0.004316590114798396}, "Ove": {"reason": null, "status": "ok", "value": 0.05142337257294954}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "58b5643195a7a863ddcca2ad", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b5643195a7a863ddcca2ad/pipeline/l0_result.json", "sha256": "352f9a3f039de9bb2b2da329df89e8d1ec939a1c915f1ae1bcad63c82366057f", "size_bytes": 8290}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b5643195a7a863ddcca2ad/inputs/pfull/asset_manifest.json", "sha256": "cc67ae4817aaadfeff37355ac127bdfeb55c4eb7896d1283e1a74ebbdfb31bf7", "size_bytes": 4002}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b5643195a7a863ddcca2ad/renders/r0_candidate_02.png", "sha256": "1de293d86656a2f39f31fa8b0a12cd5cecfc24138532b345d5147bdb11ff9510", "size_bytes": 281759}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58b5643195a7a863ddcca2ad/inputs/r3/r3_asset_manifest.json", "sha256": "78805c0b108e72e83596735f0e693bd2320484fb6df6b7d37c32223904d80f7b", "size_bytes": 3615}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a64af0f8f74edb9a8b3e6601c37c45781c627111d83516a791f3660c2271a7f2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [48.0, 18.0, 584.0, 330.0], "bbox_xyxy_clipped": [48.0, 18.0, 632.0, 348.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1380.0, 818.0, 420.0, 236.0], "bbox_xyxy_clipped": [1380.0, 818.0, 1800.0, 1054.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1466.0, 720.0, 280.0, 309.0], "bbox_xyxy_clipped": [1466.0, 720.0, 1746.0, 1029.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1096.0, 728.0, 760.0, 25.0], "bbox_xyxy_clipped": [1096.0, 728.0, 1856.0, 753.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1444.0, 848.0, 376.0, 119.0], "bbox_xyxy_clipped": [1444.0, 848.0, 1820.0, 967.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1236.0, 92.0, 540.0, 152.0], "bbox_xyxy_clipped": [1236.0, 92.0, 1776.0, 244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1240.0, 260.0, 264.0, 57.0], "bbox_xyxy_clipped": [1240.0, 260.0, 1504.0, 317.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1238.0, 344.0, 620.0, 114.0], "bbox_xyxy_clipped": [1238.0, 344.0, 1858.0, 458.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1218.0, 938.0, 646.0, 33.0], "bbox_xyxy_clipped": [1218.0, 938.0, 1864.0, 971.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004073632820143095}, "Occ": {"reason": null, "status": "ok", "value": 0.002320919610256228}, "Ove": {"reason": null, "status": "ok", "value": 0.19076506044959965}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5a227705d8141396fe9a4657", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a227705d8141396fe9a4657/pipeline/l0_result.json", "sha256": "9b2fc895417e045d411380db03d2cfd9418ac0c13f49b819d307e19980dabae3", "size_bytes": 8390}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a227705d8141396fe9a4657/inputs/pfull/asset_manifest.json", "sha256": "b8b93bc8eacb866d2174050d897adc2aac33daf8ef307846937c2fb7b91fae6f", "size_bytes": 5113}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a227705d8141396fe9a4657/renders/r0_candidate_03.png", "sha256": "a64af0f8f74edb9a8b3e6601c37c45781c627111d83516a791f3660c2271a7f2", "size_bytes": 551310}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5a227705d8141396fe9a4657/inputs/r3/r3_asset_manifest.json", "sha256": "f796c5e1e32199d5606d823ce232f95e651a93f6e84cff2f17b6bd3c03b6076e", "size_bytes": 4575}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c546ddae3d5c4817f0325271a53c8d878ed412dcffa083294a88e116b74b9fd1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "45d45fd2786b33cce7d2b88f9bb1dc09f5b4cf9aa32f3fb96e880509aeefeee9", "canvas": {"height": 768, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0012", "bbox_lwh_raw": [71.0, 84.0, 386.0, 82.0], "bbox_xyxy_clipped": [71.0, 84.0, 457.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [73.0, 174.0, 315.0, 56.0], "bbox_xyxy_clipped": [73.0, 174.0, 388.0, 230.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [610.0, 78.0, 171.0, 308.0], "bbox_xyxy_clipped": [610.0, 78.0, 781.0, 386.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [518.0, 116.0, 414.0, 150.0], "bbox_xyxy_clipped": [518.0, 116.0, 932.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [708.0, 212.0, 113.0, 203.0], "bbox_xyxy_clipped": [708.0, 212.0, 821.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [553.0, 242.0, 391.0, 11.0], "bbox_xyxy_clipped": [553.0, 242.0, 944.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [552.0, 273.0, 390.0, 11.0], "bbox_xyxy_clipped": [552.0, 273.0, 942.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [796.0, 54.0, 164.0, 256.0], "bbox_xyxy_clipped": [796.0, 54.0, 960.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [91.0, 287.0, 322.0, 219.0], "bbox_xyxy_clipped": [91.0, 287.0, 413.0, 506.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [343.0, 224.0, 105.0, 68.0], "bbox_xyxy_clipped": [343.0, 224.0, 448.0, 292.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [791.0, 617.0, 169.0, 40.0], "bbox_xyxy_clipped": [791.0, 617.0, 960.0, 657.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [815.0, 661.0, 199.0, 23.0], "bbox_xyxy_clipped": [815.0, 661.0, 1014.0, 684.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [818.0, 692.0, 194.0, 36.0], "bbox_xyxy_clipped": [818.0, 692.0, 1012.0, 728.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0015659191273985809}, "Ove": {"reason": null, "status": "ok", "value": 0.08991738456922659}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b079a4e0de3d461d57b2cee3260eac53ca4aa099b81bbeed29dac3a36aec488f", "status": "computed"}, "sample_id": "5dbc2153abc8ea6d1c4e3c45", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbc2153abc8ea6d1c4e3c45/pipeline/l0_result.json", "sha256": "19a8d0cd00ebd73c1ca9c6b66f52615dcb5a21883e2e03ed38668452da194df8", "size_bytes": 10388}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbc2153abc8ea6d1c4e3c45/inputs/pfull/asset_manifest.json", "sha256": "cdc382b64c3239ed2c46c8fbbd64475e4625f39bda50a6dd0c8440e2b9acd86b", "size_bytes": 7031}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbc2153abc8ea6d1c4e3c45/renders/r0_candidate_03.png", "sha256": "c546ddae3d5c4817f0325271a53c8d878ed412dcffa083294a88e116b74b9fd1", "size_bytes": 156701}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5dbc2153abc8ea6d1c4e3c45/inputs/r3/r3_asset_manifest.json", "sha256": "482dd77aefbdee2a951cc01925f0cdd04978ed04f343a6937e0246dc043334e7", "size_bytes": 6218}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "15b16e5e67126aa7d904a69fe87929540f4bf690fd3f3e91d4dcf8355125f47e", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/inputs/pfull/assets/asset_0000.png", "asset_sha256": "8b6a4f55a9dd698056963a17f183a2213bc6e9151e4e73d76766df8f71405030", "asset_size_bytes": 3306, "kind": "asset", "pfull_asset_sha256": "8b6a4f55a9dd698056963a17f183a2213bc6e9151e4e73d76766df8f71405030", "r3_asset_sha256": "8b6a4f55a9dd698056963a17f183a2213bc6e9151e4e73d76766df8f71405030", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "23723cba8708586fafeecb396beb1f34292a56963e44327d306517b7d0c3e613", "canvas": {"height": 612, "width": 792}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 14, "valid": 13}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [126.0, 74.0, 540.0, 412.0], "bbox_xyxy_clipped": [126.0, 74.0, 666.0, 486.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [139.0, 87.0, 514.0, 385.0], "bbox_xyxy_clipped": [139.0, 87.0, 653.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [529.0, 56.0, 166.0, 158.0], "bbox_xyxy_clipped": [529.0, 56.0, 695.0, 214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [219.0, 125.0, 354.0, 41.0], "bbox_xyxy_clipped": [219.0, 125.0, 573.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [610.0, 120.0, 44.0, 34.0], "bbox_xyxy_clipped": [610.0, 120.0, 654.0, 154.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [213.0, 187.0, 365.0, 30.0], "bbox_xyxy_clipped": [213.0, 187.0, 578.0, 217.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [244.0, 229.0, 304.0, 45.0], "bbox_xyxy_clipped": [244.0, 229.0, 548.0, 274.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [207.0, 300.0, 378.0, 40.0], "bbox_xyxy_clipped": [207.0, 300.0, 585.0, 340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [202.0, 352.0, 388.0, 25.0], "bbox_xyxy_clipped": [202.0, 352.0, 590.0, 377.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [339.0, 389.0, 115.0, 38.0], "bbox_xyxy_clipped": [339.0, 389.0, 454.0, 427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [274.0, 463.0, 244.0, 2.0], "bbox_xyxy_clipped": [274.0, 463.0, 518.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [291.0, 476.0, 211.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [265.0, 498.0, 262.0, 34.0], "bbox_xyxy_clipped": [265.0, 498.0, 527.0, 532.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [540.0, 532.0, 49.0, 16.0], "bbox_xyxy_clipped": [540.0, 532.0, 589.0, 548.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.009325881012705355}, "Ove": {"reason": null, "status": "ok", "value": 0.14308539767211237}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "2541d967c301ac13726a0e68bdcbd0834ca1a826a1971f4a7cb841eb3518090e", "status": "computed"}, "sample_id": "5e6f7e1c4b3890eb07240f9b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/pipeline/l0_result.json", "sha256": "0543d87e76d11e1417b824091be1dd84dda5a63df992fb2877176adf274f6b28", "size_bytes": 12822}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/inputs/pfull/asset_manifest.json", "sha256": "ecc1555bceabacce1ff0460c5eef9c5e39e5da3534d5ed555086c16d23a147ae", "size_bytes": 8197}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/renders/r0_candidate_01.png", "sha256": "15b16e5e67126aa7d904a69fe87929540f4bf690fd3f3e91d4dcf8355125f47e", "size_bytes": 115729}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/inputs/r3/r3_asset_manifest.json", "sha256": "0d878fb377558f9d2fa9124aad3a605656db98844dbe934e9ce9b460ce1ba7f8", "size_bytes": 7305}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e6f7e1c4b3890eb07240f9b/inputs/pfull/assets/asset_0000.png", "sha256": "8b6a4f55a9dd698056963a17f183a2213bc6e9151e4e73d76766df8f71405030", "size_bytes": 3306}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2512b1d0b17c57359dd76b16d7ff24cb355c0e7d2a8483cef63770f9a4a17310", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [64.0, 42.0, 280.0, 350.0], "bbox_xyxy_clipped": [64.0, 42.0, 344.0, 392.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [255.0, 150.0, 120.0, 115.0], "bbox_xyxy_clipped": [255.0, 150.0, 375.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [415.0, 250.0, 92.0, 108.0], "bbox_xyxy_clipped": [415.0, 250.0, 507.0, 358.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [610.0, 170.0, 110.0, 119.0], "bbox_xyxy_clipped": [610.0, 170.0, 720.0, 289.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [458.0, 92.0, 210.0, 104.0], "bbox_xyxy_clipped": [458.0, 92.0, 668.0, 196.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [530.0, 568.0, 338.0, 61.0], "bbox_xyxy_clipped": [530.0, 568.0, 868.0, 629.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [864.0, 574.0, 34.0, 34.0], "bbox_xyxy_clipped": [864.0, 574.0, 898.0, 608.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.023236251007951108}, "Occ": {"reason": null, "status": "ok", "value": 0.0022470465757712266}, "Ove": {"reason": null, "status": "ok", "value": 0.021739731976291206}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5e86d9124b3890eb0788e268", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e86d9124b3890eb0788e268/pipeline/l0_result.json", "sha256": "7524f2fa1b124a2848eeb13836ff48b8d44cd0a8ebae19ee9de894f933d2532a", "size_bytes": 7134}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e86d9124b3890eb0788e268/inputs/pfull/asset_manifest.json", "sha256": "2679858435239d3f4f35b27c071cef672ed49a2dbe1cf6055b4c5aab2daebd58", "size_bytes": 3932}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e86d9124b3890eb0788e268/renders/r0_candidate_01.png", "sha256": "2512b1d0b17c57359dd76b16d7ff24cb355c0e7d2a8483cef63770f9a4a17310", "size_bytes": 97366}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e86d9124b3890eb0788e268/inputs/r3/r3_asset_manifest.json", "sha256": "6897fd061ecc1cb1e5d2dc2ce891fb2d81ee1a3c2bd4ef34530cacecb0cc7274", "size_bytes": 3384}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fab6d2db522932b793b25d8e7c37bbf43f94449317f069c2816a92158da17b0e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "asset_size_bytes": 1786, "kind": "asset", "pfull_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "r3_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "dad778e1d68806fdbbce49c426426ac2deba7575ea817980eb7445f6e674904e", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [78.0, 102.0, 420.0, 263.0], "bbox_xyxy_clipped": [78.0, 102.0, 498.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [370.0, 145.0, 250.0, 115.0], "bbox_xyxy_clipped": [370.0, 145.0, 620.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [455.0, 28.0, 280.0, 70.0], "bbox_xyxy_clipped": [455.0, 28.0, 735.0, 98.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [548.0, 86.0, 22.0, 121.0], "bbox_xyxy_clipped": [548.0, 86.0, 570.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [579.0, 110.0, 22.0, 121.0], "bbox_xyxy_clipped": [579.0, 110.0, 601.0, 231.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [474.0, 92.0, 255.0, 90.0], "bbox_xyxy_clipped": [474.0, 92.0, 729.0, 182.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [625.0, 132.0, 130.0, 52.0], "bbox_xyxy_clipped": [625.0, 132.0, 755.0, 184.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [516.0, 63.0, 102.0, 26.0], "bbox_xyxy_clipped": [516.0, 63.0, 618.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [652.0, 282.0, 177.0, 24.0], "bbox_xyxy_clipped": [652.0, 282.0, 829.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.009196828565716901}, "Occ": {"reason": null, "status": "ok", "value": 0.001646664538238594}, "Ove": {"reason": null, "status": "ok", "value": 0.10498073212417297}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "bd9071efcf1e6440b69900fc0c23c02f702805c59deebcd8bdc46b079dc0c508", "status": "computed"}, "sample_id": "5cde64e47d4459dfe1b81863", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/pipeline/l0_result.json", "sha256": "2003613b3e7075e819f67155ae2d10eb5d0a9ab36540c4ab1d68a8ce440a323e", "size_bytes": 8886}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/asset_manifest.json", "sha256": "1ed85950f2ee64f51b69fdfcbc7f94420c4d704f81aa9a1bc0a384ad69682dad", "size_bytes": 5506}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "sha256": "fab6d2db522932b793b25d8e7c37bbf43f94449317f069c2816a92158da17b0e", "size_bytes": 105308}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/inputs/r3/r3_asset_manifest.json", "sha256": "616e853477dd5e026050369125cb4068731f987772bf5bc2fec331dd063ce901", "size_bytes": 4863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "size_bytes": 1786}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5163f4a2b5629b6e12fc514fe6945a3f9b798f90f264ec999fcd7b2b1d616639", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [76.0, 170.0, 492.0, 328.0], "bbox_xyxy_clipped": [76.0, 170.0, 568.0, 498.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [34.0, 92.0, 114.0, 114.0], "bbox_xyxy_clipped": [34.0, 92.0, 148.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [44.0, 520.0, 96.0, 96.0], "bbox_xyxy_clipped": [44.0, 520.0, 140.0, 616.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [657.0, 545.0, 246.0, 102.0], "bbox_xyxy_clipped": [657.0, 545.0, 903.0, 647.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [618.0, 675.0, 402.0, 76.0], "bbox_xyxy_clipped": [618.0, 675.0, 1020.0, 751.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [642.0, 808.0, 312.0, 138.0], "bbox_xyxy_clipped": [642.0, 808.0, 954.0, 946.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0024138648242340707}, "Occ": {"reason": null, "status": "ok", "value": 0.0007297523943266752}, "Ove": {"reason": null, "status": "ok", "value": 0.0025148445686343}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e8b2b454b3890eb0748ba51", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8b2b454b3890eb0748ba51/pipeline/l0_result.json", "sha256": "083d158547f45d630411f385000577e51c23a625466582410f410e33d5b4d3e2", "size_bytes": 7391}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8b2b454b3890eb0748ba51/inputs/pfull/asset_manifest.json", "sha256": "3b067f72be67387c3aa911a7831c7d9d2b8ab0f57b718e28576d9fa5c72117eb", "size_bytes": 3433}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8b2b454b3890eb0748ba51/renders/r0_candidate_03.png", "sha256": "5163f4a2b5629b6e12fc514fe6945a3f9b798f90f264ec999fcd7b2b1d616639", "size_bytes": 245654}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e8b2b454b3890eb0748ba51/inputs/r3/r3_asset_manifest.json", "sha256": "d8bc08dd30d5139b4f53c8b0da8d8bd599f28f9ad8ab6743cea415745cf51eb2", "size_bytes": 3097}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "be842bdebf0e41c9ba4035d2cf1057dc7db37541cb3eea6a441dfb8ee15e2b4a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3115e826093ff292c80e054f014976ad1a1105ba523634cbe5b41f8817b3439e", "canvas": {"height": 600, "width": 160}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [35.0, 70.0, 90.0, 331.0], "bbox_xyxy_clipped": [35.0, 70.0, 125.0, 401.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [41.0, 84.0, 78.0, 265.0], "bbox_xyxy_clipped": [41.0, 84.0, 119.0, 349.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [122.0, 92.0, 32.0, 7.0], "bbox_xyxy_clipped": [122.0, 92.0, 154.0, 99.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [2.0, 438.0, 105.0, 34.0], "bbox_xyxy_clipped": [2.0, 438.0, 107.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [5.0, 481.0, 104.0, 35.0], "bbox_xyxy_clipped": [5.0, 481.0, 109.0, 516.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [5.0, 523.0, 125.0, 34.0], "bbox_xyxy_clipped": [5.0, 523.0, 130.0, 557.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [112.0, 525.0, 41.0, 14.0], "bbox_xyxy_clipped": [112.0, 525.0, 153.0, 539.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [114.0, 545.0, 41.0, 14.0], "bbox_xyxy_clipped": [114.0, 545.0, 155.0, 559.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00459406280137529}, "Ove": {"reason": null, "status": "ok", "value": 0.09889075622533712}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "ff5a7814d740163fe578c1a93a16bc8aa267803c6acfd9bdf3450948893c935c", "status": "computed"}, "sample_id": "5b855e7a1cc8aa5429da23d2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855e7a1cc8aa5429da23d2/pipeline/l0_result.json", "sha256": "ffaf5cbd46cff7a70b79774f70550bed02064c376df9c3971615a7f8f0dcba86", "size_bytes": 8485}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855e7a1cc8aa5429da23d2/inputs/pfull/asset_manifest.json", "sha256": "f9a78af205a74ecbf4c906526047b886d0c0fce9768849355e45aa9bb621fbd8", "size_bytes": 4458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855e7a1cc8aa5429da23d2/renders/r0_candidate_02.png", "sha256": "be842bdebf0e41c9ba4035d2cf1057dc7db37541cb3eea6a441dfb8ee15e2b4a", "size_bytes": 64077}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b855e7a1cc8aa5429da23d2/inputs/r3/r3_asset_manifest.json", "sha256": "13cf1018efb4b97b57419a2db6e11287068c069e617a376971754c0dec8f5853", "size_bytes": 3988}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "963082923343a2cabd4029f59311fae5dd4ea5f73ccfbcb3111e42767676f652", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/inputs/pfull/assets/asset_0000.png", "asset_sha256": "8e8f275016b18c171f5f78c7873a5a02aae6cef814d485294ea462111439400d", "asset_size_bytes": 77925, "kind": "asset", "pfull_asset_sha256": "8e8f275016b18c171f5f78c7873a5a02aae6cef814d485294ea462111439400d", "r3_asset_sha256": "8e8f275016b18c171f5f78c7873a5a02aae6cef814d485294ea462111439400d", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "45d2e7a0dd6b3d3bd5337addcfdf9a4d4d48f7f5cc0235af3a8ade5458137cb9", "canvas": {"height": 600, "width": 160}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [82.0, 58.0, 68.0, 36.0], "bbox_xyxy_clipped": [82.0, 58.0, 150.0, 94.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [76.0, 98.0, 74.0, 64.0], "bbox_xyxy_clipped": [76.0, 98.0, 150.0, 162.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [85.0, 170.0, 65.0, 10.0], "bbox_xyxy_clipped": [85.0, 170.0, 150.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [70.0, 186.0, 80.0, 8.0], "bbox_xyxy_clipped": [70.0, 186.0, 150.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 320.0, 49.0, 160.0], "bbox_xyxy_clipped": [0.0, 320.0, 49.0, 480.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 402.0, 26.0, 25.0], "bbox_xyxy_clipped": [0.0, 402.0, 26.0, 427.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.051638798808969676}, "Ove": {"reason": null, "status": "ok", "value": 0.013818027210884353}, "Rea": {"reason": null, "status": "ok", "value": 0.008916003740427909}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "3ce591414d9f60851ff7f3caf24ab46bc8f94f81a6990a5c3b126a7fe56c42d2", "status": "computed"}, "sample_id": "58e264ae95a7a863ddcd0528", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/pipeline/l0_result.json", "sha256": "7762ae132d4f8d59b3fc86f67fbf54d7ec59a3366d5db55de4cb850ba34ecdee", "size_bytes": 7855}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/inputs/pfull/asset_manifest.json", "sha256": "0929228c8752b5b49d873d93615df88a8004ac3217f827b7d0112901a835fb27", "size_bytes": 4075}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/renders/r0_candidate_03.png", "sha256": "963082923343a2cabd4029f59311fae5dd4ea5f73ccfbcb3111e42767676f652", "size_bytes": 83082}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/inputs/r3/r3_asset_manifest.json", "sha256": "a4ecfef9ed70f81f50df87f1f8da08c7e2b5a650ed3d29aac41d784f67225c86", "size_bytes": 3715}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58e264ae95a7a863ddcd0528/inputs/pfull/assets/asset_0000.png", "sha256": "8e8f275016b18c171f5f78c7873a5a02aae6cef814d485294ea462111439400d", "size_bytes": 77925}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1537eb7ef40215b3e94ab57f78e1308b3ccb195833473cb5a90325f54ea33c7a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [817.0, 62.0, 389.0, 260.0], "bbox_xyxy_clipped": [817.0, 62.0, 1206.0, 322.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [84.0, 86.0, 405.0, 68.0], "bbox_xyxy_clipped": [84.0, 86.0, 489.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 160.0, 360.0, 67.0], "bbox_xyxy_clipped": [92.0, 160.0, 452.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [330.0, 286.0, 354.0, 113.0], "bbox_xyxy_clipped": [330.0, 286.0, 684.0, 399.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [427.0, 360.0, 246.0, 79.0], "bbox_xyxy_clipped": [427.0, 360.0, 673.0, 439.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004528619805119974}, "Occ": {"reason": null, "status": "ok", "value": 0.000659759913341632}, "Ove": {"reason": null, "status": "ok", "value": 0.038497652582159626}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5f23d114a637ee11e35f5c9e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f23d114a637ee11e35f5c9e/pipeline/l0_result.json", "sha256": "8c327352157888bb6cbc36909dcc6c0c7b1f88b2973cf8be0ae2108a04816bb2", "size_bytes": 6147}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f23d114a637ee11e35f5c9e/inputs/pfull/asset_manifest.json", "sha256": "dcc597051fa2681ce9e400fd668e471b87d69fbb3fe23066e16c86c5b84c9417", "size_bytes": 2923}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f23d114a637ee11e35f5c9e/renders/r0_candidate_03.png", "sha256": "1537eb7ef40215b3e94ab57f78e1308b3ccb195833473cb5a90325f54ea33c7a", "size_bytes": 160550}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5f23d114a637ee11e35f5c9e/inputs/r3/r3_asset_manifest.json", "sha256": "b6ca1d74b8a6d890cbf7face27c1dbaf03d661210e6bcdca65684c79ab4fd672", "size_bytes": 2644}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e4e82ceae6a54beeb61b62c44e98bf39a0cc95390c0a671800b993429ec1ef57", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "0e1096616e9b03a50161584507c7511fa47d0aa511d6a9f9fd3e9873d12c8921", "canvas": {"height": 1728, "width": 1296}, "element_counts": {"invalid_below_0_1pct": 10, "raw": 18, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [315.0, 108.0, 666.0, 529.0], "bbox_xyxy_clipped": [315.0, 108.0, 981.0, 637.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [179.0, 642.0, 938.0, 145.0], "bbox_xyxy_clipped": [179.0, 642.0, 1117.0, 787.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [422.0, 814.0, 453.0, 107.0], "bbox_xyxy_clipped": [422.0, 814.0, 875.0, 921.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [580.0, 886.0, 135.0, 66.0], "bbox_xyxy_clipped": [580.0, 886.0, 715.0, 952.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [447.0, 958.0, 402.0, 157.0], "bbox_xyxy_clipped": [447.0, 958.0, 849.0, 1115.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [434.0, 1152.0, 429.0, 84.0], "bbox_xyxy_clipped": [434.0, 1152.0, 863.0, 1236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [293.0, 1270.0, 710.0, 183.0], "bbox_xyxy_clipped": [293.0, 1270.0, 1003.0, 1453.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [316.0, 1528.0, 664.0, 97.0], "bbox_xyxy_clipped": [316.0, 1528.0, 980.0, 1625.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [619.0, 1234.0, 20.0, 20.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0015", "bbox_lwh_raw": [648.0, 1252.0, 18.0, 18.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0016", "bbox_lwh_raw": [677.0, 1270.0, 16.0, 16.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0017", "bbox_lwh_raw": [704.0, 1288.0, 14.0, 14.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [84.0, 1278.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0002", "bbox_lwh_raw": [251.0, 1286.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [418.0, 1294.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [585.0, 1302.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [752.0, 1310.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [919.0, 1318.0, 157.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004682786222966309}, "Ove": {"reason": null, "status": "ok", "value": 0.011216670464904285}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "b45151d495426202cbcc69fd71097fa9e1b0cffe9f9925c94e2a055e624762c1", "status": "computed"}, "sample_id": "58affed095a7a863ddcc8f6a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58affed095a7a863ddcc8f6a/pipeline/l0_result.json", "sha256": "643a74fc6cb65988fe94c78023398dbfc46abab771c8c737c797eda481b9a85c", "size_bytes": 14052}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58affed095a7a863ddcc8f6a/inputs/pfull/asset_manifest.json", "sha256": "bbb7ac5295627a091c32971388674c42535c2793a98372f443042ec484161d7b", "size_bytes": 9695}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58affed095a7a863ddcc8f6a/renders/r0_candidate_03.png", "sha256": "e4e82ceae6a54beeb61b62c44e98bf39a0cc95390c0a671800b993429ec1ef57", "size_bytes": 89758}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58affed095a7a863ddcc8f6a/inputs/r3/r3_asset_manifest.json", "sha256": "9cb9d04c251b19dc0c2e9aa61b8694bf857ec78ad22327f5452854e9c3a5adce", "size_bytes": 8394}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7d6733fbc0dc7507908be79bb2fefccbdc44605b7e18df9a1b45b47da54752a7", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [1170.0, 196.0, 650.0, 537.0], "bbox_xyxy_clipped": [1170.0, 196.0, 1820.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [126.0, 145.0, 486.0, 63.0], "bbox_xyxy_clipped": [126.0, 145.0, 612.0, 208.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [126.0, 228.0, 390.0, 62.0], "bbox_xyxy_clipped": [126.0, 228.0, 516.0, 290.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [126.0, 294.0, 460.0, 82.0], "bbox_xyxy_clipped": [126.0, 294.0, 586.0, 376.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [126.0, 722.0, 399.0, 89.0], "bbox_xyxy_clipped": [126.0, 722.0, 525.0, 811.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [126.0, 825.0, 418.0, 51.0], "bbox_xyxy_clipped": [126.0, 825.0, 544.0, 876.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1030.0, 274.0, 210.0, 121.0], "bbox_xyxy_clipped": [1030.0, 274.0, 1240.0, 395.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1508.0, 610.0, 235.0, 198.0], "bbox_xyxy_clipped": [1508.0, 610.0, 1743.0, 808.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1468.0, 108.0, 252.0, 90.0], "bbox_xyxy_clipped": [1468.0, 108.0, 1720.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1428.0, 748.0, 251.0, 98.0], "bbox_xyxy_clipped": [1428.0, 748.0, 1679.0, 846.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1250.0, 730.0, 230.0, 188.0], "bbox_xyxy_clipped": [1250.0, 730.0, 1480.0, 918.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1482.0, 420.0, 176.0, 285.0], "bbox_xyxy_clipped": [1482.0, 420.0, 1658.0, 705.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003234133791813924}, "Ove": {"reason": null, "status": "ok", "value": 0.05595272607700431}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5cab554023c829c8214ab6a6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cab554023c829c8214ab6a6/pipeline/l0_result.json", "sha256": "355520671c286d7ad47cf5833f8fa83473381cd43a69a4b0e64c439ea3a2ff2d", "size_bytes": 11040}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cab554023c829c8214ab6a6/inputs/pfull/asset_manifest.json", "sha256": "e70f22f441d41939a61ff6b571ea7f705b3c2f379bdb5ae6bc8690afd2bc7a22", "size_bytes": 6538}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cab554023c829c8214ab6a6/renders/r0_candidate_03.png", "sha256": "7d6733fbc0dc7507908be79bb2fefccbdc44605b7e18df9a1b45b47da54752a7", "size_bytes": 430568}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5cab554023c829c8214ab6a6/inputs/r3/r3_asset_manifest.json", "sha256": "554327aac14e94b6f0d2d0e8b1407f4b74742123a4ab8287c0242ffa2dfa6a4d", "size_bytes": 5817}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "52e14ce839da18bd360c8450b22ff0abf192662668780488c01ce94ce69258e4", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [55.0, 180.0, 500.0, 333.0], "bbox_xyxy_clipped": [55.0, 180.0, 555.0, 513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [410.0, 108.0, 95.0, 169.0], "bbox_xyxy_clipped": [410.0, 108.0, 505.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 110.0, 165.0, 156.0], "bbox_xyxy_clipped": [88.0, 110.0, 253.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [170.0, 248.0, 120.0, 117.0], "bbox_xyxy_clipped": [170.0, 248.0, 290.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [620.0, 96.0, 285.0, 233.0], "bbox_xyxy_clipped": [620.0, 96.0, 905.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [633.0, 60.0, 250.0, 31.0], "bbox_xyxy_clipped": [633.0, 60.0, 883.0, 91.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [652.0, 300.0, 235.0, 64.0], "bbox_xyxy_clipped": [652.0, 300.0, 887.0, 364.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [690.0, 378.0, 190.0, 46.0], "bbox_xyxy_clipped": [690.0, 378.0, 880.0, 424.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [668.0, 454.0, 232.0, 66.0], "bbox_xyxy_clipped": [668.0, 454.0, 900.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004160352002289318}, "Occ": {"reason": null, "status": "ok", "value": 0.0013777302389181365}, "Ove": {"reason": null, "status": "ok", "value": 0.03861352412534211}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5e41700e9fea0cc37440961e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e41700e9fea0cc37440961e/pipeline/l0_result.json", "sha256": "2d526e70bf928fd95782dbfb4ee70526937c857edf96004aac319c1659edc9e0", "size_bytes": 8396}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e41700e9fea0cc37440961e/inputs/pfull/asset_manifest.json", "sha256": "773c7bd6743b00066642763c816b27e6244a8c77615a4ca023b94be58e6b8c72", "size_bytes": 4945}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e41700e9fea0cc37440961e/renders/r0_candidate_01.png", "sha256": "52e14ce839da18bd360c8450b22ff0abf192662668780488c01ce94ce69258e4", "size_bytes": 192589}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5e41700e9fea0cc37440961e/inputs/r3/r3_asset_manifest.json", "sha256": "e8233424185b5cb65e6e7838f188fdf95e17c8692e902a9c69b4f3afdc3c3de7", "size_bytes": 4305}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c42e0a4e20e7f9ce397d15422dd78a2a57647d3db19e8c154f88eb1001d52205", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 5, "valid": 5}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [78.0, 74.0, 446.0, 55.0], "bbox_xyxy_clipped": [78.0, 74.0, 524.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [80.0, 141.0, 300.0, 75.0], "bbox_xyxy_clipped": [80.0, 141.0, 380.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [640.0, 120.0, 470.0, 314.0], "bbox_xyxy_clipped": [640.0, 120.0, 1110.0, 434.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [690.0, 82.0, 420.0, 215.0], "bbox_xyxy_clipped": [690.0, 82.0, 1110.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [714.0, 468.0, 370.0, 49.0], "bbox_xyxy_clipped": [714.0, 468.0, 1084.0, 517.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0020341795273727866}, "Ove": {"reason": null, "status": "ok", "value": 0.0909135379723615}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5fb77b26a637ee11e35420db", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fb77b26a637ee11e35420db/pipeline/l0_result.json", "sha256": "fc116f1d38e8f38c7d779377a4ef326816ebe6dea39b4fdf910446a1d909e37c", "size_bytes": 6338}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fb77b26a637ee11e35420db/inputs/pfull/asset_manifest.json", "sha256": "c1977d612bc3ba9852670ffaa90f7a3943bb3b3d29d2255385408a1f8bb2c108", "size_bytes": 2878}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fb77b26a637ee11e35420db/renders/r0_candidate_01.png", "sha256": "c42e0a4e20e7f9ce397d15422dd78a2a57647d3db19e8c154f88eb1001d52205", "size_bytes": 330767}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5fb77b26a637ee11e35420db/inputs/r3/r3_asset_manifest.json", "sha256": "66ba38f54133ebe89edf8dd0f714d475bbd15034ca4b0eaa0acb84c8a8795e13", "size_bytes": 2604}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b51e4dfb8d23c292cf77a649a803ef49a1c60788e73a88616aff89149a46ffc2", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [50.0, 20.0, 345.0, 300.0], "bbox_xyxy_clipped": [50.0, 20.0, 395.0, 320.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [305.0, 385.0, 210.0, 191.0], "bbox_xyxy_clipped": [305.0, 385.0, 515.0, 576.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [760.0, 90.0, 360.0, 87.0], "bbox_xyxy_clipped": [760.0, 90.0, 1120.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [790.0, 190.0, 330.0, 126.0], "bbox_xyxy_clipped": [790.0, 190.0, 1120.0, 316.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [950.0, 145.0, 180.0, 47.0], "bbox_xyxy_clipped": [950.0, 145.0, 1130.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [820.0, 345.0, 300.0, 15.0], "bbox_xyxy_clipped": [820.0, 345.0, 1120.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002218302276064252}, "Ove": {"reason": null, "status": "ok", "value": 0.027542814643637403}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "5b714f7b1cc8aa542914b74d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b714f7b1cc8aa542914b74d/pipeline/l0_result.json", "sha256": "f118045275c0e4cf0cae0a2f0a0332568a8f398af86939f35ab7b9fcf6293fe2", "size_bytes": 6685}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b714f7b1cc8aa542914b74d/inputs/pfull/asset_manifest.json", "sha256": "b6ab0777a95546d2017ba3f9b9276dbb8caf0fc4b5b55cc78c47f5f7c2cb550d", "size_bytes": 3412}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b714f7b1cc8aa542914b74d/renders/r0_candidate_01.png", "sha256": "b51e4dfb8d23c292cf77a649a803ef49a1c60788e73a88616aff89149a46ffc2", "size_bytes": 278465}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/5b714f7b1cc8aa542914b74d/inputs/r3/r3_asset_manifest.json", "sha256": "b2d7178c3446e5f10fe00a3d90d233d043e73f77062cfbb0d0e7e982fa9a829c", "size_bytes": 3039}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1b25d831cc7efaac4f914ab09f249b66f7dbe9e17968ccb1cc4d2b0c8634fa7f", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/inputs/pfull/assets/asset_0000.png", "asset_sha256": "49d4196beb0a87a49602edcd2688188b876372102f79e955d29f6b160575ac16", "asset_size_bytes": 1164, "kind": "asset", "pfull_asset_sha256": "49d4196beb0a87a49602edcd2688188b876372102f79e955d29f6b160575ac16", "r3_asset_sha256": "49d4196beb0a87a49602edcd2688188b876372102f79e955d29f6b160575ac16", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "1e191010bcf9c334f48a97e140c00f692292878339495cca03882a610d29ca92", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [44.0, 18.0, 331.0, 339.0], "bbox_xyxy_clipped": [44.0, 18.0, 375.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [108.0, 67.0, 201.0, 202.0], "bbox_xyxy_clipped": [108.0, 67.0, 309.0, 269.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [125.0, 89.0, 164.0, 103.0], "bbox_xyxy_clipped": [125.0, 89.0, 289.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [154.0, 139.0, 114.0, 114.0], "bbox_xyxy_clipped": [154.0, 139.0, 268.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [199.0, 112.0, 21.0, 15.0], "bbox_xyxy_clipped": [199.0, 112.0, 220.0, 127.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [182.0, 129.0, 88.0, 21.0], "bbox_xyxy_clipped": [182.0, 129.0, 270.0, 150.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [128.0, 153.0, 197.0, 18.0], "bbox_xyxy_clipped": [128.0, 153.0, 325.0, 171.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 4.541710900190219e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.3496534392427456}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-general-n100-t2-l0-01", "saliency": {"map_sha256": "5a655ccabf0b913b326533a09407f139a0f30e3151c66f33d80422b78d11f2d2", "status": "computed"}, "sample_id": "58ab0a9b95a7a863ddcc7397", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/pipeline/l0_result.json", "sha256": "549baf0e5fbbda96ebdeef2f3d545701d18986f8484b8e3f5289ca69d99d6d44", "size_bytes": 9181}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/inputs/pfull/asset_manifest.json", "sha256": "f1520fbfc74e447d09de5da51fd662fbc3d5326dcdb644e81c4c13da0d608de3", "size_bytes": 4464}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/renders/r0_candidate_01.png", "sha256": "1b25d831cc7efaac4f914ab09f249b66f7dbe9e17968ccb1cc4d2b0c8634fa7f", "size_bytes": 97985}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/inputs/r3/r3_asset_manifest.json", "sha256": "6a32aa9c8bef8441a441adc981a0385de2d32c63a02dbf52206a058ac21365e8", "size_bytes": 3936}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-general-n100-t2-l0-01/samples/58ab0a9b95a7a863ddcc7397/inputs/pfull/assets/asset_0000.png", "sha256": "49d4196beb0a87a49602edcd2688188b876372102f79e955d29f6b160575ac16", "size_bytes": 1164}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/aggregate.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/aggregate.json new file mode 100644 index 000000000..0ec94143e --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/aggregate.json @@ -0,0 +1,220 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-relation-n100-t0-t2-t3-sega-v1", + "runs": { + "a3-rel100-t0-01": { + "sample_counts": { + "selected_n": 100, + "source_valid_n": 100, + "source_skipped_n": 0, + "evaluated_n": 100, + "validated_only_n": 0 + }, + "metrics": { + "Ali": { + "value": 0.00039344577614799106, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 94 + }, + "Ove": { + "value": 0.11029703455008535, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 3 + }, + "Und_l": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 100, + "zero_contribution_n": 0 + }, + "Und_s": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 100, + "zero_contribution_n": 0 + }, + "Rea": { + "value": 0.0, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 100 + }, + "Occ": { + "value": 0.005604150408513137, + "applicable_n": 100, + "valid_n": 100, + "skipped_n": 0, + "metric_skipped_n": 0, + "source_skipped_n": 0, + "not_applicable_n": 0, + "zero_contribution_n": 0 + } + } + }, + "a3-rel100-t2-01": { + "sample_counts": { + "selected_n": 100, + "source_valid_n": 98, + "source_skipped_n": 2, + "evaluated_n": 98, + "validated_only_n": 0 + }, + "metrics": { + "Ali": { + "value": 0.0010906792273481, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 85 + }, + "Ove": { + "value": 0.11855469211026877, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 2 + }, + "Und_l": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 98, + "zero_contribution_n": 0 + }, + "Und_s": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 98, + "zero_contribution_n": 0 + }, + "Rea": { + "value": 0.0, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 98 + }, + "Occ": { + "value": 0.005628733500349222, + "applicable_n": 98, + "valid_n": 98, + "skipped_n": 2, + "metric_skipped_n": 0, + "source_skipped_n": 2, + "not_applicable_n": 0, + "zero_contribution_n": 0 + } + } + }, + "a3-rel100-t3-01": { + "sample_counts": { + "selected_n": 100, + "source_valid_n": 99, + "source_skipped_n": 1, + "evaluated_n": 99, + "validated_only_n": 0 + }, + "metrics": { + "Ali": { + "value": 0.0006464536794323366, + "applicable_n": 99, + "valid_n": 99, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 0, + "zero_contribution_n": 90 + }, + "Ove": { + "value": 0.15041344770396506, + "applicable_n": 99, + "valid_n": 99, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 0, + "zero_contribution_n": 2 + }, + "Und_l": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 99, + "zero_contribution_n": 0 + }, + "Und_s": { + "value": null, + "applicable_n": 0, + "valid_n": 0, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 99, + "zero_contribution_n": 0 + }, + "Rea": { + "value": 0.0, + "applicable_n": 99, + "valid_n": 99, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 0, + "zero_contribution_n": 99 + }, + "Occ": { + "value": 0.005972501210145759, + "applicable_n": 99, + "valid_n": 99, + "skipped_n": 1, + "metric_skipped_n": 0, + "source_skipped_n": 1, + "not_applicable_n": 0, + "zero_contribution_n": 0 + } + } + } + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/evaluation_manifest.json new file mode 100644 index 000000000..0389e8d10 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/evaluation_manifest.json @@ -0,0 +1,454 @@ +{ + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "evaluation_id": "a3-relation-n100-t0-t2-t3-sega-v1", + "created_at": "2026-07-11T19:49:53.656568+00:00", + "mode": "evaluate", + "command": "/home/hui0705/.conda/envs/meta/bin/python /home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py --run-dir /home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01 --run-dir /home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01 --run-dir /home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01 --evaluation-id a3-relation-n100-t0-t2-t3-sega-v1 --output-root /home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega --saliency-mode basnet-isnet", + "command_argv": [ + "/home/hui0705/.conda/envs/meta/bin/python", + "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "--run-dir", + "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01", + "--run-dir", + "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01", + "--run-dir", + "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01", + "--evaluation-id", + "a3-relation-n100-t0-t2-t3-sega-v1", + "--output-root", + "/home/hui0705/MetaGPT/layout_agent/evaluations/a3-sega", + "--saliency-mode", + "basnet-isnet" + ], + "source_runs": [ + { + "run_id": "a3-rel100-t0-01", + "run_dir": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01", + "summary": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/a3_run_summary.json", + "sha256": "0e9d1fcfcc7b55789dc2b82c11becaeb8d3318e72e52fe1149576fddef8fe356", + "size_bytes": 10724 + }, + "manifest": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/run_manifest.json", + "sha256": "041462b41e44b3e9081a5d68eb9e2aafdd9ebbf74074ab67e511691a7f95d8cd", + "size_bytes": 3224 + }, + "sample_ids": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/sample_ids.json", + "sha256": "d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c", + "size_bytes": 2702 + }, + "summary_counts": { + "reported_total": 100, + "reported_completed": null, + "reported_failed": 0, + "reported_sample_n": 100, + "completed_n": 100, + "failed_n": 0, + "other_status_n": 0, + "formal_complete": true + }, + "selection": { + "max_samples": null, + "selected_n": 100, + "formal_complete_run": true + }, + "observed_counts": { + "selected_n": 100, + "source_valid_n": 100, + "source_skipped_n": 0, + "evaluated_n": 100, + "validated_only_n": 0 + } + }, + { + "run_id": "a3-rel100-t2-01", + "run_dir": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01", + "summary": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/a3_run_summary.json", + "sha256": "325cebbe3c52533ec81c5188f3f85448e44eb5e60a596a3df940446053132499", + "size_bytes": 11138 + }, + "manifest": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/run_manifest.json", + "sha256": "cdea8938b6b209cfffcb53a24ce7e936263dc991c1959a2d5869e0e6a6760f28", + "size_bytes": 3224 + }, + "sample_ids": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/sample_ids.json", + "sha256": "d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c", + "size_bytes": 2702 + }, + "summary_counts": { + "reported_total": 100, + "reported_completed": null, + "reported_failed": 2, + "reported_sample_n": 100, + "completed_n": 98, + "failed_n": 2, + "other_status_n": 0, + "formal_complete": true + }, + "selection": { + "max_samples": null, + "selected_n": 100, + "formal_complete_run": true + }, + "observed_counts": { + "selected_n": 100, + "source_valid_n": 98, + "source_skipped_n": 2, + "evaluated_n": 98, + "validated_only_n": 0 + } + }, + { + "run_id": "a3-rel100-t3-01", + "run_dir": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01", + "summary": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/a3_run_summary.json", + "sha256": "7636ff0897e56586cad6ac80582f6506e3eba231aacd077c1f95145b099b1355", + "size_bytes": 10986 + }, + "manifest": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/run_manifest.json", + "sha256": "ea05236ff6f4437e6afd3e325a67a44109bafeb15acdb72c3640d32bb25ddd9d", + "size_bytes": 3224 + }, + "sample_ids": { + "path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/sample_ids.json", + "sha256": "d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c", + "size_bytes": 2702 + }, + "summary_counts": { + "reported_total": 100, + "reported_completed": null, + "reported_failed": 1, + "reported_sample_n": 100, + "completed_n": 99, + "failed_n": 1, + "other_status_n": 0, + "formal_complete": true + }, + "selection": { + "max_samples": null, + "selected_n": 100, + "formal_complete_run": true + }, + "observed_counts": { + "selected_n": 100, + "source_valid_n": 99, + "source_skipped_n": 1, + "evaluated_n": 99, + "validated_only_n": 0 + } + } + ], + "matched_samples": { + "count": 100, + "ordered_sample_ids": [ + "5888bb2995a7a863ddcc1f74", + "5888c54095a7a863ddcc2082", + "5888dd7995a7a863ddcc2e86", + "5889bc5995a7a863ddcc3b97", + "589b457b95a7a863ddcc5331", + "58ab17ba95a7a863ddcc77bf", + "58ab189395a7a863ddcc7847", + "58cbc44595a7a863ddccc20b", + "5909cfb695a7a863ddcd37cb", + "5914233f95a7a863ddcd777c", + "592d1a2b95a7a863ddcd97aa", + "592fdd7e95a7a863ddcdbe67", + "5930177f95a7a863ddcdc313", + "5931132c95a7a863ddcdc5d3", + "59313e5495a7a863ddcdc9ac", + "5952704d95a7a863ddcdecb5", + "5952794195a7a863ddcdf36a", + "5952934395a7a863ddcdff21", + "599ecb061350e83293007738", + "59b2809c1350e8329300dbe4", + "59bb96701350e8329301120a", + "5a034425d8141396fe9898fa", + "5a21848dd8141396fe9a33eb", + "5a240260d8141396fe9a9de3", + "5a26bcecd8141396fe9ac474", + "5a9968cff07aee6977a29a68", + "5aa915fef07aee69773a3ef4", + "5b6aaf851cc8aa542986ad50", + "5b6ab3e01cc8aa542994ee9d", + "5b85707d1cc8aa542972823c", + "5b9a550e18654940f754c07c", + "5b9bc6a018654940f781b996", + "5ba8b598ebe74117be0792c9", + "5bbc9b3a78e1194aa616041e", + "5bbcbdfd78e1194aa69fe067", + "5bd05c0e78e1194aa6210e31", + "5bd9d0209259f9ba54b29c99", + "5be174d215d5cddfd04fd1a2", + "5be97b9241fdeab19f985504", + "5bf55e578caf671e1c2272f0", + "5bf828a38caf671e1c2632e9", + "5c263de4133a785392318ba9", + "5c41f55b048d064dbcc85b80", + "5c41f7a3048d064dbccfae94", + "5c5af7a1048d064dbc1f0d67", + "5c5b0913048d064dbc785e7c", + "5c5b095c048d064dbc7a0ede", + "5c6c147785ea3c16f98dd907", + "5c77eda885ea3c16f9f29101", + "5ca5faf823c829c8218ffb10", + "5cb89d8aadbc796055f970af", + "5cd67f1f7d4459dfe12714cf", + "5cd6984b7d4459dfe140c0b4", + "5cde64e47d4459dfe1b81863", + "5ce3ba947d4459dfe1cebd75", + "5cfe2ad78cba87f943da4ec5", + "5d08f3708cba87f943ec4e3f", + "5d08f7a08cba87f943f48a6d", + "5d0cf79f8cba87f943616ca6", + "5d234eaf8cba87f94322b763", + "5d4ae4aecf657b21effa9831", + "5d67ed46cf657b21ef7bdad9", + "5d68dd6ce79a2a634ea111b8", + "5d6903b8abc8ea6d1c0305fd", + "5d6909e8abc8ea6d1c0cda03", + "5d9c8fa2abc8ea6d1cd0d3e7", + "5d9cad82abc8ea6d1c23ebf1", + "5d9cadb1abc8ea6d1c246dc8", + "5da04604abc8ea6d1cbe2935", + "5da071b5abc8ea6d1c1f1d6f", + "5dbbff2eabc8ea6d1c15c382", + "5dc27c32abc8ea6d1cbf115a", + "5df211c29fea0cc374abbbba", + "5df216b89fea0cc374b8d341", + "5df3af489fea0cc3742457a9", + "5df7606b9fea0cc374d371db", + "5e0213489fea0cc374175712", + "5e0219159fea0cc37425a627", + "5e04ba7f9fea0cc3749733ea", + "5e0621989fea0cc3748583f6", + "5e0d99499fea0cc374a71bcc", + "5e202d829fea0cc3744908a8", + "5e2031da9fea0cc37450dd01", + "5e28090f9fea0cc3748fc62a", + "5e6f770e4b3890eb07175aee", + "5e8762404b3890eb0782ad22", + "5e8d96cb4b3890eb071c683d", + "5e8ef9fb4b3890eb0760bade", + "5e90704d499b85dcc7d7114d", + "5e984f83499b85dcc792f6be", + "5ea01126499b85dcc781e788", + "5ea2d990499b85dcc7aaeb92", + "5ea97187499b85dcc7c45e3d", + "5f114599499b85dcc796da51", + "5f3b84c8a637ee11e32ee4c9", + "5f4c9d6fa637ee11e34ab88b", + "5f5b5a3da637ee11e3e5adbf", + "5f644f40a637ee11e3669a1c", + "5f96aca7a637ee11e30bb517", + "5fbf5b4aa637ee11e3a82536" + ], + "ordered_sample_ids_sha256": "840347c0fe232dbfd4330775a62bdedcfc89c3562e5282b9a373d1485ba9ed19" + }, + "protocol_lineage": { + "schema_version": "a3.sega-evaluation.v1", + "protocol_version": "a3.sega-pku-protocol.v1", + "bbox_input": "A3 B0 left-top-width-height", + "bbox_metric_frame": "xyxy, clipped to canvas", + "validity_filter": { + "minimum_canvas_fraction": 0.001, + "comparison": "area >= threshold" + }, + "alignment": "PKU layout-wide-min aggregation quirk", + "overlay_denominator": "non-underlay element count", + "underlay": "P-Full v1 has no legal underlay class; current A3 is N/A", + "readability": "background-only float64 Sobel; definition-aligned, not PKU bit-exact", + "blank_background": { + "renderer_contract": "R3", + "rgb": [ + 255, + 255, + 255 + ] + }, + "occlusion": { + "mode": "basnet-isnet", + "detector": { + "contract": "frozen BASNet + ISNet, pixel-wise maximum", + "fusion": "pixelwise_max", + "fail_closed": true, + "network_downloads_allowed": false, + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "load_contract": { + "revision_argument": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false + }, + "snapshot_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "artifacts": { + "config.json": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/c4646206f7c2ccdcc26b6ec82f44ab4688a92479", + "sha256": "ab4be234682c7d12e4c3e13ffcc8b280065cf843041eb09b11ac34da5474e895", + "size_bytes": 299 + }, + "model.safetensors": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "sha256": "83db9a738691a9eca622ec38fac24b31e5b47121bec65570a3cf83f0f00ede32", + "size_bytes": 348466168 + }, + "configuration_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "size_bytes": 364 + }, + "modeling_basnet.py": { + "path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "size_bytes": 16207 + } + } + }, + "isnet": { + "model_id": "rembg/isnet-general-use", + "artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "provider": "CPUExecutionProvider", + "download_path": "forbidden; direct verified ONNX bytes" + }, + "pku_deviation": "ISNet replaces the PFPN branch used by PKU PosterLayout", + "implementation_sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "runtime_identity": { + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "requested_revision": "c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "resolved_snapshot": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "from_pretrained_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/snapshots/c04f6d78a10d2d558260629c3b00a9ed0568dbc6", + "local_files_only": true, + "trust_remote_code": true, + "force_download": false, + "model_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.modeling_basnet", + "model_class_name": "BASNetModel", + "config_class_module": "transformers_modules.c04f6d78a10d2d558260629c3b00a9ed0568dbc6.configuration_basnet", + "config_class_name": "BASNetConfig", + "torch_version": "2.3.1+cu121", + "transformers_version": "4.57.6", + "executed_code": { + "configuration_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/configuration_basnet.py", + "executed_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/fe1998bb960a364ef88af93a437752eb4053ef4c", + "authoritative_sha256": "c1bc7468735626fe48cf2ba2c5f7837ef48df791bbb005725e2b097b16d74041" + }, + "modeling_basnet.py": { + "executed_path": "/home/hui0705/.cache/huggingface/modules/transformers_modules/c04f6d78a10d2d558260629c3b00a9ed0568dbc6/modeling_basnet.py", + "executed_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491", + "authoritative_path": "/home/hui0705/.cache/huggingface/hub/models--creative-graphic-design--BASNet/blobs/4291067986b33b05b634598002e9b3c15547719a", + "authoritative_sha256": "f8dd9e81d5ea0fc414ca0e0f0a30375d65234a5e91434f4c2b20804f95ff3491" + } + } + }, + "isnet": { + "requested_model_name": "isnet-general-use", + "session_model_name": "isnet-general-use", + "session_reported_name": "isnet-general-use", + "session_class_module": "rembg.sessions.dis_general_use", + "session_class_name": "DisSession", + "rembg_version": "2.0.61", + "onnxruntime_version": "1.19.2", + "requested_providers": [ + "CPUExecutionProvider" + ], + "active_providers": [ + "CPUExecutionProvider" + ], + "available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ], + "verified_artifact": { + "path": "/home/hui0705/.u2net/isnet-general-use.onnx", + "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a", + "md5": "fc16ebd8b0c10d971d3513d564d01e29", + "size_bytes": 178648008 + }, + "session_construction": "direct verified bytes; downloader bypassed" + } + } + }, + "sobel_fallback_forbidden": true + }, + "code_runtime_lineage": { + "sources": { + "sega_metrics.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/sega_metrics.py", + "sha256": "d224caffcd4b6bbbe99b90b73c6c2df71aec59b521174741e0678cad32c48cef", + "size_bytes": 20675 + }, + "a3_sega_evaluator.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py", + "sha256": "afd178554579d2b6e8487d7ffe91d75dea37fecf899d21341b26ef0cfc375391", + "size_bytes": 68355 + }, + "evaluate_a3_sega.py": { + "path": "/home/hui0705/MetaGPT/layout_agent/evaluate_a3_sega.py", + "sha256": "372a62c4e688a3f9f7c32d6ee93e067ffbd06179ce4bc32868d0a0a956f90c5f", + "size_bytes": 17316 + }, + "saliency_basnet_isnet.py": { + "path": "/home/hui0705/MetaGPT/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py", + "sha256": "3b0a3a42df7000c8664cbc76e0084560a0dac0554dee640ca7d463b039ea3165", + "size_bytes": 18912 + } + }, + "runtime": { + "python": { + "version": "3.9.25", + "implementation": "CPython", + "executable": "/home/hui0705/.conda/envs/meta/bin/python3.9" + }, + "platform": { + "system": "Linux", + "release": "5.15.0-139-generic", + "machine": "x86_64", + "platform": "Linux-5.15.0-139-generic-x86_64-with-glibc2.31" + }, + "numpy": "1.26.4", + "cv2": "4.10.0", + "Pillow": "11.3.0", + "torch": "2.3.1+cu121", + "torchvision": "0.18.1+cu121", + "transformers": "4.57.6", + "rembg": "2.0.61", + "onnxruntime": "1.19.2", + "pydantic": "2.9.2", + "pooch": "v1.9.0", + "onnxruntime_available_providers": [ + "AzureExecutionProvider", + "CPUExecutionProvider" + ] + } + } + }, + "write_policy": { + "source_runs_read_only": true, + "output_is_versioned_sidecar": true, + "existing_output_overwrite": false, + "atomic_staging_publish": true, + "atomic_no_replace_publish": "renameat2(RENAME_NOREPLACE)" + }, + "cost": { + "llm_api_calls": 0, + "llm_cost_usd": 0.0, + "model_downloads": 0 + } +} diff --git a/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/per_sample.jsonl b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/per_sample.jsonl new file mode 100644 index 000000000..782fe0510 --- /dev/null +++ b/layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-relation-n100-t0-t2-t3-sega-v1/per_sample.jsonl @@ -0,0 +1,300 @@ +{"b0_render_sha256": "4dd43b80be423c73c5132439056bb454ed354da68fdb90488329fa7ae7e7852d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 18, "valid": 18}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [58.0, 140.0, 146.0, 292.0], "bbox_xyxy_clipped": [58.0, 140.0, 204.0, 432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [324.0, 112.0, 180.0, 397.0], "bbox_xyxy_clipped": [324.0, 112.0, 504.0, 509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [498.0, 154.0, 92.0, 221.0], "bbox_xyxy_clipped": [498.0, 154.0, 590.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [40.0, 16.0, 250.0, 102.0], "bbox_xyxy_clipped": [40.0, 16.0, 290.0, 118.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [302.0, 18.0, 158.0, 126.0], "bbox_xyxy_clipped": [302.0, 18.0, 460.0, 144.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [176.0, 60.0, 196.0, 272.0], "bbox_xyxy_clipped": [176.0, 60.0, 372.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [458.0, 20.0, 94.0, 181.0], "bbox_xyxy_clipped": [458.0, 20.0, 552.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [478.0, 392.0, 92.0, 177.0], "bbox_xyxy_clipped": [478.0, 392.0, 570.0, 569.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 476.0, 110.0, 168.0], "bbox_xyxy_clipped": [34.0, 476.0, 144.0, 644.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [442.0, 610.0, 120.0, 206.0], "bbox_xyxy_clipped": [442.0, 610.0, 562.0, 816.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [200.0, 782.0, 194.0, 192.0], "bbox_xyxy_clipped": [200.0, 782.0, 394.0, 974.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [24.0, 730.0, 78.0, 447.0], "bbox_xyxy_clipped": [24.0, 730.0, 102.0, 1177.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [34.0, 48.0, 220.0, 16.0], "bbox_xyxy_clipped": [34.0, 48.0, 254.0, 64.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [42.0, 112.0, 230.0, 46.0], "bbox_xyxy_clipped": [42.0, 112.0, 272.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [40.0, 182.0, 150.0, 52.0], "bbox_xyxy_clipped": [40.0, 182.0, 190.0, 234.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [40.0, 238.0, 168.0, 99.0], "bbox_xyxy_clipped": [40.0, 238.0, 208.0, 337.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [40.0, 368.0, 190.0, 129.0], "bbox_xyxy_clipped": [40.0, 368.0, 230.0, 497.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [40.0, 1034.0, 220.0, 88.0], "bbox_xyxy_clipped": [40.0, 1034.0, 260.0, 1122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002626500702801232}, "Ove": {"reason": null, "status": "ok", "value": 0.09605119628000214}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5888bb2995a7a863ddcc1f74", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888bb2995a7a863ddcc1f74/pipeline/l0_result.json", "sha256": "94f6d8299f2474c36baeb6f556552cb0ecd7b850bef163b6055c10432836e7ab", "size_bytes": 13330}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888bb2995a7a863ddcc1f74/inputs/pfull/asset_manifest.json", "sha256": "93e62acd796ccd2c004f612f9a6c14fbba323465405e0384578e71b0d1e0d25d", "size_bytes": 9477}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_02.png", "sha256": "4dd43b80be423c73c5132439056bb454ed354da68fdb90488329fa7ae7e7852d", "size_bytes": 229165}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888bb2995a7a863ddcc1f74/inputs/r3/r3_asset_manifest.json", "sha256": "381797bd84452f5605b02cf023c9292e9f45147430dd5a64b674739d456fce20", "size_bytes": 8285}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "719acf86c14b46f54cbd4ff5a9e4727fe300608212a6e0957293795ea8df2803", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [160.0, 36.0, 320.0, 296.0], "bbox_xyxy_clipped": [160.0, 36.0, 480.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 170.0, 187.0], "bbox_xyxy_clipped": [0.0, 0.0, 170.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 318.0, 145.0, 180.0], "bbox_xyxy_clipped": [34.0, 318.0, 179.0, 498.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [522.0, 185.0, 360.0, 44.0], "bbox_xyxy_clipped": [522.0, 185.0, 882.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [620.0, 87.0, 220.0, 42.0], "bbox_xyxy_clipped": [620.0, 87.0, 840.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [514.0, 245.0, 190.0, 63.0], "bbox_xyxy_clipped": [514.0, 245.0, 704.0, 308.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [708.0, 330.0, 190.0, 61.0], "bbox_xyxy_clipped": [708.0, 330.0, 898.0, 391.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [498.0, 162.0, 488.0, 96.0], "bbox_xyxy_clipped": [498.0, 162.0, 986.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [510.0, 316.0, 491.0, 99.0], "bbox_xyxy_clipped": [510.0, 316.0, 1001.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.015298063901049515}, "Occ": {"reason": null, "status": "ok", "value": 0.004366618647028555}, "Ove": {"reason": null, "status": "ok", "value": 0.07051879859882298}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5888c54095a7a863ddcc2082", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888c54095a7a863ddcc2082/pipeline/l0_result.json", "sha256": "c27a1f9a45e397617c572059d2e0f8d179b5f50238ce7f2b50ae8ceb8e9bdc4d", "size_bytes": 8868}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888c54095a7a863ddcc2082/inputs/pfull/asset_manifest.json", "sha256": "9cf5d84a80121f7eab98a608867cb6e4176db7178c82eb50a43222391d69a86a", "size_bytes": 4846}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_02.png", "sha256": "719acf86c14b46f54cbd4ff5a9e4727fe300608212a6e0957293795ea8df2803", "size_bytes": 179977}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888c54095a7a863ddcc2082/inputs/r3/r3_asset_manifest.json", "sha256": "ac2ed232e262a4e8995f6280a275ea200c3d7a79bc2b6b77498411d11c9e002b", "size_bytes": 4337}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "35b81904b2144f3f47a8d9b32d54959c04920a804aee0f89da9832bb69b57b0a", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "r3_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f794bb2410b195fc618a2f0295ec93e2218cc742a2a8411135405f1f5a748969", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 58.0, 184.0, 237.0], "bbox_xyxy_clipped": [18.0, 58.0, 202.0, 295.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 82.0, 186.0], "bbox_xyxy_clipped": [0.0, 0.0, 82.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [278.0, 16.0, 64.0, 120.0], "bbox_xyxy_clipped": [278.0, 16.0, 342.0, 136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [260.0, 385.0, 92.0, 37.0], "bbox_xyxy_clipped": [260.0, 385.0, 352.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [10.0, 418.0, 122.0, 97.0], "bbox_xyxy_clipped": [10.0, 418.0, 132.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [290.0, 220.0, 58.0, 78.0], "bbox_xyxy_clipped": [290.0, 220.0, 348.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [306.0, 300.0, 44.0, 81.0], "bbox_xyxy_clipped": [306.0, 300.0, 350.0, 381.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 330.0, 97.0, 70.0], "bbox_xyxy_clipped": [0.0, 330.0, 97.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 0.0, 57.0, 109.0], "bbox_xyxy_clipped": [120.0, 0.0, 177.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [300.0, 160.0, 38.0, 60.0], "bbox_xyxy_clipped": [300.0, 160.0, 338.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [0.0, 200.0, 53.0, 87.0], "bbox_xyxy_clipped": [0.0, 200.0, 53.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [215.0, 360.0, 60.0, 60.0], "bbox_xyxy_clipped": [215.0, 360.0, 275.0, 420.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [340.0, 430.0, 20.0, 108.0], "bbox_xyxy_clipped": [340.0, 430.0, 360.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [205.0, 26.0, 140.0, 12.0], "bbox_xyxy_clipped": [205.0, 26.0, 345.0, 38.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [207.0, 46.0, 135.0, 26.0], "bbox_xyxy_clipped": [207.0, 46.0, 342.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [215.0, 92.0, 115.0, 44.0], "bbox_xyxy_clipped": [215.0, 92.0, 330.0, 136.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [214.0, 136.0, 124.0, 69.0], "bbox_xyxy_clipped": [214.0, 136.0, 338.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [219.0, 254.0, 107.0, 69.0], "bbox_xyxy_clipped": [219.0, 254.0, 326.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [215.0, 418.0, 121.0, 44.0], "bbox_xyxy_clipped": [215.0, 418.0, 336.0, 462.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 9.377750862943472e-05}, "Ove": {"reason": null, "status": "ok", "value": 0.06786600457656017}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f56c56f66d2b8abbd4d42a81da75b75b6223d5f1de922e99293da8094bdd9ff3", "status": "computed"}, "sample_id": "5888dd7995a7a863ddcc2e86", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/pipeline/l0_result.json", "sha256": "877b1e40c2d631026858076e0e01a60345d8345ccb03f28b0e4fe34c7843eb47", "size_bytes": 15428}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/asset_manifest.json", "sha256": "f03c2aaf5db8f53986da56f3a58bc096b315037cbf0fa35a4093ac8403323fe4", "size_bytes": 10516}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_01.png", "sha256": "35b81904b2144f3f47a8d9b32d54959c04920a804aee0f89da9832bb69b57b0a", "size_bytes": 168596}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/inputs/r3/r3_asset_manifest.json", "sha256": "3f6b53f5faee5f00da2864c764d517dd14151539e18676a6f0db7fafb19c3c21", "size_bytes": 9089}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5c3b35c83584e5ce55d63f8576eb7cf08df4d82e0bd4ee7e30ddd99b1d2d4772", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [87.0, 68.0, 186.0, 190.0], "bbox_xyxy_clipped": [87.0, 68.0, 273.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 174.0, 120.0, 184.0], "bbox_xyxy_clipped": [120.0, 174.0, 240.0, 358.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [131.0, 157.0, 98.0, 156.0], "bbox_xyxy_clipped": [131.0, 157.0, 229.0, 313.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 132.0, 360.0, 54.0], "bbox_xyxy_clipped": [0.0, 132.0, 360.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 189.0, 360.0, 54.0], "bbox_xyxy_clipped": [0.0, 189.0, 360.0, 243.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [12.0, 259.0, 336.0, 54.0], "bbox_xyxy_clipped": [12.0, 259.0, 348.0, 313.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [59.0, 417.0, 49.0, 66.0], "bbox_xyxy_clipped": [59.0, 417.0, 108.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [252.0, 417.0, 49.0, 66.0], "bbox_xyxy_clipped": [252.0, 417.0, 301.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [48.0, 86.0, 264.0, 26.0], "bbox_xyxy_clipped": [48.0, 86.0, 312.0, 112.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [68.0, 118.0, 224.0, 27.0], "bbox_xyxy_clipped": [68.0, 118.0, 292.0, 145.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [59.0, 333.0, 242.0, 27.0], "bbox_xyxy_clipped": [59.0, 333.0, 301.0, 360.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [103.0, 380.0, 154.0, 66.0], "bbox_xyxy_clipped": [103.0, 380.0, 257.0, 446.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004648218817889372}, "Ove": {"reason": null, "status": "ok", "value": 0.2403331953270849}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5889bc5995a7a863ddcc3b97", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5889bc5995a7a863ddcc3b97/pipeline/l0_result.json", "sha256": "3db9da5b4dd16559647f41194aca272b0be341e87baee061eb1935c77489e7d7", "size_bytes": 10028}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5889bc5995a7a863ddcc3b97/inputs/pfull/asset_manifest.json", "sha256": "de0d7d944e77f3a670d4cf9befc63b147d7af6da424b618527cafb7351312e54", "size_bytes": 6410}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_03.png", "sha256": "5c3b35c83584e5ce55d63f8576eb7cf08df4d82e0bd4ee7e30ddd99b1d2d4772", "size_bytes": 95698}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5889bc5995a7a863ddcc3b97/inputs/r3/r3_asset_manifest.json", "sha256": "e0850bcb56d8a2ec53a8a2aead9c03cf66f8971c701ff82f9639142f65e390ea", "size_bytes": 5602}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "79b9bb596d35bc6d9daab7a22482bb57d0e13f922c078e74d8f5a28cf818a0e8", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [87.0, 208.0, 906.0, 604.0], "bbox_xyxy_clipped": [87.0, 208.0, 993.0, 812.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [196.0, 172.0, 688.0, 688.0], "bbox_xyxy_clipped": [196.0, 172.0, 884.0, 860.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [210.0, 188.0, 661.0, 655.0], "bbox_xyxy_clipped": [210.0, 188.0, 871.0, 843.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [278.0, 216.0, 524.0, 524.0], "bbox_xyxy_clipped": [278.0, 216.0, 802.0, 740.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [74.0, 120.0, 932.0, 222.0], "bbox_xyxy_clipped": [74.0, 120.0, 1006.0, 342.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [74.0, 744.0, 932.0, 223.0], "bbox_xyxy_clipped": [74.0, 744.0, 1006.0, 967.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [84.0, 332.0, 91.0, 314.0], "bbox_xyxy_clipped": [84.0, 332.0, 175.0, 646.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [905.0, 333.0, 88.0, 307.0], "bbox_xyxy_clipped": [905.0, 333.0, 993.0, 640.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 278.0, 143.0, 356.0], "bbox_xyxy_clipped": [120.0, 278.0, 263.0, 634.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [821.0, 280.0, 139.0, 349.0], "bbox_xyxy_clipped": [821.0, 280.0, 960.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [370.0, 469.0, 341.0, 313.0], "bbox_xyxy_clipped": [370.0, 469.0, 711.0, 782.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [363.0, 404.0, 355.0, 329.0], "bbox_xyxy_clipped": [363.0, 404.0, 718.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [280.0, 124.0, 520.0, 112.0], "bbox_xyxy_clipped": [280.0, 124.0, 800.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [457.0, 215.0, 168.0, 91.0], "bbox_xyxy_clipped": [457.0, 215.0, 625.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [394.0, 673.0, 292.0, 303.0], "bbox_xyxy_clipped": [394.0, 673.0, 686.0, 976.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [386.0, 745.0, 308.0, 106.0], "bbox_xyxy_clipped": [386.0, 745.0, 694.0, 851.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004773934028139425}, "Ove": {"reason": null, "status": "ok", "value": 0.7139012504169359}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "589b457b95a7a863ddcc5331", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/589b457b95a7a863ddcc5331/pipeline/l0_result.json", "sha256": "1d0818f64ecfc88d1c109c0ed2d479d6ccfc0b75cbf088d6047afa8bbd1b4e4e", "size_bytes": 12762}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/589b457b95a7a863ddcc5331/inputs/pfull/asset_manifest.json", "sha256": "4b94e3ddacb1e9512f6ef013847b2b033027ba5572ea7dcaff2480894576f833", "size_bytes": 8305}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_02.png", "sha256": "79b9bb596d35bc6d9daab7a22482bb57d0e13f922c078e74d8f5a28cf818a0e8", "size_bytes": 708252}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/589b457b95a7a863ddcc5331/inputs/r3/r3_asset_manifest.json", "sha256": "5f08341671fdd44cea192119376a5da210b58635a0c37e5da6a3e2d793094df7", "size_bytes": 7171}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c51d5dd3404af37e175ece93595e7e26e90fd473f60a2641db418a53c6c90ffb", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "r3_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "5c23665f7df6f57c8fa7119a33c87e737e52f9829cadf0c04fdc968f0de75b47", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0014", "bbox_lwh_raw": [20.0, 18.0, 95.0, 90.0], "bbox_xyxy_clipped": [20.0, 18.0, 115.0, 108.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [238.0, 20.0, 90.0, 80.0], "bbox_xyxy_clipped": [238.0, 20.0, 328.0, 100.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [22.0, 400.0, 92.0, 79.0], "bbox_xyxy_clipped": [22.0, 400.0, 114.0, 479.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [250.0, 389.0, 90.0, 119.0], "bbox_xyxy_clipped": [250.0, 389.0, 340.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [138.0, 30.0, 84.0, 98.0], "bbox_xyxy_clipped": [138.0, 30.0, 222.0, 128.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [126.0, 388.0, 108.0, 133.0], "bbox_xyxy_clipped": [126.0, 388.0, 234.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [28.0, 125.0, 88.0, 109.0], "bbox_xyxy_clipped": [28.0, 125.0, 116.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [62.0, 142.0, 238.0, 29.0], "bbox_xyxy_clipped": [62.0, 142.0, 300.0, 171.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [149.0, 186.0, 198.0, 12.0], "bbox_xyxy_clipped": [149.0, 186.0, 347.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [242.0, 84.0, 92.0, 91.0], "bbox_xyxy_clipped": [242.0, 84.0, 334.0, 175.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [123.0, 208.0, 114.0, 14.0], "bbox_xyxy_clipped": [123.0, 208.0, 237.0, 222.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [95.0, 230.0, 170.0, 34.0], "bbox_xyxy_clipped": [95.0, 230.0, 265.0, 264.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [85.0, 270.0, 191.0, 24.0], "bbox_xyxy_clipped": [85.0, 270.0, 276.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [78.0, 308.0, 205.0, 16.0], "bbox_xyxy_clipped": [78.0, 308.0, 283.0, 324.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [141.0, 340.0, 78.0, 24.0], "bbox_xyxy_clipped": [141.0, 340.0, 219.0, 364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [250.0, 330.0, 95.0, 97.0], "bbox_xyxy_clipped": [250.0, 330.0, 345.0, 427.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0004457352822746114}, "Ove": {"reason": null, "status": "ok", "value": 0.033931644192080765}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "1357996aa9dd3f6f2e170f3106776c28a910c56ce82a2f2b923153db811e3d20", "status": "computed"}, "sample_id": "58ab17ba95a7a863ddcc77bf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/pipeline/l0_result.json", "sha256": "58cd1255e8154bdf6152920bc2aed796ad245b320fe0485e44eecd12a190f5d0", "size_bytes": 13012}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/asset_manifest.json", "sha256": "62e05b7ccdda1e887d676afe70b9bb75ee70ca49f2314c53900f5ace0e101eae", "size_bytes": 8941}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_02.png", "sha256": "c51d5dd3404af37e175ece93595e7e26e90fd473f60a2641db418a53c6c90ffb", "size_bytes": 97464}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/inputs/r3/r3_asset_manifest.json", "sha256": "2501dddff0aa78f99d1fa1c890ded3d622042d7021a9925ad2962af18b20b4f6", "size_bytes": 7707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "24272247f2a82f02a7f962a6f11db765f8ea71f80ef942d4f84e8b6dcb5abb04", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "asset_size_bytes": 1168, "kind": "asset", "pfull_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "r3_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e7368a74623399c74381a081a94a9cb6279b6c6fc41eff773942bc635e404d67", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [19.0, 183.0, 171.0, 57.0], "bbox_xyxy_clipped": [19.0, 183.0, 190.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [148.0, 177.0, 172.0, 122.0], "bbox_xyxy_clipped": [148.0, 177.0, 320.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [274.0, 183.0, 124.0, 105.0], "bbox_xyxy_clipped": [274.0, 183.0, 398.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 22.0, 180.0, 92.0], "bbox_xyxy_clipped": [120.0, 22.0, 300.0, 114.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [73.0, 109.0, 274.0, 34.0], "bbox_xyxy_clipped": [73.0, 109.0, 347.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [302.0, 93.0, 96.0, 41.0], "bbox_xyxy_clipped": [302.0, 93.0, 398.0, 134.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [178.0, 214.0, 108.0, 84.0], "bbox_xyxy_clipped": [178.0, 214.0, 286.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [238.0, 219.0, 25.0, 21.0], "bbox_xyxy_clipped": [238.0, 219.0, 263.0, 240.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.000516707114153978}, "Ove": {"reason": null, "status": "ok", "value": 0.11975976122076766}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "a6d6867d22b3fe8b10abc02a12d35da4263e227990469800e51c4a89eda79323", "status": "computed"}, "sample_id": "58ab189395a7a863ddcc7847", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/pipeline/l0_result.json", "sha256": "44c9733bcf2478f47a9402be84ccadb4c98a2615f44615768d80bebae1199440", "size_bytes": 8636}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/asset_manifest.json", "sha256": "de6e2a877cf39601e650b20b8aad9d6fd03c1b4ec91884cfe580279f4c01a7dc", "size_bytes": 4944}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "sha256": "24272247f2a82f02a7f962a6f11db765f8ea71f80ef942d4f84e8b6dcb5abb04", "size_bytes": 57805}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/inputs/r3/r3_asset_manifest.json", "sha256": "1387adc04e983cce1a3e3a79ad833dea49e62365a48ed17185e16928af01433f", "size_bytes": 4443}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "size_bytes": 1168}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ba5315e960a51bba09d72b87ca29f4529f3086621bdb664fa43e9f8d0cfae132", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 28.0, 5.0, 569.0], "bbox_xyxy_clipped": [18.0, 28.0, 23.0, 597.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [476.0, 25.0, 110.0, 240.0], "bbox_xyxy_clipped": [476.0, 25.0, 586.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [479.0, 280.0, 104.0, 238.0], "bbox_xyxy_clipped": [479.0, 280.0, 583.0, 518.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 0.0, 600.0, 5.0], "bbox_xyxy_clipped": [0.0, 0.0, 600.0, 5.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 1195.0, 600.0, 5.0], "bbox_xyxy_clipped": [0.0, 1195.0, 600.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 0.0, 5.0, 1200.0], "bbox_xyxy_clipped": [0.0, 0.0, 5.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [595.0, 0.0, 5.0, 1200.0], "bbox_xyxy_clipped": [595.0, 0.0, 600.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [40.0, 165.0, 390.0, 501.0], "bbox_xyxy_clipped": [40.0, 165.0, 430.0, 666.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [38.0, 92.0, 55.0, 403.0], "bbox_xyxy_clipped": [38.0, 92.0, 93.0, 495.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [98.0, 98.0, 63.0, 394.0], "bbox_xyxy_clipped": [98.0, 98.0, 161.0, 492.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [42.0, 82.0, 255.0, 21.0], "bbox_xyxy_clipped": [42.0, 82.0, 297.0, 103.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [42.0, 114.0, 145.0, 37.0], "bbox_xyxy_clipped": [42.0, 114.0, 187.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [42.0, 154.0, 203.0, 36.0], "bbox_xyxy_clipped": [42.0, 154.0, 245.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [42.0, 198.0, 215.0, 34.0], "bbox_xyxy_clipped": [42.0, 198.0, 257.0, 232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [42.0, 240.0, 128.0, 36.0], "bbox_xyxy_clipped": [42.0, 240.0, 170.0, 276.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [42.0, 320.0, 193.0, 20.0], "bbox_xyxy_clipped": [42.0, 320.0, 235.0, 340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [42.0, 880.0, 171.0, 20.0], "bbox_xyxy_clipped": [42.0, 880.0, 213.0, 900.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [42.0, 915.0, 224.0, 22.0], "bbox_xyxy_clipped": [42.0, 915.0, 266.0, 937.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [42.0, 967.0, 231.0, 20.0], "bbox_xyxy_clipped": [42.0, 967.0, 273.0, 987.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [42.0, 995.0, 205.0, 18.0], "bbox_xyxy_clipped": [42.0, 995.0, 247.0, 1013.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [42.0, 1024.0, 205.0, 18.0], "bbox_xyxy_clipped": [42.0, 1024.0, 247.0, 1042.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [42.0, 1054.0, 185.0, 19.0], "bbox_xyxy_clipped": [42.0, 1054.0, 227.0, 1073.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032128224266705064}, "Ove": {"reason": null, "status": "ok", "value": 0.046227454960472404}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "58cbc44595a7a863ddccc20b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58cbc44595a7a863ddccc20b/pipeline/l0_result.json", "sha256": "88df971234c4b246ca5b1848398871e5721655e0d60a39f7d7122fbdf9a6f1fc", "size_bytes": 17324}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58cbc44595a7a863ddccc20b/inputs/pfull/asset_manifest.json", "sha256": "4c86735a8d0033e71f6c6e482e528975a2b7145557f9eeceb0c97ee60b19cece", "size_bytes": 11495}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_03.png", "sha256": "ba5315e960a51bba09d72b87ca29f4529f3086621bdb664fa43e9f8d0cfae132", "size_bytes": 129574}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/58cbc44595a7a863ddccc20b/inputs/r3/r3_asset_manifest.json", "sha256": "9495c177798965c7f37acf77b7c86ee2ae84f482617b274800bce129aa013614", "size_bytes": 10273}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9de4bc46563902f4876f2079c812eda3e25987274b47f200eef4ad4bdac892e7", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [468.0, 218.0, 503.0, 499.0], "bbox_xyxy_clipped": [468.0, 218.0, 971.0, 717.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [794.0, 56.0, 186.0, 186.0], "bbox_xyxy_clipped": [794.0, 56.0, 980.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [769.0, 84.0, 260.0, 259.0], "bbox_xyxy_clipped": [769.0, 84.0, 1029.0, 343.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [610.0, 312.0, 387.0, 21.0], "bbox_xyxy_clipped": [610.0, 312.0, 997.0, 333.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [620.0, 370.0, 370.0, 20.0], "bbox_xyxy_clipped": [620.0, 370.0, 990.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [771.0, 883.0, 251.0, 20.0], "bbox_xyxy_clipped": [771.0, 883.0, 1022.0, 903.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [612.0, 420.0, 404.0, 23.0], "bbox_xyxy_clipped": [612.0, 420.0, 1016.0, 443.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [602.0, 172.0, 332.0, 26.0], "bbox_xyxy_clipped": [602.0, 172.0, 934.0, 198.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [600.0, 212.0, 300.0, 32.0], "bbox_xyxy_clipped": [600.0, 212.0, 900.0, 244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [611.0, 466.0, 351.0, 27.0], "bbox_xyxy_clipped": [611.0, 466.0, 962.0, 493.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [92.0, 641.0, 482.0, 194.0], "bbox_xyxy_clipped": [92.0, 641.0, 574.0, 835.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.00442541884442913}, "Occ": {"reason": null, "status": "ok", "value": 0.003420530282883693}, "Ove": {"reason": null, "status": "ok", "value": 0.09494622978751895}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5909cfb695a7a863ddcd37cb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5909cfb695a7a863ddcd37cb/pipeline/l0_result.json", "sha256": "5b93d5554d2cc27a8e0b31fbd704b8b566815fc7adee2f53db5cfd78d76f4174", "size_bytes": 10645}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5909cfb695a7a863ddcd37cb/inputs/pfull/asset_manifest.json", "sha256": "4de9bdb6df7c0951c71ce4f792538fdf9b62ce1597f17054afe8b3d683e553a7", "size_bytes": 6000}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_03.png", "sha256": "9de4bc46563902f4876f2079c812eda3e25987274b47f200eef4ad4bdac892e7", "size_bytes": 488003}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5909cfb695a7a863ddcd37cb/inputs/r3/r3_asset_manifest.json", "sha256": "7b363de371703f7aa0885c184970e797617b977a3c91a1b47c2ce8ea0db1de9c", "size_bytes": 5331}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4b562cd2933ad209ae5b0d8497b672bdeb101efa423ebe75f9c81fb0b0249f46", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 12, "valid": 10}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 128.0, 252.0, 168.0], "bbox_xyxy_clipped": [34.0, 128.0, 286.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [42.0, 315.0, 216.0, 162.0], "bbox_xyxy_clipped": [42.0, 315.0, 258.0, 477.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [40.0, 494.0, 216.0, 162.0], "bbox_xyxy_clipped": [40.0, 494.0, 256.0, 656.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [302.0, 92.0, 168.0, 268.0], "bbox_xyxy_clipped": [302.0, 92.0, 470.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [306.0, 372.0, 194.0, 3.0], "bbox_xyxy_clipped": [306.0, 372.0, 500.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [306.0, 407.0, 194.0, 3.0], "bbox_xyxy_clipped": [306.0, 407.0, 500.0, 410.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [306.0, 446.0, 194.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [306.0, 478.0, 194.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [314.0, 378.0, 160.0, 15.0], "bbox_xyxy_clipped": [314.0, 378.0, 474.0, 393.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [314.0, 402.0, 150.0, 22.0], "bbox_xyxy_clipped": [314.0, 402.0, 464.0, 424.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [314.0, 442.0, 170.0, 15.0], "bbox_xyxy_clipped": [314.0, 442.0, 484.0, 457.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [314.0, 514.0, 180.0, 21.0], "bbox_xyxy_clipped": [314.0, 514.0, 494.0, 535.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035269968563837175}, "Ove": {"reason": null, "status": "ok", "value": 0.013111888111888112}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5914233f95a7a863ddcd777c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5914233f95a7a863ddcd777c/pipeline/l0_result.json", "sha256": "2b247254e1468486467ff0c6e7377cee3425331530e6c31cbde4f9d467de0b3e", "size_bytes": 10051}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5914233f95a7a863ddcd777c/inputs/pfull/asset_manifest.json", "sha256": "a4a9abd9382b66e7ba18c86feec1799012f384fb06e08a899806fbe251b55676", "size_bytes": 6397}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "sha256": "4b562cd2933ad209ae5b0d8497b672bdeb101efa423ebe75f9c81fb0b0249f46", "size_bytes": 142230}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5914233f95a7a863ddcd777c/inputs/r3/r3_asset_manifest.json", "sha256": "8b3eb1ef21e36be7a23aac057ac6452e61020cebeb6e29b34ade07aaaff1dcdd", "size_bytes": 5557}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6bf6b8dfab9357f62ba3936af72f4a1fe770f529f2dc0e1d9aab214134006e8b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [85.0, 64.0, 190.0, 113.0], "bbox_xyxy_clipped": [85.0, 64.0, 275.0, 177.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [176.0, 70.0, 156.0, 95.0], "bbox_xyxy_clipped": [176.0, 70.0, 332.0, 165.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [35.0, 82.0, 58.0, 67.0], "bbox_xyxy_clipped": [35.0, 82.0, 93.0, 149.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [308.0, 82.0, 46.0, 53.0], "bbox_xyxy_clipped": [308.0, 82.0, 354.0, 135.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [135.0, 355.0, 90.0, 41.0], "bbox_xyxy_clipped": [135.0, 355.0, 225.0, 396.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 411.0, 304.0, 15.0], "bbox_xyxy_clipped": [28.0, 411.0, 332.0, 426.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [55.0, 434.0, 250.0, 17.0], "bbox_xyxy_clipped": [55.0, 434.0, 305.0, 451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [74.0, 460.0, 212.0, 13.0], "bbox_xyxy_clipped": [74.0, 460.0, 286.0, 473.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [147.0, 287.0, 71.0, 44.0], "bbox_xyxy_clipped": [147.0, 287.0, 218.0, 331.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [18.0, 231.0, 34.0, 34.0], "bbox_xyxy_clipped": [18.0, 231.0, 52.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [51.0, 214.0, 34.0, 34.0], "bbox_xyxy_clipped": [51.0, 214.0, 85.0, 248.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [276.0, 222.0, 32.0, 32.0], "bbox_xyxy_clipped": [276.0, 222.0, 308.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [310.0, 208.0, 34.0, 34.0], "bbox_xyxy_clipped": [310.0, 208.0, 344.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [21.0, 286.0, 31.0, 31.0], "bbox_xyxy_clipped": [21.0, 286.0, 52.0, 317.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [58.0, 279.0, 32.0, 32.0], "bbox_xyxy_clipped": [58.0, 279.0, 90.0, 311.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [281.0, 281.0, 31.0, 31.0], "bbox_xyxy_clipped": [281.0, 281.0, 312.0, 312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [313.0, 270.0, 33.0, 33.0], "bbox_xyxy_clipped": [313.0, 270.0, 346.0, 303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [27.0, 333.0, 32.0, 32.0], "bbox_xyxy_clipped": [27.0, 333.0, 59.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [64.0, 325.0, 33.0, 33.0], "bbox_xyxy_clipped": [64.0, 325.0, 97.0, 358.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [272.0, 333.0, 32.0, 32.0], "bbox_xyxy_clipped": [272.0, 333.0, 304.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [309.0, 324.0, 33.0, 33.0], "bbox_xyxy_clipped": [309.0, 324.0, 342.0, 357.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [167.0, 214.0, 26.0, 26.0], "bbox_xyxy_clipped": [167.0, 214.0, 193.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004340639543429949}, "Ove": {"reason": null, "status": "ok", "value": 0.020836174540579237}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "592d1a2b95a7a863ddcd97aa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592d1a2b95a7a863ddcd97aa/pipeline/l0_result.json", "sha256": "70c6ab3c65e107505bc2a1b22fb23d415d16420321075461f87a9663fcf6ae2a", "size_bytes": 15099}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592d1a2b95a7a863ddcd97aa/inputs/pfull/asset_manifest.json", "sha256": "bed1dccda2e30e3407e0d6302f3ed3b75f7ed69e211526305963a38f0942575d", "size_bytes": 11370}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_03.png", "sha256": "6bf6b8dfab9357f62ba3936af72f4a1fe770f529f2dc0e1d9aab214134006e8b", "size_bytes": 51707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592d1a2b95a7a863ddcd97aa/inputs/r3/r3_asset_manifest.json", "sha256": "e89087dc6b17aa0932ed63a63b332f41d628da780b28735d23afcf62fc155c7a", "size_bytes": 9576}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4e3c40a99f3678fa22566add97c53a1a4938aa88b820d0fe25453465225e179e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [222.0, 58.0, 756.0, 95.0], "bbox_xyxy_clipped": [222.0, 58.0, 978.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [257.0, 214.0, 686.0, 66.0], "bbox_xyxy_clipped": [257.0, 214.0, 943.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [323.0, 288.0, 555.0, 57.0], "bbox_xyxy_clipped": [323.0, 288.0, 878.0, 345.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [278.0, 350.0, 644.0, 72.0], "bbox_xyxy_clipped": [278.0, 350.0, 922.0, 422.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [431.0, 438.0, 339.0, 146.0], "bbox_xyxy_clipped": [431.0, 438.0, 770.0, 584.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [90.0, 111.0, 240.0, 125.0], "bbox_xyxy_clipped": [90.0, 111.0, 330.0, 236.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [860.0, 118.0, 235.0, 120.0], "bbox_xyxy_clipped": [860.0, 118.0, 1095.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [91.0, 447.0, 222.0, 110.0], "bbox_xyxy_clipped": [91.0, 447.0, 313.0, 557.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [855.0, 446.0, 234.0, 37.0], "bbox_xyxy_clipped": [855.0, 446.0, 1089.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00453280646089431}, "Ove": {"reason": null, "status": "ok", "value": 0.015484761233951835}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "592fdd7e95a7a863ddcdbe67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592fdd7e95a7a863ddcdbe67/pipeline/l0_result.json", "sha256": "e0d22a7fc36e30e749205593786c708900a69a277fedc3707f0b34cdbab77c89", "size_bytes": 8546}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592fdd7e95a7a863ddcdbe67/inputs/pfull/asset_manifest.json", "sha256": "9716c7792bf8ccd8619463a5378cb5eb464c9af9aca5b197c5648e2b7a64ce83", "size_bytes": 4914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_03.png", "sha256": "4e3c40a99f3678fa22566add97c53a1a4938aa88b820d0fe25453465225e179e", "size_bytes": 219284}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/592fdd7e95a7a863ddcdbe67/inputs/r3/r3_asset_manifest.json", "sha256": "c1c79fee9fbf17ca5bd6bfe32d57679e3846ad9deccae2aa43d7dbce73e92ea8", "size_bytes": 4393}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "95f9285b232562f6727ad7303bb6250b32d2cd2feadd170084fc9732cbb95973", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [36.0, 824.0, 120.0, 240.0], "bbox_xyxy_clipped": [36.0, 824.0, 156.0, 1064.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [28.0, 56.0, 250.0, 274.0], "bbox_xyxy_clipped": [28.0, 56.0, 278.0, 330.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [302.0, 98.0, 190.0, 117.0], "bbox_xyxy_clipped": [302.0, 98.0, 492.0, 215.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [436.0, 88.0, 134.0, 46.0], "bbox_xyxy_clipped": [436.0, 88.0, 570.0, 134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [348.0, 58.0, 150.0, 125.0], "bbox_xyxy_clipped": [348.0, 58.0, 498.0, 183.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [328.0, 150.0, 230.0, 109.0], "bbox_xyxy_clipped": [328.0, 150.0, 558.0, 259.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [346.0, 286.0, 70.0, 42.0], "bbox_xyxy_clipped": [346.0, 286.0, 416.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [417.0, 287.0, 44.0, 37.0], "bbox_xyxy_clipped": [417.0, 287.0, 461.0, 324.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [460.0, 301.0, 78.0, 32.0], "bbox_xyxy_clipped": [460.0, 301.0, 538.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [333.0, 372.0, 238.0, 75.0], "bbox_xyxy_clipped": [333.0, 372.0, 571.0, 447.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003620629487761602}, "Occ": {"reason": null, "status": "ok", "value": 0.001828843066629441}, "Ove": {"reason": null, "status": "ok", "value": 0.10554814640747182}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5930177f95a7a863ddcdc313", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5930177f95a7a863ddcdc313/pipeline/l0_result.json", "sha256": "b963adcbd43504bfda5f767c26ba4685796227c5d299b931b562d8d5768e6e21", "size_bytes": 8789}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5930177f95a7a863ddcdc313/inputs/pfull/asset_manifest.json", "sha256": "e5a6734185b93c999c437ff5b1bec615f637994a28f0cf781956abc3e1bccdfb", "size_bytes": 5400}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_01.png", "sha256": "95f9285b232562f6727ad7303bb6250b32d2cd2feadd170084fc9732cbb95973", "size_bytes": 114035}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5930177f95a7a863ddcdc313/inputs/r3/r3_asset_manifest.json", "sha256": "a0e9c852b4068ba874cbf84f10658c155e24b14df35b46e8652d0d002d15f23e", "size_bytes": 4851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "864987533c9cc5d4bc011f856bf3db4ed962b685c07baa68e83d2a7dc5eb985c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "asset_size_bytes": 4720, "kind": "asset", "pfull_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "r3_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "098faaace2db9293b83a766e8f49c32c91960bca84f91c8b2cf0c0a0000b0eb9", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [56.0, 86.0, 204.0, 168.0], "bbox_xyxy_clipped": [56.0, 86.0, 260.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [682.0, 88.0, 198.0, 231.0], "bbox_xyxy_clipped": [682.0, 88.0, 880.0, 319.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [126.0, 148.0, 176.0, 123.0], "bbox_xyxy_clipped": [126.0, 148.0, 302.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [646.0, 150.0, 176.0, 123.0], "bbox_xyxy_clipped": [646.0, 150.0, 822.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [104.0, 280.0, 162.0, 162.0], "bbox_xyxy_clipped": [104.0, 280.0, 266.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [678.0, 280.0, 162.0, 162.0], "bbox_xyxy_clipped": [678.0, 280.0, 840.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [94.0, 616.0, 620.0, 4.0], "bbox_xyxy_clipped": [94.0, 616.0, 714.0, 620.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [104.0, 636.0, 598.0, 5.0], "bbox_xyxy_clipped": [104.0, 636.0, 702.0, 641.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [126.0, 594.0, 372.0, 88.0], "bbox_xyxy_clipped": [126.0, 594.0, 498.0, 682.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [608.0, 244.0, 232.0, 168.0], "bbox_xyxy_clipped": [608.0, 244.0, 840.0, 412.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [332.0, 318.0, 276.0, 274.0], "bbox_xyxy_clipped": [332.0, 318.0, 608.0, 592.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [244.0, 344.0, 184.0, 166.0], "bbox_xyxy_clipped": [244.0, 344.0, 428.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [536.0, 350.0, 150.0, 116.0], "bbox_xyxy_clipped": [536.0, 350.0, 686.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [218.0, 398.0, 196.0, 284.0], "bbox_xyxy_clipped": [218.0, 398.0, 414.0, 682.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [506.0, 392.0, 228.0, 119.0], "bbox_xyxy_clipped": [506.0, 392.0, 734.0, 511.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [154.0, 448.0, 176.0, 134.0], "bbox_xyxy_clipped": [154.0, 448.0, 330.0, 582.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [616.0, 430.0, 164.0, 112.0], "bbox_xyxy_clipped": [616.0, 430.0, 780.0, 542.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [304.0, 418.0, 184.0, 137.0], "bbox_xyxy_clipped": [304.0, 418.0, 488.0, 555.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [430.0, 286.0, 170.0, 158.0], "bbox_xyxy_clipped": [430.0, 286.0, 600.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [558.0, 660.0, 304.0, 53.0], "bbox_xyxy_clipped": [558.0, 660.0, 862.0, 713.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [304.0, 128.0, 332.0, 143.0], "bbox_xyxy_clipped": [304.0, 128.0, 636.0, 271.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [274.0, 278.0, 392.0, 53.0], "bbox_xyxy_clipped": [274.0, 278.0, 666.0, 331.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0002673763820451484}, "Ove": {"reason": null, "status": "ok", "value": 0.2590370198503761}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "056aca6988933b052a2df876433d5518d7c24695c7944b47997e05011a73b75b", "status": "computed"}, "sample_id": "5931132c95a7a863ddcdc5d3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/pipeline/l0_result.json", "sha256": "737aefc4af77250e00a1188798dc711bda0e3ae513ac6f9aff64ef74b65d381a", "size_bytes": 15560}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/asset_manifest.json", "sha256": "d30c1839fb9433cd9baa31d0b9987c6dfab5a519e383235132a21f6d5eeffc9f", "size_bytes": 11863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_03.png", "sha256": "864987533c9cc5d4bc011f856bf3db4ed962b685c07baa68e83d2a7dc5eb985c", "size_bytes": 373763}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/inputs/r3/r3_asset_manifest.json", "sha256": "83371ac11e004d23314b5242e411f091c2207403f24397426c499ad0ad52da33", "size_bytes": 9979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "be3b7d5301fe06f0bd5f11a4472b0d7ecf19917a41c2bc8ba0df4097e6ba2125", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "asset_size_bytes": 1856, "kind": "asset", "pfull_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "r3_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "93b6b3c3b1b77b78b9325f38d684b4d00a3eeb10e13f41a0250b52402f1457fe", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0014", "bbox_lwh_raw": [24.0, 118.0, 122.0, 55.0], "bbox_xyxy_clipped": [24.0, 118.0, 146.0, 173.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [24.0, 182.0, 74.0, 47.0], "bbox_xyxy_clipped": [24.0, 182.0, 98.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [22.0, 232.0, 95.0, 21.0], "bbox_xyxy_clipped": [22.0, 232.0, 117.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [100.0, 102.0, 86.0, 37.0], "bbox_xyxy_clipped": [100.0, 102.0, 186.0, 139.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [24.0, 254.0, 154.0, 12.0], "bbox_xyxy_clipped": [24.0, 254.0, 178.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [208.0, 112.0, 122.0, 220.0], "bbox_xyxy_clipped": [208.0, 112.0, 330.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [186.0, 64.0, 60.0, 63.0], "bbox_xyxy_clipped": [186.0, 64.0, 246.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [274.0, 64.0, 70.0, 102.0], "bbox_xyxy_clipped": [274.0, 64.0, 344.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [176.0, 354.0, 168.0, 40.0], "bbox_xyxy_clipped": [176.0, 354.0, 344.0, 394.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [310.0, 210.0, 48.0, 51.0], "bbox_xyxy_clipped": [310.0, 210.0, 358.0, 261.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [36.0, 318.0, 90.0, 60.0], "bbox_xyxy_clipped": [36.0, 318.0, 126.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [286.0, 286.0, 52.0, 59.0], "bbox_xyxy_clipped": [286.0, 286.0, 338.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [314.0, 82.0, 36.0, 40.0], "bbox_xyxy_clipped": [314.0, 82.0, 350.0, 122.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [155.0, 420.0, 54.0, 72.0], "bbox_xyxy_clipped": [155.0, 420.0, 209.0, 492.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [300.0, 360.0, 50.0, 54.0], "bbox_xyxy_clipped": [300.0, 360.0, 350.0, 414.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [10.0, 420.0, 76.0, 80.0], "bbox_xyxy_clipped": [10.0, 420.0, 86.0, 500.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [120.0, 414.0, 92.0, 100.0], "bbox_xyxy_clipped": [120.0, 414.0, 212.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0344482032139443}, "Ove": {"reason": null, "status": "ok", "value": 0.06824697114895406}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e149f044c8861ee5953956a680d30cac4452b24565a8f6870fdcfce36e79d002", "status": "computed"}, "sample_id": "59313e5495a7a863ddcdc9ac", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/pipeline/l0_result.json", "sha256": "29395112dc82e417302fa7884b870ad3d9cbcbe24b2a7000478cc615a7241125", "size_bytes": 13647}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/asset_manifest.json", "sha256": "f94c3aab09ef1dc6871cee61e86b61f0e9a9ec1eb6d74ea951b1c7e482914115", "size_bytes": 9415}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "sha256": "be3b7d5301fe06f0bd5f11a4472b0d7ecf19917a41c2bc8ba0df4097e6ba2125", "size_bytes": 78620}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/inputs/r3/r3_asset_manifest.json", "sha256": "313b199f79eea2cbb75e4c439e7f3d86e37f42f9978ba0ecd21bce6d54ee40ce", "size_bytes": 8037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "size_bytes": 1856}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "25920e41db0c6e3f5afe05954762af36317380319e40a5ab3b281a06008e664e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [24.0, 18.0, 96.0, 22.0], "bbox_xyxy_clipped": [24.0, 18.0, 120.0, 40.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [24.0, 42.0, 104.0, 28.0], "bbox_xyxy_clipped": [24.0, 42.0, 128.0, 70.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [24.0, 74.0, 112.0, 24.0], "bbox_xyxy_clipped": [24.0, 74.0, 136.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [24.0, 100.0, 78.0, 21.0], "bbox_xyxy_clipped": [24.0, 100.0, 102.0, 121.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [170.0, 38.0, 225.0, 161.0], "bbox_xyxy_clipped": [170.0, 38.0, 395.0, 199.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [24.0, 226.0, 132.0, 23.0], "bbox_xyxy_clipped": [24.0, 226.0, 156.0, 249.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [24.0, 253.0, 118.0, 42.0], "bbox_xyxy_clipped": [24.0, 253.0, 142.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [292.0, 12.0, 70.0, 50.0], "bbox_xyxy_clipped": [292.0, 12.0, 362.0, 62.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [324.0, 78.0, 68.0, 59.0], "bbox_xyxy_clipped": [324.0, 78.0, 392.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [342.0, 147.0, 61.0, 70.0], "bbox_xyxy_clipped": [342.0, 147.0, 403.0, 217.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [311.0, 223.0, 70.0, 72.0], "bbox_xyxy_clipped": [311.0, 223.0, 381.0, 295.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0014396517580190348}, "Ove": {"reason": null, "status": "ok", "value": 0.020721670796997993}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5952704d95a7a863ddcdecb5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952704d95a7a863ddcdecb5/pipeline/l0_result.json", "sha256": "8197e0758428342bf3948af2b3515d54b2f04242fd525730f3ab56edce8e2fa4", "size_bytes": 10762}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952704d95a7a863ddcdecb5/inputs/pfull/asset_manifest.json", "sha256": "7623958892154f4b58c717cc9380308627b32c5bd27a91a683e4400e7cf9f95a", "size_bytes": 5909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_02.png", "sha256": "25920e41db0c6e3f5afe05954762af36317380319e40a5ab3b281a06008e664e", "size_bytes": 49503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952704d95a7a863ddcdecb5/inputs/r3/r3_asset_manifest.json", "sha256": "1ca81e9ac4453dc8d6aed5647914e633f6e28ad886232f7c626ed395b4966ed7", "size_bytes": 5358}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9eebc688c49b0ea8a48c92fad4f85d530f78d6d2a42762588806ca8c0a047731", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [25.0, 280.0, 330.0, 493.0], "bbox_xyxy_clipped": [25.0, 280.0, 355.0, 773.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 292.0, 312.0, 468.0], "bbox_xyxy_clipped": [18.0, 292.0, 330.0, 760.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 300.0, 300.0, 458.0], "bbox_xyxy_clipped": [34.0, 300.0, 334.0, 758.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 42.0, 360.0, 237.0], "bbox_xyxy_clipped": [120.0, 42.0, 480.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 360.0, 420.0, 282.0], "bbox_xyxy_clipped": [0.0, 360.0, 420.0, 642.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [35.0, 20.0, 470.0, 24.0], "bbox_xyxy_clipped": [35.0, 20.0, 505.0, 44.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [70.0, 45.0, 300.0, 106.0], "bbox_xyxy_clipped": [70.0, 45.0, 370.0, 151.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [42.0, 34.0, 405.0, 28.0], "bbox_xyxy_clipped": [42.0, 34.0, 447.0, 62.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [42.0, 72.0, 180.0, 30.0], "bbox_xyxy_clipped": [42.0, 72.0, 222.0, 102.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [42.0, 108.0, 210.0, 30.0], "bbox_xyxy_clipped": [42.0, 108.0, 252.0, 138.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [42.0, 142.0, 460.0, 29.0], "bbox_xyxy_clipped": [42.0, 142.0, 502.0, 171.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [42.0, 176.0, 390.0, 54.0], "bbox_xyxy_clipped": [42.0, 176.0, 432.0, 230.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [42.0, 232.0, 260.0, 23.0], "bbox_xyxy_clipped": [42.0, 232.0, 302.0, 255.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [42.0, 742.0, 255.0, 48.0], "bbox_xyxy_clipped": [42.0, 742.0, 297.0, 790.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005288455196030788}, "Ove": {"reason": null, "status": "ok", "value": 0.4102955357520234}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5952794195a7a863ddcdf36a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952794195a7a863ddcdf36a/pipeline/l0_result.json", "sha256": "5cf2239c2292327738d0b45cb104cfcbd97b1af4348b1db31b47c2e5c00a544a", "size_bytes": 11606}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952794195a7a863ddcdf36a/inputs/pfull/asset_manifest.json", "sha256": "d752fc2bbd8457e9e60ef2faa95af718c50083071ac08b061c7aaa4ee6479179", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_03.png", "sha256": "9eebc688c49b0ea8a48c92fad4f85d530f78d6d2a42762588806ca8c0a047731", "size_bytes": 428789}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952794195a7a863ddcdf36a/inputs/r3/r3_asset_manifest.json", "sha256": "7dc6599440fcca890def4f49357d9b01ceb00907630e10e735553b630657f608", "size_bytes": 6821}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "168628ca4579db269fe65d1c7ab834ab7fc7e7ad61d5ccf0007c04c001ef0e66", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "asset_size_bytes": 1851, "kind": "asset", "pfull_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "r3_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [55.0, 18.0, 250.0, 202.0], "bbox_xyxy_clipped": [55.0, 18.0, 305.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [83.0, 240.0, 194.0, 36.0], "bbox_xyxy_clipped": [83.0, 240.0, 277.0, 276.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [62.0, 294.0, 237.0, 25.0], "bbox_xyxy_clipped": [62.0, 294.0, 299.0, 319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [52.0, 330.0, 256.0, 25.0], "bbox_xyxy_clipped": [52.0, 330.0, 308.0, 355.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [98.0, 384.0, 164.0, 28.0], "bbox_xyxy_clipped": [98.0, 384.0, 262.0, 412.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [106.0, 426.0, 148.0, 18.0], "bbox_xyxy_clipped": [106.0, 426.0, 254.0, 444.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 478.0, 360.0, 10.0], "bbox_xyxy_clipped": [0.0, 478.0, 360.0, 488.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 492.0, 360.0, 9.0], "bbox_xyxy_clipped": [0.0, 492.0, 360.0, 501.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004971999262791625}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5952934395a7a863ddcdff21", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/pipeline/l0_result.json", "sha256": "547cc9a0a4b20194c3b49d161d9e2d95a1533ccfe2553d6d074c1b2af8103bed", "size_bytes": 7925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/inputs/pfull/asset_manifest.json", "sha256": "46f83b97557e21f1de3f8f8e64bd97b54a542927ae10afa43f6b905ad2938b71", "size_bytes": 5048}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_01.png", "sha256": "168628ca4579db269fe65d1c7ab834ab7fc7e7ad61d5ccf0007c04c001ef0e66", "size_bytes": 95118}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/inputs/r3/r3_asset_manifest.json", "sha256": "ac2ba23cbfd9d03b7d3c61bfee56fefecd4b740833c50d21c679b61e7c20c71a", "size_bytes": 4497}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "size_bytes": 1851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d34a2535d480d4b92827ab7c6b39f1ec83c1a48b1255355f48784c90f56fcebc", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "asset_size_bytes": 1586, "kind": "asset", "pfull_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "r3_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "3115e826093ff292c80e054f014976ad1a1105ba523634cbe5b41f8817b3439e", "canvas": {"height": 600, "width": 160}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [49.0, 90.0, 62.0, 114.0], "bbox_xyxy_clipped": [49.0, 90.0, 111.0, 204.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [77.0, 36.0, 6.0, 110.0], "bbox_xyxy_clipped": [77.0, 36.0, 83.0, 146.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 163.0, 44.0, 16.0], "bbox_xyxy_clipped": [58.0, 163.0, 102.0, 179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [21.0, 247.0, 118.0, 16.0], "bbox_xyxy_clipped": [21.0, 247.0, 139.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [56.0, 330.0, 47.0, 16.0], "bbox_xyxy_clipped": [56.0, 330.0, 103.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [21.0, 411.0, 118.0, 17.0], "bbox_xyxy_clipped": [21.0, 411.0, 139.0, 428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002244361355210048}, "Ove": {"reason": null, "status": "ok", "value": 0.024176398964174856}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "ff5a7814d740163fe578c1a93a16bc8aa267803c6acfd9bdf3450948893c935c", "status": "computed"}, "sample_id": "599ecb061350e83293007738", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/pipeline/l0_result.json", "sha256": "3e2faedfcbe45654b1c98fb7e4aba4321aa9e33f7507b2752524bd512d68fd06", "size_bytes": 7443}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/inputs/pfull/asset_manifest.json", "sha256": "4dea12557f6b966360b0cedde75074fde933552d1c120fd5678969fdee8a3194", "size_bytes": 3952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/renders/r0_candidate_02.png", "sha256": "d34a2535d480d4b92827ab7c6b39f1ec83c1a48b1255355f48784c90f56fcebc", "size_bytes": 26788}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/inputs/r3/r3_asset_manifest.json", "sha256": "c98b6ff77b2301e2ce2ad77e1dce483bbbcbb2b547f86612a6ae590a32a5ff53", "size_bytes": 3572}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "size_bytes": 1586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a473823672a4a4a1afaa82d78ea8c7d1ff05f568af67055c6efe3af8d82ddae2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 20, "valid": 20}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [38.0, 88.0, 112.0, 167.0], "bbox_xyxy_clipped": [38.0, 88.0, 150.0, 255.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [401.0, 76.0, 109.0, 163.0], "bbox_xyxy_clipped": [401.0, 76.0, 510.0, 239.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [55.0, 575.0, 145.0, 136.0], "bbox_xyxy_clipped": [55.0, 575.0, 200.0, 711.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [389.0, 565.0, 114.0, 114.0], "bbox_xyxy_clipped": [389.0, 565.0, 503.0, 679.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [24.0, 397.0, 482.0, 70.0], "bbox_xyxy_clipped": [24.0, 397.0, 506.0, 467.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [46.0, 742.0, 446.0, 10.0], "bbox_xyxy_clipped": [46.0, 742.0, 492.0, 752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [74.0, 235.0, 161.0, 205.0], "bbox_xyxy_clipped": [74.0, 235.0, 235.0, 440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [357.0, 232.0, 144.0, 144.0], "bbox_xyxy_clipped": [357.0, 232.0, 501.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [70.0, 52.0, 197.0, 193.0], "bbox_xyxy_clipped": [70.0, 52.0, 267.0, 245.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [332.0, 123.0, 189.0, 171.0], "bbox_xyxy_clipped": [332.0, 123.0, 521.0, 294.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [214.0, 112.0, 252.0, 137.0], "bbox_xyxy_clipped": [214.0, 112.0, 466.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [94.0, 487.0, 218.0, 132.0], "bbox_xyxy_clipped": [94.0, 487.0, 312.0, 619.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [324.0, 489.0, 186.0, 154.0], "bbox_xyxy_clipped": [324.0, 489.0, 510.0, 643.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [116.0, 712.0, 309.0, 22.0], "bbox_xyxy_clipped": [116.0, 712.0, 425.0, 734.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [149.0, 604.0, 243.0, 67.0], "bbox_xyxy_clipped": [149.0, 604.0, 392.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [117.0, 646.0, 307.0, 80.0], "bbox_xyxy_clipped": [117.0, 646.0, 424.0, 726.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [176.0, 408.0, 189.0, 31.0], "bbox_xyxy_clipped": [176.0, 408.0, 365.0, 439.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [210.0, 441.0, 121.0, 33.0], "bbox_xyxy_clipped": [210.0, 441.0, 331.0, 474.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [193.0, 359.0, 154.0, 35.0], "bbox_xyxy_clipped": [193.0, 359.0, 347.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [412.0, 28.0, 84.0, 52.0], "bbox_xyxy_clipped": [412.0, 28.0, 496.0, 80.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0046845432725557}, "Ove": {"reason": null, "status": "ok", "value": 0.15836673744880087}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "59b2809c1350e8329300dbe4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59b2809c1350e8329300dbe4/pipeline/l0_result.json", "sha256": "3581bd1e5c45de729f465307b0c0d12c1cb800062caa43528f12a3c47668407c", "size_bytes": 17332}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59b2809c1350e8329300dbe4/inputs/pfull/asset_manifest.json", "sha256": "d03612bf3078920df947cb5232767c480a47c09dab17c02f484238b535af77e6", "size_bytes": 10452}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_02.png", "sha256": "a473823672a4a4a1afaa82d78ea8c7d1ff05f568af67055c6efe3af8d82ddae2", "size_bytes": 70558}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59b2809c1350e8329300dbe4/inputs/r3/r3_asset_manifest.json", "sha256": "551ae7cd1caceb4c09a29ed9b7d5c91961e9eb5220970e411afa0ca19d6a6606", "size_bytes": 9047}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4dd0b83193ebe47982132cec2b1562d6afa3cf2aeca3bc3024c8af2683a9df99", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "asset_size_bytes": 3534, "kind": "asset", "pfull_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "r3_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "88a14e36481d902d326851ec9181179de60acb3e3b8857685ec64e33c6db22dc", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [335.0, 112.0, 183.0, 121.0], "bbox_xyxy_clipped": [335.0, 112.0, 518.0, 233.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [42.0, 66.0, 160.0, 27.0], "bbox_xyxy_clipped": [42.0, 66.0, 202.0, 93.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [42.0, 102.0, 214.0, 26.0], "bbox_xyxy_clipped": [42.0, 102.0, 256.0, 128.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [46.0, 164.0, 21.0, 35.0], "bbox_xyxy_clipped": [46.0, 164.0, 67.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [72.0, 164.0, 21.0, 35.0], "bbox_xyxy_clipped": [72.0, 164.0, 93.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [98.0, 164.0, 21.0, 35.0], "bbox_xyxy_clipped": [98.0, 164.0, 119.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [124.0, 164.0, 18.0, 41.0], "bbox_xyxy_clipped": [124.0, 164.0, 142.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [44.0, 214.0, 180.0, 51.0], "bbox_xyxy_clipped": [44.0, 214.0, 224.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [228.0, 214.0, 95.0, 97.0], "bbox_xyxy_clipped": [228.0, 214.0, 323.0, 311.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [34.0, 308.0, 75.0, 90.0], "bbox_xyxy_clipped": [34.0, 308.0, 109.0, 398.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [36.0, 418.0, 255.0, 36.0], "bbox_xyxy_clipped": [36.0, 418.0, 291.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [35.0, 470.0, 259.0, 36.0], "bbox_xyxy_clipped": [35.0, 470.0, 294.0, 506.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 1.2706156408907015e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7477000bd00b63645744c2011f087e6d08386f5cb52d5fe47fec077ce4db1da1", "status": "computed"}, "sample_id": "59bb96701350e8329301120a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/pipeline/l0_result.json", "sha256": "fb9d3238ca9274e01448f6de713d85fb14aff5ccaee1b6c48b64cfeefb9168b5", "size_bytes": 11103}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/inputs/pfull/asset_manifest.json", "sha256": "71fd7416b27d145fc13b5d92138635f0f0a9b7c0db2f0217524eae20e1664a66", "size_bytes": 6899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "sha256": "4dd0b83193ebe47982132cec2b1562d6afa3cf2aeca3bc3024c8af2683a9df99", "size_bytes": 42756}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/inputs/r3/r3_asset_manifest.json", "sha256": "e0037a28a4aa54f4867b4b1b7039337c1d1530072d2290a59dc0770be812ce4b", "size_bytes": 6099}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "size_bytes": 3534}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5354225210ef9ddd5a913f5a10e3e13d090770f986ae43e475eda12806c6c1e1", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "asset_size_bytes": 4721, "kind": "asset", "pfull_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "r3_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e9708568a1fecab05eac14b6ec245d1f5576515e93def3fa254f5551e23f847d", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 82.0, 290.0, 202.0], "bbox_xyxy_clipped": [42.0, 82.0, 332.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [78.0, 316.0, 210.0, 257.0], "bbox_xyxy_clipped": [78.0, 316.0, 288.0, 573.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [92.0, 116.0, 255.0, 313.0], "bbox_xyxy_clipped": [92.0, 116.0, 347.0, 429.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 566.0, 226.0, 131.0], "bbox_xyxy_clipped": [0.0, 566.0, 226.0, 697.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [708.0, 560.0, 226.0, 131.0], "bbox_xyxy_clipped": [708.0, 560.0, 934.0, 691.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [542.0, 132.0, 278.0, 78.0], "bbox_xyxy_clipped": [542.0, 132.0, 820.0, 210.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [606.0, 214.0, 186.0, 85.0], "bbox_xyxy_clipped": [606.0, 214.0, 792.0, 299.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [512.0, 304.0, 320.0, 70.0], "bbox_xyxy_clipped": [512.0, 304.0, 832.0, 374.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [811.0, 92.0, 94.0, 96.0], "bbox_xyxy_clipped": [811.0, 92.0, 905.0, 188.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [804.0, 210.0, 94.0, 96.0], "bbox_xyxy_clipped": [804.0, 210.0, 898.0, 306.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [560.0, 390.0, 306.0, 35.0], "bbox_xyxy_clipped": [560.0, 390.0, 866.0, 425.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [786.0, 418.0, 110.0, 162.0], "bbox_xyxy_clipped": [786.0, 418.0, 896.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 0.0, 154.0, 164.0], "bbox_xyxy_clipped": [0.0, 0.0, 154.0, 164.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [156.0, 0.0, 156.0, 166.0], "bbox_xyxy_clipped": [156.0, 0.0, 312.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [314.0, 0.0, 156.0, 166.0], "bbox_xyxy_clipped": [314.0, 0.0, 470.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [472.0, 0.0, 156.0, 166.0], "bbox_xyxy_clipped": [472.0, 0.0, 628.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0005627973785876844}, "Ove": {"reason": null, "status": "ok", "value": 0.07651215816070445}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "232d5b6cffc423c12d07a02a86a949937d399fa14c36754e17b0449871afce50", "status": "computed"}, "sample_id": "5a034425d8141396fe9898fa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/pipeline/l0_result.json", "sha256": "ebab823e2c856637f0b0039910970e9b89eaeddca0efb8cac7adc19ee62280c4", "size_bytes": 12644}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/inputs/pfull/asset_manifest.json", "sha256": "f8ac8d8b7996c86ac580ab6252798c3e2c5ccae5ce4d290d82a44dbc28fdd63e", "size_bytes": 8870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_02.png", "sha256": "5354225210ef9ddd5a913f5a10e3e13d090770f986ae43e475eda12806c6c1e1", "size_bytes": 234610}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/inputs/r3/r3_asset_manifest.json", "sha256": "9b73155830f5b2a3d9323f5ffb93583dda7585a49e606d61357ac57d345dc5c9", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "size_bytes": 4721}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e2f4f7bb64f51a3237e1e56e32f1a571e85c9f06c908b76afb99d9485f73b331", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 24, "valid": 24}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [160.0, 60.0, 520.0, 293.0], "bbox_xyxy_clipped": [160.0, 60.0, 680.0, 353.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [720.0, 70.0, 460.0, 299.0], "bbox_xyxy_clipped": [720.0, 70.0, 1180.0, 369.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1310.0, 72.0, 455.0, 296.0], "bbox_xyxy_clipped": [1310.0, 72.0, 1765.0, 368.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1870.0, 78.0, 360.0, 380.0], "bbox_xyxy_clipped": [1870.0, 78.0, 2230.0, 458.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [2210.0, 82.0, 330.0, 347.0], "bbox_xyxy_clipped": [2210.0, 82.0, 2540.0, 429.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [470.0, 235.0, 1130.0, 10.0], "bbox_xyxy_clipped": [470.0, 235.0, 1600.0, 245.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [880.0, 205.0, 1152.0, 60.0], "bbox_xyxy_clipped": [880.0, 205.0, 2032.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [450.0, 330.0, 1010.0, 60.0], "bbox_xyxy_clipped": [450.0, 330.0, 1460.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [300.0, 430.0, 1500.0, 9.0], "bbox_xyxy_clipped": [300.0, 430.0, 1800.0, 439.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1960.0, 120.0, 315.0, 300.0], "bbox_xyxy_clipped": [1960.0, 120.0, 2275.0, 420.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [165.0, 1180.0, 260.0, 260.0], "bbox_xyxy_clipped": [165.0, 1180.0, 425.0, 1440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1920.0, 1040.0, 580.0, 300.0], "bbox_xyxy_clipped": [1920.0, 1040.0, 2500.0, 1340.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [230.0, 520.0, 1380.0, 14.0], "bbox_xyxy_clipped": [230.0, 520.0, 1610.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [2100.0, 520.0, 300.0, 80.0], "bbox_xyxy_clipped": [2100.0, 520.0, 2400.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [2320.0, 240.0, 210.0, 210.0], "bbox_xyxy_clipped": [2320.0, 240.0, 2530.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [120.0, 980.0, 220.0, 220.0], "bbox_xyxy_clipped": [120.0, 980.0, 340.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1180.0, 130.0, 210.0, 203.0], "bbox_xyxy_clipped": [1180.0, 130.0, 1390.0, 333.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [975.0, 255.0, 435.0, 160.0], "bbox_xyxy_clipped": [975.0, 255.0, 1410.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1295.0, 255.0, 435.0, 160.0], "bbox_xyxy_clipped": [1295.0, 255.0, 1730.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1810.0, 980.0, 220.0, 220.0], "bbox_xyxy_clipped": [1810.0, 980.0, 2030.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [590.0, 810.0, 520.0, 116.0], "bbox_xyxy_clipped": [590.0, 810.0, 1110.0, 926.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [1070.0, 804.0, 720.0, 107.0], "bbox_xyxy_clipped": [1070.0, 804.0, 1790.0, 911.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [875.0, 930.0, 160.0, 153.0], "bbox_xyxy_clipped": [875.0, 930.0, 1035.0, 1083.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [1040.0, 980.0, 950.0, 145.0], "bbox_xyxy_clipped": [1040.0, 980.0, 1990.0, 1125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0028673466194421332}, "Ove": {"reason": null, "status": "ok", "value": 0.14724078235883373}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "5a21848dd8141396fe9a33eb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a21848dd8141396fe9a33eb/pipeline/l0_result.json", "sha256": "272a4e5d81eda42ab79ff05d171e2682415b4e305f87edd5805802035b2eb7e8", "size_bytes": 18357}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a21848dd8141396fe9a33eb/inputs/pfull/asset_manifest.json", "sha256": "1c6d38f46351ef130c536c8446f24f24dc6c5f903c1d11302812a1a9d128cb07", "size_bytes": 12265}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_03.png", "sha256": "e2f4f7bb64f51a3237e1e56e32f1a571e85c9f06c908b76afb99d9485f73b331", "size_bytes": 292663}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a21848dd8141396fe9a33eb/inputs/r3/r3_asset_manifest.json", "sha256": "f0689c4d5509a9e07120a4b34b00dde2b3870013617b3ac23e725ff58359eeee", "size_bytes": 10327}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "db5ac2b532326d0765a3107221774da7fd5d4d3d685a5e301402626086f6a661", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1920.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [718.0, 66.0, 485.0, 486.0], "bbox_xyxy_clipped": [718.0, 66.0, 1203.0, 552.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [160.0, 520.0, 1600.0, 5.0], "bbox_xyxy_clipped": [160.0, 520.0, 1760.0, 525.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [160.0, 940.0, 1600.0, 5.0], "bbox_xyxy_clipped": [160.0, 940.0, 1760.0, 945.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [777.0, 562.0, 367.0, 48.0], "bbox_xyxy_clipped": [777.0, 562.0, 1144.0, 610.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [799.0, 622.0, 322.0, 119.0], "bbox_xyxy_clipped": [799.0, 622.0, 1121.0, 741.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [776.0, 760.0, 367.0, 50.0], "bbox_xyxy_clipped": [776.0, 760.0, 1143.0, 810.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [721.0, 821.0, 478.0, 52.0], "bbox_xyxy_clipped": [721.0, 821.0, 1199.0, 873.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [757.0, 885.0, 406.0, 50.0], "bbox_xyxy_clipped": [757.0, 885.0, 1163.0, 935.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006251716142819251}, "Ove": {"reason": null, "status": "ok", "value": 0.021004287601505207}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5a240260d8141396fe9a9de3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a240260d8141396fe9a9de3/pipeline/l0_result.json", "sha256": "5160ef6990751b5d53ad4ab4409ad51fdf2ef949c76a3040fcae89012f4ba717", "size_bytes": 10028}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a240260d8141396fe9a9de3/inputs/pfull/asset_manifest.json", "sha256": "340f29311089dc6b1033ffaef366412a518c67bf048f2cb04cf7f52e5a123e40", "size_bytes": 4946}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_02.png", "sha256": "db5ac2b532326d0765a3107221774da7fd5d4d3d685a5e301402626086f6a661", "size_bytes": 318312}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a240260d8141396fe9a9de3/inputs/r3/r3_asset_manifest.json", "sha256": "d5f24c15fa214b10a6b62b01cb5b363cd8738350e714124124f64c8463c9656f", "size_bytes": 4479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8e30d179383c7037a25d291a06134250b0df0c78d34f8c35c791090d8cb21a4b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [132.0, 92.0, 168.0, 336.0], "bbox_xyxy_clipped": [132.0, 92.0, 300.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [128.0, 712.0, 180.0, 180.0], "bbox_xyxy_clipped": [128.0, 712.0, 308.0, 892.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [66.0, 920.0, 160.0, 160.0], "bbox_xyxy_clipped": [66.0, 920.0, 226.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [40.0, 1034.0, 228.0, 40.0], "bbox_xyxy_clipped": [40.0, 1034.0, 268.0, 1074.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [118.0, 552.0, 176.0, 176.0], "bbox_xyxy_clipped": [118.0, 552.0, 294.0, 728.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [340.0, 118.0, 220.0, 21.0], "bbox_xyxy_clipped": [340.0, 118.0, 560.0, 139.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [340.0, 190.0, 184.0, 39.0], "bbox_xyxy_clipped": [340.0, 190.0, 524.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [340.0, 236.0, 226.0, 39.0], "bbox_xyxy_clipped": [340.0, 236.0, 566.0, 275.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [360.0, 1096.0, 190.0, 19.0], "bbox_xyxy_clipped": [360.0, 1096.0, 550.0, 1115.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032167492460855557}, "Ove": {"reason": null, "status": "ok", "value": 0.029970051782874183}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5a26bcecd8141396fe9ac474", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a26bcecd8141396fe9ac474/pipeline/l0_result.json", "sha256": "117b49e3ae086dae1a1bef62649c63eb00e0219bca0de28de65478b534540823", "size_bytes": 8403}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a26bcecd8141396fe9ac474/inputs/pfull/asset_manifest.json", "sha256": "28cb7d5c548b611d4223d87a483994ca2879b31f982bbff07ca3ce149aebcf92", "size_bytes": 4910}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "sha256": "8e30d179383c7037a25d291a06134250b0df0c78d34f8c35c791090d8cb21a4b", "size_bytes": 73279}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a26bcecd8141396fe9ac474/inputs/r3/r3_asset_manifest.json", "sha256": "b922335e1ccadf4718a4ff340eff4258e3a211d8ed59b6182d6de5048a713fe5", "size_bytes": 4334}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "533f434ae727492576b08f93f1eb58a6c33ee5f732b78ba79a99c9f5e828b1e4", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 5, "raw": 15, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [82.0, 176.0, 410.0, 162.0], "bbox_xyxy_clipped": [82.0, 176.0, 492.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [64.0, 58.0, 336.0, 55.0], "bbox_xyxy_clipped": [64.0, 58.0, 400.0, 113.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [66.0, 114.0, 425.0, 45.0], "bbox_xyxy_clipped": [66.0, 114.0, 491.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [66.0, 154.0, 360.0, 42.0], "bbox_xyxy_clipped": [66.0, 154.0, 426.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [562.0, 68.0, 304.0, 31.0], "bbox_xyxy_clipped": [562.0, 68.0, 866.0, 99.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [562.0, 102.0, 302.0, 58.0], "bbox_xyxy_clipped": [562.0, 102.0, 864.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [565.0, 288.0, 286.0, 28.0], "bbox_xyxy_clipped": [565.0, 288.0, 851.0, 316.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [565.0, 323.0, 285.0, 57.0], "bbox_xyxy_clipped": [565.0, 323.0, 850.0, 380.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [565.0, 528.0, 245.0, 28.0], "bbox_xyxy_clipped": [565.0, 528.0, 810.0, 556.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [565.0, 564.0, 265.0, 53.0], "bbox_xyxy_clipped": [565.0, 564.0, 830.0, 617.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016281300022864538}, "Ove": {"reason": null, "status": "ok", "value": 0.014762958699874013}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5a9968cff07aee6977a29a68", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a9968cff07aee6977a29a68/pipeline/l0_result.json", "sha256": "13b93710d58ccf3a756a8e30e1492327bf0ddfe70b1c17a585635e707d76bfd1", "size_bytes": 13320}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a9968cff07aee6977a29a68/inputs/pfull/asset_manifest.json", "sha256": "092ed1454365d4cd059db055205b40fda8cea57382dc6738df0e1abfb1453f49", "size_bytes": 8373}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_02.png", "sha256": "533f434ae727492576b08f93f1eb58a6c33ee5f732b78ba79a99c9f5e828b1e4", "size_bytes": 182175}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5a9968cff07aee6977a29a68/inputs/r3/r3_asset_manifest.json", "sha256": "daae6ec044375b2a62cbe633e1d5c0b9ff6998e23109d47442a780414d41d7f6", "size_bytes": 7627}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "386b203cf4f82864eafde3895dfe3381f60ed6b1ad0076ca123f7e9f25d11ecf", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 21, "valid": 21}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [46.0, 56.0, 162.0, 162.0], "bbox_xyxy_clipped": [46.0, 56.0, 208.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [842.0, 78.0, 158.0, 131.0], "bbox_xyxy_clipped": [842.0, 78.0, 1000.0, 209.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [72.0, 837.0, 152.0, 126.0], "bbox_xyxy_clipped": [72.0, 837.0, 224.0, 963.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [848.0, 846.0, 170.0, 49.0], "bbox_xyxy_clipped": [848.0, 846.0, 1018.0, 895.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [792.0, 292.0, 202.0, 58.0], "bbox_xyxy_clipped": [792.0, 292.0, 994.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [86.0, 274.0, 238.0, 90.0], "bbox_xyxy_clipped": [86.0, 274.0, 324.0, 364.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [776.0, 520.0, 186.0, 143.0], "bbox_xyxy_clipped": [776.0, 520.0, 962.0, 663.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [56.0, 493.0, 223.0, 119.0], "bbox_xyxy_clipped": [56.0, 493.0, 279.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [840.0, 421.0, 144.0, 133.0], "bbox_xyxy_clipped": [840.0, 421.0, 984.0, 554.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [823.0, 671.0, 189.0, 90.0], "bbox_xyxy_clipped": [823.0, 671.0, 1012.0, 761.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [91.0, 683.0, 168.0, 131.0], "bbox_xyxy_clipped": [91.0, 683.0, 259.0, 814.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [499.0, 68.0, 150.0, 150.0], "bbox_xyxy_clipped": [499.0, 68.0, 649.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [305.0, 821.0, 160.0, 178.0], "bbox_xyxy_clipped": [305.0, 821.0, 465.0, 999.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [431.0, 858.0, 184.0, 166.0], "bbox_xyxy_clipped": [431.0, 858.0, 615.0, 1024.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [970.0, 460.0, 80.0, 237.0], "bbox_xyxy_clipped": [970.0, 460.0, 1050.0, 697.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [376.0, 308.0, 214.0, 73.0], "bbox_xyxy_clipped": [376.0, 308.0, 590.0, 381.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [324.0, 360.0, 430.0, 123.0], "bbox_xyxy_clipped": [324.0, 360.0, 754.0, 483.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [548.0, 468.0, 236.0, 116.0], "bbox_xyxy_clipped": [548.0, 468.0, 784.0, 584.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [505.0, 614.0, 472.0, 87.0], "bbox_xyxy_clipped": [505.0, 614.0, 977.0, 701.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [615.0, 712.0, 360.0, 84.0], "bbox_xyxy_clipped": [615.0, 712.0, 975.0, 796.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [360.0, 941.0, 360.0, 45.0], "bbox_xyxy_clipped": [360.0, 941.0, 720.0, 986.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003989403264762576}, "Ove": {"reason": null, "status": "ok", "value": 0.0546436834546597}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5aa915fef07aee69773a3ef4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5aa915fef07aee69773a3ef4/pipeline/l0_result.json", "sha256": "4bc2311bf3ecdf423db8c198ba471df066fda23c59ef12f7da21c720a051963f", "size_bytes": 16015}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5aa915fef07aee69773a3ef4/inputs/pfull/asset_manifest.json", "sha256": "c537b22f349882fe3aadc4c5e2fc6cd017dbe19a3651f90f9d4f12eaaa24bd31", "size_bytes": 10862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_02.png", "sha256": "386b203cf4f82864eafde3895dfe3381f60ed6b1ad0076ca123f7e9f25d11ecf", "size_bytes": 208649}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5aa915fef07aee69773a3ef4/inputs/r3/r3_asset_manifest.json", "sha256": "0b72142d2fceccb98afa4c3fbaaaced140756995fec2a7d22a1479d72ae30d2b", "size_bytes": 9373}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3b655330b2a69d2db6723c7017de8084562dd63e4f948d2be2ca7b60d965e6e1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 10, "valid": 9}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [180.0, 79.0, 201.0, 120.0], "bbox_xyxy_clipped": [180.0, 79.0, 381.0, 199.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [189.0, 94.0, 154.0, 28.0], "bbox_xyxy_clipped": [189.0, 94.0, 343.0, 122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [200.0, 127.0, 104.0, 19.0], "bbox_xyxy_clipped": [200.0, 127.0, 304.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [199.0, 149.0, 128.0, 22.0], "bbox_xyxy_clipped": [199.0, 149.0, 327.0, 171.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [47.0, 210.0, 35.0, 110.0], "bbox_xyxy_clipped": [47.0, 210.0, 82.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [349.0, 224.0, 60.0, 95.0], "bbox_xyxy_clipped": [349.0, 224.0, 409.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [329.0, 42.0, 56.0, 49.0], "bbox_xyxy_clipped": [329.0, 42.0, 385.0, 91.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [21.0, 31.0, 60.0, 52.0], "bbox_xyxy_clipped": [21.0, 31.0, 81.0, 83.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [304.0, 210.0, 58.0, 50.0], "bbox_xyxy_clipped": [304.0, 210.0, 362.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [166.0, 109.0, 2.0, 30.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0023525084331358745}, "Ove": {"reason": null, "status": "ok", "value": 0.0521476705919176}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6aaf851cc8aa542986ad50", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6aaf851cc8aa542986ad50/pipeline/l0_result.json", "sha256": "3ae483cfbc03033a30ebfb71fb4a81b8ba9d4ac4238a5209894b5ee5f16ff1d2", "size_bytes": 9005}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6aaf851cc8aa542986ad50/inputs/pfull/asset_manifest.json", "sha256": "ca6625941f16c5472998c479734b6232d2043ca8f88de63b5a2d29ae379d19e8", "size_bytes": 5357}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_03.png", "sha256": "3b655330b2a69d2db6723c7017de8084562dd63e4f948d2be2ca7b60d965e6e1", "size_bytes": 25991}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6aaf851cc8aa542986ad50/inputs/r3/r3_asset_manifest.json", "sha256": "951be542e8a93d16bbc166cd47e3b2d591ca2f46f7d2c9343a4c8e2c30b6bc4d", "size_bytes": 4690}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "dc1ed9d6312d235c8c35e38bb8ece642b8ea8e1e72f477340e27fecf28c990b1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 18.0, 220.0, 264.0], "bbox_xyxy_clipped": [24.0, 18.0, 244.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [256.0, 32.0, 87.0, 276.0], "bbox_xyxy_clipped": [256.0, 32.0, 343.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [330.0, 24.0, 78.0, 117.0], "bbox_xyxy_clipped": [330.0, 24.0, 408.0, 141.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [332.0, 26.0, 44.0, 42.0], "bbox_xyxy_clipped": [332.0, 26.0, 376.0, 68.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [271.0, 78.0, 132.0, 26.0], "bbox_xyxy_clipped": [271.0, 78.0, 403.0, 104.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [268.0, 116.0, 140.0, 52.0], "bbox_xyxy_clipped": [268.0, 116.0, 408.0, 168.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004973735270474839}, "Ove": {"reason": null, "status": "ok", "value": 0.13338370375424705}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6ab3e01cc8aa542994ee9d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6ab3e01cc8aa542994ee9d/pipeline/l0_result.json", "sha256": "67087f59be48b4ce68b609535d668fc8f488b3be32d5be1989af3e928a0801dc", "size_bytes": 6754}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/pfull/asset_manifest.json", "sha256": "d325267ab1d129490777bb89fb08c0ac9cad9a9394486cb3ae49c309aad413e7", "size_bytes": 3383}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_01.png", "sha256": "dc1ed9d6312d235c8c35e38bb8ece642b8ea8e1e72f477340e27fecf28c990b1", "size_bytes": 119459}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/r3/r3_asset_manifest.json", "sha256": "129fc9a98e685a6245a9c32eccaf281a8d81ddc8e18864e5df48d01119d8adfe", "size_bytes": 3053}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1d695849cdc04860f8a89fc45b27ae863685d3d72c800e368107ee2c3c28f4a5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc6e5f6b16db1a64789c64daa557ba7ad0250c37cece34bf827354789a980649", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 10.0, 78.0, 40.0], "bbox_xyxy_clipped": [34.0, 10.0, 112.0, 50.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [32.0, 28.0, 258.0, 37.0], "bbox_xyxy_clipped": [32.0, 28.0, 290.0, 65.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [295.0, 29.0, 92.0, 32.0], "bbox_xyxy_clipped": [295.0, 29.0, 387.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 63.0, 142.0, 80.0], "bbox_xyxy_clipped": [36.0, 63.0, 178.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [556.0, -6.0, 172.0, 175.0], "bbox_xyxy_clipped": [556.0, 0.0, 728.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [507.0, 10.0, 96.0, 96.0], "bbox_xyxy_clipped": [507.0, 10.0, 603.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [403.0, 18.0, 138.0, 79.0], "bbox_xyxy_clipped": [403.0, 18.0, 541.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [621.0, 22.0, 90.0, 108.0], "bbox_xyxy_clipped": [621.0, 22.0, 711.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005112673222432441}, "Ove": {"reason": null, "status": "ok", "value": 0.11611925187814143}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f0d8e59a4c4d0091ee540d43a9e78c9993ad8a59fcc519bd0d92fbcfabca8038", "status": "computed"}, "sample_id": "5b85707d1cc8aa542972823c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b85707d1cc8aa542972823c/pipeline/l0_result.json", "sha256": "6bc2c7f433ec48a53168f262e9895be590bb022766ebf27a824b5ca862e836a0", "size_bytes": 8962}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b85707d1cc8aa542972823c/inputs/pfull/asset_manifest.json", "sha256": "d91ad980b67017a6d1a27c43e8834c048eadb2d041e0509cb9f14bc15d821a9b", "size_bytes": 4386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_02.png", "sha256": "1d695849cdc04860f8a89fc45b27ae863685d3d72c800e368107ee2c3c28f4a5", "size_bytes": 33910}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b85707d1cc8aa542972823c/inputs/r3/r3_asset_manifest.json", "sha256": "491c9f7ff069ae35f16d0f35623d19f49ceb5558b39686e4b15ae049333b7984", "size_bytes": 3957}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "87136a3cad694d35587af3dfb03c8ffe8b5b87c7303fdc0f960b3f8681743a74", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 8, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [910.0, 240.0, 520.0, 832.0], "bbox_xyxy_clipped": [910.0, 240.0, 1430.0, 1072.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [560.0, 310.0, 560.0, 867.0], "bbox_xyxy_clipped": [560.0, 310.0, 1120.0, 1177.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1110.0, 1360.0, 360.0, 39.0], "bbox_xyxy_clipped": [1110.0, 1360.0, 1470.0, 1399.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1090.0, 1495.0, 420.0, 88.0], "bbox_xyxy_clipped": [1090.0, 1495.0, 1510.0, 1583.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1120.0, 1715.0, 300.0, 131.0], "bbox_xyxy_clipped": [1120.0, 1715.0, 1420.0, 1846.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1035.0, 1905.0, 480.0, 153.0], "bbox_xyxy_clipped": [1035.0, 1905.0, 1515.0, 2058.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [80.0, 80.0, 440.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1080.0, 80.0, 440.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.008155771576349204}, "Occ": {"reason": null, "status": "ok", "value": 0.0013805107857889584}, "Ove": {"reason": null, "status": "ok", "value": 0.03517819927717836}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9a550e18654940f754c07c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9a550e18654940f754c07c/pipeline/l0_result.json", "sha256": "876e461eda84ba8f4f90ccbb6e4c547885ed0d3eb198240862138954682f69af", "size_bytes": 10140}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9a550e18654940f754c07c/inputs/pfull/asset_manifest.json", "sha256": "2f5cdfb4ffba0b989faf3d7d403f94ca5d9b2ddd7933e52cc194a1c72b15d5cd", "size_bytes": 4404}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "sha256": "87136a3cad694d35587af3dfb03c8ffe8b5b87c7303fdc0f960b3f8681743a74", "size_bytes": 88698}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9a550e18654940f754c07c/inputs/r3/r3_asset_manifest.json", "sha256": "6fcd6424f56bb265c3370f72feaaf5182104a5d33f9313adcc5d7ca068c77473", "size_bytes": 3932}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "dd96a161f925c125a8942f047b597fbecaf341d299c9d469fc4bfd735f4cd517", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [997.0, 180.0, 503.0, 770.0], "bbox_xyxy_clipped": [997.0, 180.0, 1500.0, 950.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [137.0, 1020.0, 110.0, 110.0], "bbox_xyxy_clipped": [137.0, 1020.0, 247.0, 1130.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [195.0, 1150.0, 27.0, 189.0], "bbox_xyxy_clipped": [195.0, 1150.0, 222.0, 1339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [142.0, 1370.0, 666.0, 56.0], "bbox_xyxy_clipped": [142.0, 1370.0, 808.0, 1426.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [214.0, 730.0, 1296.0, 57.0], "bbox_xyxy_clipped": [214.0, 730.0, 1510.0, 787.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [142.0, 1065.0, 402.0, 83.0], "bbox_xyxy_clipped": [142.0, 1065.0, 544.0, 1148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [142.0, 1180.0, 400.0, 100.0], "bbox_xyxy_clipped": [142.0, 1180.0, 542.0, 1280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0008201808189808247}, "Ove": {"reason": null, "status": "ok", "value": 0.04379860674501303}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9bc6a018654940f781b996", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9bc6a018654940f781b996/pipeline/l0_result.json", "sha256": "a5db0893f2b87a7b0bc46d7f6ac0c8fbaa86f27b217b1877c7385b073f7f7ffe", "size_bytes": 8284}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9bc6a018654940f781b996/inputs/pfull/asset_manifest.json", "sha256": "0c4a2dce7a8945de42c0393207664aa883290a506d80766144cd79c14614d502", "size_bytes": 3919}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_03.png", "sha256": "dd96a161f925c125a8942f047b597fbecaf341d299c9d469fc4bfd735f4cd517", "size_bytes": 657596}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5b9bc6a018654940f781b996/inputs/r3/r3_asset_manifest.json", "sha256": "3ed7fbd6bc3ded7dc271903d075e952f7d35ef7203997d440062cabb9482bf4a", "size_bytes": 3479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "aa4473bbd9cc1e2f0bd74f467d6a120c6ec59d6ab372592f8a7b0bc111ffefcb", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 13, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [76.0, 206.0, 240.0, 480.0], "bbox_xyxy_clipped": [76.0, 206.0, 316.0, 686.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [92.0, 228.0, 178.0, 418.0], "bbox_xyxy_clipped": [92.0, 228.0, 270.0, 646.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [350.0, 110.0, 188.0, 153.0], "bbox_xyxy_clipped": [350.0, 110.0, 538.0, 263.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [332.0, 250.0, 240.0, 111.0], "bbox_xyxy_clipped": [332.0, 250.0, 572.0, 361.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [350.0, 96.0, 205.0, 15.0], "bbox_xyxy_clipped": [350.0, 96.0, 555.0, 111.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [344.0, 188.0, 228.0, 12.0], "bbox_xyxy_clipped": [344.0, 188.0, 572.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [55.0, 640.0, 255.0, 264.0], "bbox_xyxy_clipped": [55.0, 640.0, 310.0, 904.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [411.0, 412.0, 155.0, 23.0], "bbox_xyxy_clipped": [411.0, 412.0, 566.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [360.0, 86.0, 164.0, 33.0], "bbox_xyxy_clipped": [360.0, 86.0, 524.0, 119.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [399.0, 285.0, 110.0, 31.0], "bbox_xyxy_clipped": [399.0, 285.0, 509.0, 316.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [398.0, 332.0, 113.0, 32.0], "bbox_xyxy_clipped": [398.0, 332.0, 511.0, 364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [362.0, 352.0, 164.0, 33.0], "bbox_xyxy_clipped": [362.0, 352.0, 526.0, 385.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [346.0, 390.0, 28.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035104132484948297}, "Ove": {"reason": null, "status": "ok", "value": 0.14776264059432123}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5ba8b598ebe74117be0792c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ba8b598ebe74117be0792c9/pipeline/l0_result.json", "sha256": "6fa57996b120a5a181033a69d0a7de35ad861484939c5f516a02c75dd13550b5", "size_bytes": 10390}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ba8b598ebe74117be0792c9/inputs/pfull/asset_manifest.json", "sha256": "720d3640ebd771d6864ffa885c280dfc5cba4fc9c1594c6a90cc8d0a66668fdf", "size_bytes": 6967}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "sha256": "aa4473bbd9cc1e2f0bd74f467d6a120c6ec59d6ab372592f8a7b0bc111ffefcb", "size_bytes": 91297}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ba8b598ebe74117be0792c9/inputs/r3/r3_asset_manifest.json", "sha256": "92ca32adbfec25e2aef30f7df21b66073e63b4557142c3ff5cc147134dfa7c4b", "size_bytes": 6263}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fb4bf16dda0c91876a88a658aba406319568a3abb46069f1e866b7d27850bad2", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [40.0, 70.0, 620.0, 664.0], "bbox_xyxy_clipped": [40.0, 70.0, 660.0, 734.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [655.0, 118.0, 350.0, 179.0], "bbox_xyxy_clipped": [655.0, 118.0, 1005.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [820.0, 88.0, 120.0, 240.0], "bbox_xyxy_clipped": [820.0, 88.0, 940.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [930.0, 120.0, 85.0, 94.0], "bbox_xyxy_clipped": [930.0, 120.0, 1015.0, 214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [930.0, 222.0, 85.0, 94.0], "bbox_xyxy_clipped": [930.0, 222.0, 1015.0, 316.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [88.0, 1000.0, 904.0, 11.0], "bbox_xyxy_clipped": [88.0, 1000.0, 992.0, 1011.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [670.0, 710.0, 176.0, 90.0], "bbox_xyxy_clipped": [670.0, 710.0, 846.0, 800.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [688.0, 808.0, 320.0, 53.0], "bbox_xyxy_clipped": [688.0, 808.0, 1008.0, 861.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [675.0, 875.0, 300.0, 85.0], "bbox_xyxy_clipped": [675.0, 875.0, 975.0, 960.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [698.0, 960.0, 280.0, 73.0], "bbox_xyxy_clipped": [698.0, 960.0, 978.0, 1033.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035108521008119994}, "Ove": {"reason": null, "status": "ok", "value": 0.06715088426538693}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5bbc9b3a78e1194aa616041e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbc9b3a78e1194aa616041e/pipeline/l0_result.json", "sha256": "9f542d4dc81759961fab1c78b5e282b0b2c180eac4183a7cd5320ab65c0959b5", "size_bytes": 9146}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbc9b3a78e1194aa616041e/inputs/pfull/asset_manifest.json", "sha256": "ebb3628afec211305eab488fcf82400f6bb281bf858724a8d77d2d00bd6940d3", "size_bytes": 5375}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_01.png", "sha256": "fb4bf16dda0c91876a88a658aba406319568a3abb46069f1e866b7d27850bad2", "size_bytes": 277185}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbc9b3a78e1194aa616041e/inputs/r3/r3_asset_manifest.json", "sha256": "431618082704ca70c67b564c24bf503476a87cb2c32ae0832904088f3f56306b", "size_bytes": 4705}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "de1a4d944bc9614f314bb321170d966c5a1e6962cc949323487d28c6cd20d778", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [187.0, 140.0, 226.0, 449.0], "bbox_xyxy_clipped": [187.0, 140.0, 413.0, 589.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [222.0, 52.0, 157.0, 156.0], "bbox_xyxy_clipped": [222.0, 52.0, 379.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [102.0, 865.0, 300.0, 74.0], "bbox_xyxy_clipped": [102.0, 865.0, 402.0, 939.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [102.0, 945.0, 241.0, 130.0], "bbox_xyxy_clipped": [102.0, 945.0, 343.0, 1075.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [250.0, 612.0, 100.0, 100.0], "bbox_xyxy_clipped": [250.0, 612.0, 350.0, 712.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [104.0, 790.0, 249.0, 88.0], "bbox_xyxy_clipped": [104.0, 790.0, 353.0, 878.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [102.0, 1041.0, 330.0, 96.0], "bbox_xyxy_clipped": [102.0, 1041.0, 432.0, 1137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 1110.0, 420.0, 4.0], "bbox_xyxy_clipped": [120.0, 1110.0, 540.0, 1114.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [102.0, 1126.0, 280.0, 10.0], "bbox_xyxy_clipped": [102.0, 1126.0, 382.0, 1136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [102.0, 1150.0, 280.0, 10.0], "bbox_xyxy_clipped": [102.0, 1150.0, 382.0, 1160.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00541932723867065}, "Ove": {"reason": null, "status": "ok", "value": 0.04485236444837495}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5bbcbdfd78e1194aa69fe067", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbcbdfd78e1194aa69fe067/pipeline/l0_result.json", "sha256": "70561bc7a93dd4d62c601edc48b0b985e240a5d09efc810bf65fe7ac0ea7ba12", "size_bytes": 9368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbcbdfd78e1194aa69fe067/inputs/pfull/asset_manifest.json", "sha256": "d5e542fede9c15e46c36772f90b525c1739546cc45986527dfd0e0ae8bf07c35", "size_bytes": 5359}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_02.png", "sha256": "de1a4d944bc9614f314bb321170d966c5a1e6962cc949323487d28c6cd20d778", "size_bytes": 222228}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bbcbdfd78e1194aa69fe067/inputs/r3/r3_asset_manifest.json", "sha256": "9696e2e900632ea337802481619157724b62cd9a663f2dbd44c0188047fa1b0e", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "84d86f31d73ab323aefeafb54dd5adfd0277852bfe1dfd90bad9d10d81f60f84", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [410.0, 210.0, 260.0, 935.0], "bbox_xyxy_clipped": [410.0, 210.0, 670.0, 1145.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [26.0, 70.0, 340.0, 57.0], "bbox_xyxy_clipped": [26.0, 70.0, 366.0, 127.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [370.0, 150.0, 340.0, 548.0], "bbox_xyxy_clipped": [370.0, 150.0, 710.0, 698.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [860.0, 210.0, 190.0, 406.0], "bbox_xyxy_clipped": [860.0, 210.0, 1050.0, 616.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [160.0, 820.0, 220.0, 462.0], "bbox_xyxy_clipped": [160.0, 820.0, 380.0, 1282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [245.0, 510.0, 120.0, 124.0], "bbox_xyxy_clipped": [245.0, 510.0, 365.0, 634.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [700.0, 840.0, 260.0, 253.0], "bbox_xyxy_clipped": [700.0, 840.0, 960.0, 1093.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [28.0, 1800.0, 560.0, 47.0], "bbox_xyxy_clipped": [28.0, 1800.0, 588.0, 1847.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [24.0, 145.0, 340.0, 249.0], "bbox_xyxy_clipped": [24.0, 145.0, 364.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [820.0, 430.0, 140.0, 18.0], "bbox_xyxy_clipped": [820.0, 430.0, 960.0, 448.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [940.0, 460.0, 140.0, 18.0], "bbox_xyxy_clipped": [940.0, 460.0, 1080.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [24.0, 435.0, 320.0, 241.0], "bbox_xyxy_clipped": [24.0, 435.0, 344.0, 676.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0020853722377966433}, "Ove": {"reason": null, "status": "ok", "value": 0.051830950026986455}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd05c0e78e1194aa6210e31", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd05c0e78e1194aa6210e31/pipeline/l0_result.json", "sha256": "90e87e7fc3ae5ea4d5a277673ec6482663fe82c7ea15b65fd8bbdf46f1f88334", "size_bytes": 10587}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd05c0e78e1194aa6210e31/inputs/pfull/asset_manifest.json", "sha256": "1c0effe98506546e2cdd1b041c8708145c6a81d437fa66f4706e78b3b79b7bbb", "size_bytes": 6408}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "sha256": "84d86f31d73ab323aefeafb54dd5adfd0277852bfe1dfd90bad9d10d81f60f84", "size_bytes": 265668}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd05c0e78e1194aa6210e31/inputs/r3/r3_asset_manifest.json", "sha256": "f58151bd0b5bee53dce724778327bba9171e55b13193b9a37ffab3cdccfab591", "size_bytes": 5676}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ab04d63647285c61af3091df50e7c54a976cabe6b397696df15864368db76301", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0015", "bbox_lwh_raw": [70.0, 260.0, 420.0, 1150.0], "bbox_xyxy_clipped": [70.0, 260.0, 490.0, 1410.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [88.0, 305.0, 385.0, 275.0], "bbox_xyxy_clipped": [88.0, 305.0, 473.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 620.0, 315.0, 560.0], "bbox_xyxy_clipped": [120.0, 620.0, 435.0, 1180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [165.0, 1215.0, 220.0, 603.0], "bbox_xyxy_clipped": [165.0, 1215.0, 385.0, 1818.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [110.0, 1500.0, 300.0, 342.0], "bbox_xyxy_clipped": [110.0, 1500.0, 410.0, 1842.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [95.0, 1110.0, 360.0, 316.0], "bbox_xyxy_clipped": [95.0, 1110.0, 455.0, 1426.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [40.0, 90.0, 1000.0, 50.0], "bbox_xyxy_clipped": [40.0, 90.0, 1040.0, 140.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [40.0, 1700.0, 1000.0, 52.0], "bbox_xyxy_clipped": [40.0, 1700.0, 1040.0, 1752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [520.0, 0.0, 23.0, 1088.0], "bbox_xyxy_clipped": [520.0, 0.0, 543.0, 1088.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [640.0, 120.0, 380.0, 34.0], "bbox_xyxy_clipped": [640.0, 120.0, 1020.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [620.0, 220.0, 410.0, 33.0], "bbox_xyxy_clipped": [620.0, 220.0, 1030.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [620.0, 290.0, 320.0, 93.0], "bbox_xyxy_clipped": [620.0, 290.0, 940.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [650.0, 1220.0, 290.0, 102.0], "bbox_xyxy_clipped": [650.0, 1220.0, 940.0, 1322.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [650.0, 1335.0, 250.0, 92.0], "bbox_xyxy_clipped": [650.0, 1335.0, 900.0, 1427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [650.0, 1465.0, 145.0, 82.0], "bbox_xyxy_clipped": [650.0, 1465.0, 795.0, 1547.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [795.0, 1465.0, 150.0, 83.0], "bbox_xyxy_clipped": [795.0, 1465.0, 945.0, 1548.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004544194324104505}, "Ove": {"reason": null, "status": "ok", "value": 0.12181774482529217}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd9d0209259f9ba54b29c99", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd9d0209259f9ba54b29c99/pipeline/l0_result.json", "sha256": "4addad79bfeeea97382496bebc8e5d44f829e792c1f6295219ea35f58cf7a07e", "size_bytes": 13992}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd9d0209259f9ba54b29c99/inputs/pfull/asset_manifest.json", "sha256": "dfedb90053bd87ee702e994578b5ed5f37b978f656510bb196a55971548c9ef8", "size_bytes": 8413}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_02.png", "sha256": "ab04d63647285c61af3091df50e7c54a976cabe6b397696df15864368db76301", "size_bytes": 841510}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bd9d0209259f9ba54b29c99/inputs/r3/r3_asset_manifest.json", "sha256": "9732aa71dd1ee6fb36cea8a71d9b537f336a57f2a424cc8f1899dcb822199421", "size_bytes": 7447}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b9bd48fa7c6ec1e35ad24d07e7bb2fa91038439119261e7310bbc8a93746979c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 122.0, 156.0, 232.0], "bbox_xyxy_clipped": [18.0, 122.0, 174.0, 354.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [28.0, 52.0, 176.0, 301.0], "bbox_xyxy_clipped": [28.0, 52.0, 204.0, 353.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [199.0, 48.0, 130.0, 13.0], "bbox_xyxy_clipped": [199.0, 48.0, 329.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [202.0, 68.0, 138.0, 12.0], "bbox_xyxy_clipped": [202.0, 68.0, 340.0, 80.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [221.0, 96.0, 116.0, 20.0], "bbox_xyxy_clipped": [221.0, 96.0, 337.0, 116.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [208.0, 126.0, 126.0, 74.0], "bbox_xyxy_clipped": [208.0, 126.0, 334.0, 200.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002292584317774434}, "Ove": {"reason": null, "status": "ok", "value": 0.10159579057965527}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5be174d215d5cddfd04fd1a2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be174d215d5cddfd04fd1a2/pipeline/l0_result.json", "sha256": "a5179869a66228c8f1c2d856dea433679c323a889969a7cb95daac088d310a5d", "size_bytes": 6854}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be174d215d5cddfd04fd1a2/inputs/pfull/asset_manifest.json", "sha256": "3c9e6d5b6f1a2dbca6202f1f879773200be40602c9503d7bb915bee4819ac971", "size_bytes": 3386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_02.png", "sha256": "b9bd48fa7c6ec1e35ad24d07e7bb2fa91038439119261e7310bbc8a93746979c", "size_bytes": 81691}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be174d215d5cddfd04fd1a2/inputs/r3/r3_asset_manifest.json", "sha256": "df5fc4bb6c8de8fe9ca9c693c91675d2c3d07f5228688c6ffcd314893194c68b", "size_bytes": 3071}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8ddc392c7f2e7c48785a95d25e94e415a1ecf825a8e58817544af24443dd5247", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "asset_size_bytes": 542, "kind": "asset", "pfull_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "r3_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "99c8c31cea418989f4208523849c14391bcd3df10d29f2617bec65a9c257fd16", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [20.0, 12.0, 120.0, 46.0], "bbox_xyxy_clipped": [20.0, 12.0, 140.0, 58.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [155.0, 43.0, 95.0, 207.0], "bbox_xyxy_clipped": [155.0, 43.0, 250.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [20.0, 28.0, 95.0, 60.0], "bbox_xyxy_clipped": [20.0, 28.0, 115.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [20.0, 6.0, 115.0, 38.0], "bbox_xyxy_clipped": [20.0, 6.0, 135.0, 44.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [165.0, 20.0, 398.0, 81.0], "bbox_xyxy_clipped": [165.0, 20.0, 563.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [620.0, 20.0, 90.0, 50.0], "bbox_xyxy_clipped": [620.0, 20.0, 710.0, 70.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [612.0, 46.0, 104.0, 30.0], "bbox_xyxy_clipped": [612.0, 46.0, 716.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.07252757051305427}, "Ove": {"reason": null, "status": "ok", "value": 0.23535616403950602}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "ee039cc0fd90aa12af56946618ae113689b51b1da2d92a64adc2f445a88be65a", "status": "computed"}, "sample_id": "5be97b9241fdeab19f985504", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/pipeline/l0_result.json", "sha256": "1ff29472d958b9d719446583db4f68c5839bf8bfa6bfb1b1c4354de5e728dbcc", "size_bytes": 8147}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/inputs/pfull/asset_manifest.json", "sha256": "9044758eabe11d0cd1626688c655cb2919b8c6747de0c878417dce268c9e7561", "size_bytes": 4442}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_02.png", "sha256": "8ddc392c7f2e7c48785a95d25e94e415a1ecf825a8e58817544af24443dd5247", "size_bytes": 91469}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/inputs/r3/r3_asset_manifest.json", "sha256": "a8b9a10f2069db46c2820b20398fd3e40356ac0ed0e532c6c4e22745a7e377c4", "size_bytes": 3979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "size_bytes": 542}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2054d0c19c19d130ebde89612ecd8c3a4220ac0dbb7af62488b52b3ea611b956", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 12, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [640.0, 1240.0, 360.0, 540.0], "bbox_xyxy_clipped": [640.0, 1240.0, 1000.0, 1780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [420.0, 160.0, 520.0, 138.0], "bbox_xyxy_clipped": [420.0, 160.0, 940.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [260.0, 1120.0, 700.0, 187.0], "bbox_xyxy_clipped": [260.0, 1120.0, 960.0, 1307.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [72.0, 930.0, 320.0, 47.0], "bbox_xyxy_clipped": [72.0, 930.0, 392.0, 977.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [470.0, 318.0, 460.0, 117.0], "bbox_xyxy_clipped": [470.0, 318.0, 930.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [620.0, 98.0, 340.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [620.0, 244.0, 340.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 240.0, 340.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 430.0, 340.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [820.0, 238.0, 56.0, 61.0], "bbox_xyxy_clipped": [820.0, 238.0, 876.0, 299.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [520.0, 474.0, 560.0, 50.0], "bbox_xyxy_clipped": [520.0, 474.0, 1080.0, 524.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [460.0, 84.0, 410.0, 62.0], "bbox_xyxy_clipped": [460.0, 84.0, 870.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.001810031744624479}, "Occ": {"reason": null, "status": "ok", "value": 0.005372111092489849}, "Ove": {"reason": null, "status": "ok", "value": 0.014668130182341189}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bf55e578caf671e1c2272f0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf55e578caf671e1c2272f0/pipeline/l0_result.json", "sha256": "d1dd2dc2adff746b2c077716cea2e7cd13562359217d759dffe1a82c12d81019", "size_bytes": 10341}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf55e578caf671e1c2272f0/inputs/pfull/asset_manifest.json", "sha256": "32777935b464ff6b76f8c641f52477b23c52f0347e368121db2a8a1346fd53f0", "size_bytes": 6381}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_03.png", "sha256": "2054d0c19c19d130ebde89612ecd8c3a4220ac0dbb7af62488b52b3ea611b956", "size_bytes": 250831}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf55e578caf671e1c2272f0/inputs/r3/r3_asset_manifest.json", "sha256": "62b649cb01b92ef28175bef8b941c3eeccc2e4ee0be5bab8f8d92fc78850534a", "size_bytes": 5608}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9737a9118e80cf7f47eb964fabcae3b636bfea55fced9dc70ae5d433a6d23b69", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [130.0, 56.0, 395.0, 257.0], "bbox_xyxy_clipped": [130.0, 56.0, 525.0, 313.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [545.0, 40.0, 200.0, 162.0], "bbox_xyxy_clipped": [545.0, 40.0, 745.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [548.0, 92.0, 250.0, 107.0], "bbox_xyxy_clipped": [548.0, 92.0, 798.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [602.0, 145.0, 220.0, 34.0], "bbox_xyxy_clipped": [602.0, 145.0, 822.0, 179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [505.0, 201.0, 330.0, 9.0], "bbox_xyxy_clipped": [505.0, 201.0, 835.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [492.0, 208.0, 12.0, 46.0], "bbox_xyxy_clipped": [492.0, 208.0, 504.0, 254.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [514.0, 214.0, 12.0, 46.0], "bbox_xyxy_clipped": [514.0, 214.0, 526.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [550.0, 214.0, 42.0, 42.0], "bbox_xyxy_clipped": [550.0, 214.0, 592.0, 256.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [600.0, 214.0, 42.0, 42.0], "bbox_xyxy_clipped": [600.0, 214.0, 642.0, 256.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [653.0, 214.0, 35.0, 59.0], "bbox_xyxy_clipped": [653.0, 214.0, 688.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [695.0, 214.0, 35.0, 59.0], "bbox_xyxy_clipped": [695.0, 214.0, 730.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [742.0, 212.0, 45.0, 49.0], "bbox_xyxy_clipped": [742.0, 212.0, 787.0, 261.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [797.0, 220.0, 15.0, 102.0], "bbox_xyxy_clipped": [797.0, 220.0, 812.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005136838521695753}, "Ove": {"reason": null, "status": "ok", "value": 0.07323832364833513}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5bf828a38caf671e1c2632e9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf828a38caf671e1c2632e9/pipeline/l0_result.json", "sha256": "2c116969a76837bf53e8c0f658ba31eccef3a68df578ac60e7620acc0c9d542b", "size_bytes": 10512}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf828a38caf671e1c2632e9/inputs/pfull/asset_manifest.json", "sha256": "55ac8b1f4ffeb98abb2041feff5971652977837a7a30e75b007c32add09a19f7", "size_bytes": 6824}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "sha256": "9737a9118e80cf7f47eb964fabcae3b636bfea55fced9dc70ae5d433a6d23b69", "size_bytes": 197353}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5bf828a38caf671e1c2632e9/inputs/r3/r3_asset_manifest.json", "sha256": "d7efcec69e68cf4aa0b9d9749f8baa9cc7ac7b30989c9e877a3b857c754dffa4", "size_bytes": 5875}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e62076bae1b03ce899bd9a7fad1701ba4b0d0f601c5a551fd620767c79d34c9d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [62.0, 78.0, 320.0, 20.0], "bbox_xyxy_clipped": [62.0, 78.0, 382.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [62.0, 152.0, 190.0, 28.0], "bbox_xyxy_clipped": [62.0, 152.0, 252.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [62.0, 194.0, 300.0, 145.0], "bbox_xyxy_clipped": [62.0, 194.0, 362.0, 339.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [548.0, 92.0, 312.0, 422.0], "bbox_xyxy_clipped": [548.0, 92.0, 860.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [418.0, 264.0, 260.0, 75.0], "bbox_xyxy_clipped": [418.0, 264.0, 678.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [68.0, 420.0, 238.0, 200.0], "bbox_xyxy_clipped": [68.0, 420.0, 306.0, 620.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [34.0, 640.0, 198.0, 339.0], "bbox_xyxy_clipped": [34.0, 640.0, 232.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [248.0, 644.0, 198.0, 339.0], "bbox_xyxy_clipped": [248.0, 644.0, 446.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [462.0, 644.0, 198.0, 339.0], "bbox_xyxy_clipped": [462.0, 644.0, 660.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0065069294217593825}, "Ove": {"reason": null, "status": "ok", "value": 0.007660721946436232}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5c263de4133a785392318ba9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c263de4133a785392318ba9/pipeline/l0_result.json", "sha256": "396e0fb7f8f9f5d902fe0b48b7b2e3ff7b5a5315bbf297965a2b3a50609d5bba", "size_bytes": 9044}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c263de4133a785392318ba9/inputs/pfull/asset_manifest.json", "sha256": "a9e4666114c5f875b197242507ead006cf242eb78392c1596465d389fc1dbdd2", "size_bytes": 4887}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "sha256": "e62076bae1b03ce899bd9a7fad1701ba4b0d0f601c5a551fd620767c79d34c9d", "size_bytes": 173654}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c263de4133a785392318ba9/inputs/r3/r3_asset_manifest.json", "sha256": "ec574de313829dc0539a257f93592e70f78eeadd8b829831e845c919ce867044", "size_bytes": 4316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7ee78249f07653bb274dcb23d2242272c85d5b5f9fb8a9d4e54c9549a02cb8b2", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [126.0, 206.0, 198.0, 352.0], "bbox_xyxy_clipped": [126.0, 206.0, 324.0, 558.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [834.0, 214.0, 200.0, 358.0], "bbox_xyxy_clipped": [834.0, 214.0, 1034.0, 572.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [438.0, 158.0, 204.0, 365.0], "bbox_xyxy_clipped": [438.0, 158.0, 642.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 191.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 1729.0, 1080.0, 191.0], "bbox_xyxy_clipped": [0.0, 1729.0, 1080.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [219.0, 126.0, 642.0, 483.0], "bbox_xyxy_clipped": [219.0, 126.0, 861.0, 609.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [80.0, 1232.0, 360.0, 234.0], "bbox_xyxy_clipped": [80.0, 1232.0, 440.0, 1466.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [88.0, 1468.0, 300.0, 188.0], "bbox_xyxy_clipped": [88.0, 1468.0, 388.0, 1656.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [365.0, 1746.0, 350.0, 62.0], "bbox_xyxy_clipped": [365.0, 1746.0, 715.0, 1808.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [406.0, 1658.0, 268.0, 49.0], "bbox_xyxy_clipped": [406.0, 1658.0, 674.0, 1707.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [515.0, 1602.0, 49.0, 168.0], "bbox_xyxy_clipped": [515.0, 1602.0, 564.0, 1770.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006511570420665092}, "Ove": {"reason": null, "status": "ok", "value": 0.06987006301694093}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f55b048d064dbcc85b80", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f55b048d064dbcc85b80/pipeline/l0_result.json", "sha256": "08570c1194712e7553be725323062b768a287f3a4902ba3f715fb7319b491b7c", "size_bytes": 10850}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f55b048d064dbcc85b80/inputs/pfull/asset_manifest.json", "sha256": "463ba6b39714af8124b966f4dc77fade4c35d84ca8b3dde09671f2e51eebea16", "size_bytes": 5860}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_01.png", "sha256": "7ee78249f07653bb274dcb23d2242272c85d5b5f9fb8a9d4e54c9549a02cb8b2", "size_bytes": 839903}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f55b048d064dbcc85b80/inputs/r3/r3_asset_manifest.json", "sha256": "e9d6b0d5e0b2b371ebaf1944a79c3a98964720bfdf483dc6706016f6ee1ae3c5", "size_bytes": 5136}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4b0aa573aa9bf048be355ac63086acb30328652d05b96f8bcb7c961248aadbe3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0009", "bbox_lwh_raw": [42.0, 110.0, 310.0, 163.0], "bbox_xyxy_clipped": [42.0, 110.0, 352.0, 273.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [42.0, 330.0, 430.0, 179.0], "bbox_xyxy_clipped": [42.0, 330.0, 472.0, 509.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [42.0, 570.0, 420.0, 38.0], "bbox_xyxy_clipped": [42.0, 570.0, 462.0, 608.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [42.0, 1730.0, 360.0, 37.0], "bbox_xyxy_clipped": [42.0, 1730.0, 402.0, 1767.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [615.0, 1090.0, 425.0, 688.0], "bbox_xyxy_clipped": [615.0, 1090.0, 1040.0, 1778.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [752.0, 1410.0, 220.0, 391.0], "bbox_xyxy_clipped": [752.0, 1410.0, 972.0, 1801.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [690.0, 1290.0, 290.0, 449.0], "bbox_xyxy_clipped": [690.0, 1290.0, 980.0, 1739.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [955.0, 1260.0, 60.0, 460.0], "bbox_xyxy_clipped": [955.0, 1260.0, 1015.0, 1720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [610.0, 1225.0, 390.0, 117.0], "bbox_xyxy_clipped": [610.0, 1225.0, 1000.0, 1342.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [620.0, 1555.0, 390.0, 117.0], "bbox_xyxy_clipped": [620.0, 1555.0, 1010.0, 1672.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006283872918155334}, "Ove": {"reason": null, "status": "ok", "value": 0.24719151599281924}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f7a3048d064dbccfae94", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f7a3048d064dbccfae94/pipeline/l0_result.json", "sha256": "5fe350a7bd9d4f00ce58a4151e5941c66a0f5b2a8aea7a3342a364612d0fd857", "size_bytes": 9666}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f7a3048d064dbccfae94/inputs/pfull/asset_manifest.json", "sha256": "088a9caaff82e88780f434de085829c203cbc3bc30726f820a7c99a93d60ffd4", "size_bytes": 5409}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "sha256": "4b0aa573aa9bf048be355ac63086acb30328652d05b96f8bcb7c961248aadbe3", "size_bytes": 371876}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c41f7a3048d064dbccfae94/inputs/r3/r3_asset_manifest.json", "sha256": "db79bdd5f2c2a1302df168e24a756c1bbb9a52839ac1d11a0411299debd4431e", "size_bytes": 4785}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1cff75ae298a7a7dae54994c5107b27c61af6142780cc609d633b32fa2185fde", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [437.0, 410.0, 543.0, 564.0], "bbox_xyxy_clipped": [437.0, 410.0, 980.0, 974.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [636.0, 106.0, 219.0, 190.0], "bbox_xyxy_clipped": [636.0, 106.0, 855.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [633.0, 306.0, 219.0, 190.0], "bbox_xyxy_clipped": [633.0, 306.0, 852.0, 496.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [128.0, 165.0, 747.0, 181.0], "bbox_xyxy_clipped": [128.0, 165.0, 875.0, 346.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [842.0, 1448.0, 138.0, 270.0], "bbox_xyxy_clipped": [842.0, 1448.0, 980.0, 1718.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [126.0, 1510.0, 398.0, 56.0], "bbox_xyxy_clipped": [126.0, 1510.0, 524.0, 1566.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [132.0, 1048.0, 412.0, 139.0], "bbox_xyxy_clipped": [132.0, 1048.0, 544.0, 1187.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [135.0, 1220.0, 366.0, 80.0], "bbox_xyxy_clipped": [135.0, 1220.0, 501.0, 1300.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001454962680142449}, "Ove": {"reason": null, "status": "ok", "value": 0.03788044886329884}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5af7a1048d064dbc1f0d67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5af7a1048d064dbc1f0d67/pipeline/l0_result.json", "sha256": "ac73b7cf06acf771bb5e90b37bfcd4d811fdc2e6189557f969b5aaff2c9cd2d2", "size_bytes": 8058}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5af7a1048d064dbc1f0d67/inputs/pfull/asset_manifest.json", "sha256": "a3927649c441fea763178894fd17dd7f46941461b7c5cc761ff4542029422461", "size_bytes": 4361}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_03.png", "sha256": "1cff75ae298a7a7dae54994c5107b27c61af6142780cc609d633b32fa2185fde", "size_bytes": 611262}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5af7a1048d064dbc1f0d67/inputs/r3/r3_asset_manifest.json", "sha256": "75ad507130c57d0fdc42d5d4e9f2acf0957c80a24369bd3d6a829b4576ccd8d6", "size_bytes": 3883}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9afb69d2d0db0da2ca75baee7939c732aae06016e2806f553b5f6d33c553fe54", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 52.0, 360.0, 33.0], "bbox_xyxy_clipped": [24.0, 52.0, 384.0, 85.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [24.0, 96.0, 410.0, 26.0], "bbox_xyxy_clipped": [24.0, 96.0, 434.0, 122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [24.0, 144.0, 6.0, 1780.0], "bbox_xyxy_clipped": [24.0, 144.0, 30.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [38.0, 176.0, 13.0, 1863.0], "bbox_xyxy_clipped": [38.0, 176.0, 51.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [54.0, 176.0, 13.0, 1863.0], "bbox_xyxy_clipped": [54.0, 176.0, 67.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [70.0, 176.0, 13.0, 1863.0], "bbox_xyxy_clipped": [70.0, 176.0, 83.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [84.0, 500.0, 390.0, 167.0], "bbox_xyxy_clipped": [84.0, 500.0, 474.0, 667.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [84.0, 1460.0, 390.0, 167.0], "bbox_xyxy_clipped": [84.0, 1460.0, 474.0, 1627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [24.0, 138.0, 295.0, 112.0], "bbox_xyxy_clipped": [24.0, 138.0, 319.0, 250.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [28.0, 1392.0, 76.0, 72.0], "bbox_xyxy_clipped": [28.0, 1392.0, 104.0, 1464.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [108.0, 1408.0, 214.0, 59.0], "bbox_xyxy_clipped": [108.0, 1408.0, 322.0, 1467.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [108.0, 1470.0, 148.0, 60.0], "bbox_xyxy_clipped": [108.0, 1470.0, 256.0, 1530.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [702.0, 180.0, 378.0, 579.0], "bbox_xyxy_clipped": [702.0, 180.0, 1080.0, 759.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 6.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 6.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 1914.0, 1080.0, 6.0], "bbox_xyxy_clipped": [0.0, 1914.0, 1080.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [26.0, 1466.0, 96.0, 65.0], "bbox_xyxy_clipped": [26.0, 1466.0, 122.0, 1531.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [32.0, 1548.0, 318.0, 29.0], "bbox_xyxy_clipped": [32.0, 1548.0, 350.0, 1577.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00606687350712344}, "Ove": {"reason": null, "status": "ok", "value": 0.041175278158346776}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b0913048d064dbc785e7c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b0913048d064dbc785e7c/pipeline/l0_result.json", "sha256": "923b2aa1801de3993f4af1a6adfc8e655e4a7da69085cecfec9d89017d78b14b", "size_bytes": 15160}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b0913048d064dbc785e7c/inputs/pfull/asset_manifest.json", "sha256": "31738078c159de6912800077a264805606cbbc97474c9da88dd32fc25262a3c4", "size_bytes": 8914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_01.png", "sha256": "9afb69d2d0db0da2ca75baee7939c732aae06016e2806f553b5f6d33c553fe54", "size_bytes": 471719}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b0913048d064dbc785e7c/inputs/r3/r3_asset_manifest.json", "sha256": "7ff7987cd6ab5ae9f78810ee686e7a7b7110e20e6d9c30b1065d519f2b13d93a", "size_bytes": 7931}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ca6df199efd596daf4eb8f3c7b704dba9a7c741b32433f2a426bc0dce39c8b2c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 15, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [60.0, 310.0, 260.0, 94.0], "bbox_xyxy_clipped": [60.0, 310.0, 320.0, 404.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [58.0, 430.0, 300.0, 86.0], "bbox_xyxy_clipped": [58.0, 430.0, 358.0, 516.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [70.0, 518.0, 210.0, 87.0], "bbox_xyxy_clipped": [70.0, 518.0, 280.0, 605.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [690.0, 1760.0, 290.0, 27.0], "bbox_xyxy_clipped": [690.0, 1760.0, 980.0, 1787.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [430.0, 235.0, 170.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [398.0, 220.0, 2.0, 52.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [688.0, 220.0, 2.0, 52.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [430.0, 1510.0, 170.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [410.0, 760.0, 260.0, 10.0], "bbox_xyxy_clipped": [410.0, 760.0, 670.0, 770.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [410.0, 1170.0, 260.0, 10.0], "bbox_xyxy_clipped": [410.0, 1170.0, 670.0, 1180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [470.0, 860.0, 145.0, 22.0], "bbox_xyxy_clipped": [470.0, 860.0, 615.0, 882.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [410.0, 1250.0, 160.0, 31.0], "bbox_xyxy_clipped": [410.0, 1250.0, 570.0, 1281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [340.0, 520.0, 400.0, 263.0], "bbox_xyxy_clipped": [340.0, 520.0, 740.0, 783.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [360.0, 860.0, 360.0, 30.0], "bbox_xyxy_clipped": [360.0, 860.0, 720.0, 890.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [360.0, 930.0, 360.0, 30.0], "bbox_xyxy_clipped": [360.0, 930.0, 720.0, 960.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010906368304498398}, "Ove": {"reason": null, "status": "ok", "value": 0.029098654478882616}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b095c048d064dbc7a0ede", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b095c048d064dbc7a0ede/pipeline/l0_result.json", "sha256": "5a0dc666d39643c81bd12b7a7389c28a19a81124d6f9269359a52d6dac3cbf29", "size_bytes": 11927}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b095c048d064dbc7a0ede/inputs/pfull/asset_manifest.json", "sha256": "cecf36514a4a74f2f24b9827bf507c133b2d7a14605e1abcef82d3f14e8056c3", "size_bytes": 7845}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_02.png", "sha256": "ca6df199efd596daf4eb8f3c7b704dba9a7c741b32433f2a426bc0dce39c8b2c", "size_bytes": 175623}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c5b095c048d064dbc7a0ede/inputs/r3/r3_asset_manifest.json", "sha256": "ce74749e80f28c481f60e3b3b2be1916c22255c6086bc661b6a171316e5b2cb7", "size_bytes": 6792}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f09ca1239a44a2b9ef88f0565c9ecea8a50ed21e6928b1a0441372b13bdb6c8b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [40.0, 1160.0, 470.0, 470.0], "bbox_xyxy_clipped": [40.0, 1160.0, 510.0, 1630.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [515.0, 820.0, 240.0, 240.0], "bbox_xyxy_clipped": [515.0, 820.0, 755.0, 1060.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [705.0, 965.0, 180.0, 180.0], "bbox_xyxy_clipped": [705.0, 965.0, 885.0, 1145.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [825.0, 1110.0, 160.0, 160.0], "bbox_xyxy_clipped": [825.0, 1110.0, 985.0, 1270.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [520.0, 860.0, 170.0, 170.0], "bbox_xyxy_clipped": [520.0, 860.0, 690.0, 1030.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [625.0, 640.0, 150.0, 150.0], "bbox_xyxy_clipped": [625.0, 640.0, 775.0, 790.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [780.0, 90.0, 220.0, 391.0], "bbox_xyxy_clipped": [780.0, 90.0, 1000.0, 481.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [770.0, 95.0, 230.0, 53.0], "bbox_xyxy_clipped": [770.0, 95.0, 1000.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [760.0, 180.0, 260.0, 46.0], "bbox_xyxy_clipped": [760.0, 180.0, 1020.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [610.0, 255.0, 360.0, 118.0], "bbox_xyxy_clipped": [610.0, 255.0, 970.0, 373.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [820.0, 420.0, 150.0, 49.0], "bbox_xyxy_clipped": [820.0, 420.0, 970.0, 469.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [720.0, 510.0, 320.0, 47.0], "bbox_xyxy_clipped": [720.0, 510.0, 1040.0, 557.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [650.0, 610.0, 430.0, 10.0], "bbox_xyxy_clipped": [650.0, 610.0, 1080.0, 620.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [760.0, 1630.0, 260.0, 170.0], "bbox_xyxy_clipped": [760.0, 1630.0, 1020.0, 1800.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004911368391853799}, "Ove": {"reason": null, "status": "ok", "value": 0.08155142152494331}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c6c147785ea3c16f98dd907", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c6c147785ea3c16f98dd907/pipeline/l0_result.json", "sha256": "b9d64920ec95fef4c92dccfa4c82d74ece87ab1a533ebfd9804b431dce0e0dfe", "size_bytes": 12172}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c6c147785ea3c16f98dd907/inputs/pfull/asset_manifest.json", "sha256": "35b72eb885c58568e428033fa41446dea91429819bca5e5aed840d955ee29c95", "size_bytes": 7514}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_03.png", "sha256": "f09ca1239a44a2b9ef88f0565c9ecea8a50ed21e6928b1a0441372b13bdb6c8b", "size_bytes": 232362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c6c147785ea3c16f98dd907/inputs/r3/r3_asset_manifest.json", "sha256": "6fedc9c624a84f0f53617248b80e047a31668209ca9f6f930f4303b8f28817eb", "size_bytes": 6586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "541a97b65fb9a437db13764732518e0cee27ee8d07747ab633d6b75c4b725ebc", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [285.0, 16.0, 118.0, 84.0], "bbox_xyxy_clipped": [285.0, 16.0, 403.0, 100.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [287.0, 76.0, 118.0, 83.0], "bbox_xyxy_clipped": [287.0, 76.0, 405.0, 159.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [18.0, 16.0, 178.0, 65.0], "bbox_xyxy_clipped": [18.0, 16.0, 196.0, 81.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [31.0, 126.0, 30.0, 31.0], "bbox_xyxy_clipped": [31.0, 126.0, 61.0, 157.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [28.0, 162.0, 47.0, 31.0], "bbox_xyxy_clipped": [28.0, 162.0, 75.0, 193.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 198.0, 62.0, 30.0], "bbox_xyxy_clipped": [34.0, 198.0, 96.0, 228.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [144.0, 132.0, 92.0, 41.0], "bbox_xyxy_clipped": [144.0, 132.0, 236.0, 173.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [47.0, 81.0, 91.0, 51.0], "bbox_xyxy_clipped": [47.0, 81.0, 138.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [47.0, 43.0, 90.0, 36.0], "bbox_xyxy_clipped": [47.0, 43.0, 137.0, 79.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [25.0, 40.0, 11.0, 26.0], "bbox_xyxy_clipped": [25.0, 40.0, 36.0, 66.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [25.0, 82.0, 11.0, 26.0], "bbox_xyxy_clipped": [25.0, 82.0, 36.0, 108.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [176.0, 182.0, 31.0, 32.0], "bbox_xyxy_clipped": [176.0, 182.0, 207.0, 214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0018640261539146997}, "Ove": {"reason": null, "status": "ok", "value": 0.04038184546686775}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5c77eda885ea3c16f9f29101", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c77eda885ea3c16f9f29101/pipeline/l0_result.json", "sha256": "b01bea2f6e0db264536ec99bc07e4db0315e6935c60f01ea9b6285739990ae40", "size_bytes": 10273}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c77eda885ea3c16f9f29101/inputs/pfull/asset_manifest.json", "sha256": "3610d78df0b07be90b5ea1be6835ca2809708c14c4a5dbadc4dec21c089c84ba", "size_bytes": 6331}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_03.png", "sha256": "541a97b65fb9a437db13764732518e0cee27ee8d07747ab633d6b75c4b725ebc", "size_bytes": 27664}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5c77eda885ea3c16f9f29101/inputs/r3/r3_asset_manifest.json", "sha256": "0046bb2450ff97d683a81912a04deb3b58997bf47de6823309fadd7f787f2d55", "size_bytes": 5543}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "389009582272beed6a0d93343b522d3819938d523a5021d07de8080342d9607b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [68.0, 92.0, 392.0, 121.0], "bbox_xyxy_clipped": [68.0, 92.0, 460.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [72.0, 212.0, 470.0, 95.0], "bbox_xyxy_clipped": [72.0, 212.0, 542.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [712.0, 420.0, 262.0, 183.0], "bbox_xyxy_clipped": [712.0, 420.0, 974.0, 603.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [54.0, 1040.0, 864.0, 617.0], "bbox_xyxy_clipped": [54.0, 1040.0, 918.0, 1657.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 1370.0, 1080.0, 293.0], "bbox_xyxy_clipped": [0.0, 1370.0, 1080.0, 1663.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 940.0, 1080.0, 684.0], "bbox_xyxy_clipped": [0.0, 940.0, 1080.0, 1624.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [240.0, 740.0, 696.0, 286.0], "bbox_xyxy_clipped": [240.0, 740.0, 936.0, 1026.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [120.0, 610.0, 600.0, 200.0], "bbox_xyxy_clipped": [120.0, 610.0, 720.0, 810.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [640.0, 900.0, 432.0, 145.0], "bbox_xyxy_clipped": [640.0, 900.0, 1072.0, 1045.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [848.0, 980.0, 220.0, 241.0], "bbox_xyxy_clipped": [848.0, 980.0, 1068.0, 1221.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [760.0, 1280.0, 210.0, 1252.0], "bbox_xyxy_clipped": [760.0, 1280.0, 970.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [860.0, 70.0, 220.0, 391.0], "bbox_xyxy_clipped": [860.0, 70.0, 1080.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005790237781489832}, "Ove": {"reason": null, "status": "ok", "value": 0.20612433303717403}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ca5faf823c829c8218ffb10", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ca5faf823c829c8218ffb10/pipeline/l0_result.json", "sha256": "58bea377b152fc63fb1f4f7cb2f659d9bfca1f57a6fe42b7eb24c9d4575301b1", "size_bytes": 10318}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ca5faf823c829c8218ffb10/inputs/pfull/asset_manifest.json", "sha256": "f7291bc293eb209ca1dc5d0ff9b442458c56a81dc230d78ad27366f466ec47f2", "size_bytes": 6362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_03.png", "sha256": "389009582272beed6a0d93343b522d3819938d523a5021d07de8080342d9607b", "size_bytes": 216710}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ca5faf823c829c8218ffb10/inputs/r3/r3_asset_manifest.json", "sha256": "5e4554409ff3eece2821038e5f48a6ac8f37fbf111b058f69b4003e92557de36", "size_bytes": 5517}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "91f73a0011bc26bc415cb05954ecbb5f78e6750bb623441b2d050f739d0d451a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 18.0, 148.0, 105.0], "bbox_xyxy_clipped": [18.0, 18.0, 166.0, 123.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [54.0, 64.0, 182.0, 126.0], "bbox_xyxy_clipped": [54.0, 64.0, 236.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [248.0, 55.0, 145.0, 20.0], "bbox_xyxy_clipped": [248.0, 55.0, 393.0, 75.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [258.0, 82.0, 159.0, 25.0], "bbox_xyxy_clipped": [258.0, 82.0, 417.0, 107.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [282.0, 115.0, 92.0, 29.0], "bbox_xyxy_clipped": [282.0, 115.0, 374.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [286.0, 150.0, 93.0, 29.0], "bbox_xyxy_clipped": [286.0, 150.0, 379.0, 179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [282.0, 184.0, 92.0, 29.0], "bbox_xyxy_clipped": [282.0, 184.0, 374.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [286.0, 218.0, 93.0, 29.0], "bbox_xyxy_clipped": [286.0, 218.0, 379.0, 247.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [170.0, 140.0, 236.0, 13.0], "bbox_xyxy_clipped": [170.0, 140.0, 406.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [177.0, 166.0, 236.0, 13.0], "bbox_xyxy_clipped": [177.0, 166.0, 413.0, 179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [226.0, 130.0, 18.0, 18.0], "bbox_xyxy_clipped": [226.0, 130.0, 244.0, 148.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [338.0, 128.0, 35.0, 59.0], "bbox_xyxy_clipped": [338.0, 128.0, 373.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [195.0, 156.0, 11.0, 55.0], "bbox_xyxy_clipped": [195.0, 156.0, 206.0, 211.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [366.0, 150.0, 12.0, 57.0], "bbox_xyxy_clipped": [366.0, 150.0, 378.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [315.0, 112.0, 109.0, 90.0], "bbox_xyxy_clipped": [315.0, 112.0, 419.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016709661736708326}, "Ove": {"reason": null, "status": "ok", "value": 0.17790560585669274}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5cb89d8aadbc796055f970af", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cb89d8aadbc796055f970af/pipeline/l0_result.json", "sha256": "ca5a43ecb15121d4911e01efca6ec72eda2b6ce9e15df45e70f7ff27545a22f7", "size_bytes": 12928}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cb89d8aadbc796055f970af/inputs/pfull/asset_manifest.json", "sha256": "3d71de78777d4430f0fb48bfa9e93a3950b1d571d8f9c3c0e644599287cbf604", "size_bytes": 7840}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_02.png", "sha256": "91f73a0011bc26bc415cb05954ecbb5f78e6750bb623441b2d050f739d0d451a", "size_bytes": 33699}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cb89d8aadbc796055f970af/inputs/r3/r3_asset_manifest.json", "sha256": "3e4d256b3b2607ae567376c13e9391457b97ea328fa0da3dd685e51b751e992e", "size_bytes": 6895}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d106a59d074cb8b71e22184c987ae700f02a1b7b4a6b037734f218ba6fb03a9c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [546.0, 565.0, 829.0, 468.0], "bbox_xyxy_clipped": [546.0, 565.0, 1375.0, 1033.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [130.0, 96.0, 708.0, 210.0], "bbox_xyxy_clipped": [130.0, 96.0, 838.0, 306.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1177.0, 96.0, 681.0, 369.0], "bbox_xyxy_clipped": [1177.0, 96.0, 1858.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [111.0, 392.0, 754.0, 293.0], "bbox_xyxy_clipped": [111.0, 392.0, 865.0, 685.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1689.0, 385.0, 181.0, 149.0], "bbox_xyxy_clipped": [1689.0, 385.0, 1870.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [50.0, 832.0, 181.0, 149.0], "bbox_xyxy_clipped": [50.0, 832.0, 231.0, 981.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1694.0, 836.0, 165.0, 141.0], "bbox_xyxy_clipped": [1694.0, 836.0, 1859.0, 977.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [61.0, 696.0, 181.0, 150.0], "bbox_xyxy_clipped": [61.0, 696.0, 242.0, 846.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [677.0, 136.0, 209.0, 211.0], "bbox_xyxy_clipped": [677.0, 136.0, 886.0, 347.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [674.0, 353.0, 590.0, 47.0], "bbox_xyxy_clipped": [674.0, 353.0, 1264.0, 400.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [669.0, 222.0, 401.0, 191.0], "bbox_xyxy_clipped": [669.0, 222.0, 1070.0, 413.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [823.0, 390.0, 229.0, 67.0], "bbox_xyxy_clipped": [823.0, 390.0, 1052.0, 457.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005191214156274786}, "Ove": {"reason": null, "status": "ok", "value": 0.08783301737166226}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5cd67f1f7d4459dfe12714cf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd67f1f7d4459dfe12714cf/pipeline/l0_result.json", "sha256": "8d087ad55d9f4d86de4eb945fd10f14740c12daf154b643162cb41ed49f06bf1", "size_bytes": 9963}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd67f1f7d4459dfe12714cf/inputs/pfull/asset_manifest.json", "sha256": "253d62fa3424938747a9ff890b7af0aefe94e7701f9a24e5ea727150d50989cd", "size_bytes": 6368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_02.png", "sha256": "d106a59d074cb8b71e22184c987ae700f02a1b7b4a6b037734f218ba6fb03a9c", "size_bytes": 479798}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd67f1f7d4459dfe12714cf/inputs/r3/r3_asset_manifest.json", "sha256": "d0709162142b205da86c0d0b21a7e27033dcb84ea61307eb68102ccaa0389cce", "size_bytes": 5536}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7cc11bfc05281bfdc447321e85c50c0743fc21dd8f16b2680ea7b7dd7241f963", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [166.0, 82.0, 201.0, 383.0], "bbox_xyxy_clipped": [166.0, 82.0, 367.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [977.0, 82.0, 201.0, 180.0], "bbox_xyxy_clipped": [977.0, 82.0, 1178.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [28.0, 88.0, 180.0, 164.0], "bbox_xyxy_clipped": [28.0, 88.0, 208.0, 252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [487.0, 28.0, 246.0, 223.0], "bbox_xyxy_clipped": [487.0, 28.0, 733.0, 251.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [283.0, 256.0, 633.0, 143.0], "bbox_xyxy_clipped": [283.0, 256.0, 916.0, 399.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [340.0, 214.0, 421.0, 170.0], "bbox_xyxy_clipped": [340.0, 214.0, 761.0, 384.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [345.0, 208.0, 421.0, 170.0], "bbox_xyxy_clipped": [345.0, 208.0, 766.0, 378.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [247.0, 166.0, 706.0, 209.0], "bbox_xyxy_clipped": [247.0, 166.0, 953.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [141.0, 160.0, 750.0, 194.0], "bbox_xyxy_clipped": [141.0, 160.0, 891.0, 354.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [259.0, 392.0, 706.0, 209.0], "bbox_xyxy_clipped": [259.0, 392.0, 965.0, 601.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [110.0, 387.0, 750.0, 194.0], "bbox_xyxy_clipped": [110.0, 387.0, 860.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [398.0, 428.0, 389.0, 120.0], "bbox_xyxy_clipped": [398.0, 428.0, 787.0, 548.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [405.0, 432.0, 389.0, 119.0], "bbox_xyxy_clipped": [405.0, 432.0, 794.0, 551.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005961870261552912}, "Ove": {"reason": null, "status": "ok", "value": 0.6944574664891914}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5cd6984b7d4459dfe140c0b4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd6984b7d4459dfe140c0b4/pipeline/l0_result.json", "sha256": "006cf9196cf18cc99bbf1837493b07bacbb062ecbedc29c2da275262ad6b0f74", "size_bytes": 10863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd6984b7d4459dfe140c0b4/inputs/pfull/asset_manifest.json", "sha256": "bf517f745889ddc25f174991957730b3beac95f19248cc278d5f4addec4a711d", "size_bytes": 6862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "sha256": "7cc11bfc05281bfdc447321e85c50c0743fc21dd8f16b2680ea7b7dd7241f963", "size_bytes": 363667}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cd6984b7d4459dfe140c0b4/inputs/r3/r3_asset_manifest.json", "sha256": "ab0056e3380665affc0047accfcd8c337a3233471c35efb7501a544574cb2afc", "size_bytes": 6019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "df8acf81c949581c3361be758dba973a7f1f1e8b2d3dbb7b9410379ffa641a04", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "asset_size_bytes": 1786, "kind": "asset", "pfull_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "r3_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "dad778e1d68806fdbbce49c426426ac2deba7575ea817980eb7445f6e674904e", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [446.0, 62.0, 380.0, 238.0], "bbox_xyxy_clipped": [446.0, 62.0, 826.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [54.0, 86.0, 205.0, 72.0], "bbox_xyxy_clipped": [54.0, 86.0, 259.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [56.0, 158.0, 170.0, 68.0], "bbox_xyxy_clipped": [56.0, 158.0, 226.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [55.0, 36.0, 124.0, 32.0], "bbox_xyxy_clipped": [55.0, 36.0, 179.0, 68.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [56.0, 266.0, 188.0, 25.0], "bbox_xyxy_clipped": [56.0, 266.0, 244.0, 291.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [300.0, 18.0, 140.0, 35.0], "bbox_xyxy_clipped": [300.0, 18.0, 440.0, 53.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [278.0, 224.0, 176.0, 81.0], "bbox_xyxy_clipped": [278.0, 224.0, 454.0, 305.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [30.0, 22.0, 18.0, 99.0], "bbox_xyxy_clipped": [30.0, 22.0, 48.0, 121.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [30.0, 129.0, 18.0, 99.0], "bbox_xyxy_clipped": [30.0, 129.0, 48.0, 228.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0002891160712359122}, "Ove": {"reason": null, "status": "ok", "value": 0.0006490234758623045}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "bd9071efcf1e6440b69900fc0c23c02f702805c59deebcd8bdc46b079dc0c508", "status": "computed"}, "sample_id": "5cde64e47d4459dfe1b81863", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/pipeline/l0_result.json", "sha256": "1200db52735d902962fcca9ba2044d363c2a070d3f7f5795fa23135cd7aea2d2", "size_bytes": 8751}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/asset_manifest.json", "sha256": "d6ad35aa8e41f816aa8bd6da77316c755ae08aca7cb0edd8f4444de39a33f74b", "size_bytes": 5416}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "sha256": "df8acf81c949581c3361be758dba973a7f1f1e8b2d3dbb7b9410379ffa641a04", "size_bytes": 99408}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/inputs/r3/r3_asset_manifest.json", "sha256": "24361c44477556d9c121dbc67fa4a0cd89ef0d7e2d6fc887122fa7a346f16f51", "size_bytes": 4773}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "size_bytes": 1786}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f558c2fd992e664fa4d668d1526e990bef857f1f5022158442f53d9c9b6e604e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [700.0, 250.0, 520.0, 298.0], "bbox_xyxy_clipped": [700.0, 250.0, 1220.0, 548.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1080.0, 245.0, 260.0, 322.0], "bbox_xyxy_clipped": [1080.0, 245.0, 1340.0, 567.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [805.0, 405.0, 1115.0, 185.0], "bbox_xyxy_clipped": [805.0, 405.0, 1920.0, 590.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1005.0, 215.0, 395.0, 387.0], "bbox_xyxy_clipped": [1005.0, 215.0, 1400.0, 602.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [875.0, 865.0, 205.0, 46.0], "bbox_xyxy_clipped": [875.0, 865.0, 1080.0, 911.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [790.0, 925.0, 340.0, 32.0], "bbox_xyxy_clipped": [790.0, 925.0, 1130.0, 957.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [690.0, 785.0, 540.0, 55.0], "bbox_xyxy_clipped": [690.0, 785.0, 1230.0, 840.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [650.0, 125.0, 330.0, 64.0], "bbox_xyxy_clipped": [650.0, 125.0, 980.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [915.0, 120.0, 310.0, 69.0], "bbox_xyxy_clipped": [915.0, 120.0, 1225.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1090.0, 120.0, 310.0, 69.0], "bbox_xyxy_clipped": [1090.0, 120.0, 1400.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [790.0, 195.0, 300.0, 65.0], "bbox_xyxy_clipped": [790.0, 195.0, 1090.0, 260.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024950409851440575}, "Ove": {"reason": null, "status": "ok", "value": 0.18843290586248898}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5ce3ba947d4459dfe1cebd75", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ce3ba947d4459dfe1cebd75/pipeline/l0_result.json", "sha256": "c13d3e53a34afaf514716d125cbeb7dacc9783b7f7cd1f9545833513a442dc3b", "size_bytes": 11369}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ce3ba947d4459dfe1cebd75/inputs/pfull/asset_manifest.json", "sha256": "2e733e4fab29902a4fc44ea3d0beca36dbb16a50330756165518da2b4ef7a05d", "size_bytes": 5980}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_02.png", "sha256": "f558c2fd992e664fa4d668d1526e990bef857f1f5022158442f53d9c9b6e604e", "size_bytes": 298580}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ce3ba947d4459dfe1cebd75/inputs/r3/r3_asset_manifest.json", "sha256": "474244cbb2269af6b96507ba0a92875aee1c73b025d962b2456d124008479a9d", "size_bytes": 5449}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b575bd248bdb006ef29c71988c9f7b0084722adbba606e73b6b577add197e60e", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [140.0, 120.0, 520.0, 1269.0], "bbox_xyxy_clipped": [140.0, 120.0, 660.0, 1389.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [640.0, 160.0, 380.0, 876.0], "bbox_xyxy_clipped": [640.0, 160.0, 1020.0, 1036.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [150.0, 1450.0, 780.0, 335.0], "bbox_xyxy_clipped": [150.0, 1450.0, 930.0, 1785.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [690.0, 1800.0, 310.0, 42.0], "bbox_xyxy_clipped": [690.0, 1800.0, 1000.0, 1842.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [170.0, 1385.0, 730.0, 57.0], "bbox_xyxy_clipped": [170.0, 1385.0, 900.0, 1442.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [250.0, 1295.0, 580.0, 156.0], "bbox_xyxy_clipped": [250.0, 1295.0, 830.0, 1451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [960.0, 70.0, 50.0, 919.0], "bbox_xyxy_clipped": [960.0, 70.0, 1010.0, 989.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [60.0, 230.0, 330.0, 107.0], "bbox_xyxy_clipped": [60.0, 230.0, 390.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [865.0, 1230.0, 130.0, 130.0], "bbox_xyxy_clipped": [865.0, 1230.0, 995.0, 1360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [430.0, 190.0, 310.0, 464.0], "bbox_xyxy_clipped": [430.0, 190.0, 740.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [740.0, 320.0, 250.0, 512.0], "bbox_xyxy_clipped": [740.0, 320.0, 990.0, 832.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [90.0, 820.0, 290.0, 638.0], "bbox_xyxy_clipped": [90.0, 820.0, 380.0, 1458.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004960947951286256}, "Ove": {"reason": null, "status": "ok", "value": 0.13731206681301664}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5cfe2ad78cba87f943da4ec5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cfe2ad78cba87f943da4ec5/pipeline/l0_result.json", "sha256": "4f0ac250327d8b9c7b12a8799fedfac6c0888867491c40f87de000ac6dc76ecb", "size_bytes": 11309}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cfe2ad78cba87f943da4ec5/inputs/pfull/asset_manifest.json", "sha256": "27113479a9fa368ecaedb858660e77e3292ddac4d4c62b422a874ec0e62256a5", "size_bytes": 6424}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_01.png", "sha256": "b575bd248bdb006ef29c71988c9f7b0084722adbba606e73b6b577add197e60e", "size_bytes": 427745}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5cfe2ad78cba87f943da4ec5/inputs/r3/r3_asset_manifest.json", "sha256": "67a8339df9df5a67f25f893b68576ff3bfd091a8fe0a8649322fde18bf29ac1f", "size_bytes": 5594}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "31037a9f12c889d95293798a6c32812fbc36329b7dcc327d9ad1f76e9579af1f", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [58.0, 112.0, 310.0, 371.0], "bbox_xyxy_clipped": [58.0, 112.0, 368.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [398.0, 96.0, 172.0, 361.0], "bbox_xyxy_clipped": [398.0, 96.0, 570.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [650.0, 84.0, 160.0, 347.0], "bbox_xyxy_clipped": [650.0, 84.0, 810.0, 431.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [478.0, 212.0, 126.0, 126.0], "bbox_xyxy_clipped": [478.0, 212.0, 604.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [620.0, 194.0, 128.0, 128.0], "bbox_xyxy_clipped": [620.0, 194.0, 748.0, 322.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [394.0, 548.0, 498.0, 119.0], "bbox_xyxy_clipped": [394.0, 548.0, 892.0, 667.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [392.0, 432.0, 424.0, 142.0], "bbox_xyxy_clipped": [392.0, 432.0, 816.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [492.0, 118.0, 292.0, 54.0], "bbox_xyxy_clipped": [492.0, 118.0, 784.0, 172.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [556.0, 62.0, 220.0, 57.0], "bbox_xyxy_clipped": [556.0, 62.0, 776.0, 119.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [492.0, 176.0, 206.0, 106.0], "bbox_xyxy_clipped": [492.0, 176.0, 698.0, 282.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [692.0, 178.0, 54.0, 49.0], "bbox_xyxy_clipped": [692.0, 178.0, 746.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [494.0, 292.0, 322.0, 45.0], "bbox_xyxy_clipped": [494.0, 292.0, 816.0, 337.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [494.0, 694.0, 308.0, 42.0], "bbox_xyxy_clipped": [494.0, 694.0, 802.0, 736.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [494.0, 356.0, 138.0, 71.0], "bbox_xyxy_clipped": [494.0, 356.0, 632.0, 427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [804.0, 162.0, 94.0, 118.0], "bbox_xyxy_clipped": [804.0, 162.0, 898.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036884851396991637}, "Ove": {"reason": null, "status": "ok", "value": 0.14595903534829743}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d08f3708cba87f943ec4e3f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f3708cba87f943ec4e3f/pipeline/l0_result.json", "sha256": "62b428a0e1d7240d2e6ee66f286340e838251cc120214d3593ceee572609942e", "size_bytes": 11942}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f3708cba87f943ec4e3f/inputs/pfull/asset_manifest.json", "sha256": "4bd9ec960c87131c7db0f476d91e1493a9211d78be5f67de6d3669b1defbedc8", "size_bytes": 7909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_01.png", "sha256": "31037a9f12c889d95293798a6c32812fbc36329b7dcc327d9ad1f76e9579af1f", "size_bytes": 241304}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f3708cba87f943ec4e3f/inputs/r3/r3_asset_manifest.json", "sha256": "478102721759895582444903afabd6768ad3aff2ecf76010610a8737bd8897db", "size_bytes": 7019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8e10cb6b02dc2f54b52bf046df9bfa38960bf8d87ad9c1ba20453309e47ed64a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 178.0, 372.0, 449.0], "bbox_xyxy_clipped": [120.0, 178.0, 492.0, 627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [52.0, 86.0, 164.0, 571.0], "bbox_xyxy_clipped": [52.0, 86.0, 216.0, 657.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [56.0, 690.0, 156.0, 574.0], "bbox_xyxy_clipped": [56.0, 690.0, 212.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [48.0, 344.0, 118.0, 999.0], "bbox_xyxy_clipped": [48.0, 344.0, 166.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [642.0, 116.0, 217.0, 34.0], "bbox_xyxy_clipped": [642.0, 116.0, 859.0, 150.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [646.0, 190.0, 214.0, 51.0], "bbox_xyxy_clipped": [646.0, 190.0, 860.0, 241.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [646.0, 266.0, 184.0, 34.0], "bbox_xyxy_clipped": [646.0, 266.0, 830.0, 300.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [646.0, 312.0, 250.0, 29.0], "bbox_xyxy_clipped": [646.0, 312.0, 896.0, 341.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [646.0, 398.0, 208.0, 400.0], "bbox_xyxy_clipped": [646.0, 398.0, 854.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [646.0, 740.0, 340.0, 109.0], "bbox_xyxy_clipped": [646.0, 740.0, 986.0, 849.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [646.0, 146.0, 215.0, 50.0], "bbox_xyxy_clipped": [646.0, 146.0, 861.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [810.0, 146.0, 179.0, 60.0], "bbox_xyxy_clipped": [810.0, 146.0, 989.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1004.0, 1018.0, 24.0, 430.0], "bbox_xyxy_clipped": [1004.0, 1018.0, 1028.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003760214950093934}, "Ove": {"reason": null, "status": "ok", "value": 0.10120958864273358}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d08f7a08cba87f943f48a6d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f7a08cba87f943f48a6d/pipeline/l0_result.json", "sha256": "ffc128483fe433580cf68377c2bc9469fe9d87f5a4b47c913f3a1da7eaf180f8", "size_bytes": 11446}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f7a08cba87f943f48a6d/inputs/pfull/asset_manifest.json", "sha256": "e535bdda9d1db29b399e50c6662a73bd1edd6607a2d947d3a12c611890a2e100", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_03.png", "sha256": "8e10cb6b02dc2f54b52bf046df9bfa38960bf8d87ad9c1ba20453309e47ed64a", "size_bytes": 200900}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d08f7a08cba87f943f48a6d/inputs/r3/r3_asset_manifest.json", "sha256": "30ff9413934e326a4c914e9ab3cf609993671d7ac09da05ada3559f9515f7260", "size_bytes": 6114}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "adba7722bb26b6717fa9981f75ad57e22f172f214cee22d614d1f2b863ba482c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 11, "raw": 18, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1079.0, 0.0, 1.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 1.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 2.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 3.0, 15.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 4.0, 15.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 5.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 6.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 7.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [0.0, 8.0, 117.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0017", "bbox_lwh_raw": [0.0, 120.0, 432.0, 801.0], "bbox_xyxy_clipped": [0.0, 120.0, 432.0, 921.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [676.0, 132.0, 320.0, 126.0], "bbox_xyxy_clipped": [676.0, 132.0, 996.0, 258.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [678.0, 268.0, 220.0, 39.0], "bbox_xyxy_clipped": [678.0, 268.0, 898.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [678.0, 316.0, 300.0, 32.0], "bbox_xyxy_clipped": [678.0, 316.0, 978.0, 348.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [678.0, 430.0, 326.0, 32.0], "bbox_xyxy_clipped": [678.0, 430.0, 1004.0, 462.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [678.0, 734.0, 344.0, 148.0], "bbox_xyxy_clipped": [678.0, 734.0, 1022.0, 882.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [680.0, 910.0, 273.0, 34.0], "bbox_xyxy_clipped": [680.0, 910.0, 953.0, 944.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00716763740462383}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d0cf79f8cba87f943616ca6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d0cf79f8cba87f943616ca6/pipeline/l0_result.json", "sha256": "2bd55b65af64f7e4bccaa51af3ff3c0d489c5a7485f23f902d936457e8a409e8", "size_bytes": 13106}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d0cf79f8cba87f943616ca6/inputs/pfull/asset_manifest.json", "sha256": "9d7f0901e4cb1a3b34d96e68d09dde5dcc458c9e51bf6bda4c224a79bf61aeb5", "size_bytes": 9458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_03.png", "sha256": "adba7722bb26b6717fa9981f75ad57e22f172f214cee22d614d1f2b863ba482c", "size_bytes": 541298}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d0cf79f8cba87f943616ca6/inputs/r3/r3_asset_manifest.json", "sha256": "b0098aecdf69d99ed09c5d3dba9bf2c4ff0cd706857df4cf4ed9c2653a208188", "size_bytes": 8137}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a652f934d46073a0b65f1a1a9f5d833f02df81002b75b75045c8b204da33e8f5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 20, "valid": 20}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [220.0, 38.0, 760.0, 114.0], "bbox_xyxy_clipped": [220.0, 38.0, 980.0, 152.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [57.0, 534.0, 212.0, 80.0], "bbox_xyxy_clipped": [57.0, 534.0, 269.0, 614.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [975.0, 570.0, 170.0, 21.0], "bbox_xyxy_clipped": [975.0, 570.0, 1145.0, 591.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [240.0, 372.0, 720.0, 240.0], "bbox_xyxy_clipped": [240.0, 372.0, 960.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [925.0, 88.0, 120.0, 120.0], "bbox_xyxy_clipped": [925.0, 88.0, 1045.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [86.0, 84.0, 118.0, 118.0], "bbox_xyxy_clipped": [86.0, 84.0, 204.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [359.0, 76.0, 126.0, 126.0], "bbox_xyxy_clipped": [359.0, 76.0, 485.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [862.0, 262.0, 122.0, 122.0], "bbox_xyxy_clipped": [862.0, 262.0, 984.0, 384.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [105.0, 252.0, 118.0, 118.0], "bbox_xyxy_clipped": [105.0, 252.0, 223.0, 370.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [422.0, 38.0, 190.0, 79.0], "bbox_xyxy_clipped": [422.0, 38.0, 612.0, 117.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [423.0, 121.0, 188.0, 68.0], "bbox_xyxy_clipped": [423.0, 121.0, 611.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [922.0, 172.0, 134.0, 90.0], "bbox_xyxy_clipped": [922.0, 172.0, 1056.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [926.0, 262.0, 70.0, 47.0], "bbox_xyxy_clipped": [926.0, 262.0, 996.0, 309.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1002.0, 257.0, 81.0, 47.0], "bbox_xyxy_clipped": [1002.0, 257.0, 1083.0, 304.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [672.0, 182.0, 145.0, 104.0], "bbox_xyxy_clipped": [672.0, 182.0, 817.0, 286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1006.0, 181.0, 74.0, 48.0], "bbox_xyxy_clipped": [1006.0, 181.0, 1080.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1083.0, 176.0, 84.0, 48.0], "bbox_xyxy_clipped": [1083.0, 176.0, 1167.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1002.0, 225.0, 42.0, 62.0], "bbox_xyxy_clipped": [1002.0, 225.0, 1044.0, 287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1082.0, 221.0, 42.0, 62.0], "bbox_xyxy_clipped": [1082.0, 221.0, 1124.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [56.0, 574.0, 210.0, 112.0], "bbox_xyxy_clipped": [56.0, 574.0, 266.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005826161465788625}, "Ove": {"reason": null, "status": "ok", "value": 0.10628424541014006}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5d234eaf8cba87f94322b763", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d234eaf8cba87f94322b763/pipeline/l0_result.json", "sha256": "60420d7b9287aee04659f0985267e51fb041831399ca219f319ab35690faf3d2", "size_bytes": 15674}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d234eaf8cba87f94322b763/inputs/pfull/asset_manifest.json", "sha256": "efefb054245bc9bd3c9385dc53438dd8d6cbf8960cf4fc3330120b79cc7f17a9", "size_bytes": 10451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_02.png", "sha256": "a652f934d46073a0b65f1a1a9f5d833f02df81002b75b75045c8b204da33e8f5", "size_bytes": 259235}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d234eaf8cba87f94322b763/inputs/r3/r3_asset_manifest.json", "sha256": "c54d93771a99629c8511fa614d901e3f13c6c4658d391ec5498178133fe3254c", "size_bytes": 9239}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6e6053339f3f7c33b1391bc81d7ad5b9481b127537884bf8011088df6346b29b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 24, "valid": 22}, "elements": [{"asset_id": "asset_0015", "bbox_lwh_raw": [90.0, 92.0, 470.0, 302.0], "bbox_xyxy_clipped": [90.0, 92.0, 560.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [92.0, 410.0, 345.0, 46.0], "bbox_xyxy_clipped": [92.0, 410.0, 437.0, 456.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [94.0, 476.0, 210.0, 57.0], "bbox_xyxy_clipped": [94.0, 476.0, 304.0, 533.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [94.0, 544.0, 230.0, 70.0], "bbox_xyxy_clipped": [94.0, 544.0, 324.0, 614.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [94.0, 635.0, 160.0, 30.0], "bbox_xyxy_clipped": [94.0, 635.0, 254.0, 665.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [94.0, 674.0, 320.0, 179.0], "bbox_xyxy_clipped": [94.0, 674.0, 414.0, 853.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [94.0, 862.0, 320.0, 185.0], "bbox_xyxy_clipped": [94.0, 862.0, 414.0, 1047.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [94.0, 976.0, 320.0, 81.0], "bbox_xyxy_clipped": [94.0, 976.0, 414.0, 1057.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1254.0, 566.0, 666.0, 775.0], "bbox_xyxy_clipped": [1254.0, 566.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1045.0, 742.0, 785.0, 29.0], "bbox_xyxy_clipped": [1045.0, 742.0, 1830.0, 771.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1188.0, 815.0, 640.0, 149.0], "bbox_xyxy_clipped": [1188.0, 815.0, 1828.0, 964.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1536.0, 872.0, 264.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1640.0, 900.0, 8.0, 1792.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1388.0, 742.0, 360.0, 209.0], "bbox_xyxy_clipped": [1388.0, 742.0, 1748.0, 951.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1312.0, 648.0, 456.0, 94.0], "bbox_xyxy_clipped": [1312.0, 648.0, 1768.0, 742.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1208.0, 716.0, 418.0, 570.0], "bbox_xyxy_clipped": [1208.0, 716.0, 1626.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1118.0, 792.0, 404.0, 702.0], "bbox_xyxy_clipped": [1118.0, 792.0, 1522.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1026.0, 660.0, 586.0, 567.0], "bbox_xyxy_clipped": [1026.0, 660.0, 1612.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1506.0, 602.0, 380.0, 196.0], "bbox_xyxy_clipped": [1506.0, 602.0, 1886.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1760.0, 150.0, 96.0, 96.0], "bbox_xyxy_clipped": [1760.0, 150.0, 1856.0, 246.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [148.0, 150.0, 96.0, 96.0], "bbox_xyxy_clipped": [148.0, 150.0, 244.0, 246.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1700.0, 250.0, 96.0, 96.0], "bbox_xyxy_clipped": [1700.0, 250.0, 1796.0, 346.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [520.0, 120.0, 410.0, 320.0], "bbox_xyxy_clipped": [520.0, 120.0, 930.0, 440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1560.0, 96.0, 180.0, 339.0], "bbox_xyxy_clipped": [1560.0, 96.0, 1740.0, 435.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006700314390958979}, "Ove": {"reason": null, "status": "ok", "value": 0.303669486361211}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d4ae4aecf657b21effa9831", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d4ae4aecf657b21effa9831/pipeline/l0_result.json", "sha256": "81a7e4322f61b023b7e0661011086af3bbe8784a9a66978d74854b12f41cb8fb", "size_bytes": 16998}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d4ae4aecf657b21effa9831/inputs/pfull/asset_manifest.json", "sha256": "7edf4c4317d6419e4e2e88579c92c69afd4b536b1e7be55d326f45729919dcbf", "size_bytes": 12496}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "sha256": "6e6053339f3f7c33b1391bc81d7ad5b9481b127537884bf8011088df6346b29b", "size_bytes": 449169}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d4ae4aecf657b21effa9831/inputs/r3/r3_asset_manifest.json", "sha256": "083eca718fc409af5a6350c339940eb42700172955c7283a62ab598fbdf4973c", "size_bytes": 10824}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "48ee12b4c7f4e4608d01e33405d5dc66076a748a41ebdb971a668d773f00bbfe", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 19, "valid": 17}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [10.0, 60.0, 330.0, 467.0], "bbox_xyxy_clipped": [10.0, 60.0, 340.0, 527.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [760.0, 110.0, 420.0, 671.0], "bbox_xyxy_clipped": [760.0, 110.0, 1180.0, 781.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [540.0, 165.0, 360.0, 569.0], "bbox_xyxy_clipped": [540.0, 165.0, 900.0, 734.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [70.0, 175.0, 240.0, 44.0], "bbox_xyxy_clipped": [70.0, 175.0, 310.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [60.0, 770.0, 455.0, 121.0], "bbox_xyxy_clipped": [60.0, 770.0, 515.0, 891.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [560.0, 800.0, 470.0, 124.0], "bbox_xyxy_clipped": [560.0, 800.0, 1030.0, 924.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [70.0, 100.0, 220.0, 44.0], "bbox_xyxy_clipped": [70.0, 100.0, 290.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 1410.0, 700.0, 99.0], "bbox_xyxy_clipped": [120.0, 1410.0, 820.0, 1509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [515.0, 0.0, 12.0, 117.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [70.0, 410.0, 175.0, 50.0], "bbox_xyxy_clipped": [70.0, 410.0, 245.0, 460.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [70.0, 545.0, 272.0, 43.0], "bbox_xyxy_clipped": [70.0, 545.0, 342.0, 588.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [70.0, 625.0, 130.0, 70.0], "bbox_xyxy_clipped": [70.0, 625.0, 200.0, 695.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [70.0, 705.0, 205.0, 56.0], "bbox_xyxy_clipped": [70.0, 705.0, 275.0, 761.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [430.0, 0.0, 16.0, 24.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [70.0, 1480.0, 430.0, 124.0], "bbox_xyxy_clipped": [70.0, 1480.0, 500.0, 1604.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [300.0, 260.0, 320.0, 213.0], "bbox_xyxy_clipped": [300.0, 260.0, 620.0, 473.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [70.0, 345.0, 160.0, 125.0], "bbox_xyxy_clipped": [70.0, 345.0, 230.0, 470.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1040.0, 930.0, 110.0, 110.0], "bbox_xyxy_clipped": [1040.0, 930.0, 1150.0, 1040.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [360.0, 1040.0, 140.0, 392.0], "bbox_xyxy_clipped": [360.0, 1040.0, 500.0, 1432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0037107708714713443}, "Ove": {"reason": null, "status": "ok", "value": 0.06645696471903333}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5d67ed46cf657b21ef7bdad9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d67ed46cf657b21ef7bdad9/pipeline/l0_result.json", "sha256": "653711d14206ea363e691240d7cdc54da8222f89dcefc89270db2f6e0e8d66eb", "size_bytes": 16621}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d67ed46cf657b21ef7bdad9/inputs/pfull/asset_manifest.json", "sha256": "32b0be3b213913ff7f4a31eb473f4390a410d468ec7c23088312a495e1d2b26e", "size_bytes": 9923}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d67ed46cf657b21ef7bdad9/renders/r0_candidate_03.png", "sha256": "48ee12b4c7f4e4608d01e33405d5dc66076a748a41ebdb971a668d773f00bbfe", "size_bytes": 391287}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d67ed46cf657b21ef7bdad9/inputs/r3/r3_asset_manifest.json", "sha256": "b2b2bea260cf847c2ddc63f4bada19aac219a5b669d746a4f3babff71121fe89", "size_bytes": 8692}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "88efaeb2dcf89fd9f02938007ff54441b96cd5ebb0a7f64d21badea29eb5b5ae", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [22.0, 30.0, 145.0, 145.0], "bbox_xyxy_clipped": [22.0, 30.0, 167.0, 175.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 74.0, 150.0, 80.0], "bbox_xyxy_clipped": [28.0, 74.0, 178.0, 154.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [28.0, 158.0, 152.0, 31.0], "bbox_xyxy_clipped": [28.0, 158.0, 180.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 196.0, 120.0, 25.0], "bbox_xyxy_clipped": [28.0, 196.0, 148.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [30.0, 421.0, 150.0, 56.0], "bbox_xyxy_clipped": [30.0, 421.0, 180.0, 477.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [222.0, 12.0, 126.0, 140.0], "bbox_xyxy_clipped": [222.0, 12.0, 348.0, 152.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [255.0, 190.0, 79.0, 110.0], "bbox_xyxy_clipped": [255.0, 190.0, 334.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [292.0, 426.0, 46.0, 46.0], "bbox_xyxy_clipped": [292.0, 426.0, 338.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0006997934183724771}, "Ove": {"reason": null, "status": "ok", "value": 0.07609273625441441}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5d68dd6ce79a2a634ea111b8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d68dd6ce79a2a634ea111b8/pipeline/l0_result.json", "sha256": "fd347ab64ce6829c4e6458cc2316577022733db727576d9cb6313c4bfc84d18b", "size_bytes": 8137}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d68dd6ce79a2a634ea111b8/inputs/pfull/asset_manifest.json", "sha256": "93c6b263ed618968a56b247fdfcbe4758b5344700f6a317c35a37e95dc640531", "size_bytes": 4401}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_02.png", "sha256": "88efaeb2dcf89fd9f02938007ff54441b96cd5ebb0a7f64d21badea29eb5b5ae", "size_bytes": 46064}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d68dd6ce79a2a634ea111b8/inputs/r3/r3_asset_manifest.json", "sha256": "1bb3ff3792c9b0ed0fdbc696e1090513d5fbaa6d4efe94bc6b55352b6e48e587", "size_bytes": 3955}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e4240ce13ebb0ec8152d1738fb552a0c1f56aab37307e32525e6b34873c20633", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [80.0, 52.0, 420.0, 281.0], "bbox_xyxy_clipped": [80.0, 52.0, 500.0, 333.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [770.0, 62.0, 390.0, 209.0], "bbox_xyxy_clipped": [770.0, 62.0, 1160.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [190.0, 500.0, 300.0, 184.0], "bbox_xyxy_clipped": [190.0, 500.0, 490.0, 684.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [795.0, 490.0, 290.0, 178.0], "bbox_xyxy_clipped": [795.0, 490.0, 1085.0, 668.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [500.0, 70.0, 250.0, 100.0], "bbox_xyxy_clipped": [500.0, 70.0, 750.0, 170.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [440.0, 115.0, 280.0, 134.0], "bbox_xyxy_clipped": [440.0, 115.0, 720.0, 249.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [320.0, 420.0, 640.0, 273.0], "bbox_xyxy_clipped": [320.0, 420.0, 960.0, 693.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [390.0, 185.0, 500.0, 746.0], "bbox_xyxy_clipped": [390.0, 185.0, 890.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [60.0, 290.0, 350.0, 264.0], "bbox_xyxy_clipped": [60.0, 290.0, 410.0, 554.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [880.0, 285.0, 240.0, 239.0], "bbox_xyxy_clipped": [880.0, 285.0, 1120.0, 524.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [980.0, 120.0, 180.0, 271.0], "bbox_xyxy_clipped": [980.0, 120.0, 1160.0, 391.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [510.0, 245.0, 220.0, 113.0], "bbox_xyxy_clipped": [510.0, 245.0, 730.0, 358.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [150.0, 120.0, 320.0, 217.0], "bbox_xyxy_clipped": [150.0, 120.0, 470.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005947816346477653}, "Ove": {"reason": null, "status": "ok", "value": 0.22281633605169157}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5d6903b8abc8ea6d1c0305fd", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6903b8abc8ea6d1c0305fd/pipeline/l0_result.json", "sha256": "44c2e6c61822fb87bb1b1124f5d4ceb046eeda60472d2e9832927ca5cbb6fae5", "size_bytes": 11313}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/pfull/asset_manifest.json", "sha256": "f35abcb91e6b44c44454a2257d7772c0ff9b6920598d9b52f680e1b5056769c5", "size_bytes": 6867}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "sha256": "e4240ce13ebb0ec8152d1738fb552a0c1f56aab37307e32525e6b34873c20633", "size_bytes": 592756}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/r3/r3_asset_manifest.json", "sha256": "2dee0c1dc1c6fe0579d082bcf42f9d0eabc81c937fa2ddac2ddd98f8d511cf0b", "size_bytes": 5926}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "27788ca072fd667ffad023d3220d8230fe282a9ff72727d52645f29476ab2512", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "asset_size_bytes": 1172, "kind": "asset", "pfull_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "r3_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "c794e01b54b8c47dbc7c692d80e2a97a5614fa79af525e415f5524e7f55c1a20", "canvas": {"height": 288, "width": 432}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [24.0, 18.0, 100.0, 97.0], "bbox_xyxy_clipped": [24.0, 18.0, 124.0, 115.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 32.0, 102.0, 14.0], "bbox_xyxy_clipped": [34.0, 32.0, 136.0, 46.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [39.0, 50.0, 92.0, 43.0], "bbox_xyxy_clipped": [39.0, 50.0, 131.0, 93.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [32.0, 101.0, 112.0, 69.0], "bbox_xyxy_clipped": [32.0, 101.0, 144.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [168.0, 10.0, 264.0, 176.0], "bbox_xyxy_clipped": [168.0, 10.0, 432.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [312.0, 226.0, 82.0, 202.0], "bbox_xyxy_clipped": [312.0, 226.0, 394.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [402.0, 30.0, 10.0, 100.0], "bbox_xyxy_clipped": [402.0, 30.0, 412.0, 130.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [14.0, 246.0, 10.0, 100.0], "bbox_xyxy_clipped": [14.0, 246.0, 24.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.025732064797485854}, "Ove": {"reason": null, "status": "ok", "value": 0.07430908436936176}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "1b0df4abe14aa3752214a05725561259765380be09b0b18a036abe86a466163b", "status": "computed"}, "sample_id": "5d6909e8abc8ea6d1c0cda03", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/pipeline/l0_result.json", "sha256": "9ce56a9cd3fc46b84be1b4010e6bef92f8c0d0b1dab9eae31b8946decdc9cd30", "size_bytes": 8749}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/asset_manifest.json", "sha256": "b46014a65f5fcc204701fb9bb7d89d810b79e10ad97bb29b63a86e61a4f0aab8", "size_bytes": 4924}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "sha256": "27788ca072fd667ffad023d3220d8230fe282a9ff72727d52645f29476ab2512", "size_bytes": 87875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/r3/r3_asset_manifest.json", "sha256": "95bf7b780ffe59dbd61beef7e8ba2c377c47240007d21b94aac2d82f909cff2e", "size_bytes": 4257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "size_bytes": 1172}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "66c4786a46e908e282d999187c228a9054939cb4ab046aae9ff14b3d03082ef5", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 165.0, 285.0, 53.0], "bbox_xyxy_clipped": [58.0, 165.0, 343.0, 218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 222.0, 240.0, 59.0], "bbox_xyxy_clipped": [92.0, 222.0, 332.0, 281.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [130.0, 287.0, 195.0, 75.0], "bbox_xyxy_clipped": [130.0, 287.0, 325.0, 362.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [62.0, 86.0, 185.0, 65.0], "bbox_xyxy_clipped": [62.0, 86.0, 247.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [70.0, 622.0, 295.0, 34.0], "bbox_xyxy_clipped": [70.0, 622.0, 365.0, 656.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [540.0, 86.0, 360.0, 241.0], "bbox_xyxy_clipped": [540.0, 86.0, 900.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [707.0, 248.0, 220.0, 226.0], "bbox_xyxy_clipped": [707.0, 248.0, 927.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [610.0, 334.0, 205.0, 210.0], "bbox_xyxy_clipped": [610.0, 334.0, 815.0, 544.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [494.0, 461.0, 340.0, 103.0], "bbox_xyxy_clipped": [494.0, 461.0, 834.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [829.0, 55.0, 121.0, 103.0], "bbox_xyxy_clipped": [829.0, 55.0, 950.0, 158.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [40.0, 382.0, 250.0, 47.0], "bbox_xyxy_clipped": [40.0, 382.0, 290.0, 429.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [275.0, 392.0, 210.0, 87.0], "bbox_xyxy_clipped": [275.0, 392.0, 485.0, 479.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [500.0, 22.0, 300.0, 12.0], "bbox_xyxy_clipped": [500.0, 22.0, 800.0, 34.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [716.0, 612.0, 165.0, 69.0], "bbox_xyxy_clipped": [716.0, 612.0, 881.0, 681.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [25.0, 505.0, 360.0, 8.0], "bbox_xyxy_clipped": [25.0, 505.0, 385.0, 513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [409.0, 472.0, 114.0, 92.0], "bbox_xyxy_clipped": [409.0, 472.0, 523.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [772.0, 152.0, 116.0, 94.0], "bbox_xyxy_clipped": [772.0, 152.0, 888.0, 246.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [875.0, 430.0, 110.0, 89.0], "bbox_xyxy_clipped": [875.0, 430.0, 985.0, 519.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [650.0, 290.0, 88.0, 88.0], "bbox_xyxy_clipped": [650.0, 290.0, 738.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0031924705652547724}, "Ove": {"reason": null, "status": "ok", "value": 0.059074192285895465}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/pipeline/l0_result.json", "sha256": "da1e82d666ecb77df5941628add491afe7fd9748cdb62e8613da282ffbcf6396", "size_bytes": 14095}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/pfull/asset_manifest.json", "sha256": "0bbd0015fecaddbbdf0c5d86aa70685f0c03aa16aca232439a3726dda9a01ee3", "size_bytes": 9856}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_01.png", "sha256": "66c4786a46e908e282d999187c228a9054939cb4ab046aae9ff14b3d03082ef5", "size_bytes": 111271}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/r3/r3_asset_manifest.json", "sha256": "5068de4e2be4ca72cc6781e5eb527d42bbeb75c1a626a1f94ce91ac824982123", "size_bytes": 8456}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f74074278c0350f5843aad8c5762e51ac41239f558fef8a2c8603fe9f5f87ced", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 26, "valid": 26}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [82.0, 74.0, 136.0, 136.0], "bbox_xyxy_clipped": [82.0, 74.0, 218.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [878.0, 86.0, 102.0, 202.0], "bbox_xyxy_clipped": [878.0, 86.0, 980.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [256.0, 162.0, 690.0, 183.0], "bbox_xyxy_clipped": [256.0, 162.0, 946.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [228.0, 360.0, 715.0, 29.0], "bbox_xyxy_clipped": [228.0, 360.0, 943.0, 389.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [240.0, 414.0, 654.0, 48.0], "bbox_xyxy_clipped": [240.0, 414.0, 894.0, 462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [235.0, 478.0, 640.0, 49.0], "bbox_xyxy_clipped": [235.0, 478.0, 875.0, 527.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [257.0, 546.0, 620.0, 78.0], "bbox_xyxy_clipped": [257.0, 546.0, 877.0, 624.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [246.0, 644.0, 650.0, 54.0], "bbox_xyxy_clipped": [246.0, 644.0, 896.0, 698.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [272.0, 716.0, 610.0, 68.0], "bbox_xyxy_clipped": [272.0, 716.0, 882.0, 784.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [266.0, 804.0, 560.0, 99.0], "bbox_xyxy_clipped": [266.0, 804.0, 826.0, 903.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [279.0, 924.0, 512.0, 137.0], "bbox_xyxy_clipped": [279.0, 924.0, 791.0, 1061.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [805.0, 629.0, 182.0, 138.0], "bbox_xyxy_clipped": [805.0, 629.0, 987.0, 767.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [814.0, 780.0, 176.0, 45.0], "bbox_xyxy_clipped": [814.0, 780.0, 990.0, 825.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [74.0, 78.0, 244.0, 134.0], "bbox_xyxy_clipped": [74.0, 78.0, 318.0, 212.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [812.0, 246.0, 208.0, 13.0], "bbox_xyxy_clipped": [812.0, 246.0, 1020.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [809.0, 332.0, 230.0, 20.0], "bbox_xyxy_clipped": [809.0, 332.0, 1039.0, 352.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [74.0, 226.0, 328.0, 41.0], "bbox_xyxy_clipped": [74.0, 226.0, 402.0, 267.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [72.0, 296.0, 196.0, 46.0], "bbox_xyxy_clipped": [72.0, 296.0, 268.0, 342.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [864.0, 395.0, 148.0, 102.0], "bbox_xyxy_clipped": [864.0, 395.0, 1012.0, 497.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [74.0, 382.0, 238.0, 30.0], "bbox_xyxy_clipped": [74.0, 382.0, 312.0, 412.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [74.0, 432.0, 260.0, 36.0], "bbox_xyxy_clipped": [74.0, 432.0, 334.0, 468.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [74.0, 478.0, 214.0, 63.0], "bbox_xyxy_clipped": [74.0, 478.0, 288.0, 541.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [842.0, 522.0, 164.0, 18.0], "bbox_xyxy_clipped": [842.0, 522.0, 1006.0, 540.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [852.0, 586.0, 150.0, 41.0], "bbox_xyxy_clipped": [852.0, 586.0, 1002.0, 627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [716.0, 150.0, 264.0, 528.0], "bbox_xyxy_clipped": [716.0, 150.0, 980.0, 678.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [744.0, 704.0, 178.0, 384.0], "bbox_xyxy_clipped": [744.0, 704.0, 922.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005059984555350466}, "Ove": {"reason": null, "status": "ok", "value": 0.08756892488734348}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d9cad82abc8ea6d1c23ebf1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cad82abc8ea6d1c23ebf1/pipeline/l0_result.json", "sha256": "c2508ffb67f65522c5f7490c2ed5f19838cf63dba1c2484828138a4991000c36", "size_bytes": 18268}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/pfull/asset_manifest.json", "sha256": "ca1a6220b8c03708554307d3b1135bfd3066e5c5b53b56da74ca2f8367aa1569", "size_bytes": 13333}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_03.png", "sha256": "f74074278c0350f5843aad8c5762e51ac41239f558fef8a2c8603fe9f5f87ced", "size_bytes": 83936}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/r3/r3_asset_manifest.json", "sha256": "8c99c605dc76c5eb33b1fc2bfc007e41c4f188aead9e5814b950dbdd269c0c75", "size_bytes": 11309}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "72f5f93cfc4b2d3ce5f4d89a587e73f1dbc2b331b77cc7d9ca9271664fad0307", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 23, "valid": 23}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [44.0, 34.0, 356.0, 238.0], "bbox_xyxy_clipped": [44.0, 34.0, 400.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 124.0, 206.0], "bbox_xyxy_clipped": [0.0, 0.0, 124.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [60.0, 14.0, 789.0, 20.0], "bbox_xyxy_clipped": [60.0, 14.0, 849.0, 34.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [590.0, 56.0, 292.0, 65.0], "bbox_xyxy_clipped": [590.0, 56.0, 882.0, 121.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [604.0, 138.0, 280.0, 70.0], "bbox_xyxy_clipped": [604.0, 138.0, 884.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [610.0, 222.0, 266.0, 81.0], "bbox_xyxy_clipped": [610.0, 222.0, 876.0, 303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [612.0, 320.0, 280.0, 65.0], "bbox_xyxy_clipped": [612.0, 320.0, 892.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [620.0, 412.0, 300.0, 20.0], "bbox_xyxy_clipped": [620.0, 412.0, 920.0, 432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [606.0, 444.0, 312.0, 18.0], "bbox_xyxy_clipped": [606.0, 444.0, 918.0, 462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [628.0, 470.0, 273.0, 40.0], "bbox_xyxy_clipped": [628.0, 470.0, 901.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [620.0, 522.0, 295.0, 24.0], "bbox_xyxy_clipped": [620.0, 522.0, 915.0, 546.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [648.0, 560.0, 250.0, 68.0], "bbox_xyxy_clipped": [648.0, 560.0, 898.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [628.0, 646.0, 270.0, 60.0], "bbox_xyxy_clipped": [628.0, 646.0, 898.0, 706.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [618.0, 712.0, 295.0, 24.0], "bbox_xyxy_clipped": [618.0, 712.0, 913.0, 736.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [622.0, 744.0, 289.0, 23.0], "bbox_xyxy_clipped": [622.0, 744.0, 911.0, 767.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [602.0, 506.0, 226.0, 122.0], "bbox_xyxy_clipped": [602.0, 506.0, 828.0, 628.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [603.0, 622.0, 284.0, 25.0], "bbox_xyxy_clipped": [603.0, 622.0, 887.0, 647.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [602.0, 653.0, 255.0, 23.0], "bbox_xyxy_clipped": [602.0, 653.0, 857.0, 676.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [606.0, 688.0, 150.0, 30.0], "bbox_xyxy_clipped": [606.0, 688.0, 756.0, 718.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [762.0, 686.0, 136.0, 32.0], "bbox_xyxy_clipped": [762.0, 686.0, 898.0, 718.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [728.0, 510.0, 190.0, 43.0], "bbox_xyxy_clipped": [728.0, 510.0, 918.0, 553.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [606.0, 742.0, 258.0, 27.0], "bbox_xyxy_clipped": [606.0, 742.0, 864.0, 769.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [616.0, 372.0, 214.0, 41.0], "bbox_xyxy_clipped": [616.0, 372.0, 830.0, 413.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003234322470810569}, "Ove": {"reason": null, "status": "ok", "value": 0.12946742743780887}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d9cadb1abc8ea6d1c246dc8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cadb1abc8ea6d1c246dc8/pipeline/l0_result.json", "sha256": "d207f4df130347566e7dabb47e2c3e5bd6ea5efbaa9ee0fe7a65f408d25ff0c3", "size_bytes": 17200}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/pfull/asset_manifest.json", "sha256": "54f2833c706a2f7bfaaff0f5ad2b0b55fad9fa14cf1b80e4ffae0c82a8f3ef50", "size_bytes": 11889}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_01.png", "sha256": "72f5f93cfc4b2d3ce5f4d89a587e73f1dbc2b331b77cc7d9ca9271664fad0307", "size_bytes": 139150}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/r3/r3_asset_manifest.json", "sha256": "3665a0e4f5fbcb6b6f2fa323809a433f50b43271958be64c3113535a893b9784", "size_bytes": 10223}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "44c6b9f11cf1020cc7f3f1257a816ccd73280b2617eeb96a48f0733ce27b6289", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 360.0, 620.0, 928.0], "bbox_xyxy_clipped": [0.0, 360.0, 620.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1240.0, 90.0, 420.0, 89.0], "bbox_xyxy_clipped": [1240.0, 90.0, 1660.0, 179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1240.0, 170.0, 520.0, 54.0], "bbox_xyxy_clipped": [1240.0, 170.0, 1760.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1240.0, 285.0, 330.0, 137.0], "bbox_xyxy_clipped": [1240.0, 285.0, 1570.0, 422.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1240.0, 450.0, 430.0, 67.0], "bbox_xyxy_clipped": [1240.0, 450.0, 1670.0, 517.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1240.0, 565.0, 520.0, 56.0], "bbox_xyxy_clipped": [1240.0, 565.0, 1760.0, 621.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1240.0, 930.0, 260.0, 47.0], "bbox_xyxy_clipped": [1240.0, 930.0, 1500.0, 977.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [160.0, 70.0, 320.0, 320.0], "bbox_xyxy_clipped": [160.0, 70.0, 480.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [720.0, 720.0, 390.0, 281.0], "bbox_xyxy_clipped": [720.0, 720.0, 1110.0, 1001.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [980.0, 220.0, 240.0, 331.0], "bbox_xyxy_clipped": [980.0, 220.0, 1220.0, 551.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006665707080139075}, "Ove": {"reason": null, "status": "ok", "value": 0.007908820099527761}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5da04604abc8ea6d1cbe2935", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da04604abc8ea6d1cbe2935/pipeline/l0_result.json", "sha256": "5420a5e3af86558146242c970b953b86e013bdd3dbb76c99cb7074b600721139", "size_bytes": 9757}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da04604abc8ea6d1cbe2935/inputs/pfull/asset_manifest.json", "sha256": "a2bee74a407ea0a8d1d65c8bdafabfa499d87b81f46ba95a3519f8b885e03e64", "size_bytes": 5451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_02.png", "sha256": "44c6b9f11cf1020cc7f3f1257a816ccd73280b2617eeb96a48f0733ce27b6289", "size_bytes": 676595}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da04604abc8ea6d1cbe2935/inputs/r3/r3_asset_manifest.json", "sha256": "736edf01a73c811376d392441bbaeeafbd49d87bc7e82a6815958a84784b70fc", "size_bytes": 4930}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93d19596fe7eec6183cc13b23c2f77cf5ed70d432cf6ed7cde3f6f3e78288888", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 26, "valid": 25}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [620.0, 110.0, 520.0, 778.0], "bbox_xyxy_clipped": [620.0, 110.0, 1140.0, 888.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [40.0, 0.0, 560.0, 44.0], "bbox_xyxy_clipped": [40.0, 0.0, 600.0, 44.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [35.0, 38.0, 560.0, 38.0], "bbox_xyxy_clipped": [35.0, 38.0, 595.0, 76.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [35.0, 86.0, 560.0, 38.0], "bbox_xyxy_clipped": [35.0, 86.0, 595.0, 124.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [82.0, 170.0, 360.0, 78.0], "bbox_xyxy_clipped": [82.0, 170.0, 442.0, 248.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [82.0, 520.0, 240.0, 345.0], "bbox_xyxy_clipped": [82.0, 520.0, 322.0, 865.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [308.0, 520.0, 110.0, 356.0], "bbox_xyxy_clipped": [308.0, 520.0, 418.0, 876.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [425.0, 520.0, 100.0, 344.0], "bbox_xyxy_clipped": [425.0, 520.0, 525.0, 864.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [82.0, 44.0, 170.0, 22.0], "bbox_xyxy_clipped": [82.0, 44.0, 252.0, 66.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [520.0, 40.0, 400.0, 472.0], "bbox_xyxy_clipped": [520.0, 40.0, 920.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [910.0, 40.0, 220.0, 80.0], "bbox_xyxy_clipped": [910.0, 40.0, 1130.0, 120.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [55.0, 105.0, 130.0, 38.0], "bbox_xyxy_clipped": [55.0, 105.0, 185.0, 143.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [60.0, 112.0, 94.0, 45.0], "bbox_xyxy_clipped": [60.0, 112.0, 154.0, 157.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [82.0, 92.0, 180.0, 70.0], "bbox_xyxy_clipped": [82.0, 92.0, 262.0, 162.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [30.0, 160.0, 18.0, 309.0], "bbox_xyxy_clipped": [30.0, 160.0, 48.0, 469.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [205.0, 108.0, 88.0, 68.0], "bbox_xyxy_clipped": [205.0, 108.0, 293.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [290.0, 105.0, 160.0, 106.0], "bbox_xyxy_clipped": [290.0, 105.0, 450.0, 211.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [60.0, 980.0, 1065.0, 18.0], "bbox_xyxy_clipped": [60.0, 980.0, 1125.0, 998.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [82.0, 242.0, 250.0, 40.0], "bbox_xyxy_clipped": [82.0, 242.0, 332.0, 282.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [356.0, 220.0, 36.0, 44.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0020", "bbox_lwh_raw": [394.0, 230.0, 68.0, 36.0], "bbox_xyxy_clipped": [394.0, 230.0, 462.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [70.0, 1320.0, 490.0, 12.0], "bbox_xyxy_clipped": [70.0, 1320.0, 560.0, 1332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [90.0, 1365.0, 490.0, 12.0], "bbox_xyxy_clipped": [90.0, 1365.0, 580.0, 1377.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [70.0, 1410.0, 490.0, 12.0], "bbox_xyxy_clipped": [70.0, 1410.0, 560.0, 1422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [90.0, 1455.0, 490.0, 12.0], "bbox_xyxy_clipped": [90.0, 1455.0, 580.0, 1467.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [70.0, 1500.0, 490.0, 12.0], "bbox_xyxy_clipped": [70.0, 1500.0, 560.0, 1512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0011474128011701758}, "Ove": {"reason": null, "status": "ok", "value": 0.10115924143956433}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5da071b5abc8ea6d1c1f1d6f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da071b5abc8ea6d1c1f1d6f/pipeline/l0_result.json", "sha256": "5c57575c4a7ba42a02116e898bce51d04d1e669b7353987653d16585399cd6db", "size_bytes": 18950}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/pfull/asset_manifest.json", "sha256": "7aa3001f51f7aed58464811d349df35c5722673a426b40a5d6eebcaf7e21c68a", "size_bytes": 13521}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_01.png", "sha256": "93d19596fe7eec6183cc13b23c2f77cf5ed70d432cf6ed7cde3f6f3e78288888", "size_bytes": 733908}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/r3/r3_asset_manifest.json", "sha256": "c7100f50098be3c06e18807d80b180b6bcfdbe27e4eccc50d2a88e7f9ce3efcc", "size_bytes": 11822}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1098c5a0ef2bacef6461af0b802b8370f87d464d83ebf67a61b6c2b2121199f1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [53.0, 646.0, 430.0, 286.0], "bbox_xyxy_clipped": [53.0, 646.0, 483.0, 932.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [856.0, 84.0, 164.0, 331.0], "bbox_xyxy_clipped": [856.0, 84.0, 1020.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [58.0, 84.0, 548.0, 271.0], "bbox_xyxy_clipped": [58.0, 84.0, 606.0, 355.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [843.0, 450.0, 196.0, 352.0], "bbox_xyxy_clipped": [843.0, 450.0, 1039.0, 802.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [805.0, 954.0, 231.0, 49.0], "bbox_xyxy_clipped": [805.0, 954.0, 1036.0, 1003.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [676.0, 92.0, 318.0, 110.0], "bbox_xyxy_clipped": [676.0, 92.0, 994.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [678.0, 244.0, 316.0, 68.0], "bbox_xyxy_clipped": [678.0, 244.0, 994.0, 312.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [708.0, 866.0, 280.0, 112.0], "bbox_xyxy_clipped": [708.0, 866.0, 988.0, 978.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [679.0, 332.0, 333.0, 49.0], "bbox_xyxy_clipped": [679.0, 332.0, 1012.0, 381.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [680.0, 412.0, 283.0, 96.0], "bbox_xyxy_clipped": [680.0, 412.0, 963.0, 508.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [680.0, 535.0, 232.0, 100.0], "bbox_xyxy_clipped": [680.0, 535.0, 912.0, 635.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [680.0, 663.0, 250.0, 58.0], "bbox_xyxy_clipped": [680.0, 663.0, 930.0, 721.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [86.0, 82.0, 130.0, 130.0], "bbox_xyxy_clipped": [86.0, 82.0, 216.0, 212.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [235.0, 88.0, 144.0, 208.0], "bbox_xyxy_clipped": [235.0, 88.0, 379.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [402.0, 92.0, 144.0, 208.0], "bbox_xyxy_clipped": [402.0, 92.0, 546.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [568.0, 88.0, 144.0, 208.0], "bbox_xyxy_clipped": [568.0, 88.0, 712.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0030769642343417875}, "Ove": {"reason": null, "status": "ok", "value": 0.09198105013266737}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5dbbff2eabc8ea6d1c15c382", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dbbff2eabc8ea6d1c15c382/pipeline/l0_result.json", "sha256": "8a9e5e29c9d7e01fcc9c13badd2705bf5abca82c1b4614dc940cde70de37365e", "size_bytes": 12375}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/pfull/asset_manifest.json", "sha256": "5f5b770406d7e88a62beca6f1589a9f216e59789e139b8ef9dbaf1f95889cd32", "size_bytes": 8454}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "sha256": "1098c5a0ef2bacef6461af0b802b8370f87d464d83ebf67a61b6c2b2121199f1", "size_bytes": 335524}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/r3/r3_asset_manifest.json", "sha256": "2f902deeb59222bec7665188521d2de6d2367b5b8d799ead1d03360971848dab", "size_bytes": 7482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0efe7fb4f46cad630623d90bc66940427853fc2a03d23eeef64cc97cf1f55ac9", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 20, "valid": 18}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [74.0, 120.0, 360.0, 568.0], "bbox_xyxy_clipped": [74.0, 120.0, 434.0, 688.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [695.0, 96.0, 360.0, 124.0], "bbox_xyxy_clipped": [695.0, 96.0, 1055.0, 220.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [834.0, 98.0, 286.0, 36.0], "bbox_xyxy_clipped": [834.0, 98.0, 1120.0, 134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [905.0, 156.0, 231.0, 299.0], "bbox_xyxy_clipped": [905.0, 156.0, 1136.0, 455.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [690.0, 188.0, 248.0, 138.0], "bbox_xyxy_clipped": [690.0, 188.0, 938.0, 326.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [742.0, 330.0, 82.0, 82.0], "bbox_xyxy_clipped": [742.0, 330.0, 824.0, 412.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [676.0, 320.0, 64.0, 82.0], "bbox_xyxy_clipped": [676.0, 320.0, 740.0, 402.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [752.0, 318.0, 290.0, 67.0], "bbox_xyxy_clipped": [752.0, 318.0, 1042.0, 385.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1002.0, 383.0, 118.0, 86.0], "bbox_xyxy_clipped": [1002.0, 383.0, 1120.0, 469.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [905.0, 498.0, 137.0, 314.0], "bbox_xyxy_clipped": [905.0, 498.0, 1042.0, 812.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [684.0, 414.0, 164.0, 86.0], "bbox_xyxy_clipped": [684.0, 414.0, 848.0, 500.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [842.0, 416.0, 175.0, 80.0], "bbox_xyxy_clipped": [842.0, 416.0, 1017.0, 496.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [726.0, 510.0, 360.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [818.0, 545.0, 340.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [671.0, 176.0, 74.0, 300.0], "bbox_xyxy_clipped": [671.0, 176.0, 745.0, 476.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [686.0, 544.0, 260.0, 59.0], "bbox_xyxy_clipped": [686.0, 544.0, 946.0, 603.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [686.0, 602.0, 410.0, 59.0], "bbox_xyxy_clipped": [686.0, 602.0, 1096.0, 661.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [690.0, 1331.0, 355.0, 176.0], "bbox_xyxy_clipped": [690.0, 1331.0, 1045.0, 1507.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [905.0, 1288.0, 233.0, 31.0], "bbox_xyxy_clipped": [905.0, 1288.0, 1138.0, 1319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [699.0, 1184.0, 478.0, 7.0], "bbox_xyxy_clipped": [699.0, 1184.0, 1177.0, 1191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002877846906914833}, "Ove": {"reason": null, "status": "ok", "value": 0.09524791409438764}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5dc27c32abc8ea6d1cbf115a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dc27c32abc8ea6d1cbf115a/pipeline/l0_result.json", "sha256": "480dc082a835b75333b57448fa6b7409074829f636ee796be31743c8a040cbdc", "size_bytes": 17445}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/pfull/asset_manifest.json", "sha256": "898240d544f156493cff6fd5d3c533befca9cc7c2343c3229c87e5f44f35840a", "size_bytes": 10489}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "sha256": "0efe7fb4f46cad630623d90bc66940427853fc2a03d23eeef64cc97cf1f55ac9", "size_bytes": 75761}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/r3/r3_asset_manifest.json", "sha256": "577f5bc1470e64c5e735ee5b078b97bb93be400f2abfab76085d8ddbc6427417", "size_bytes": 9361}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fbeed30988952dc572eb71b0082b7be98eb246ef2225dedd5f7d41e6d5dfc626", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [40.0, 165.0, 330.0, 494.0], "bbox_xyxy_clipped": [40.0, 165.0, 370.0, 659.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [490.0, 60.0, 360.0, 44.0], "bbox_xyxy_clipped": [490.0, 60.0, 850.0, 104.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [500.0, 126.0, 330.0, 70.0], "bbox_xyxy_clipped": [500.0, 126.0, 830.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [505.0, 208.0, 260.0, 62.0], "bbox_xyxy_clipped": [505.0, 208.0, 765.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [795.0, 206.0, 82.0, 82.0], "bbox_xyxy_clipped": [795.0, 206.0, 877.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [520.0, 352.0, 260.0, 45.0], "bbox_xyxy_clipped": [520.0, 352.0, 780.0, 397.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [800.0, 356.0, 84.0, 76.0], "bbox_xyxy_clipped": [800.0, 356.0, 884.0, 432.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [505.0, 625.0, 320.0, 69.0], "bbox_xyxy_clipped": [505.0, 625.0, 825.0, 694.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [710.0, 520.0, 180.0, 151.0], "bbox_xyxy_clipped": [710.0, 520.0, 890.0, 671.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005283057061742003}, "Ove": {"reason": null, "status": "ok", "value": 0.013367700199631061}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5df211c29fea0cc374abbbba", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df211c29fea0cc374abbbba/pipeline/l0_result.json", "sha256": "0505a8ebf97bd401471131c8daa5065a519e2c80032924f6c0ec1713ef1977ac", "size_bytes": 8849}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df211c29fea0cc374abbbba/inputs/pfull/asset_manifest.json", "sha256": "4d8a18ef038aea1a81de558ba36515f2eee007408b7caf056f6355bdb51195a8", "size_bytes": 4948}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_01.png", "sha256": "fbeed30988952dc572eb71b0082b7be98eb246ef2225dedd5f7d41e6d5dfc626", "size_bytes": 281286}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df211c29fea0cc374abbbba/inputs/r3/r3_asset_manifest.json", "sha256": "0552a66729ed4c9e613b64d01daaf82d627cbaab83325ed0c5bf32508fe35733", "size_bytes": 4481}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "93e5de481143e8707aef874496d1e0195a637a5ef3cc6f39b89054e00a29dffb", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [214.0, 62.0, 772.0, 516.0], "bbox_xyxy_clipped": [214.0, 62.0, 986.0, 578.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [417.0, 287.0, 367.0, 72.0], "bbox_xyxy_clipped": [417.0, 287.0, 784.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [499.0, 263.0, 202.0, 202.0], "bbox_xyxy_clipped": [499.0, 263.0, 701.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [409.0, 226.0, 382.0, 62.0], "bbox_xyxy_clipped": [409.0, 226.0, 791.0, 288.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [492.0, 323.0, 61.0, 45.0], "bbox_xyxy_clipped": [492.0, 323.0, 553.0, 368.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [557.0, 321.0, 37.0, 45.0], "bbox_xyxy_clipped": [557.0, 321.0, 594.0, 366.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [603.0, 325.0, 111.0, 54.0], "bbox_xyxy_clipped": [603.0, 325.0, 714.0, 379.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [333.0, 184.0, 535.0, 38.0], "bbox_xyxy_clipped": [333.0, 184.0, 868.0, 222.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [461.0, 356.0, 279.0, 37.0], "bbox_xyxy_clipped": [461.0, 356.0, 740.0, 393.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005328018942927675}, "Ove": {"reason": null, "status": "ok", "value": 0.18490498681879033}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5df216b89fea0cc374b8d341", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df216b89fea0cc374b8d341/pipeline/l0_result.json", "sha256": "71225db1b2e0b1c4b9f8732a02e47ab472f6e04131b3028109f208e17a28db57", "size_bytes": 9191}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df216b89fea0cc374b8d341/inputs/pfull/asset_manifest.json", "sha256": "ff62437517288177ddf29f8e5c26dade5f1df2261f9a5e3da27ab72cb91f2d18", "size_bytes": 4925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_02.png", "sha256": "93e5de481143e8707aef874496d1e0195a637a5ef3cc6f39b89054e00a29dffb", "size_bytes": 583434}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df216b89fea0cc374b8d341/inputs/r3/r3_asset_manifest.json", "sha256": "32a3178ff62777e18cbbe7b7da3dd8603b41e9c6dea796ea5548ac26ee598510", "size_bytes": 4507}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "92efaffae734596d9b344e32c03f1717713dc98b4124a43f58c57548eed834e6", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9cb1a443207bce73c0f03469462c58ea7cbeec7f0dd14016fdf88f64b54d9162", "canvas": {"height": 250, "width": 300}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [42.0, 94.0, 144.0, 80.0], "bbox_xyxy_clipped": [42.0, 94.0, 186.0, 174.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [178.0, 30.0, 102.0, 30.0], "bbox_xyxy_clipped": [178.0, 30.0, 280.0, 60.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [190.0, 66.0, 73.0, 59.0], "bbox_xyxy_clipped": [190.0, 66.0, 263.0, 125.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [180.0, 112.0, 96.0, 16.0], "bbox_xyxy_clipped": [180.0, 112.0, 276.0, 128.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [180.0, 132.0, 120.0, 10.0], "bbox_xyxy_clipped": [180.0, 132.0, 300.0, 142.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [180.0, 150.0, 94.0, 16.0], "bbox_xyxy_clipped": [180.0, 150.0, 274.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024168043581116955}, "Ove": {"reason": null, "status": "ok", "value": 0.035580566299089914}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "381287d0ea82fb8f07717a21d2294273bfd9028437c93b531bab8c80933fe19f", "status": "computed"}, "sample_id": "5df3af489fea0cc3742457a9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df3af489fea0cc3742457a9/pipeline/l0_result.json", "sha256": "fabc6480cf566ff5e314393fd951382deadf41dbe58ee52792445ea0f32202f6", "size_bytes": 6857}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df3af489fea0cc3742457a9/inputs/pfull/asset_manifest.json", "sha256": "c4bde7fb8b00ede36af8df220f0315dcac33ef37ff35659d0ab0abf3af6defc4", "size_bytes": 3391}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_03.png", "sha256": "92efaffae734596d9b344e32c03f1717713dc98b4124a43f58c57548eed834e6", "size_bytes": 32435}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df3af489fea0cc3742457a9/inputs/r3/r3_asset_manifest.json", "sha256": "44c15fba57c1e957b9f9e882d066dda80638b1d61022db25a2f18c57e7a663f3", "size_bytes": 3075}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "555a63d47034e4efb95a98f4fc561f86394db709948c28a484a1a7df6bb2acb6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1280.0, 720.0], "bbox_xyxy_clipped": [0.0, 0.0, 1280.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [72.0, 78.0, 400.0, 114.0], "bbox_xyxy_clipped": [72.0, 78.0, 472.0, 192.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [76.0, 204.0, 278.0, 48.0], "bbox_xyxy_clipped": [76.0, 204.0, 354.0, 252.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [79.0, 255.0, 115.0, 48.0], "bbox_xyxy_clipped": [79.0, 255.0, 194.0, 303.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [106.0, 336.0, 90.0, 96.0], "bbox_xyxy_clipped": [106.0, 336.0, 196.0, 432.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [210.0, 336.0, 82.0, 102.0], "bbox_xyxy_clipped": [210.0, 336.0, 292.0, 438.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [113.0, 448.0, 84.0, 103.0], "bbox_xyxy_clipped": [113.0, 448.0, 197.0, 551.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [870.0, 132.0, 260.0, 395.0], "bbox_xyxy_clipped": [870.0, 132.0, 1130.0, 527.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1027.0, 95.0, 163.0, 250.0], "bbox_xyxy_clipped": [1027.0, 95.0, 1190.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [938.0, 238.0, 225.0, 337.0], "bbox_xyxy_clipped": [938.0, 238.0, 1163.0, 575.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006263155407375759}, "Ove": {"reason": null, "status": "ok", "value": 0.1109887408428925}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5df7606b9fea0cc374d371db", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df7606b9fea0cc374d371db/pipeline/l0_result.json", "sha256": "791ff76d225b3c8ddcb3ad7b4eb631f8f57028b4097b18e08ed4cf3ff473da93", "size_bytes": 10262}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df7606b9fea0cc374d371db/inputs/pfull/asset_manifest.json", "sha256": "93eb5869376d1c627c4074f3ca5cb74476185ec1137eb5abe21c29e5e4a71de4", "size_bytes": 5423}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_02.png", "sha256": "555a63d47034e4efb95a98f4fc561f86394db709948c28a484a1a7df6bb2acb6", "size_bytes": 182487}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5df7606b9fea0cc374d371db/inputs/r3/r3_asset_manifest.json", "sha256": "a15383a4622bf95fcca64497edcd64882f86e62cd599a2ebacd5c2f4f211bed3", "size_bytes": 4913}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b69e40889022910a20748f12d7d27e9955717a34352b4e9bc9d25a9e6acaaec0", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1920.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [52.0, 54.0, 355.0, 667.0], "bbox_xyxy_clipped": [52.0, 54.0, 407.0, 721.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [632.0, 1265.0, 360.0, 169.0], "bbox_xyxy_clipped": [632.0, 1265.0, 992.0, 1434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [608.0, 1108.0, 318.0, 361.0], "bbox_xyxy_clipped": [608.0, 1108.0, 926.0, 1469.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [637.0, 1082.0, 285.0, 81.0], "bbox_xyxy_clipped": [637.0, 1082.0, 922.0, 1163.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [638.0, 1174.0, 307.0, 44.0], "bbox_xyxy_clipped": [638.0, 1174.0, 945.0, 1218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [611.0, 1041.0, 349.0, 262.0], "bbox_xyxy_clipped": [611.0, 1041.0, 960.0, 1303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [602.0, 1020.0, 370.0, 96.0], "bbox_xyxy_clipped": [602.0, 1020.0, 972.0, 1116.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [638.0, 1404.0, 277.0, 44.0], "bbox_xyxy_clipped": [638.0, 1404.0, 915.0, 1448.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [639.0, 1458.0, 277.0, 44.0], "bbox_xyxy_clipped": [639.0, 1458.0, 916.0, 1502.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [638.0, 1515.0, 330.0, 36.0], "bbox_xyxy_clipped": [638.0, 1515.0, 968.0, 1551.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [638.0, 1568.0, 222.0, 52.0], "bbox_xyxy_clipped": [638.0, 1568.0, 860.0, 1620.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [100.0, 820.0, 120.0, 120.0], "bbox_xyxy_clipped": [100.0, 820.0, 220.0, 940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [260.0, 820.0, 120.0, 120.0], "bbox_xyxy_clipped": [260.0, 820.0, 380.0, 940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [420.0, 905.0, 552.0, 10.0], "bbox_xyxy_clipped": [420.0, 905.0, 972.0, 915.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062591774081006465}, "Ove": {"reason": null, "status": "ok", "value": 0.17316042935729245}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e0213489fea0cc374175712", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0213489fea0cc374175712/pipeline/l0_result.json", "sha256": "cee9a5975eb9ab2a6e82bace62c8ef2d7f7c1bb79357d3ca3ce0901d9e1b4b51", "size_bytes": 12556}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0213489fea0cc374175712/inputs/pfull/asset_manifest.json", "sha256": "6be0c0944192de27d3c22dea2e040fec6199e156231ac213ab82cb5e7de4f79f", "size_bytes": 7976}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_01.png", "sha256": "b69e40889022910a20748f12d7d27e9955717a34352b4e9bc9d25a9e6acaaec0", "size_bytes": 228700}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0213489fea0cc374175712/inputs/r3/r3_asset_manifest.json", "sha256": "a4591bba3ec8cf6f9383478424dbd9c3e7d76c1f3e78126340c10b53f29f11c9", "size_bytes": 7055}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d37d108886591317aad8a27d776b134c6e1936a5d11868d732f0c43c03a7b2ae", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 27, "valid": 25}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [33.0, 24.0, 106.0, 26.0], "bbox_xyxy_clipped": [33.0, 24.0, 139.0, 50.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [144.0, 24.0, 143.0, 43.0], "bbox_xyxy_clipped": [144.0, 24.0, 287.0, 67.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [274.0, 22.0, 77.0, 16.0], "bbox_xyxy_clipped": [274.0, 22.0, 351.0, 38.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [155.0, 55.0, 112.0, 16.0], "bbox_xyxy_clipped": [155.0, 55.0, 267.0, 71.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [48.0, 108.0, 264.0, 176.0], "bbox_xyxy_clipped": [48.0, 108.0, 312.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [33.0, 312.0, 92.0, 19.0], "bbox_xyxy_clipped": [33.0, 312.0, 125.0, 331.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [35.0, 337.0, 74.0, 107.0], "bbox_xyxy_clipped": [35.0, 337.0, 109.0, 444.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [128.0, 317.0, 205.0, 287.0], "bbox_xyxy_clipped": [128.0, 317.0, 333.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [34.0, 404.0, 103.0, 24.0], "bbox_xyxy_clipped": [34.0, 404.0, 137.0, 428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [36.0, 431.0, 127.0, 146.0], "bbox_xyxy_clipped": [36.0, 431.0, 163.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [35.0, 468.0, 126.0, 48.0], "bbox_xyxy_clipped": [35.0, 468.0, 161.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [170.0, 474.0, 155.0, 57.0], "bbox_xyxy_clipped": [170.0, 474.0, 325.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [32.0, 86.0, 41.0, 41.0], "bbox_xyxy_clipped": [32.0, 86.0, 73.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [287.0, 86.0, 41.0, 41.0], "bbox_xyxy_clipped": [287.0, 86.0, 328.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [32.0, 420.0, 41.0, 41.0], "bbox_xyxy_clipped": [32.0, 420.0, 73.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [287.0, 420.0, 41.0, 41.0], "bbox_xyxy_clipped": [287.0, 420.0, 328.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [34.0, 430.0, 40.0, 40.0], "bbox_xyxy_clipped": [34.0, 430.0, 74.0, 470.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [286.0, 430.0, 40.0, 40.0], "bbox_xyxy_clipped": [286.0, 430.0, 326.0, 470.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [160.0, 430.0, 40.0, 40.0], "bbox_xyxy_clipped": [160.0, 430.0, 200.0, 470.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [160.0, 74.0, 40.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0026", "bbox_lwh_raw": [160.0, 300.0, 40.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [252.0, 448.0, 93.0, 73.0], "bbox_xyxy_clipped": [252.0, 448.0, 345.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [40.0, 452.0, 280.0, 9.0], "bbox_xyxy_clipped": [40.0, 452.0, 320.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [35.0, 450.0, 93.0, 73.0], "bbox_xyxy_clipped": [35.0, 450.0, 128.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [51.0, 444.0, 278.0, 13.0], "bbox_xyxy_clipped": [51.0, 444.0, 329.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [268.0, 78.0, 80.0, 69.0], "bbox_xyxy_clipped": [268.0, 78.0, 348.0, 147.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [35.0, 78.0, 84.0, 56.0], "bbox_xyxy_clipped": [35.0, 78.0, 119.0, 134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0069096940529583765}, "Ove": {"reason": null, "status": "ok", "value": 0.2994934994198364}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5e0219159fea0cc37425a627", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0219159fea0cc37425a627/pipeline/l0_result.json", "sha256": "54991e74664dd6e30770f6f2856f2fed341665a1e31b131abbbc680f479a75f2", "size_bytes": 20507}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0219159fea0cc37425a627/inputs/pfull/asset_manifest.json", "sha256": "861b66bd1e45379f33fb35601745df6370ca0002d8f9a155705001d904ce8abf", "size_bytes": 14038}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "sha256": "d37d108886591317aad8a27d776b134c6e1936a5d11868d732f0c43c03a7b2ae", "size_bytes": 153117}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0219159fea0cc37425a627/inputs/r3/r3_asset_manifest.json", "sha256": "1683589eb1c591a23221272bafb996d1cb5ded643c622bb71803146275d8f604", "size_bytes": 12185}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e9def448ce3ad2a84ac2f56c0d04719cfac5bfde02c449555be1f311e216e888", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [46.0, 128.0, 260.0, 350.0], "bbox_xyxy_clipped": [46.0, 128.0, 306.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [78.0, 160.0, 220.0, 178.0], "bbox_xyxy_clipped": [78.0, 160.0, 298.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [32.0, 52.0, 470.0, 333.0], "bbox_xyxy_clipped": [32.0, 52.0, 502.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [246.0, 34.0, 160.0, 129.0], "bbox_xyxy_clipped": [246.0, 34.0, 406.0, 163.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [544.0, 122.0, 430.0, 124.0], "bbox_xyxy_clipped": [544.0, 122.0, 974.0, 246.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [670.0, 248.0, 290.0, 141.0], "bbox_xyxy_clipped": [670.0, 248.0, 960.0, 389.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [875.0, 78.0, 120.0, 112.0], "bbox_xyxy_clipped": [875.0, 78.0, 995.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [850.0, 214.0, 92.0, 97.0], "bbox_xyxy_clipped": [850.0, 214.0, 942.0, 311.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [612.0, 434.0, 155.0, 104.0], "bbox_xyxy_clipped": [612.0, 434.0, 767.0, 538.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [610.0, 566.0, 320.0, 71.0], "bbox_xyxy_clipped": [610.0, 566.0, 930.0, 637.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [610.0, 1212.0, 356.0, 180.0], "bbox_xyxy_clipped": [610.0, 1212.0, 966.0, 1392.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [612.0, 1536.0, 360.0, 84.0], "bbox_xyxy_clipped": [612.0, 1536.0, 972.0, 1620.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [54.0, 1800.0, 936.0, 24.0], "bbox_xyxy_clipped": [54.0, 1800.0, 990.0, 1824.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [64.0, 1840.0, 920.0, 24.0], "bbox_xyxy_clipped": [64.0, 1840.0, 984.0, 1864.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [520.0, 32.0, 490.0, 350.0], "bbox_xyxy_clipped": [520.0, 32.0, 1010.0, 382.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002564333193869273}, "Ove": {"reason": null, "status": "ok", "value": 0.14281764353727588}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e04ba7f9fea0cc3749733ea", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e04ba7f9fea0cc3749733ea/pipeline/l0_result.json", "sha256": "c1ab8e035e2cec55f64a8bdd83241f5cbeff9eccda5d486a46f41da4056b661b", "size_bytes": 12683}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e04ba7f9fea0cc3749733ea/inputs/pfull/asset_manifest.json", "sha256": "3adc9a0ee473503f68e9673b85f08a5cb2ef7762f6c8f521c74eef34726e89ab", "size_bytes": 7878}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_01.png", "sha256": "e9def448ce3ad2a84ac2f56c0d04719cfac5bfde02c449555be1f311e216e888", "size_bytes": 575620}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e04ba7f9fea0cc3749733ea/inputs/r3/r3_asset_manifest.json", "sha256": "4d8acc75a609afa680a29ace378f7adb89895870a3c7a5db73ddd377daed9102", "size_bytes": 6918}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "70248c4fbe671d634f89fbba05150b116abc47de7e68272485188b627dd83fcf", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [130.0, 120.0, 520.0, 293.0], "bbox_xyxy_clipped": [130.0, 120.0, 650.0, 413.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [210.0, 455.0, 420.0, 280.0], "bbox_xyxy_clipped": [210.0, 455.0, 630.0, 735.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1450.0, 150.0, 380.0, 411.0], "bbox_xyxy_clipped": [1450.0, 150.0, 1830.0, 561.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1540.0, 40.0, 320.0, 444.0], "bbox_xyxy_clipped": [1540.0, 40.0, 1860.0, 484.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1510.0, 560.0, 260.0, 515.0], "bbox_xyxy_clipped": [1510.0, 560.0, 1770.0, 1075.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 840.0, 330.0, 100.0], "bbox_xyxy_clipped": [120.0, 840.0, 450.0, 940.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 948.0, 350.0, 48.0], "bbox_xyxy_clipped": [120.0, 948.0, 470.0, 996.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 260.0, 520.0, 209.0], "bbox_xyxy_clipped": [120.0, 260.0, 640.0, 469.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [640.0, 255.0, 170.0, 111.0], "bbox_xyxy_clipped": [640.0, 255.0, 810.0, 366.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 170.0, 390.0, 91.0], "bbox_xyxy_clipped": [120.0, 170.0, 510.0, 261.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 575.0, 320.0, 76.0], "bbox_xyxy_clipped": [120.0, 575.0, 440.0, 651.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [90.0, 1040.0, 1740.0, 39.0], "bbox_xyxy_clipped": [90.0, 1040.0, 1830.0, 1079.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004699190034718131}, "Ove": {"reason": null, "status": "ok", "value": 0.11311953882997187}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5e0621989fea0cc3748583f6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0621989fea0cc3748583f6/pipeline/l0_result.json", "sha256": "8694ea5c909ec327da3a56a8bf87cb0cb2bf3378463ab05ea742d2737dadbbe1", "size_bytes": 11095}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0621989fea0cc3748583f6/inputs/pfull/asset_manifest.json", "sha256": "1d4ba4d1c8a8351a2663063a60f8ba18531000097a91644907bd805cd6e6e20e", "size_bytes": 6444}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "sha256": "70248c4fbe671d634f89fbba05150b116abc47de7e68272485188b627dd83fcf", "size_bytes": 353550}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0621989fea0cc3748583f6/inputs/r3/r3_asset_manifest.json", "sha256": "a79b5c478c2d23f2081eb3649cdda611a1abae9e027d761732964709216aa283", "size_bytes": 5775}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6ae231c290c3b21f0b071e80ab5bab916092497296ed0c4ca9bdebae4e27a166", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [210.0, 105.0, 660.0, 414.0], "bbox_xyxy_clipped": [210.0, 105.0, 870.0, 519.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [438.0, 18.0, 205.0, 42.0], "bbox_xyxy_clipped": [438.0, 18.0, 643.0, 60.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [382.0, 62.0, 316.0, 56.0], "bbox_xyxy_clipped": [382.0, 62.0, 698.0, 118.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [259.0, 548.0, 562.0, 81.0], "bbox_xyxy_clipped": [259.0, 548.0, 821.0, 629.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [312.0, 628.0, 456.0, 78.0], "bbox_xyxy_clipped": [312.0, 628.0, 768.0, 706.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [390.0, 730.0, 300.0, 54.0], "bbox_xyxy_clipped": [390.0, 730.0, 690.0, 784.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [318.0, 786.0, 445.0, 53.0], "bbox_xyxy_clipped": [318.0, 786.0, 763.0, 839.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [96.0, 150.0, 170.0, 188.0], "bbox_xyxy_clipped": [96.0, 150.0, 266.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [74.0, 714.0, 240.0, 184.0], "bbox_xyxy_clipped": [74.0, 714.0, 314.0, 898.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [766.0, 712.0, 240.0, 184.0], "bbox_xyxy_clipped": [766.0, 712.0, 1006.0, 896.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003256585084516247}, "Ove": {"reason": null, "status": "ok", "value": 0.005570521497938112}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e0d99499fea0cc374a71bcc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0d99499fea0cc374a71bcc/pipeline/l0_result.json", "sha256": "3ee985c15ebf11659c1c642374d509357f8340a90a4ff899f4fa5216c765ceab", "size_bytes": 9078}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0d99499fea0cc374a71bcc/inputs/pfull/asset_manifest.json", "sha256": "68185685bc51cfa6f278bcca56dedcac1da16a30e97cb38eb6ce96857bfd00c4", "size_bytes": 5429}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_02.png", "sha256": "6ae231c290c3b21f0b071e80ab5bab916092497296ed0c4ca9bdebae4e27a166", "size_bytes": 347589}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e0d99499fea0cc374a71bcc/inputs/r3/r3_asset_manifest.json", "sha256": "f06b91f1297dec366b9bc9180aedb14f62bf121709c888769fd477a82ea6bfe9", "size_bytes": 4941}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b5b89e5266da08b4b9165b78402d81779b96133e49ba28400a8661f7c93ba58d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [290.0, 395.0, 500.0, 479.0], "bbox_xyxy_clipped": [290.0, 395.0, 790.0, 874.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [240.0, 60.0, 600.0, 287.0], "bbox_xyxy_clipped": [240.0, 60.0, 840.0, 347.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [235.0, 330.0, 610.0, 270.0], "bbox_xyxy_clipped": [235.0, 330.0, 845.0, 600.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [765.0, 955.0, 255.0, 36.0], "bbox_xyxy_clipped": [765.0, 955.0, 1020.0, 991.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [70.0, 705.0, 300.0, 433.0], "bbox_xyxy_clipped": [70.0, 705.0, 370.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [410.0, 705.0, 300.0, 433.0], "bbox_xyxy_clipped": [410.0, 705.0, 710.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [360.0, 870.0, 360.0, 74.0], "bbox_xyxy_clipped": [360.0, 870.0, 720.0, 944.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0068950537406714954}, "Ove": {"reason": null, "status": "ok", "value": 0.11140067957070621}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e202d829fea0cc3744908a8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e202d829fea0cc3744908a8/pipeline/l0_result.json", "sha256": "745d07d8e3d8482ff96aa50ce7dedd6e67c5a987a4316a3a4555db2704076c23", "size_bytes": 7869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e202d829fea0cc3744908a8/inputs/pfull/asset_manifest.json", "sha256": "1c3f8cb2a1646083caeaa08728ec85e098968c564d3d711db48928546185052b", "size_bytes": 3899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_02.png", "sha256": "b5b89e5266da08b4b9165b78402d81779b96133e49ba28400a8661f7c93ba58d", "size_bytes": 290875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e202d829fea0cc3744908a8/inputs/r3/r3_asset_manifest.json", "sha256": "6f52bbab768572049713ff55277801f7987deaa9905ee26a98ebc869dfe44db6", "size_bytes": 3496}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "087a6a8ffb4b3125fa980a5d6398f016f7e9e3842d9b713e39f7dd8d8f7887f6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 13, "valid": 12}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [266.0, 125.0, 547.0, 175.0], "bbox_xyxy_clipped": [266.0, 125.0, 813.0, 300.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [149.0, 320.0, 782.0, 63.0], "bbox_xyxy_clipped": [149.0, 320.0, 931.0, 383.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [384.0, 390.0, 312.0, 111.0], "bbox_xyxy_clipped": [384.0, 390.0, 696.0, 501.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [376.0, 520.0, 327.0, 108.0], "bbox_xyxy_clipped": [376.0, 520.0, 703.0, 628.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [395.0, 650.0, 290.0, 87.0], "bbox_xyxy_clipped": [395.0, 650.0, 685.0, 737.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [200.0, 760.0, 680.0, 454.0], "bbox_xyxy_clipped": [200.0, 760.0, 880.0, 1214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [246.0, 1645.0, 588.0, 60.0], "bbox_xyxy_clipped": [246.0, 1645.0, 834.0, 1705.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [250.0, 1720.0, 580.0, 91.0], "bbox_xyxy_clipped": [250.0, 1720.0, 830.0, 1811.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [105.0, 60.0, 870.0, 4.0], "bbox_xyxy_clipped": [105.0, 60.0, 975.0, 64.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [105.0, 1860.0, 870.0, 4.0], "bbox_xyxy_clipped": [105.0, 1860.0, 975.0, 1864.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1020.0, 120.0, 3.0, 108.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [60.0, 740.0, 316.0, 341.0], "bbox_xyxy_clipped": [60.0, 740.0, 376.0, 1081.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [706.0, 740.0, 324.0, 352.0], "bbox_xyxy_clipped": [706.0, 740.0, 1030.0, 1092.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002753639603702314}, "Ove": {"reason": null, "status": "ok", "value": 0.02626754545724382}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e2031da9fea0cc37450dd01", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e2031da9fea0cc37450dd01/pipeline/l0_result.json", "sha256": "b825ef15be9b36ed97880ce857fb883c589b128354b5c071b42f8534d94a5c26", "size_bytes": 10421}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e2031da9fea0cc37450dd01/inputs/pfull/asset_manifest.json", "sha256": "7863e8e9ee763898e1d22c8be3bb37f3cbae8d85fc8697513850682d2886f80f", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_02.png", "sha256": "087a6a8ffb4b3125fa980a5d6398f016f7e9e3842d9b713e39f7dd8d8f7887f6", "size_bytes": 752454}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e2031da9fea0cc37450dd01/inputs/r3/r3_asset_manifest.json", "sha256": "3edefd919b6f464533240fd1696ef543982d83e20e054c5dcf61c6eaa84a5fa0", "size_bytes": 6174}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "618389f6aaca3052749a8d1137b1247a7a0a11e69f22362b4c4a4528858d42e6", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [635.0, 0.0, 555.0, 50.0], "bbox_xyxy_clipped": [635.0, 0.0, 1190.0, 50.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [635.0, 1633.0, 555.0, 50.0], "bbox_xyxy_clipped": [635.0, 1633.0, 1190.0, 1683.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [622.0, 150.0, 132.0, 180.0], "bbox_xyxy_clipped": [622.0, 150.0, 754.0, 330.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [870.0, 210.0, 160.0, 190.0], "bbox_xyxy_clipped": [870.0, 210.0, 1030.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [176.0, 250.0, 602.0, 480.0], "bbox_xyxy_clipped": [176.0, 250.0, 778.0, 730.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [80.0, 330.0, 112.0, 519.0], "bbox_xyxy_clipped": [80.0, 330.0, 192.0, 849.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [776.0, 188.0, 314.0, 119.0], "bbox_xyxy_clipped": [776.0, 188.0, 1090.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [778.0, 324.0, 240.0, 131.0], "bbox_xyxy_clipped": [778.0, 324.0, 1018.0, 455.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [781.0, 486.0, 260.0, 80.0], "bbox_xyxy_clipped": [781.0, 486.0, 1041.0, 566.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [782.0, 610.0, 345.0, 181.0], "bbox_xyxy_clipped": [782.0, 610.0, 1127.0, 791.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [787.0, 1430.0, 352.0, 36.0], "bbox_xyxy_clipped": [787.0, 1430.0, 1139.0, 1466.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003414838319327263}, "Ove": {"reason": null, "status": "ok", "value": 0.05213338443506272}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5e28090f9fea0cc3748fc62a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e28090f9fea0cc3748fc62a/pipeline/l0_result.json", "sha256": "3b77de76b4bce827bb0fc650c0bd8311408d25f22650317703c2b637a74bb64d", "size_bytes": 9638}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e28090f9fea0cc3748fc62a/inputs/pfull/asset_manifest.json", "sha256": "89b8c63945886e497fc84d1a6943e90b294fa0830a6134e3ed34891eb9885733", "size_bytes": 6047}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_03.png", "sha256": "618389f6aaca3052749a8d1137b1247a7a0a11e69f22362b4c4a4528858d42e6", "size_bytes": 350001}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e28090f9fea0cc3748fc62a/inputs/r3/r3_asset_manifest.json", "sha256": "ed67a81f98be5d038e2806dcee7f8f8ca5cdd82a55b60c795a5160848a07377f", "size_bytes": 5419}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "89f648c8b5107d77249c992fbc293a14e8e7febe5eb240514a77085337d4bb9e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3b41f2ec7aa4d5b8818ae47fa4f6584bb208c30cdf00562414a6317e4ee18070", "canvas": {"height": 612, "width": 792}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [585.0, 46.0, 164.0, 238.0], "bbox_xyxy_clipped": [585.0, 46.0, 749.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 145.0, 534.0], "bbox_xyxy_clipped": [0.0, 0.0, 145.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [148.0, 94.0, 56.0, 707.0], "bbox_xyxy_clipped": [148.0, 94.0, 204.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [503.0, 555.0, 289.0, 17.0], "bbox_xyxy_clipped": [503.0, 555.0, 792.0, 572.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [221.0, 94.0, 351.0, 80.0], "bbox_xyxy_clipped": [221.0, 94.0, 572.0, 174.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [267.0, 182.0, 258.0, 42.0], "bbox_xyxy_clipped": [267.0, 182.0, 525.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [149.0, 391.0, 494.0, 51.0], "bbox_xyxy_clipped": [149.0, 391.0, 643.0, 442.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [183.0, 241.0, 426.0, 156.0], "bbox_xyxy_clipped": [183.0, 241.0, 609.0, 397.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [202.0, 312.0, 229.0, 445.0], "bbox_xyxy_clipped": [202.0, 312.0, 431.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 593.0, 792.0, 3.0], "bbox_xyxy_clipped": [0.0, 593.0, 792.0, 596.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [621.0, 121.0, 74.0, 696.0], "bbox_xyxy_clipped": [621.0, 121.0, 695.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [223.0, 499.0, 347.0, 44.0], "bbox_xyxy_clipped": [223.0, 499.0, 570.0, 543.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006666761816386391}, "Ove": {"reason": null, "status": "ok", "value": 0.06908111066587044}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "01748acae88359682970cac43bc46e72928c52e46ec485fc11adbc6100db5f5e", "status": "computed"}, "sample_id": "5e6f770e4b3890eb07175aee", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e6f770e4b3890eb07175aee/pipeline/l0_result.json", "sha256": "f2c2c969c3dcd38d72bd16210c9f9b27b3c1b70c2d3f62d51650173ef7a7d5e5", "size_bytes": 10389}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e6f770e4b3890eb07175aee/inputs/pfull/asset_manifest.json", "sha256": "4c5bb0accb437f191754b9337ed98a05db55648b94ce4e991b6dc08ed5939648", "size_bytes": 6487}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_02.png", "sha256": "89f648c8b5107d77249c992fbc293a14e8e7febe5eb240514a77085337d4bb9e", "size_bytes": 153512}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e6f770e4b3890eb07175aee/inputs/r3/r3_asset_manifest.json", "sha256": "f8db2af4db2861572574ea0401ee49c1ebbfea91b1530140ae8fe15d6b1060e3", "size_bytes": 5749}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a236ca7cbb9458379ad3aa83ecf49dadd8a6a2f7c01783c3d470b8dfd901516b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 132.0, 434.0, 94.0], "bbox_xyxy_clipped": [78.0, 132.0, 512.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [86.0, 242.0, 320.0, 102.0], "bbox_xyxy_clipped": [86.0, 242.0, 406.0, 344.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [86.0, 870.0, 260.0, 66.0], "bbox_xyxy_clipped": [86.0, 870.0, 346.0, 936.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [648.0, 112.0, 324.0, 402.0], "bbox_xyxy_clipped": [648.0, 112.0, 972.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [144.0, 208.0, 318.0, 137.0], "bbox_xyxy_clipped": [144.0, 208.0, 462.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [56.0, 98.0, 206.0, 187.0], "bbox_xyxy_clipped": [56.0, 98.0, 262.0, 285.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [106.0, 408.0, 162.0, 179.0], "bbox_xyxy_clipped": [106.0, 408.0, 268.0, 587.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [420.0, 172.0, 226.0, 247.0], "bbox_xyxy_clipped": [420.0, 172.0, 646.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0007371066153080526}, "Ove": {"reason": null, "status": "ok", "value": 0.15635734264240103}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8762404b3890eb0782ad22", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8762404b3890eb0782ad22/pipeline/l0_result.json", "sha256": "bd6bbf50c6471e6ea437cfd91f42768031c58e286d16cb07e2543fc669b2bd9f", "size_bytes": 7441}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8762404b3890eb0782ad22/inputs/pfull/asset_manifest.json", "sha256": "0a0460bb108cf23b3695ab026f9794fc07bce156f014168ec4acbd830296ebdc", "size_bytes": 4445}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "sha256": "a236ca7cbb9458379ad3aa83ecf49dadd8a6a2f7c01783c3d470b8dfd901516b", "size_bytes": 128871}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8762404b3890eb0782ad22/inputs/r3/r3_asset_manifest.json", "sha256": "6b487be33fd778dc1c5d93aea7dc3fdbd548fafeea89cfd55a2b1f8ad3c35f0d", "size_bytes": 3950}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4c0356c54f4d50cfce9bc013f1e5a940990f966428a8b139761eb347da1a1ca2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [146.0, 118.0, 789.0, 210.0], "bbox_xyxy_clipped": [146.0, 118.0, 935.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [205.0, 330.0, 670.0, 205.0], "bbox_xyxy_clipped": [205.0, 330.0, 875.0, 535.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [101.0, 540.0, 878.0, 177.0], "bbox_xyxy_clipped": [101.0, 540.0, 979.0, 717.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [136.0, 1120.0, 430.0, 389.0], "bbox_xyxy_clipped": [136.0, 1120.0, 566.0, 1509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [624.0, 1185.0, 320.0, 354.0], "bbox_xyxy_clipped": [624.0, 1185.0, 944.0, 1539.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [309.0, 880.0, 462.0, 198.0], "bbox_xyxy_clipped": [309.0, 880.0, 771.0, 1078.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [540.0, 820.0, 291.0, 359.0], "bbox_xyxy_clipped": [540.0, 820.0, 831.0, 1179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [676.0, 860.0, 318.0, 348.0], "bbox_xyxy_clipped": [676.0, 860.0, 994.0, 1208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003645973766082385}, "Ove": {"reason": null, "status": "ok", "value": 0.092438119448731}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e8d96cb4b3890eb071c683d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8d96cb4b3890eb071c683d/pipeline/l0_result.json", "sha256": "d504db664003c0da7957de171c87a646b6edce1f58a692ed2f5a85d832cec948", "size_bytes": 7664}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8d96cb4b3890eb071c683d/inputs/pfull/asset_manifest.json", "sha256": "19cffe83ae58c4c09ca9f822457782668d9f54a30dcc5a51e5234b49c53c4c97", "size_bytes": 4449}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_03.png", "sha256": "4c0356c54f4d50cfce9bc013f1e5a940990f966428a8b139761eb347da1a1ca2", "size_bytes": 250278}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8d96cb4b3890eb071c683d/inputs/r3/r3_asset_manifest.json", "sha256": "6de004acc459ed37555bc010ebe78aa301680a040c9821010b76385e3406c605", "size_bytes": 3943}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3d7204567dfc8f8a4cc686b901465cadeeec81baac763ac1a1c5e42c946a2cf6", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [736.0, 70.0, 220.0, 220.0], "bbox_xyxy_clipped": [736.0, 70.0, 956.0, 290.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [83.0, 82.0, 246.0, 213.0], "bbox_xyxy_clipped": [83.0, 82.0, 329.0, 295.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [511.0, 115.0, 190.0, 195.0], "bbox_xyxy_clipped": [511.0, 115.0, 701.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [297.0, 111.0, 214.0, 210.0], "bbox_xyxy_clipped": [297.0, 111.0, 511.0, 321.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [857.0, 286.0, 170.0, 152.0], "bbox_xyxy_clipped": [857.0, 286.0, 1027.0, 438.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 303.0, 180.0, 180.0], "bbox_xyxy_clipped": [120.0, 303.0, 300.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [910.0, 116.0, 132.0, 272.0], "bbox_xyxy_clipped": [910.0, 116.0, 1042.0, 388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [61.0, 524.0, 150.0, 200.0], "bbox_xyxy_clipped": [61.0, 524.0, 211.0, 724.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [421.0, 520.0, 303.0, 169.0], "bbox_xyxy_clipped": [421.0, 520.0, 724.0, 689.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [128.0, 638.0, 250.0, 272.0], "bbox_xyxy_clipped": [128.0, 638.0, 378.0, 910.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [784.0, 517.0, 186.0, 113.0], "bbox_xyxy_clipped": [784.0, 517.0, 970.0, 630.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [635.0, 146.0, 320.0, 116.0], "bbox_xyxy_clipped": [635.0, 146.0, 955.0, 262.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [681.0, 270.0, 121.0, 63.0], "bbox_xyxy_clipped": [681.0, 270.0, 802.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [622.0, 392.0, 410.0, 72.0], "bbox_xyxy_clipped": [622.0, 392.0, 1032.0, 464.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [686.0, 810.0, 310.0, 36.0], "bbox_xyxy_clipped": [686.0, 810.0, 996.0, 846.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.006034662060585178}, "Occ": {"reason": null, "status": "ok", "value": 0.002824025727237866}, "Ove": {"reason": null, "status": "ok", "value": 0.08766854160114126}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8ef9fb4b3890eb0760bade", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8ef9fb4b3890eb0760bade/pipeline/l0_result.json", "sha256": "6304bdaebffcbe1fb93ce3bb34cd5cbe3e2adb3fa08841bf5f345168edb93e7f", "size_bytes": 12705}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8ef9fb4b3890eb0760bade/inputs/pfull/asset_manifest.json", "sha256": "049ff5c0cef018bb34e9f85777ecf49708de5be6ae5de1a54b7a150fbb6af5d2", "size_bytes": 7875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_03.png", "sha256": "3d7204567dfc8f8a4cc686b901465cadeeec81baac763ac1a1c5e42c946a2cf6", "size_bytes": 101707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e8ef9fb4b3890eb0760bade/inputs/r3/r3_asset_manifest.json", "sha256": "2ecfce20d2a81cbc1054ae10fbe3057148a05f0141b4da47296af0219f22a66f", "size_bytes": 6789}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b582cc6ed53e89f6a0d3a94e67b4962bc5327493d18d24222265ed9e8189f9a3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "asset_size_bytes": 3291, "kind": "asset", "pfull_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "r3_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "12d1629a8b4ed95adbcbddf05c3c8b8fca07cab0f9ad5bec55b4f2c035b18c5b", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [68.0, 72.0, 334.0, 50.0], "bbox_xyxy_clipped": [68.0, 72.0, 402.0, 122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [68.0, 132.0, 217.0, 44.0], "bbox_xyxy_clipped": [68.0, 132.0, 285.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [68.0, 190.0, 261.0, 156.0], "bbox_xyxy_clipped": [68.0, 190.0, 329.0, 346.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [68.0, 428.0, 213.0, 25.0], "bbox_xyxy_clipped": [68.0, 428.0, 281.0, 453.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [505.0, 94.0, 410.0, 182.0], "bbox_xyxy_clipped": [505.0, 94.0, 915.0, 276.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [892.0, 199.0, 100.0, 137.0], "bbox_xyxy_clipped": [892.0, 199.0, 992.0, 336.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [520.0, 284.0, 405.0, 180.0], "bbox_xyxy_clipped": [520.0, 284.0, 925.0, 464.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.07290456694087957}, "Ove": {"reason": null, "status": "ok", "value": 0.005811174424518201}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "5dd5d0915de07635d7a6ccb9968e083eb823f99b04cc92403f740ee66aed5181", "status": "computed"}, "sample_id": "5e90704d499b85dcc7d7114d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/pipeline/l0_result.json", "sha256": "f404873a7f4d3bbc3718a71006b4838e407ce9a69b209219b4d8447244d41ea2", "size_bytes": 8544}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/asset_manifest.json", "sha256": "627a29c8da7cb0ec35ab3a2cddd581c1390960cfeb576400608d2b623ce2fefa", "size_bytes": 4503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_02.png", "sha256": "b582cc6ed53e89f6a0d3a94e67b4962bc5327493d18d24222265ed9e8189f9a3", "size_bytes": 71393}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/inputs/r3/r3_asset_manifest.json", "sha256": "c63109963a5b81d492b43d72751640ca873e9926110ca52e868120a0cd66d9e5", "size_bytes": 3999}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "size_bytes": 3291}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "72b13e75454985bf4d0aa52f485dc2296afd9a600e70e367c5c504ece0987f7c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [171.0, 0.0, 738.0, 1312.0], "bbox_xyxy_clipped": [171.0, 0.0, 909.0, 1312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [234.0, 128.0, 612.0, 589.0], "bbox_xyxy_clipped": [234.0, 128.0, 846.0, 717.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [239.0, 95.0, 603.0, 675.0], "bbox_xyxy_clipped": [239.0, 95.0, 842.0, 770.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [194.0, 846.0, 692.0, 55.0], "bbox_xyxy_clipped": [194.0, 846.0, 886.0, 901.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [274.0, 916.0, 532.0, 63.0], "bbox_xyxy_clipped": [274.0, 916.0, 806.0, 979.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [346.0, 1007.0, 389.0, 88.0], "bbox_xyxy_clipped": [346.0, 1007.0, 735.0, 1095.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [364.0, 1041.0, 352.0, 79.0], "bbox_xyxy_clipped": [364.0, 1041.0, 716.0, 1120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0013909126527327225}, "Ove": {"reason": null, "status": "ok", "value": 0.31910623547961536}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e984f83499b85dcc792f6be", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e984f83499b85dcc792f6be/pipeline/l0_result.json", "sha256": "0465606225006976ba8328728bd36b2641d33edb4eeb43fb752b12f86a8cb71e", "size_bytes": 7917}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e984f83499b85dcc792f6be/inputs/pfull/asset_manifest.json", "sha256": "58cfeb2214f9c8ceaccc248e80c656319f4b28b897c02404dcc0023fdc6f1c8d", "size_bytes": 3898}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_02.png", "sha256": "72b13e75454985bf4d0aa52f485dc2296afd9a600e70e367c5c504ece0987f7c", "size_bytes": 480956}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5e984f83499b85dcc792f6be/inputs/r3/r3_asset_manifest.json", "sha256": "4b6072805ea9c58cebc5ae5c427179ccde99fa847c4d6f4c39d5718d8ef610d6", "size_bytes": 3482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1b6ddd3c4aa39681434b1fcf727027a1c1228d45e87791b9844541fa5e4609ec", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 120.0, 404.0, 65.0], "bbox_xyxy_clipped": [34.0, 120.0, 438.0, 185.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [34.0, 205.0, 310.0, 102.0], "bbox_xyxy_clipped": [34.0, 205.0, 344.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 315.0, 360.0, 79.0], "bbox_xyxy_clipped": [36.0, 315.0, 396.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [96.0, 470.0, 480.0, 167.0], "bbox_xyxy_clipped": [96.0, 470.0, 576.0, 637.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [610.0, 540.0, 388.0, 153.0], "bbox_xyxy_clipped": [610.0, 540.0, 998.0, 693.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [642.0, 800.0, 360.0, 142.0], "bbox_xyxy_clipped": [642.0, 800.0, 1002.0, 942.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [150.0, 760.0, 420.0, 208.0], "bbox_xyxy_clipped": [150.0, 760.0, 570.0, 968.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [640.0, 1080.0, 360.0, 640.0], "bbox_xyxy_clipped": [640.0, 1080.0, 1000.0, 1720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [520.0, 920.0, 458.0, 721.0], "bbox_xyxy_clipped": [520.0, 920.0, 978.0, 1641.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004634272153592984}, "Ove": {"reason": null, "status": "ok", "value": 0.05962754928863492}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ea01126499b85dcc781e788", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea01126499b85dcc781e788/pipeline/l0_result.json", "sha256": "b95c9698bfa845a2a9fa47c8fe2fe411ad30669c624a044c009c46b3986c8516", "size_bytes": 9147}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea01126499b85dcc781e788/inputs/pfull/asset_manifest.json", "sha256": "a39a5e7f4f1d3b268ae1e9f9d2cd87d42b00279abbbc9f476b6cb66b77f0670a", "size_bytes": 4870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_03.png", "sha256": "1b6ddd3c4aa39681434b1fcf727027a1c1228d45e87791b9844541fa5e4609ec", "size_bytes": 300622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea01126499b85dcc781e788/inputs/r3/r3_asset_manifest.json", "sha256": "fc61f6a15b0389f711b7be90d651ef54c67abf87cdb48784dfde4941226c4c87", "size_bytes": 4275}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ef50bb8c9b2f61ecdd83c1cb9d557289fff0985e8ad146f455af204a7a789dfe", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [92.0, 110.0, 210.0, 109.0], "bbox_xyxy_clipped": [92.0, 110.0, 302.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [98.0, 210.0, 305.0, 60.0], "bbox_xyxy_clipped": [98.0, 210.0, 403.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [95.0, 285.0, 340.0, 35.0], "bbox_xyxy_clipped": [95.0, 285.0, 435.0, 320.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [345.0, 325.0, 18.0, 183.0], "bbox_xyxy_clipped": [345.0, 325.0, 363.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [520.0, 172.0, 290.0, 329.0], "bbox_xyxy_clipped": [520.0, 172.0, 810.0, 501.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [721.0, 231.0, 260.0, 368.0], "bbox_xyxy_clipped": [721.0, 231.0, 981.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [170.0, 520.0, 760.0, 152.0], "bbox_xyxy_clipped": [170.0, 520.0, 930.0, 672.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [420.0, 720.0, 390.0, 190.0], "bbox_xyxy_clipped": [420.0, 720.0, 810.0, 910.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [760.0, 1040.0, 390.0, 270.0], "bbox_xyxy_clipped": [760.0, 1040.0, 1150.0, 1310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0014815232366083928}, "Ove": {"reason": null, "status": "ok", "value": 0.030589004538933318}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5ea2d990499b85dcc7aaeb92", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea2d990499b85dcc7aaeb92/pipeline/l0_result.json", "sha256": "15c604ef76113275435812460022714972400315a18289568d765c344abebe18", "size_bytes": 8513}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea2d990499b85dcc7aaeb92/inputs/pfull/asset_manifest.json", "sha256": "bf2be1b0fc4779c78c943280ffba8ca0cb114c13488400bd400a407bfabd18ca", "size_bytes": 4869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_02.png", "sha256": "ef50bb8c9b2f61ecdd83c1cb9d557289fff0985e8ad146f455af204a7a789dfe", "size_bytes": 234522}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea2d990499b85dcc7aaeb92/inputs/r3/r3_asset_manifest.json", "sha256": "581410855a89b6cd75119d1cc0bdbcfacb2ceaf663defdf0b5b919d28b0ffde6", "size_bytes": 4293}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e539ee9addb0885bebb2c8329b014d7dceaf808c1d154e49c20f20f4fc308df6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [612.0, 78.0, 182.0, 181.0], "bbox_xyxy_clipped": [612.0, 78.0, 794.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [692.0, 112.0, 176.0, 175.0], "bbox_xyxy_clipped": [692.0, 112.0, 868.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [646.0, 196.0, 205.0, 260.0], "bbox_xyxy_clipped": [646.0, 196.0, 851.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [792.0, 92.0, 268.0, 295.0], "bbox_xyxy_clipped": [792.0, 92.0, 1060.0, 387.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [86.0, 84.0, 210.0, 243.0], "bbox_xyxy_clipped": [86.0, 84.0, 296.0, 327.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [86.0, 330.0, 340.0, 123.0], "bbox_xyxy_clipped": [86.0, 330.0, 426.0, 453.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [88.0, 470.0, 308.0, 122.0], "bbox_xyxy_clipped": [88.0, 470.0, 396.0, 592.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [680.0, 224.0, 234.0, 193.0], "bbox_xyxy_clipped": [680.0, 224.0, 914.0, 417.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002938165309375192}, "Ove": {"reason": null, "status": "ok", "value": 0.2237393176304422}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5ea97187499b85dcc7c45e3d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea97187499b85dcc7c45e3d/pipeline/l0_result.json", "sha256": "8c1e3b354186b36059ac7a60588d678a878a36743b6eaa681c186e9629c48340", "size_bytes": 7750}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea97187499b85dcc7c45e3d/inputs/pfull/asset_manifest.json", "sha256": "51c1a9c6487abd9e4bb29fca9cbdfd02df1b339c35cca57d3ff50ef453b52c04", "size_bytes": 4372}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_02.png", "sha256": "e539ee9addb0885bebb2c8329b014d7dceaf808c1d154e49c20f20f4fc308df6", "size_bytes": 93681}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5ea97187499b85dcc7c45e3d/inputs/r3/r3_asset_manifest.json", "sha256": "0e4592b56d358384acf0fd85117ba92283e8f10b4162e5c8c9b6e2dda12386fd", "size_bytes": 3889}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3b6a9f4c20c06248b54fa55074201b0a02768177509e0e9b919ea84507207f2d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "asset_size_bytes": 1034, "kind": "asset", "pfull_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "r3_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f93f6737b4650292700cfa9ecbf89cec44d8f4f79fb354516ad6384874ccf4e5", "canvas": {"height": 216, "width": 576}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [392.0, 22.0, 152.0, 211.0], "bbox_xyxy_clipped": [392.0, 22.0, 544.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [30.0, 24.0, 154.0, 128.0], "bbox_xyxy_clipped": [30.0, 24.0, 184.0, 152.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [32.0, 72.0, 170.0, 35.0], "bbox_xyxy_clipped": [32.0, 72.0, 202.0, 107.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [33.0, 111.0, 128.0, 26.0], "bbox_xyxy_clipped": [33.0, 111.0, 161.0, 137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [33.0, 137.0, 89.0, 30.0], "bbox_xyxy_clipped": [33.0, 137.0, 122.0, 167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [32.0, 176.0, 146.0, 31.0], "bbox_xyxy_clipped": [32.0, 176.0, 178.0, 207.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [34.0, 189.0, 51.0, 50.0], "bbox_xyxy_clipped": [34.0, 189.0, 85.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [36.0, 162.0, 3.0, 647.0], "bbox_xyxy_clipped": [36.0, 162.0, 39.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003950254590818974}, "Ove": {"reason": null, "status": "ok", "value": 0.09488259084754268}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "cbe08409065657f5bdac6c69ca8b81365dd6465f8f1e073d688bdd940e5f261e", "status": "computed"}, "sample_id": "5f114599499b85dcc796da51", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/pipeline/l0_result.json", "sha256": "eadf7758cd414b6da60f6dd4ace64a021082991f06964656521f0f36ddde0cdf", "size_bytes": 8461}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/inputs/pfull/asset_manifest.json", "sha256": "dead3585d4c4293ecd73d9abdc249a5ed62c664f14138bfceb5803fc75cede9d", "size_bytes": 4952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_03.png", "sha256": "3b6a9f4c20c06248b54fa55074201b0a02768177509e0e9b919ea84507207f2d", "size_bytes": 114873}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/inputs/r3/r3_asset_manifest.json", "sha256": "90e8688f99f6763d605e00a6ad3d0200116617b24714589a0240368b166ed4e0", "size_bytes": 4451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "size_bytes": 1034}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0a0865c0d7ceb9513ae770c05f6fb5751bfa9c38c5f1029e00288bff6758e100", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7620a7c3b9e96e49e41d2d7005e790c4aec88f0e514e706423acc725e9874b64", "canvas": {"height": 841, "width": 595}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 37, "valid": 37}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [344.0, 62.0, 213.0, 403.0], "bbox_xyxy_clipped": [344.0, 62.0, 557.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [48.0, 198.0, 92.0, 147.0], "bbox_xyxy_clipped": [48.0, 198.0, 140.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [62.0, 48.0, 110.0, 102.0], "bbox_xyxy_clipped": [62.0, 48.0, 172.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 162.0, 88.0, 89.0], "bbox_xyxy_clipped": [58.0, 162.0, 146.0, 251.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [60.0, 262.0, 84.0, 77.0], "bbox_xyxy_clipped": [60.0, 262.0, 144.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [64.0, 336.0, 50.0, 244.0], "bbox_xyxy_clipped": [64.0, 336.0, 114.0, 580.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [122.0, 346.0, 52.0, 213.0], "bbox_xyxy_clipped": [122.0, 346.0, 174.0, 559.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [60.0, 586.0, 51.0, 435.0], "bbox_xyxy_clipped": [60.0, 586.0, 111.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [176.0, 168.0, 103.0, 87.0], "bbox_xyxy_clipped": [176.0, 168.0, 279.0, 255.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [180.0, 274.0, 80.0, 88.0], "bbox_xyxy_clipped": [180.0, 274.0, 260.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [185.0, 392.0, 94.0, 150.0], "bbox_xyxy_clipped": [185.0, 392.0, 279.0, 542.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [183.0, 470.0, 50.0, 244.0], "bbox_xyxy_clipped": [183.0, 470.0, 233.0, 714.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [184.0, 606.0, 50.0, 244.0], "bbox_xyxy_clipped": [184.0, 606.0, 234.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [247.0, 618.0, 47.0, 324.0], "bbox_xyxy_clipped": [247.0, 618.0, 294.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [48.0, 26.0, 173.0, 36.0], "bbox_xyxy_clipped": [48.0, 26.0, 221.0, 62.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [48.0, 70.0, 118.0, 39.0], "bbox_xyxy_clipped": [48.0, 70.0, 166.0, 109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [48.0, 112.0, 151.0, 32.0], "bbox_xyxy_clipped": [48.0, 112.0, 199.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [48.0, 150.0, 129.0, 32.0], "bbox_xyxy_clipped": [48.0, 150.0, 177.0, 182.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [48.0, 288.0, 111.0, 35.0], "bbox_xyxy_clipped": [48.0, 288.0, 159.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [48.0, 232.0, 153.0, 33.0], "bbox_xyxy_clipped": [48.0, 232.0, 201.0, 265.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [24.0, 748.0, 372.0, 46.0], "bbox_xyxy_clipped": [24.0, 748.0, 396.0, 794.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [32.0, 708.0, 188.0, 66.0], "bbox_xyxy_clipped": [32.0, 708.0, 220.0, 774.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [34.0, 664.0, 262.0, 81.0], "bbox_xyxy_clipped": [34.0, 664.0, 296.0, 745.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [48.0, 14.0, 84.0, 20.0], "bbox_xyxy_clipped": [48.0, 14.0, 132.0, 34.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [44.0, 190.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 190.0, 404.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [44.0, 224.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 224.0, 404.0, 226.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [44.0, 258.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 258.0, 404.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [44.0, 292.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 292.0, 404.0, 294.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0028", "bbox_lwh_raw": [44.0, 326.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 326.0, 404.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0029", "bbox_lwh_raw": [44.0, 360.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 360.0, 404.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0030", "bbox_lwh_raw": [44.0, 394.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 394.0, 404.0, 396.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0031", "bbox_lwh_raw": [44.0, 428.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 428.0, 404.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0032", "bbox_lwh_raw": [44.0, 462.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 462.0, 404.0, 464.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0033", "bbox_lwh_raw": [44.0, 496.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 496.0, 404.0, 498.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0034", "bbox_lwh_raw": [44.0, 530.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 530.0, 404.0, 532.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0035", "bbox_lwh_raw": [44.0, 564.0, 360.0, 2.0], "bbox_xyxy_clipped": [44.0, 564.0, 404.0, 566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0036", "bbox_lwh_raw": [263.0, 24.0, 79.0, 58.0], "bbox_xyxy_clipped": [263.0, 24.0, 342.0, 82.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0037785447279060354}, "Ove": {"reason": null, "status": "ok", "value": 0.14121003751954395}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "e04e4f941ab84a58a796f823faaafea8a212e66f55008e43b1dd3a23a0e2b8a8", "status": "computed"}, "sample_id": "5f3b84c8a637ee11e32ee4c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f3b84c8a637ee11e32ee4c9/pipeline/l0_result.json", "sha256": "4f16cbadcba438106c5bc44f075bf416f64ec10e002612092fdac0f2d4037f43", "size_bytes": 27774}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/pfull/asset_manifest.json", "sha256": "5bddedd98f2cb02317500fabbd075b81bd849d50be2080d9a0687bc1444edf08", "size_bytes": 18959}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_03.png", "sha256": "0a0865c0d7ceb9513ae770c05f6fb5751bfa9c38c5f1029e00288bff6758e100", "size_bytes": 334377}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/r3/r3_asset_manifest.json", "sha256": "28b8bb748c64009f2a85ad9485674871fe933d2f546c6a5af7b006c54cf18959", "size_bytes": 16316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2f07bf93eefb83640a3c82e60d36440860017c4924a9f3da234f929dbbfc767c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1120.0, 50.0, 650.0, 493.0], "bbox_xyxy_clipped": [1120.0, 50.0, 1770.0, 543.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1330.0, 430.0, 520.0, 706.0], "bbox_xyxy_clipped": [1330.0, 430.0, 1850.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [120.0, 90.0, 500.0, 227.0], "bbox_xyxy_clipped": [120.0, 90.0, 620.0, 317.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [132.0, 108.0, 480.0, 216.0], "bbox_xyxy_clipped": [132.0, 108.0, 612.0, 324.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [130.0, 320.0, 760.0, 59.0], "bbox_xyxy_clipped": [130.0, 320.0, 890.0, 379.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [130.0, 420.0, 620.0, 62.0], "bbox_xyxy_clipped": [130.0, 420.0, 750.0, 482.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [130.0, 900.0, 510.0, 60.0], "bbox_xyxy_clipped": [130.0, 900.0, 640.0, 960.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [130.0, 990.0, 430.0, 65.0], "bbox_xyxy_clipped": [130.0, 990.0, 560.0, 1055.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0022858919158001154}, "Ove": {"reason": null, "status": "ok", "value": 0.11915477857840745}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5f4c9d6fa637ee11e34ab88b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f4c9d6fa637ee11e34ab88b/pipeline/l0_result.json", "sha256": "b2e62b0463d6feb4dc093f97852ec1ba78093b5dcbcab1e120a7b6c60a93b721", "size_bytes": 8785}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/pfull/asset_manifest.json", "sha256": "cc21a5ddffd6e1572ef790594edb3043faf7dd0db6c1b36801c4e7554d1d7cce", "size_bytes": 4485}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_03.png", "sha256": "2f07bf93eefb83640a3c82e60d36440860017c4924a9f3da234f929dbbfc767c", "size_bytes": 383790}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/r3/r3_asset_manifest.json", "sha256": "929a61f6c2b2573867c79ebc6ec6da796599fe79ebd6183542698e1955001e59", "size_bytes": 4157}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "51469b70715c836127255e3a596c228d8ed7818596adc7a6a1fa46b10d443fa8", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [170.0, 190.0, 700.0, 738.0], "bbox_xyxy_clipped": [170.0, 190.0, 870.0, 928.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [96.0, 930.0, 740.0, 234.0], "bbox_xyxy_clipped": [96.0, 930.0, 836.0, 1164.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [86.0, 1125.0, 540.0, 173.0], "bbox_xyxy_clipped": [86.0, 1125.0, 626.0, 1298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [210.0, 150.0, 430.0, 287.0], "bbox_xyxy_clipped": [210.0, 150.0, 640.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [92.0, 115.0, 360.0, 592.0], "bbox_xyxy_clipped": [92.0, 115.0, 452.0, 707.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [275.0, 850.0, 540.0, 569.0], "bbox_xyxy_clipped": [275.0, 850.0, 815.0, 1419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [545.0, 1280.0, 330.0, 543.0], "bbox_xyxy_clipped": [545.0, 1280.0, 875.0, 1823.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 1420.0, 330.0, 542.0], "bbox_xyxy_clipped": [0.0, 1420.0, 330.0, 1962.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [470.0, 1520.0, 360.0, 380.0], "bbox_xyxy_clipped": [470.0, 1520.0, 830.0, 1900.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [0.0, 0.0, 180.0, 200.0], "bbox_xyxy_clipped": [0.0, 0.0, 180.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [250.0, 90.0, 110.0, 345.0], "bbox_xyxy_clipped": [250.0, 90.0, 360.0, 435.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1840.0, 150.0, 980.0, 88.0], "bbox_xyxy_clipped": [1840.0, 150.0, 2820.0, 238.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1840.0, 245.0, 420.0, 80.0], "bbox_xyxy_clipped": [1840.0, 245.0, 2260.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1860.0, 430.0, 310.0, 70.0], "bbox_xyxy_clipped": [1860.0, 430.0, 2170.0, 500.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1860.0, 505.0, 980.0, 159.0], "bbox_xyxy_clipped": [1860.0, 505.0, 2840.0, 664.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1860.0, 760.0, 310.0, 70.0], "bbox_xyxy_clipped": [1860.0, 760.0, 2170.0, 830.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1860.0, 835.0, 980.0, 153.0], "bbox_xyxy_clipped": [1860.0, 835.0, 2840.0, 988.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1860.0, 1080.0, 310.0, 76.0], "bbox_xyxy_clipped": [1860.0, 1080.0, 2170.0, 1156.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1860.0, 1165.0, 700.0, 263.0], "bbox_xyxy_clipped": [1860.0, 1165.0, 2560.0, 1428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1860.0, 1480.0, 970.0, 174.0], "bbox_xyxy_clipped": [1860.0, 1480.0, 2830.0, 1654.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1860.0, 650.0, 650.0, 175.0], "bbox_xyxy_clipped": [1860.0, 650.0, 2510.0, 825.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1860.0, 1750.0, 760.0, 203.0], "bbox_xyxy_clipped": [1860.0, 1750.0, 2620.0, 1953.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00489200462486499}, "Ove": {"reason": null, "status": "ok", "value": 0.11560397110104982}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f5b5a3da637ee11e3e5adbf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f5b5a3da637ee11e3e5adbf/pipeline/l0_result.json", "sha256": "c97c54d85a318f53ee25ee5981bdb08b14f3324747277c8bee8c0dae89f3fc88", "size_bytes": 17154}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/pfull/asset_manifest.json", "sha256": "4ae680c068c01464363f502cb77845e8df3968962edaa241981d4b272186489d", "size_bytes": 11698}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_01.png", "sha256": "51469b70715c836127255e3a596c228d8ed7818596adc7a6a1fa46b10d443fa8", "size_bytes": 1521561}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/r3/r3_asset_manifest.json", "sha256": "3f858d9f3beaef9ce96a7473308656294e4443d0531924d43109f0ce282f5032", "size_bytes": 10407}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b66c86e5248e9ced03b527bf83d5a960fea5b5ed071f8f1e15cdf5dd5519b847", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 32, "valid": 31}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [2060.0, 120.0, 420.0, 393.0], "bbox_xyxy_clipped": [2060.0, 120.0, 2480.0, 513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2420.0, 140.0, 360.0, 297.0], "bbox_xyxy_clipped": [2420.0, 140.0, 2780.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1710.0, 420.0, 980.0, 855.0], "bbox_xyxy_clipped": [1710.0, 420.0, 2690.0, 1275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [2520.0, 520.0, 300.0, 313.0], "bbox_xyxy_clipped": [2520.0, 520.0, 2820.0, 833.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [2380.0, 860.0, 520.0, 433.0], "bbox_xyxy_clipped": [2380.0, 860.0, 2900.0, 1293.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [130.0, 120.0, 430.0, 86.0], "bbox_xyxy_clipped": [130.0, 120.0, 560.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [130.0, 220.0, 760.0, 334.0], "bbox_xyxy_clipped": [130.0, 220.0, 890.0, 554.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [130.0, 590.0, 980.0, 220.0], "bbox_xyxy_clipped": [130.0, 590.0, 1110.0, 810.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [130.0, 1770.0, 980.0, 115.0], "bbox_xyxy_clipped": [130.0, 1770.0, 1110.0, 1885.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [130.0, 825.0, 560.0, 25.0], "bbox_xyxy_clipped": [130.0, 825.0, 690.0, 850.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [920.0, 120.0, 170.0, 50.0], "bbox_xyxy_clipped": [920.0, 120.0, 1090.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [115.0, 910.0, 28.0, 750.0], "bbox_xyxy_clipped": [115.0, 910.0, 143.0, 1660.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [130.0, 970.0, 980.0, 186.0], "bbox_xyxy_clipped": [130.0, 970.0, 1110.0, 1156.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [130.0, 1165.0, 980.0, 132.0], "bbox_xyxy_clipped": [130.0, 1165.0, 1110.0, 1297.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [130.0, 1325.0, 170.0, 49.0], "bbox_xyxy_clipped": [130.0, 1325.0, 300.0, 1374.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [130.0, 1405.0, 390.0, 79.0], "bbox_xyxy_clipped": [130.0, 1405.0, 520.0, 1484.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [130.0, 1495.0, 1060.0, 77.0], "bbox_xyxy_clipped": [130.0, 1495.0, 1190.0, 1572.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [130.0, 1585.0, 165.0, 48.0], "bbox_xyxy_clipped": [130.0, 1585.0, 295.0, 1633.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [130.0, 1670.0, 390.0, 78.0], "bbox_xyxy_clipped": [130.0, 1670.0, 520.0, 1748.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [130.0, 1000.0, 980.0, 142.0], "bbox_xyxy_clipped": [130.0, 1000.0, 1110.0, 1142.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [0.0, 0.0, 1.0, 27.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0021", "bbox_lwh_raw": [130.0, 1235.0, 390.0, 79.0], "bbox_xyxy_clipped": [130.0, 1235.0, 520.0, 1314.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [130.0, 1300.0, 980.0, 134.0], "bbox_xyxy_clipped": [130.0, 1300.0, 1110.0, 1434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [130.0, 1410.0, 170.0, 48.0], "bbox_xyxy_clipped": [130.0, 1410.0, 300.0, 1458.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [130.0, 1525.0, 390.0, 79.0], "bbox_xyxy_clipped": [130.0, 1525.0, 520.0, 1604.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [130.0, 1615.0, 165.0, 48.0], "bbox_xyxy_clipped": [130.0, 1615.0, 295.0, 1663.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [130.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [130.0, 1835.0, 300.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [310.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [310.0, 1835.0, 480.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0028", "bbox_lwh_raw": [490.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [490.0, 1835.0, 660.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0029", "bbox_lwh_raw": [670.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [670.0, 1835.0, 840.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0030", "bbox_lwh_raw": [850.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [850.0, 1835.0, 1020.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0031", "bbox_lwh_raw": [1030.0, 1835.0, 170.0, 52.0], "bbox_xyxy_clipped": [1030.0, 1835.0, 1200.0, 1887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002862867301397975}, "Ove": {"reason": null, "status": "ok", "value": 0.09196783951535521}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f644f40a637ee11e3669a1c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f644f40a637ee11e3669a1c/pipeline/l0_result.json", "sha256": "14215d64e6caa117b244bf765300f4c6501559337a62a72a06762879426630c3", "size_bytes": 24597}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f644f40a637ee11e3669a1c/inputs/pfull/asset_manifest.json", "sha256": "45932f0acea489261835865adba1dbb866ffa9a4fabdd3374ea2034cd441e9aa", "size_bytes": 17060}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f644f40a637ee11e3669a1c/renders/r0_candidate_02.png", "sha256": "b66c86e5248e9ced03b527bf83d5a960fea5b5ed071f8f1e15cdf5dd5519b847", "size_bytes": 1146852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f644f40a637ee11e3669a1c/inputs/r3/r3_asset_manifest.json", "sha256": "c547daf031f27b8ec8bcbbc8bf66b117617ea11e690a7c9a0108fa66bbd14eb6", "size_bytes": 15734}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6b01376e742c5467cbf3a3110af7c3f86a1f27834cc0ba2014b910d0a25e2e4a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "11217e9a8883c2f2e8529f1bb744f403fd69b979aa781cb901beeaeedf01a747", "canvas": {"height": 654, "width": 420}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [86.0, 316.0, 248.0, 372.0], "bbox_xyxy_clipped": [86.0, 316.0, 334.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 268.0, 244.0, 91.0], "bbox_xyxy_clipped": [42.0, 268.0, 286.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [130.0, 247.0, 248.0, 80.0], "bbox_xyxy_clipped": [130.0, 247.0, 378.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [250.0, 287.0, 142.0, 75.0], "bbox_xyxy_clipped": [250.0, 287.0, 392.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 351.0, 74.0, 248.0], "bbox_xyxy_clipped": [58.0, 351.0, 132.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [319.0, 324.0, 51.0, 130.0], "bbox_xyxy_clipped": [319.0, 324.0, 370.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [198.0, 205.0, 196.0, 64.0], "bbox_xyxy_clipped": [198.0, 205.0, 394.0, 269.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [72.0, 439.0, 183.0, 120.0], "bbox_xyxy_clipped": [72.0, 439.0, 255.0, 559.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [342.0, 389.0, 37.0, 139.0], "bbox_xyxy_clipped": [342.0, 389.0, 379.0, 528.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [30.0, 402.0, 52.0, 135.0], "bbox_xyxy_clipped": [30.0, 402.0, 82.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [116.0, 39.0, 114.0, 37.0], "bbox_xyxy_clipped": [116.0, 39.0, 230.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [244.0, 55.0, 127.0, 53.0], "bbox_xyxy_clipped": [244.0, 55.0, 371.0, 108.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [130.0, 93.0, 132.0, 47.0], "bbox_xyxy_clipped": [130.0, 93.0, 262.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007908867513344802}, "Ove": {"reason": null, "status": "ok", "value": 0.15365326201892887}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "d09109066a15e44b18dd96cd5d5d3bf52cb21140804f0b9a19e9249c4795b48a", "status": "computed"}, "sample_id": "5f96aca7a637ee11e30bb517", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f96aca7a637ee11e30bb517/pipeline/l0_result.json", "sha256": "a78fab7c407692b117ea83041c81c395abf74f60c17649867d855e0c966e28ce", "size_bytes": 11510}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f96aca7a637ee11e30bb517/inputs/pfull/asset_manifest.json", "sha256": "cab25cfa3c1ecbef2ee283cdaf34ba16cc4c2222bc36b6371608d880ce5b162c", "size_bytes": 6785}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "sha256": "6b01376e742c5467cbf3a3110af7c3f86a1f27834cc0ba2014b910d0a25e2e4a", "size_bytes": 118164}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5f96aca7a637ee11e30bb517/inputs/r3/r3_asset_manifest.json", "sha256": "ecf4ab85d587911fbca52130f4377810cd3a2f7607886061f149e22e911ac6a0", "size_bytes": 5899}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6c663cb80d0604ba025cb2ca1b255c25ea4c04ff6d5b484849290ed62d4e95f3", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1392.0, 122.0, 408.0, 961.0], "bbox_xyxy_clipped": [1392.0, 122.0, 1800.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [82.0, 164.0, 92.0, 92.0], "bbox_xyxy_clipped": [82.0, 164.0, 174.0, 256.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [82.0, 286.0, 92.0, 92.0], "bbox_xyxy_clipped": [82.0, 286.0, 174.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1204.0, 114.0, 640.0, 360.0], "bbox_xyxy_clipped": [1204.0, 114.0, 1844.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [86.0, 432.0, 118.0, 358.0], "bbox_xyxy_clipped": [86.0, 432.0, 204.0, 790.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [84.0, 812.0, 112.0, 328.0], "bbox_xyxy_clipped": [84.0, 812.0, 196.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [84.0, 117.0, 96.0, 96.0], "bbox_xyxy_clipped": [84.0, 117.0, 180.0, 213.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [208.0, 540.0, 1020.0, 112.0], "bbox_xyxy_clipped": [208.0, 540.0, 1228.0, 652.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1118.0, 164.0, 18.0, 1080.0], "bbox_xyxy_clipped": [1118.0, 164.0, 1136.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [84.0, 126.0, 154.0, 51.0], "bbox_xyxy_clipped": [84.0, 126.0, 238.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [84.0, 214.0, 312.0, 134.0], "bbox_xyxy_clipped": [84.0, 214.0, 396.0, 348.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [84.0, 372.0, 190.0, 107.0], "bbox_xyxy_clipped": [84.0, 372.0, 274.0, 479.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0026971470735489412}, "Ove": {"reason": null, "status": "ok", "value": 0.12088274102237417}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t0-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5fbf5b4aa637ee11e3a82536", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5fbf5b4aa637ee11e3a82536/pipeline/l0_result.json", "sha256": "0664aac86e2bf599b4733cbc0b5f0ad2916a84e599cff83f6e5e27c02d3eb3e9", "size_bytes": 11825}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5fbf5b4aa637ee11e3a82536/inputs/pfull/asset_manifest.json", "sha256": "296d4a0d44c5316c6f8de6b79fb7a40265923399fa1f94a3ff0f1d651e301992", "size_bytes": 6326}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_03.png", "sha256": "6c663cb80d0604ba025cb2ca1b255c25ea4c04ff6d5b484849290ed62d4e95f3", "size_bytes": 679053}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t0-01/samples/5fbf5b4aa637ee11e3a82536/inputs/r3/r3_asset_manifest.json", "sha256": "d4e91532b111e5d8ad8c4b610cf5c75d22a58403dda1df4ee356a9282e180325", "size_bytes": 5491}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "de6928b87770e245d64fe4149fc15d41c926ba1b26a7dcee6a71f3a18c77a335", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 18, "valid": 18}, "elements": [{"asset_id": "asset_0017", "bbox_lwh_raw": [286.0, 58.0, 280.0, 21.0], "bbox_xyxy_clipped": [286.0, 58.0, 566.0, 79.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [365.0, 84.0, 201.0, 40.0], "bbox_xyxy_clipped": [365.0, 84.0, 566.0, 124.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [24.0, 282.0, 165.0, 57.0], "bbox_xyxy_clipped": [24.0, 282.0, 189.0, 339.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [24.0, 348.0, 191.0, 113.0], "bbox_xyxy_clipped": [24.0, 348.0, 215.0, 461.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [24.0, 476.0, 180.0, 122.0], "bbox_xyxy_clipped": [24.0, 476.0, 204.0, 598.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [24.0, 1043.0, 165.0, 66.0], "bbox_xyxy_clipped": [24.0, 1043.0, 189.0, 1109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [294.0, 676.0, 252.0, 556.0], "bbox_xyxy_clipped": [294.0, 676.0, 546.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [240.0, 610.0, 120.0, 119.0], "bbox_xyxy_clipped": [240.0, 610.0, 360.0, 729.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [206.0, 568.0, 98.0, 168.0], "bbox_xyxy_clipped": [206.0, 568.0, 304.0, 736.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [126.0, 706.0, 179.0, 73.0], "bbox_xyxy_clipped": [126.0, 706.0, 305.0, 779.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [69.0, 691.0, 136.0, 108.0], "bbox_xyxy_clipped": [69.0, 691.0, 205.0, 799.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [42.0, 668.0, 88.0, 122.0], "bbox_xyxy_clipped": [42.0, 668.0, 130.0, 790.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [23.0, 646.0, 63.0, 121.0], "bbox_xyxy_clipped": [23.0, 646.0, 86.0, 767.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 629.0, 43.0, 82.0], "bbox_xyxy_clipped": [0.0, 629.0, 43.0, 711.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 590.0, 39.0, 60.0], "bbox_xyxy_clipped": [0.0, 590.0, 39.0, 650.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [45.0, 602.0, 24.0, 137.0], "bbox_xyxy_clipped": [45.0, 602.0, 69.0, 739.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [439.0, 742.0, 86.0, 172.0], "bbox_xyxy_clipped": [439.0, 742.0, 525.0, 914.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [525.0, 763.0, 62.0, 149.0], "bbox_xyxy_clipped": [525.0, 763.0, 587.0, 912.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.008867530419493225}, "Ove": {"reason": null, "status": "ok", "value": 0.12941374203268638}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5888bb2995a7a863ddcc1f74", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888bb2995a7a863ddcc1f74/pipeline/l0_result.json", "sha256": "23221e94f17edad642e12729dbe0994740b364dbd5d476b934542da328cd2dca", "size_bytes": 13530}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888bb2995a7a863ddcc1f74/inputs/pfull/asset_manifest.json", "sha256": "45e2b930e3569ed681df097c0ce01ee0baf2960414f557162f788c86829ba35a", "size_bytes": 9477}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_03.png", "sha256": "de6928b87770e245d64fe4149fc15d41c926ba1b26a7dcee6a71f3a18c77a335", "size_bytes": 306141}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888bb2995a7a863ddcc1f74/inputs/r3/r3_asset_manifest.json", "sha256": "bc9b6e580cfa49e129628ba7d3e585481515e8fd91f32b9aa841f924b38d4eb2", "size_bytes": 8285}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9b8e0a535c74bf876b5125338322ffc36f5595a64c77f4765eb95f97de3380cf", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [258.0, 35.0, 418.0, 387.0], "bbox_xyxy_clipped": [258.0, 35.0, 676.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [215.0, 77.0, 322.0, 354.0], "bbox_xyxy_clipped": [215.0, 77.0, 537.0, 431.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [664.0, 34.0, 306.0, 37.0], "bbox_xyxy_clipped": [664.0, 34.0, 970.0, 71.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [738.0, 79.0, 214.0, 41.0], "bbox_xyxy_clipped": [738.0, 79.0, 952.0, 120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [734.0, 315.0, 260.0, 83.0], "bbox_xyxy_clipped": [734.0, 315.0, 994.0, 398.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [721.0, 242.0, 240.0, 80.0], "bbox_xyxy_clipped": [721.0, 242.0, 961.0, 322.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [541.0, 198.0, 372.0, 462.0], "bbox_xyxy_clipped": [541.0, 198.0, 913.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [704.0, 120.0, 268.0, 53.0], "bbox_xyxy_clipped": [704.0, 120.0, 972.0, 173.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [735.0, 174.0, 234.0, 47.0], "bbox_xyxy_clipped": [735.0, 174.0, 969.0, 221.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0038189063488661495}, "Occ": {"reason": null, "status": "ok", "value": 0.005463862505903739}, "Ove": {"reason": null, "status": "ok", "value": 0.1090817826383254}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5888c54095a7a863ddcc2082", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888c54095a7a863ddcc2082/pipeline/l0_result.json", "sha256": "1d42e1992b30f79e5dad7020a03fcb4a76a61750f917f572753180dabe7b54ad", "size_bytes": 8749}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888c54095a7a863ddcc2082/inputs/pfull/asset_manifest.json", "sha256": "65e58d9bf4681533bc14814652207de100f5152f5bfe8421901da876e34c77a9", "size_bytes": 4846}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_03.png", "sha256": "9b8e0a535c74bf876b5125338322ffc36f5595a64c77f4765eb95f97de3380cf", "size_bytes": 210351}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888c54095a7a863ddcc2082/inputs/r3/r3_asset_manifest.json", "sha256": "bc3047198e850402adeac3291d6bb1f367e93dc209cc84f6538744d299e78901", "size_bytes": 4337}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0c6a27f141334e64f613f0b48995451df9fe91ba95206f6dc0aa62a628a3cdd3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "r3_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f794bb2410b195fc618a2f0295ec93e2218cc742a2a8411135405f1f5a748969", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [129.0, 100.0, 171.0, 220.0], "bbox_xyxy_clipped": [129.0, 100.0, 300.0, 320.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [18.0, 18.0, 127.0, 10.0], "bbox_xyxy_clipped": [18.0, 18.0, 145.0, 28.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [18.0, 36.0, 180.0, 35.0], "bbox_xyxy_clipped": [18.0, 36.0, 198.0, 71.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [18.0, 92.0, 102.0, 39.0], "bbox_xyxy_clipped": [18.0, 92.0, 120.0, 131.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [18.0, 139.0, 117.0, 65.0], "bbox_xyxy_clipped": [18.0, 139.0, 135.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [18.0, 214.0, 113.0, 73.0], "bbox_xyxy_clipped": [18.0, 214.0, 131.0, 287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [23.0, 446.0, 158.0, 57.0], "bbox_xyxy_clipped": [23.0, 446.0, 181.0, 503.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [286.0, 118.0, 58.0, 132.0], "bbox_xyxy_clipped": [286.0, 118.0, 344.0, 250.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [272.0, 70.0, 64.0, 120.0], "bbox_xyxy_clipped": [272.0, 70.0, 336.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [302.0, 20.0, 41.0, 17.0], "bbox_xyxy_clipped": [302.0, 20.0, 343.0, 37.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [286.0, 46.0, 50.0, 40.0], "bbox_xyxy_clipped": [286.0, 46.0, 336.0, 86.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [152.0, 78.0, 50.0, 68.0], "bbox_xyxy_clipped": [152.0, 78.0, 202.0, 146.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [195.0, 160.0, 42.0, 77.0], "bbox_xyxy_clipped": [195.0, 160.0, 237.0, 237.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [22.0, 252.0, 58.0, 42.0], "bbox_xyxy_clipped": [22.0, 252.0, 80.0, 294.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [136.0, 303.0, 42.0, 80.0], "bbox_xyxy_clipped": [136.0, 303.0, 178.0, 383.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [258.0, 282.0, 29.0, 46.0], "bbox_xyxy_clipped": [258.0, 282.0, 287.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [301.0, 338.0, 34.0, 56.0], "bbox_xyxy_clipped": [301.0, 338.0, 335.0, 394.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [242.0, 418.0, 58.0, 58.0], "bbox_xyxy_clipped": [242.0, 418.0, 300.0, 476.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [336.0, 94.0, 16.0, 86.0], "bbox_xyxy_clipped": [336.0, 94.0, 352.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 1.057386576882215e-07}, "Ove": {"reason": null, "status": "ok", "value": 0.05237126512036725}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f56c56f66d2b8abbd4d42a81da75b75b6223d5f1de922e99293da8094bdd9ff3", "status": "computed"}, "sample_id": "5888dd7995a7a863ddcc2e86", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/pipeline/l0_result.json", "sha256": "4cd2773b12c37727ca22f518a75735121c1ed7764ed97a2e65646a364a2bbe5b", "size_bytes": 13985}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/asset_manifest.json", "sha256": "88bbc663f005420b0df38deb77a25f35921f0b1018b95658c65e3ff364299115", "size_bytes": 10516}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_02.png", "sha256": "0c6a27f141334e64f613f0b48995451df9fe91ba95206f6dc0aa62a628a3cdd3", "size_bytes": 134678}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/inputs/r3/r3_asset_manifest.json", "sha256": "ecafd1491e8ffb6e844f2425890de55892aec61be678d9f65101b9e2affd47b8", "size_bytes": 9089}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9f297520fe033e1035155d350da13557d24738d9f9e48ce38e400d16a8567539", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [67.0, 49.0, 226.0, 230.0], "bbox_xyxy_clipped": [67.0, 49.0, 293.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [97.0, 58.0, 165.0, 253.0], "bbox_xyxy_clipped": [97.0, 58.0, 262.0, 311.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [116.0, 64.0, 128.0, 203.0], "bbox_xyxy_clipped": [116.0, 64.0, 244.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [128.0, 96.0, 105.0, 17.0], "bbox_xyxy_clipped": [128.0, 96.0, 233.0, 113.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [139.0, 76.0, 84.0, 12.0], "bbox_xyxy_clipped": [139.0, 76.0, 223.0, 88.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [139.0, 218.0, 84.0, 12.0], "bbox_xyxy_clipped": [139.0, 218.0, 223.0, 230.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [176.0, 129.0, 18.0, 24.0], "bbox_xyxy_clipped": [176.0, 129.0, 194.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [166.0, 129.0, 18.0, 24.0], "bbox_xyxy_clipped": [166.0, 129.0, 184.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [128.0, 143.0, 104.0, 10.0], "bbox_xyxy_clipped": [128.0, 143.0, 232.0, 153.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [128.0, 161.0, 104.0, 12.0], "bbox_xyxy_clipped": [128.0, 161.0, 232.0, 173.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [121.0, 180.0, 118.0, 13.0], "bbox_xyxy_clipped": [121.0, 180.0, 239.0, 193.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [137.0, 202.0, 85.0, 36.0], "bbox_xyxy_clipped": [137.0, 202.0, 222.0, 238.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0010453440366072792}, "Ove": {"reason": null, "status": "ok", "value": 0.2992394281301443}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5889bc5995a7a863ddcc3b97", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5889bc5995a7a863ddcc3b97/pipeline/l0_result.json", "sha256": "796e88a029fffe0a78548f2b7b28abd8ac55914c1d6c36aef5b4f325dcc3f4da", "size_bytes": 10448}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5889bc5995a7a863ddcc3b97/inputs/pfull/asset_manifest.json", "sha256": "321d7a96f27bf1143be4856dcecda1dbca1c5b1c6ad5e0c0e10c1ebde1a4e0c7", "size_bytes": 6410}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_03.png", "sha256": "9f297520fe033e1035155d350da13557d24738d9f9e48ce38e400d16a8567539", "size_bytes": 31671}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5889bc5995a7a863ddcc3b97/inputs/r3/r3_asset_manifest.json", "sha256": "0767f1b8636ba425e20376647d9d0ad6cf11719bf5676c59c6a8e8e1ee1d25c0", "size_bytes": 5602}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4efa5f1d885214c7692e6c5972f26468c7f222269b392503b9adfb1a514610cb", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 720.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [140.0, 140.0, 800.0, 800.0], "bbox_xyxy_clipped": [140.0, 140.0, 940.0, 940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [365.0, 180.0, 350.0, 350.0], "bbox_xyxy_clipped": [365.0, 180.0, 715.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [405.0, 220.0, 270.0, 270.0], "bbox_xyxy_clipped": [405.0, 220.0, 675.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [315.0, 250.0, 210.0, 50.0], "bbox_xyxy_clipped": [315.0, 250.0, 525.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [545.0, 250.0, 210.0, 50.0], "bbox_xyxy_clipped": [545.0, 250.0, 755.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [835.0, 355.0, 90.0, 311.0], "bbox_xyxy_clipped": [835.0, 355.0, 925.0, 666.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [870.0, 385.0, 70.0, 244.0], "bbox_xyxy_clipped": [870.0, 385.0, 940.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [655.0, 540.0, 240.0, 598.0], "bbox_xyxy_clipped": [655.0, 540.0, 895.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [765.0, 505.0, 210.0, 528.0], "bbox_xyxy_clipped": [765.0, 505.0, 975.0, 1033.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [300.0, 380.0, 490.0, 449.0], "bbox_xyxy_clipped": [300.0, 380.0, 790.0, 829.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [355.0, 455.0, 370.0, 343.0], "bbox_xyxy_clipped": [355.0, 455.0, 725.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [250.0, 125.0, 580.0, 125.0], "bbox_xyxy_clipped": [250.0, 125.0, 830.0, 250.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [390.0, 235.0, 220.0, 119.0], "bbox_xyxy_clipped": [390.0, 235.0, 610.0, 354.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [725.0, 255.0, 185.0, 192.0], "bbox_xyxy_clipped": [725.0, 255.0, 910.0, 447.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [760.0, 430.0, 195.0, 67.0], "bbox_xyxy_clipped": [760.0, 430.0, 955.0, 497.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005231139017511523}, "Ove": {"reason": null, "status": "ok", "value": 0.4870874591337254}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "589b457b95a7a863ddcc5331", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/589b457b95a7a863ddcc5331/pipeline/l0_result.json", "sha256": "6ec299880a5f82d9df5deba1688dea7d80a27808c8353de1d720c6a5df7c7d48", "size_bytes": 12965}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/589b457b95a7a863ddcc5331/inputs/pfull/asset_manifest.json", "sha256": "97d8335ce7739463cd8c641f01a701277706f32d6f8e38cbc1818e1681bab1ef", "size_bytes": 8305}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_03.png", "sha256": "4efa5f1d885214c7692e6c5972f26468c7f222269b392503b9adfb1a514610cb", "size_bytes": 914993}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/589b457b95a7a863ddcc5331/inputs/r3/r3_asset_manifest.json", "sha256": "2ac7f46d720f493bfe057a3a0ef2d479aeab118033678e13fd93bd8229fc5428", "size_bytes": 7171}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1cc80fb6f389733263b486dbc2f1d9826c07766f8477299e75cebb2cabe958ec", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "r3_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "5c23665f7df6f57c8fa7119a33c87e737e52f9829cadf0c04fdc968f0de75b47", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [72.0, 38.0, 216.0, 265.0], "bbox_xyxy_clipped": [72.0, 38.0, 288.0, 303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [84.0, 49.0, 192.0, 239.0], "bbox_xyxy_clipped": [84.0, 49.0, 276.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [165.0, 149.0, 31.0, 32.0], "bbox_xyxy_clipped": [165.0, 149.0, 196.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [78.0, 62.0, 204.0, 26.0], "bbox_xyxy_clipped": [78.0, 62.0, 282.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [118.0, 95.0, 124.0, 15.0], "bbox_xyxy_clipped": [118.0, 95.0, 242.0, 110.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [109.0, 118.0, 143.0, 28.0], "bbox_xyxy_clipped": [109.0, 118.0, 252.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 165.0, 121.0, 15.0], "bbox_xyxy_clipped": [120.0, 165.0, 241.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [95.0, 192.0, 170.0, 14.0], "bbox_xyxy_clipped": [95.0, 192.0, 265.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [144.0, 218.0, 73.0, 22.0], "bbox_xyxy_clipped": [144.0, 218.0, 217.0, 240.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 118.0, 156.0], "bbox_xyxy_clipped": [0.0, 0.0, 118.0, 156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [242.0, 0.0, 118.0, 137.0], "bbox_xyxy_clipped": [242.0, 0.0, 360.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [131.0, 244.0, 98.0, 6.0], "bbox_xyxy_clipped": [131.0, 244.0, 229.0, 250.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 372.0, 136.0, 117.0], "bbox_xyxy_clipped": [0.0, 372.0, 136.0, 489.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [250.0, 385.0, 110.0, 104.0], "bbox_xyxy_clipped": [250.0, 385.0, 360.0, 489.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1.0, 390.0, 113.0, 100.0], "bbox_xyxy_clipped": [1.0, 390.0, 114.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [283.0, 403.0, 77.0, 74.0], "bbox_xyxy_clipped": [283.0, 403.0, 360.0, 477.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00014836457676205481}, "Ove": {"reason": null, "status": "ok", "value": 0.20555497534715583}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "1357996aa9dd3f6f2e170f3106776c28a910c56ce82a2f2b923153db811e3d20", "status": "computed"}, "sample_id": "58ab17ba95a7a863ddcc77bf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/pipeline/l0_result.json", "sha256": "56480c43ea2c674a5b989f348373c7923b097a611baaf2fae453451d17e36460", "size_bytes": 13001}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/asset_manifest.json", "sha256": "25399edb8a0d2a7fc4887aff5f2c6cca5de3fcaf25371aee34606160aa1d3533", "size_bytes": 8941}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_01.png", "sha256": "1cc80fb6f389733263b486dbc2f1d9826c07766f8477299e75cebb2cabe958ec", "size_bytes": 108921}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/inputs/r3/r3_asset_manifest.json", "sha256": "fffba78b9c4995afd02cd83fd41966e7f1638dc2ac522b5ab1e860df66e37013", "size_bytes": 7707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "34ccfc0c4705c99f4b330f6df42700d266891d49b7be517dbe4010ffc78d0a0d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "asset_size_bytes": 1168, "kind": "asset", "pfull_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "r3_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e7368a74623399c74381a081a94a9cb6279b6c6fc41eff773942bc635e404d67", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [14.0, 10.0, 391.0, 277.0], "bbox_xyxy_clipped": [14.0, 10.0, 405.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [34.0, 28.0, 351.0, 297.0], "bbox_xyxy_clipped": [34.0, 28.0, 385.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [281.0, 12.0, 123.0, 41.0], "bbox_xyxy_clipped": [281.0, 12.0, 404.0, 53.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [30.0, 37.0, 142.0, 72.0], "bbox_xyxy_clipped": [30.0, 37.0, 172.0, 109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [58.0, 104.0, 107.0, 46.0], "bbox_xyxy_clipped": [58.0, 104.0, 165.0, 150.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [54.0, 152.0, 173.0, 21.0], "bbox_xyxy_clipped": [54.0, 152.0, 227.0, 173.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [285.0, 186.0, 108.0, 84.0], "bbox_xyxy_clipped": [285.0, 186.0, 393.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [381.0, 216.0, 23.0, 20.0], "bbox_xyxy_clipped": [381.0, 216.0, 404.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00033654174249664147}, "Ove": {"reason": null, "status": "ok", "value": 0.1864086530661384}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "a6d6867d22b3fe8b10abc02a12d35da4263e227990469800e51c4a89eda79323", "status": "computed"}, "sample_id": "58ab189395a7a863ddcc7847", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/pipeline/l0_result.json", "sha256": "da4a858a5662f688e6d362d590ec333300680e7e7fb20f3e5a64796e6095a2cb", "size_bytes": 9911}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/asset_manifest.json", "sha256": "614d4e84638905ec45a27fa112857b6d34fcfab30622e67d27a95053a2b99110", "size_bytes": 4944}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "sha256": "34ccfc0c4705c99f4b330f6df42700d266891d49b7be517dbe4010ffc78d0a0d", "size_bytes": 44424}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/inputs/r3/r3_asset_manifest.json", "sha256": "c5f419396c23cb8724b5f2c0aad3d4deab5e3fd4e227146ce84057d90331072f", "size_bytes": 4443}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "size_bytes": 1168}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1eb9b1bd20324f86e54e3959d8a4b6654364c3ee0ba900e4de7e8d20b2f6cc71", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [20.0, 0.0, 240.0, 524.0], "bbox_xyxy_clipped": [20.0, 0.0, 260.0, 524.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [286.0, 24.0, 180.0, 412.0], "bbox_xyxy_clipped": [286.0, 24.0, 466.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [225.0, 120.0, 84.0, 108.0], "bbox_xyxy_clipped": [225.0, 120.0, 309.0, 228.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [4.0, 28.0, 18.0, 2053.0], "bbox_xyxy_clipped": [4.0, 28.0, 22.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [520.0, 70.0, 48.0, 352.0], "bbox_xyxy_clipped": [520.0, 70.0, 568.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [572.0, 170.0, 20.0, 125.0], "bbox_xyxy_clipped": [572.0, 170.0, 592.0, 295.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [150.0, 520.0, 300.0, 3.0], "bbox_xyxy_clipped": [150.0, 520.0, 450.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [140.0, 560.0, 320.0, 3.0], "bbox_xyxy_clipped": [140.0, 560.0, 460.0, 563.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [130.0, 600.0, 340.0, 3.0], "bbox_xyxy_clipped": [130.0, 600.0, 470.0, 603.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 640.0, 360.0, 3.0], "bbox_xyxy_clipped": [120.0, 640.0, 480.0, 643.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [78.0, 72.0, 157.0, 40.0], "bbox_xyxy_clipped": [78.0, 72.0, 235.0, 112.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [244.0, 72.0, 130.0, 36.0], "bbox_xyxy_clipped": [244.0, 72.0, 374.0, 108.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [82.0, 122.0, 246.0, 39.0], "bbox_xyxy_clipped": [82.0, 122.0, 328.0, 161.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [344.0, 122.0, 113.0, 38.0], "bbox_xyxy_clipped": [344.0, 122.0, 457.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [150.0, 170.0, 244.0, 25.0], "bbox_xyxy_clipped": [150.0, 170.0, 394.0, 195.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [62.0, 226.0, 428.0, 36.0], "bbox_xyxy_clipped": [62.0, 226.0, 490.0, 262.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [172.0, 276.0, 256.0, 30.0], "bbox_xyxy_clipped": [172.0, 276.0, 428.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [140.0, 320.0, 320.0, 31.0], "bbox_xyxy_clipped": [140.0, 320.0, 460.0, 351.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [40.0, 970.0, 520.0, 46.0], "bbox_xyxy_clipped": [40.0, 970.0, 560.0, 1016.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [84.0, 1030.0, 432.0, 45.0], "bbox_xyxy_clipped": [84.0, 1030.0, 516.0, 1075.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [34.0, 1088.0, 532.0, 47.0], "bbox_xyxy_clipped": [34.0, 1088.0, 566.0, 1135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [82.0, 1148.0, 436.0, 38.0], "bbox_xyxy_clipped": [82.0, 1148.0, 518.0, 1186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006118646718591446}, "Ove": {"reason": null, "status": "ok", "value": 0.04712293839096906}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "58cbc44595a7a863ddccc20b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58cbc44595a7a863ddccc20b/pipeline/l0_result.json", "sha256": "89f1d6ee4c421ae398667f59a794157fd45f665339d2bce26588dfdf02763f0c", "size_bytes": 17517}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58cbc44595a7a863ddccc20b/inputs/pfull/asset_manifest.json", "sha256": "82c39f24ef183613ed6fcf9ff223d31f72b3a19d1d3e2832c8768e93f80e1bfd", "size_bytes": 11495}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_02.png", "sha256": "1eb9b1bd20324f86e54e3959d8a4b6654364c3ee0ba900e4de7e8d20b2f6cc71", "size_bytes": 327486}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/58cbc44595a7a863ddccc20b/inputs/r3/r3_asset_manifest.json", "sha256": "edd55ba113c7c20a28baa9c892c8a9c265491523f7dbf78695498517c8083577", "size_bytes": 10273}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "24752d2de41f84d2dd8ee7e896b600ae5cbf6881f1137d43a2a1711572a21500", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [196.0, 292.0, 573.0, 231.0], "bbox_xyxy_clipped": [196.0, 292.0, 769.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [748.0, 118.0, 184.0, 73.0], "bbox_xyxy_clipped": [748.0, 118.0, 932.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [773.0, 232.0, 190.0, 10.0], "bbox_xyxy_clipped": [773.0, 232.0, 963.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [773.0, 278.0, 190.0, 10.0], "bbox_xyxy_clipped": [773.0, 278.0, 963.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [704.0, 182.0, 246.0, 26.0], "bbox_xyxy_clipped": [704.0, 182.0, 950.0, 208.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [704.0, 226.0, 246.0, 20.0], "bbox_xyxy_clipped": [704.0, 226.0, 950.0, 246.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [670.0, 267.0, 280.0, 21.0], "bbox_xyxy_clipped": [670.0, 267.0, 950.0, 288.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [648.0, 337.0, 302.0, 17.0], "bbox_xyxy_clipped": [648.0, 337.0, 950.0, 354.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [718.0, 377.0, 232.0, 18.0], "bbox_xyxy_clipped": [718.0, 377.0, 950.0, 395.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 0.0, 188.0, 187.0], "bbox_xyxy_clipped": [52.0, 0.0, 240.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 160.0, 160.0], "bbox_xyxy_clipped": [0.0, 0.0, 160.0, 160.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016153563887252194}, "Ove": {"reason": null, "status": "ok", "value": 0.10505004352664846}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5909cfb695a7a863ddcd37cb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5909cfb695a7a863ddcd37cb/pipeline/l0_result.json", "sha256": "070e90095d658cb1f75b1b9e7849362fcb81c6dee4880aa2a4af62f8ee6ee903", "size_bytes": 10595}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5909cfb695a7a863ddcd37cb/inputs/pfull/asset_manifest.json", "sha256": "437678a4dfb4a7270a1d147f71be0fbc94b17ac76bb2946289374ead0c8a43e5", "size_bytes": 6000}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_02.png", "sha256": "24752d2de41f84d2dd8ee7e896b600ae5cbf6881f1137d43a2a1711572a21500", "size_bytes": 332495}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5909cfb695a7a863ddcd37cb/inputs/r3/r3_asset_manifest.json", "sha256": "cee71cb733e5f287408ec80bb92426ac839bf502fa75067b12ea5e2e90aebbaf", "size_bytes": 5331}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a1b5d0f65240d218933c89cd6b701c279dd8adf6f9f13ec62ccebdfa56d6f695", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [62.0, 20.0, 416.0, 277.0], "bbox_xyxy_clipped": [62.0, 20.0, 478.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [28.0, 36.0, 484.0, 364.0], "bbox_xyxy_clipped": [28.0, 36.0, 512.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 286.0, 540.0, 180.0], "bbox_xyxy_clipped": [0.0, 286.0, 540.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [235.0, 518.0, 70.0, 112.0], "bbox_xyxy_clipped": [235.0, 518.0, 305.0, 630.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [128.0, 536.0, 285.0, 42.0], "bbox_xyxy_clipped": [128.0, 536.0, 413.0, 578.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [143.0, 589.0, 255.0, 30.0], "bbox_xyxy_clipped": [143.0, 589.0, 398.0, 619.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [130.0, 628.0, 280.0, 25.0], "bbox_xyxy_clipped": [130.0, 628.0, 410.0, 653.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [136.0, 664.0, 268.0, 22.0], "bbox_xyxy_clipped": [136.0, 664.0, 404.0, 686.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [70.0, 512.0, 400.0, 5.0], "bbox_xyxy_clipped": [70.0, 512.0, 470.0, 517.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [82.0, 572.0, 376.0, 5.0], "bbox_xyxy_clipped": [82.0, 572.0, 458.0, 577.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [92.0, 616.0, 356.0, 5.0], "bbox_xyxy_clipped": [92.0, 616.0, 448.0, 621.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [82.0, 651.0, 376.0, 5.0], "bbox_xyxy_clipped": [82.0, 651.0, 458.0, 656.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032917868740542896}, "Ove": {"reason": null, "status": "ok", "value": 0.12956361985753803}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5914233f95a7a863ddcd777c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5914233f95a7a863ddcd777c/pipeline/l0_result.json", "sha256": "2914aa78753a64aeba90e98c6d17e6dcbb58766a39ec649c60ac516fef2664ff", "size_bytes": 10069}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5914233f95a7a863ddcd777c/inputs/pfull/asset_manifest.json", "sha256": "e1a2f21eeae5b1137191151e9225e756d1df9e9dbbab05ca807b4cf36d89958e", "size_bytes": 6397}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "sha256": "a1b5d0f65240d218933c89cd6b701c279dd8adf6f9f13ec62ccebdfa56d6f695", "size_bytes": 280151}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5914233f95a7a863ddcd777c/inputs/r3/r3_asset_manifest.json", "sha256": "5a24b9d343d53ee19e048d01b93909d9fc679dea60800f0321d427386dcc2df4", "size_bytes": 5557}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b29f181f3154af06a630d47a8ef273193377dea1bb12e5b2efef5448cf9eb567", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [24.0, 22.0, 170.0, 11.0], "bbox_xyxy_clipped": [24.0, 22.0, 194.0, 33.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [24.0, 44.0, 106.0, 48.0], "bbox_xyxy_clipped": [24.0, 44.0, 130.0, 92.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [186.0, 76.0, 110.0, 68.0], "bbox_xyxy_clipped": [186.0, 76.0, 296.0, 144.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [20.0, 150.0, 220.0, 131.0], "bbox_xyxy_clipped": [20.0, 150.0, 240.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [252.0, 94.0, 78.0, 47.0], "bbox_xyxy_clipped": [252.0, 94.0, 330.0, 141.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [286.0, 162.0, 44.0, 50.0], "bbox_xyxy_clipped": [286.0, 162.0, 330.0, 212.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [264.0, 224.0, 37.0, 43.0], "bbox_xyxy_clipped": [264.0, 224.0, 301.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [192.0, 318.0, 144.0, 7.0], "bbox_xyxy_clipped": [192.0, 318.0, 336.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [168.0, 462.0, 168.0, 11.0], "bbox_xyxy_clipped": [168.0, 462.0, 336.0, 473.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [308.0, 232.0, 30.0, 30.0], "bbox_xyxy_clipped": [308.0, 232.0, 338.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [302.0, 270.0, 30.0, 30.0], "bbox_xyxy_clipped": [302.0, 270.0, 332.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [306.0, 308.0, 30.0, 30.0], "bbox_xyxy_clipped": [306.0, 308.0, 336.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [300.0, 346.0, 30.0, 30.0], "bbox_xyxy_clipped": [300.0, 346.0, 330.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [304.0, 384.0, 30.0, 30.0], "bbox_xyxy_clipped": [304.0, 384.0, 334.0, 414.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [308.0, 422.0, 30.0, 30.0], "bbox_xyxy_clipped": [308.0, 422.0, 338.0, 452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [302.0, 460.0, 30.0, 30.0], "bbox_xyxy_clipped": [302.0, 460.0, 332.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [20.0, 318.0, 30.0, 30.0], "bbox_xyxy_clipped": [20.0, 318.0, 50.0, 348.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [58.0, 360.0, 30.0, 30.0], "bbox_xyxy_clipped": [58.0, 360.0, 88.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [96.0, 396.0, 30.0, 30.0], "bbox_xyxy_clipped": [96.0, 396.0, 126.0, 426.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [134.0, 428.0, 30.0, 30.0], "bbox_xyxy_clipped": [134.0, 428.0, 164.0, 458.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [78.0, 468.0, 30.0, 30.0], "bbox_xyxy_clipped": [78.0, 468.0, 108.0, 498.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [132.0, 450.0, 30.0, 30.0], "bbox_xyxy_clipped": [132.0, 450.0, 162.0, 480.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001761103236172567}, "Ove": {"reason": null, "status": "ok", "value": 0.028640309049916154}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "592d1a2b95a7a863ddcd97aa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592d1a2b95a7a863ddcd97aa/pipeline/l0_result.json", "sha256": "2abe6fe3a9bb36cdcb26d2c4815b14bfe4460a2d22f278e2a76a875161a41d41", "size_bytes": 15061}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592d1a2b95a7a863ddcd97aa/inputs/pfull/asset_manifest.json", "sha256": "c4ed4e962d11c6df7c39fcdf109fdc24e4ca26748635716eb0b3f5c03d5e776a", "size_bytes": 11370}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_03.png", "sha256": "b29f181f3154af06a630d47a8ef273193377dea1bb12e5b2efef5448cf9eb567", "size_bytes": 50184}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592d1a2b95a7a863ddcd97aa/inputs/r3/r3_asset_manifest.json", "sha256": "4fd4ea4082e962a9be0ba64f4a97a467b5e36aaa4ceb5bc35bfd2f2f30f5152a", "size_bytes": 9576}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "18eb0523b0ab1acf7160513406cfde35e8061122089a55a65df4a9ae9a8667a1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 220.0, 600.0], "bbox_xyxy_clipped": [0.0, 0.0, 220.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 150.0, 600.0], "bbox_xyxy_clipped": [0.0, 0.0, 150.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [520.0, 78.0, 420.0, 207.0], "bbox_xyxy_clipped": [520.0, 78.0, 940.0, 285.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [540.0, 18.0, 380.0, 48.0], "bbox_xyxy_clipped": [540.0, 18.0, 920.0, 66.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [555.0, 268.0, 360.0, 57.0], "bbox_xyxy_clipped": [555.0, 268.0, 915.0, 325.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [540.0, 132.0, 600.0, 57.0], "bbox_xyxy_clipped": [540.0, 132.0, 1140.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [540.0, 205.0, 520.0, 58.0], "bbox_xyxy_clipped": [540.0, 205.0, 1060.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [540.0, 289.0, 460.0, 48.0], "bbox_xyxy_clipped": [540.0, 289.0, 1000.0, 337.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [540.0, 363.0, 320.0, 138.0], "bbox_xyxy_clipped": [540.0, 363.0, 860.0, 501.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006538656520471737}, "Ove": {"reason": null, "status": "ok", "value": 0.18426399443040736}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "592fdd7e95a7a863ddcdbe67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592fdd7e95a7a863ddcdbe67/pipeline/l0_result.json", "sha256": "0e4f73d52b07890a4c53567aca661b2fd51f66ba4898ec638a1d888670ff0894", "size_bytes": 8293}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592fdd7e95a7a863ddcdbe67/inputs/pfull/asset_manifest.json", "sha256": "1c0e54a7789ebd4aa17c8382b18ec5951098b7a342c24f998e97db93c7bb8825", "size_bytes": 4914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_01.png", "sha256": "18eb0523b0ab1acf7160513406cfde35e8061122089a55a65df4a9ae9a8667a1", "size_bytes": 377131}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/592fdd7e95a7a863ddcdbe67/inputs/r3/r3_asset_manifest.json", "sha256": "10f75d0db370a7e5308da7d7455f83c4387799456c7d8c58e9560c71d257da08", "size_bytes": 4393}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e36461e6ae6e8b747ba4e99cfe25c8b0b94a285076257c2ade6483caa7f4827d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [36.0, 108.0, 126.0, 252.0], "bbox_xyxy_clipped": [36.0, 108.0, 162.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [385.0, 115.0, 190.0, 65.0], "bbox_xyxy_clipped": [385.0, 115.0, 575.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [58.0, 88.0, 214.0, 102.0], "bbox_xyxy_clipped": [58.0, 88.0, 272.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [39.0, 150.0, 118.0, 99.0], "bbox_xyxy_clipped": [39.0, 150.0, 157.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [123.0, 228.0, 355.0, 389.0], "bbox_xyxy_clipped": [123.0, 228.0, 478.0, 617.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [430.0, 714.0, 136.0, 84.0], "bbox_xyxy_clipped": [430.0, 714.0, 566.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [193.0, 770.0, 120.0, 71.0], "bbox_xyxy_clipped": [193.0, 770.0, 313.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [314.0, 786.0, 57.0, 49.0], "bbox_xyxy_clipped": [314.0, 786.0, 371.0, 835.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [371.0, 794.0, 104.0, 42.0], "bbox_xyxy_clipped": [371.0, 794.0, 475.0, 836.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [178.0, 850.0, 243.0, 77.0], "bbox_xyxy_clipped": [178.0, 850.0, 421.0, 927.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003620629487761602}, "Occ": {"reason": null, "status": "ok", "value": 0.002562529164244417}, "Ove": {"reason": null, "status": "ok", "value": 0.07387928917851747}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5930177f95a7a863ddcdc313", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5930177f95a7a863ddcdc313/pipeline/l0_result.json", "sha256": "0e0708e90b09de4e5349458c7b4c71c2ded90b677608fe2f7173569f6429f6a8", "size_bytes": 9183}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5930177f95a7a863ddcdc313/inputs/pfull/asset_manifest.json", "sha256": "52a0d299794d6fe354c614195b5144dc221ce2ea8cfeb14b7665d2f0bd7b0fe6", "size_bytes": 5400}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_03.png", "sha256": "e36461e6ae6e8b747ba4e99cfe25c8b0b94a285076257c2ade6483caa7f4827d", "size_bytes": 187244}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5930177f95a7a863ddcdc313/inputs/r3/r3_asset_manifest.json", "sha256": "e3e00e34742ae7f57e2c000e018c6c4bfdc18f7ece91c3ef0cc652afb2d105f8", "size_bytes": 4851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ea87652eac47197de443730cbe3b15c0bc9446e2827a009fc79a2b3ec6ae8788", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "asset_size_bytes": 4720, "kind": "asset", "pfull_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "r3_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "098faaace2db9293b83a766e8f49c32c91960bca84f91c8b2cf0c0a0000b0eb9", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 22, "valid": 20}, "elements": [{"asset_id": "asset_0021", "bbox_lwh_raw": [582.0, 88.0, 236.0, 102.0], "bbox_xyxy_clipped": [582.0, 88.0, 818.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [585.0, 200.0, 171.0, 23.0], "bbox_xyxy_clipped": [585.0, 200.0, 756.0, 223.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [584.0, 253.0, 243.0, 42.0], "bbox_xyxy_clipped": [584.0, 253.0, 827.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [540.0, 66.0, 295.0, 343.0], "bbox_xyxy_clipped": [540.0, 66.0, 835.0, 409.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [574.0, 171.0, 154.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [574.0, 226.0, 118.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [566.0, 317.0, 287.0, 68.0], "bbox_xyxy_clipped": [566.0, 317.0, 853.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [213.0, 173.0, 252.0, 227.0], "bbox_xyxy_clipped": [213.0, 173.0, 465.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [246.0, 192.0, 202.0, 236.0], "bbox_xyxy_clipped": [246.0, 192.0, 448.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [177.0, 164.0, 291.0, 199.0], "bbox_xyxy_clipped": [177.0, 164.0, 468.0, 363.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [253.0, 275.0, 221.0, 160.0], "bbox_xyxy_clipped": [253.0, 275.0, 474.0, 435.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [294.0, 243.0, 176.0, 163.0], "bbox_xyxy_clipped": [294.0, 243.0, 470.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [170.0, 135.0, 266.0, 205.0], "bbox_xyxy_clipped": [170.0, 135.0, 436.0, 340.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [140.0, 150.0, 176.0, 255.0], "bbox_xyxy_clipped": [140.0, 150.0, 316.0, 405.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [313.0, 154.0, 218.0, 114.0], "bbox_xyxy_clipped": [313.0, 154.0, 531.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [402.0, 196.0, 181.0, 138.0], "bbox_xyxy_clipped": [402.0, 196.0, 583.0, 334.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [417.0, 233.0, 165.0, 123.0], "bbox_xyxy_clipped": [417.0, 233.0, 582.0, 356.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [41.0, 39.0, 160.0, 131.0], "bbox_xyxy_clipped": [41.0, 39.0, 201.0, 170.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [18.0, 18.0, 121.0, 85.0], "bbox_xyxy_clipped": [18.0, 18.0, 139.0, 103.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [77.0, 98.0, 121.0, 85.0], "bbox_xyxy_clipped": [77.0, 98.0, 198.0, 183.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [23.0, 116.0, 89.0, 89.0], "bbox_xyxy_clipped": [23.0, 116.0, 112.0, 205.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [127.0, 74.0, 98.0, 98.0], "bbox_xyxy_clipped": [127.0, 74.0, 225.0, 172.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002667656958151535}, "Ove": {"reason": null, "status": "ok", "value": 0.6813923093436636}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "056aca6988933b052a2df876433d5518d7c24695c7944b47997e05011a73b75b", "status": "computed"}, "sample_id": "5931132c95a7a863ddcdc5d3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/pipeline/l0_result.json", "sha256": "d3ecfeb3804e5e972a15b65fea027c788ecc8f0a5f3f5116f860cbec0da6675a", "size_bytes": 15902}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/asset_manifest.json", "sha256": "660c79a78ec6c9ba955495cdadcb84129c9a73f5ae05c10160248cfe73dc7928", "size_bytes": 11863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_03.png", "sha256": "ea87652eac47197de443730cbe3b15c0bc9446e2827a009fc79a2b3ec6ae8788", "size_bytes": 256084}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/inputs/r3/r3_asset_manifest.json", "sha256": "83975dd61b8920610a024c180a9d048d600158fb0002fbbfa66901b81de3e8e8", "size_bytes": 9979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "44a2595c155d50d6eaa4070cdd27480ee6e7fdf6a951cdffa75613427dc6091a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "asset_size_bytes": 1856, "kind": "asset", "pfull_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "r3_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "93b6b3c3b1b77b78b9325f38d684b4d00a3eeb10e13f41a0250b52402f1457fe", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0017", "bbox_lwh_raw": [31.0, 39.0, 125.0, 79.0], "bbox_xyxy_clipped": [31.0, 39.0, 156.0, 118.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [55.0, 109.0, 144.0, 31.0], "bbox_xyxy_clipped": [55.0, 109.0, 199.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [54.0, 144.0, 98.0, 42.0], "bbox_xyxy_clipped": [54.0, 144.0, 152.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [45.0, 189.0, 177.0, 79.0], "bbox_xyxy_clipped": [45.0, 189.0, 222.0, 268.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [50.0, 272.0, 154.0, 12.0], "bbox_xyxy_clipped": [50.0, 272.0, 204.0, 284.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [154.0, 148.0, 132.0, 150.0], "bbox_xyxy_clipped": [154.0, 148.0, 286.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [218.0, 170.0, 97.0, 175.0], "bbox_xyxy_clipped": [218.0, 170.0, 315.0, 345.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [223.0, 72.0, 103.0, 109.0], "bbox_xyxy_clipped": [223.0, 72.0, 326.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [240.0, 54.0, 69.0, 73.0], "bbox_xyxy_clipped": [240.0, 54.0, 309.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [294.0, 137.0, 28.0, 30.0], "bbox_xyxy_clipped": [294.0, 137.0, 322.0, 167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [198.0, 149.0, 31.0, 33.0], "bbox_xyxy_clipped": [198.0, 149.0, 229.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [258.0, 214.0, 34.0, 37.0], "bbox_xyxy_clipped": [258.0, 214.0, 292.0, 251.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [20.0, 386.0, 276.0, 65.0], "bbox_xyxy_clipped": [20.0, 386.0, 296.0, 451.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [283.0, 426.0, 33.0, 22.0], "bbox_xyxy_clipped": [283.0, 426.0, 316.0, 448.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 318.0, 132.0, 191.0], "bbox_xyxy_clipped": [0.0, 318.0, 132.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [191.0, 96.0, 22.0, 24.0], "bbox_xyxy_clipped": [191.0, 96.0, 213.0, 120.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [250.0, 117.0, 24.0, 32.0], "bbox_xyxy_clipped": [250.0, 117.0, 274.0, 149.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.03634396835475925}, "Ove": {"reason": null, "status": "ok", "value": 0.09692072830297824}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e149f044c8861ee5953956a680d30cac4452b24565a8f6870fdcfce36e79d002", "status": "computed"}, "sample_id": "59313e5495a7a863ddcdc9ac", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/pipeline/l0_result.json", "sha256": "1296fd2ebb4a6daa45388361a434f0f7f5ef56e09dc23ddfc5c2b058b13e007d", "size_bytes": 14176}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/asset_manifest.json", "sha256": "4955fab9d109330bdff3c99f057f88251ba8583ab613dba883844628b6f22816", "size_bytes": 9415}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "sha256": "44a2595c155d50d6eaa4070cdd27480ee6e7fdf6a951cdffa75613427dc6091a", "size_bytes": 85242}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/inputs/r3/r3_asset_manifest.json", "sha256": "f40c160b517f39fa35d04ae50b6daec75a13d9f2110483944f0ce3a577939c70", "size_bytes": 8037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "size_bytes": 1856}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "dc89c0ba36f6741cdce407acf59235a7470ad2d2a02498996197bb76932b0912", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [34.0, 28.0, 124.0, 29.0], "bbox_xyxy_clipped": [34.0, 28.0, 158.0, 57.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [34.0, 63.0, 92.0, 25.0], "bbox_xyxy_clipped": [34.0, 63.0, 126.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 96.0, 128.0, 27.0], "bbox_xyxy_clipped": [34.0, 96.0, 162.0, 123.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [34.0, 134.0, 99.0, 26.0], "bbox_xyxy_clipped": [34.0, 134.0, 133.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [36.0, 232.0, 117.0, 20.0], "bbox_xyxy_clipped": [36.0, 232.0, 153.0, 252.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 256.0, 114.0, 41.0], "bbox_xyxy_clipped": [36.0, 256.0, 150.0, 297.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [212.0, 18.0, 207.0, 148.0], "bbox_xyxy_clipped": [212.0, 18.0, 419.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [250.0, 154.0, 112.0, 98.0], "bbox_xyxy_clipped": [250.0, 154.0, 362.0, 252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [289.0, 95.0, 75.0, 86.0], "bbox_xyxy_clipped": [289.0, 95.0, 364.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 72.0, 51.0], "bbox_xyxy_clipped": [0.0, 0.0, 72.0, 51.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [346.0, 3.0, 73.0, 75.0], "bbox_xyxy_clipped": [346.0, 3.0, 419.0, 78.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0028354166027288494}, "Ove": {"reason": null, "status": "ok", "value": 0.054844761611059646}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5952704d95a7a863ddcdecb5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952704d95a7a863ddcdecb5/pipeline/l0_result.json", "sha256": "a42070560e416d63906d33e59dcd6e55fd972f921fbc40fd0f130f1d4790599c", "size_bytes": 11387}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952704d95a7a863ddcdecb5/inputs/pfull/asset_manifest.json", "sha256": "718f9e6524633efd23ed9c10731d8eaed4d6ff70645751a2b03a72a8482fb5dd", "size_bytes": 5909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_02.png", "sha256": "dc89c0ba36f6741cdce407acf59235a7470ad2d2a02498996197bb76932b0912", "size_bytes": 56528}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952704d95a7a863ddcdecb5/inputs/r3/r3_asset_manifest.json", "sha256": "ad87afc8ea468c77e268c759796c36aa8027a895ee5ab30b10718c6857721aab", "size_bytes": 5358}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fc72e5de89af6a2fb8e7acca8c1e0693415a66d5ff695acea19ab4b91fe3f308", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 18.0, 245.0, 366.0], "bbox_xyxy_clipped": [18.0, 18.0, 263.0, 384.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [34.0, 388.0, 205.0, 135.0], "bbox_xyxy_clipped": [34.0, 388.0, 239.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 531.0, 165.0, 111.0], "bbox_xyxy_clipped": [58.0, 531.0, 223.0, 642.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [285.0, 92.0, 172.0, 258.0], "bbox_xyxy_clipped": [285.0, 92.0, 457.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [310.0, 365.0, 175.0, 9.0], "bbox_xyxy_clipped": [310.0, 365.0, 485.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [325.0, 412.0, 150.0, 229.0], "bbox_xyxy_clipped": [325.0, 412.0, 475.0, 641.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [445.0, 289.0, 85.0, 30.0], "bbox_xyxy_clipped": [445.0, 289.0, 530.0, 319.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [323.0, 44.0, 173.0, 11.0], "bbox_xyxy_clipped": [323.0, 44.0, 496.0, 55.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [324.0, 60.0, 149.0, 21.0], "bbox_xyxy_clipped": [324.0, 60.0, 473.0, 81.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [366.0, 92.0, 101.0, 17.0], "bbox_xyxy_clipped": [366.0, 92.0, 467.0, 109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [309.0, 145.0, 202.0, 14.0], "bbox_xyxy_clipped": [309.0, 145.0, 511.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [320.0, 190.0, 176.0, 24.0], "bbox_xyxy_clipped": [320.0, 190.0, 496.0, 214.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [320.0, 222.0, 139.0, 12.0], "bbox_xyxy_clipped": [320.0, 222.0, 459.0, 234.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [322.0, 670.0, 190.0, 36.0], "bbox_xyxy_clipped": [322.0, 670.0, 512.0, 706.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003920789436468076}, "Ove": {"reason": null, "status": "ok", "value": 0.014139962200622403}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5952794195a7a863ddcdf36a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952794195a7a863ddcdf36a/pipeline/l0_result.json", "sha256": "b7db638369b3b7ff74b2c3a4e9bc543e2f5068905d07438684733c23d6e41957", "size_bytes": 12406}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952794195a7a863ddcdf36a/inputs/pfull/asset_manifest.json", "sha256": "a893cee4501e851d0df2333fa9dd4561f9c8cd3f960360b0c73c1fd3339b20a1", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_01.png", "sha256": "fc72e5de89af6a2fb8e7acca8c1e0693415a66d5ff695acea19ab4b91fe3f308", "size_bytes": 307961}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952794195a7a863ddcdf36a/inputs/r3/r3_asset_manifest.json", "sha256": "895530d3e276b9d37f0dc706360f4a61db27faac2461dbff01cc8703fdd20b56", "size_bytes": 6821}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "49b00e451cca4f7e1aebe7a3c217783a795cb4e55d3049dc6d7c0e3d26fbd52c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "asset_size_bytes": 1851, "kind": "asset", "pfull_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "r3_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [201.0, 330.0, 138.0, 111.0], "bbox_xyxy_clipped": [201.0, 330.0, 339.0, 441.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 42.0, 186.0, 34.0], "bbox_xyxy_clipped": [34.0, 42.0, 220.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [36.0, 92.0, 205.0, 21.0], "bbox_xyxy_clipped": [36.0, 92.0, 241.0, 113.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 121.0, 225.0, 22.0], "bbox_xyxy_clipped": [36.0, 121.0, 261.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [36.0, 165.0, 170.0, 21.0], "bbox_xyxy_clipped": [36.0, 165.0, 206.0, 186.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [36.0, 193.0, 198.0, 34.0], "bbox_xyxy_clipped": [36.0, 193.0, 234.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [238.0, 68.0, 94.0, 3.0], "bbox_xyxy_clipped": [238.0, 68.0, 332.0, 71.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [230.0, 456.0, 119.0, 4.0], "bbox_xyxy_clipped": [230.0, 456.0, 349.0, 460.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005014530431639834}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5952934395a7a863ddcdff21", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/pipeline/l0_result.json", "sha256": "3d2ee7865ebf1f78578f10167f6e6cc7e5d7835b18fa332a037f2e5b6e919214", "size_bytes": 8463}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/inputs/pfull/asset_manifest.json", "sha256": "87a510bcd8e8c1b85c9ec98ae6093e8cfd1cd9af0d8680404d3d2de708cf1f44", "size_bytes": 5048}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_03.png", "sha256": "49b00e451cca4f7e1aebe7a3c217783a795cb4e55d3049dc6d7c0e3d26fbd52c", "size_bytes": 58497}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/inputs/r3/r3_asset_manifest.json", "sha256": "7d6130218464fc0a9f9c8d79e827b3d82b61f2168aa756ca4df2545c145efa12", "size_bytes": 4497}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "size_bytes": 1851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3ff2d8ff773746de73ef5777dd0caf17f6c57abb67c22154602049c958552d98", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "asset_size_bytes": 1586, "kind": "asset", "pfull_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "r3_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "3115e826093ff292c80e054f014976ad1a1105ba523634cbe5b41f8817b3439e", "canvas": {"height": 600, "width": 160}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [13.0, 102.0, 135.0, 18.0], "bbox_xyxy_clipped": [13.0, 102.0, 148.0, 120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [16.0, 161.0, 128.0, 19.0], "bbox_xyxy_clipped": [16.0, 161.0, 144.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [35.0, 228.0, 91.0, 33.0], "bbox_xyxy_clipped": [35.0, 228.0, 126.0, 261.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [32.0, 273.0, 96.0, 32.0], "bbox_xyxy_clipped": [32.0, 273.0, 128.0, 305.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [78.0, 78.0, 3.0, 55.0], "bbox_xyxy_clipped": [78.0, 78.0, 81.0, 133.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [95.0, 378.0, 44.0, 81.0], "bbox_xyxy_clipped": [95.0, 378.0, 139.0, 459.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002660298393159705}, "Ove": {"reason": null, "status": "ok", "value": 0.0035419126328217238}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "ff5a7814d740163fe578c1a93a16bc8aa267803c6acfd9bdf3450948893c935c", "status": "computed"}, "sample_id": "599ecb061350e83293007738", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/pipeline/l0_result.json", "sha256": "73ba8d68872cfc50638182271f20dd3d7f747be056ee61911f5b0946dd83fe5f", "size_bytes": 7227}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/inputs/pfull/asset_manifest.json", "sha256": "2348ac9ffcbda8ea5837898f068a2d50fb83bc0b3ca445e4b5ec9043ff749258", "size_bytes": 3952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/renders/r0_candidate_02.png", "sha256": "3ff2d8ff773746de73ef5777dd0caf17f6c57abb67c22154602049c958552d98", "size_bytes": 27669}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/inputs/r3/r3_asset_manifest.json", "sha256": "3152287850a0720fbbddb47efb3df9b6ae91c1c331594840ad4f5bf9ff58086c", "size_bytes": 3572}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "size_bytes": 1586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "414508c7b4ddce3f95231f58df2b99273d44a4e0364cc8c47bf024d7bcd63e6d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 20, "valid": 19}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [47.0, 135.0, 267.0, 397.0], "bbox_xyxy_clipped": [47.0, 135.0, 314.0, 532.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [28.0, 487.0, 180.0, 270.0], "bbox_xyxy_clipped": [28.0, 487.0, 208.0, 757.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [72.0, 56.0, 154.0, 154.0], "bbox_xyxy_clipped": [72.0, 56.0, 226.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [346.0, 74.0, 120.0, 112.0], "bbox_xyxy_clipped": [346.0, 74.0, 466.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [339.0, 210.0, 165.0, 24.0], "bbox_xyxy_clipped": [339.0, 210.0, 504.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [415.0, 243.0, 95.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [55.0, 34.0, 380.0, 485.0], "bbox_xyxy_clipped": [55.0, 34.0, 435.0, 519.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [388.0, 548.0, 96.0, 96.0], "bbox_xyxy_clipped": [388.0, 548.0, 484.0, 644.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [313.0, 585.0, 170.0, 167.0], "bbox_xyxy_clipped": [313.0, 585.0, 483.0, 752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [467.0, 324.0, 46.0, 42.0], "bbox_xyxy_clipped": [467.0, 324.0, 513.0, 366.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [288.0, 382.0, 235.0, 128.0], "bbox_xyxy_clipped": [288.0, 382.0, 523.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [309.0, 528.0, 131.0, 80.0], "bbox_xyxy_clipped": [309.0, 528.0, 440.0, 608.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [451.0, 673.0, 72.0, 60.0], "bbox_xyxy_clipped": [451.0, 673.0, 523.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [316.0, 52.0, 139.0, 23.0], "bbox_xyxy_clipped": [316.0, 52.0, 455.0, 75.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [351.0, 84.0, 111.0, 30.0], "bbox_xyxy_clipped": [351.0, 84.0, 462.0, 114.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [303.0, 127.0, 144.0, 33.0], "bbox_xyxy_clipped": [303.0, 127.0, 447.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [316.0, 224.0, 194.0, 54.0], "bbox_xyxy_clipped": [316.0, 224.0, 510.0, 278.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [320.0, 304.0, 182.0, 47.0], "bbox_xyxy_clipped": [320.0, 304.0, 502.0, 351.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [331.0, 721.0, 184.0, 13.0], "bbox_xyxy_clipped": [331.0, 721.0, 515.0, 734.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [448.0, 507.0, 64.0, 39.0], "bbox_xyxy_clipped": [448.0, 507.0, 512.0, 546.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003715862658373567}, "Ove": {"reason": null, "status": "ok", "value": 0.1336881221848344}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "59b2809c1350e8329300dbe4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59b2809c1350e8329300dbe4/pipeline/l0_result.json", "sha256": "ed17a72e147fab49462c7b28d5a8c2efff05a23a5fc5434ec0e3653ab0c52f3e", "size_bytes": 16831}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59b2809c1350e8329300dbe4/inputs/pfull/asset_manifest.json", "sha256": "f49afeb4d171272ce30cd0d20a2488ccbbb298c15aa7fd7da6424a2bde290802", "size_bytes": 10452}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_02.png", "sha256": "414508c7b4ddce3f95231f58df2b99273d44a4e0364cc8c47bf024d7bcd63e6d", "size_bytes": 246201}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59b2809c1350e8329300dbe4/inputs/r3/r3_asset_manifest.json", "sha256": "90b0c09b33698eae6477f0373c83f2c826f1e7b864fa4dc8f4c0e99bc6496e8c", "size_bytes": 9047}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "03b2327e85a0a5aa3944746267f9d2014a91a373abd36fe401fb2f6debc962da", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "asset_size_bytes": 3534, "kind": "asset", "pfull_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "r3_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "88a14e36481d902d326851ec9181179de60acb3e3b8857685ec64e33c6db22dc", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [108.0, 55.0, 261.0, 44.0], "bbox_xyxy_clipped": [108.0, 55.0, 369.0, 99.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [80.0, 104.0, 360.0, 44.0], "bbox_xyxy_clipped": [80.0, 104.0, 440.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [172.0, 170.0, 196.0, 56.0], "bbox_xyxy_clipped": [172.0, 170.0, 368.0, 226.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [393.0, 183.0, 31.0, 32.0], "bbox_xyxy_clipped": [393.0, 183.0, 424.0, 215.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [88.0, 244.0, 366.0, 52.0], "bbox_xyxy_clipped": [88.0, 244.0, 454.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [86.0, 308.0, 370.0, 52.0], "bbox_xyxy_clipped": [86.0, 308.0, 456.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [149.0, 258.0, 243.0, 160.0], "bbox_xyxy_clipped": [149.0, 258.0, 392.0, 418.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [385.0, 377.0, 96.0, 115.0], "bbox_xyxy_clipped": [385.0, 377.0, 481.0, 492.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [166.0, 432.0, 24.0, 40.0], "bbox_xyxy_clipped": [166.0, 432.0, 190.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [193.0, 432.0, 24.0, 40.0], "bbox_xyxy_clipped": [193.0, 432.0, 217.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [220.0, 432.0, 24.0, 40.0], "bbox_xyxy_clipped": [220.0, 432.0, 244.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [247.0, 432.0, 17.0, 39.0], "bbox_xyxy_clipped": [247.0, 432.0, 264.0, 471.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 1.434103110237994e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.03944083094352017}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7477000bd00b63645744c2011f087e6d08386f5cb52d5fe47fec077ce4db1da1", "status": "computed"}, "sample_id": "59bb96701350e8329301120a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/pipeline/l0_result.json", "sha256": "0023f2d426f6d85a67639f193f007d4d5678d268e5d458092f0ef300ec6b50df", "size_bytes": 10368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/inputs/pfull/asset_manifest.json", "sha256": "b3a3933a23cd8d65625205b6ef2d60c144071b82d72efac572915af55a852b92", "size_bytes": 6899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "sha256": "03b2327e85a0a5aa3944746267f9d2014a91a373abd36fe401fb2f6debc962da", "size_bytes": 60188}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/inputs/r3/r3_asset_manifest.json", "sha256": "87359ddc3a52bbd2db43f02b7706236ee7aef3a97a663f9ef9c35c16c043ba18", "size_bytes": 6099}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "size_bytes": 3534}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9fa360f501c4c317f611f15f1c43e33ee0bc6127800ab48f8cafb7b5694503c4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "asset_size_bytes": 4721, "kind": "asset", "pfull_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "r3_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e9708568a1fecab05eac14b6ec245d1f5576515e93def3fa254f5551e23f847d", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [175.0, 64.0, 242.0, 68.0], "bbox_xyxy_clipped": [175.0, 64.0, 417.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [394.0, 82.0, 132.0, 61.0], "bbox_xyxy_clipped": [394.0, 82.0, 526.0, 143.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [520.0, 58.0, 326.0, 71.0], "bbox_xyxy_clipped": [520.0, 58.0, 846.0, 129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [255.0, 164.0, 430.0, 49.0], "bbox_xyxy_clipped": [255.0, 164.0, 685.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [374.0, 538.0, 167.0, 205.0], "bbox_xyxy_clipped": [374.0, 538.0, 541.0, 743.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [492.0, 542.0, 153.0, 188.0], "bbox_xyxy_clipped": [492.0, 542.0, 645.0, 730.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [334.0, 585.0, 272.0, 190.0], "bbox_xyxy_clipped": [334.0, 585.0, 606.0, 775.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [244.0, 606.0, 149.0, 87.0], "bbox_xyxy_clipped": [244.0, 606.0, 393.0, 693.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [611.0, 602.0, 149.0, 87.0], "bbox_xyxy_clipped": [611.0, 602.0, 760.0, 689.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [28.0, 488.0, 128.0, 130.0], "bbox_xyxy_clipped": [28.0, 488.0, 156.0, 618.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [807.0, 480.0, 118.0, 120.0], "bbox_xyxy_clipped": [807.0, 480.0, 925.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [82.0, 628.0, 92.0, 98.0], "bbox_xyxy_clipped": [82.0, 628.0, 174.0, 726.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [772.0, 628.0, 92.0, 98.0], "bbox_xyxy_clipped": [772.0, 628.0, 864.0, 726.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [442.0, 708.0, 92.0, 98.0], "bbox_xyxy_clipped": [442.0, 708.0, 534.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [26.0, 296.0, 120.0, 176.0], "bbox_xyxy_clipped": [26.0, 296.0, 146.0, 472.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [776.0, 286.0, 125.0, 133.0], "bbox_xyxy_clipped": [776.0, 286.0, 901.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0003677706233343086}, "Ove": {"reason": null, "status": "ok", "value": 0.08481737007792338}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "232d5b6cffc423c12d07a02a86a949937d399fa14c36754e17b0449871afce50", "status": "computed"}, "sample_id": "5a034425d8141396fe9898fa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/pipeline/l0_result.json", "sha256": "15549df5cdd2a7a13768ed3422454a60b5d072123edb3cd398bfac9aaefd459d", "size_bytes": 13106}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/inputs/pfull/asset_manifest.json", "sha256": "be4fbd1be4eea6b418aa25caf963fc7ed0af6741de30ac8a75008944d7a1e2a9", "size_bytes": 8870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_03.png", "sha256": "9fa360f501c4c317f611f15f1c43e33ee0bc6127800ab48f8cafb7b5694503c4", "size_bytes": 200784}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/inputs/r3/r3_asset_manifest.json", "sha256": "01897003fba072c166b817060a62e5adf6cdd9737b1d962f7cc619d65e64eec2", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "size_bytes": 4721}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "81f17af9d16195b561e782ac4f171c1c4b6e460f5698bc37aa558d36f2600e12", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 24, "valid": 23}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [220.0, 58.0, 2120.0, 1194.0], "bbox_xyxy_clipped": [220.0, 58.0, 2340.0, 1252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [286.0, 86.0, 760.0, 494.0], "bbox_xyxy_clipped": [286.0, 86.0, 1046.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1514.0, 86.0, 760.0, 494.0], "bbox_xyxy_clipped": [1514.0, 86.0, 2274.0, 580.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1255.0, 178.0, 430.0, 454.0], "bbox_xyxy_clipped": [1255.0, 178.0, 1685.0, 632.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1748.0, 198.0, 430.0, 453.0], "bbox_xyxy_clipped": [1748.0, 198.0, 2178.0, 651.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [404.0, 702.0, 1820.0, 16.0], "bbox_xyxy_clipped": [404.0, 702.0, 2224.0, 718.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [354.0, 742.0, 1920.0, 100.0], "bbox_xyxy_clipped": [354.0, 742.0, 2274.0, 842.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [330.0, 860.0, 1960.0, 116.0], "bbox_xyxy_clipped": [330.0, 860.0, 2290.0, 976.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [300.0, 995.0, 2000.0, 12.0], "bbox_xyxy_clipped": [300.0, 995.0, 2300.0, 1007.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1820.0, 140.0, 250.0, 238.0], "bbox_xyxy_clipped": [1820.0, 140.0, 2070.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1968.0, 286.0, 120.0, 114.0], "bbox_xyxy_clipped": [1968.0, 286.0, 2088.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1047.0, 150.0, 466.0, 241.0], "bbox_xyxy_clipped": [1047.0, 150.0, 1513.0, 391.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1122.0, 386.0, 317.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [612.0, 166.0, 300.0, 80.0], "bbox_xyxy_clipped": [612.0, 166.0, 912.0, 246.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [842.0, 242.0, 120.0, 120.0], "bbox_xyxy_clipped": [842.0, 242.0, 962.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1004.0, 250.0, 110.0, 110.0], "bbox_xyxy_clipped": [1004.0, 250.0, 1114.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1238.0, 122.0, 290.0, 280.0], "bbox_xyxy_clipped": [1238.0, 122.0, 1528.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [458.0, 1030.0, 1010.0, 371.0], "bbox_xyxy_clipped": [458.0, 1030.0, 1468.0, 1401.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1390.0, 1040.0, 1010.0, 371.0], "bbox_xyxy_clipped": [1390.0, 1040.0, 2400.0, 1411.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1548.0, 470.0, 310.0, 310.0], "bbox_xyxy_clipped": [1548.0, 470.0, 1858.0, 780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [770.0, 885.0, 1320.0, 294.0], "bbox_xyxy_clipped": [770.0, 885.0, 2090.0, 1179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [620.0, 1108.0, 1320.0, 196.0], "bbox_xyxy_clipped": [620.0, 1108.0, 1940.0, 1304.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [1170.0, 1292.0, 220.0, 210.0], "bbox_xyxy_clipped": [1170.0, 1292.0, 1390.0, 1440.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [628.0, 1228.0, 1308.0, 199.0], "bbox_xyxy_clipped": [628.0, 1228.0, 1936.0, 1427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005240541469476317}, "Ove": {"reason": null, "status": "ok", "value": 0.26685865141609616}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "5a21848dd8141396fe9a33eb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a21848dd8141396fe9a33eb/pipeline/l0_result.json", "sha256": "f80b1234d4b16ab781f91e9d9bafbca0f50c6e0b0bc5f83f3378871701145700", "size_bytes": 17903}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a21848dd8141396fe9a33eb/inputs/pfull/asset_manifest.json", "sha256": "1cac10bdca27a3f874e0999673684464c39a6180cae942b29b495b3d8c861dc1", "size_bytes": 12265}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_02.png", "sha256": "81f17af9d16195b561e782ac4f171c1c4b6e460f5698bc37aa558d36f2600e12", "size_bytes": 2085881}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a21848dd8141396fe9a33eb/inputs/r3/r3_asset_manifest.json", "sha256": "5cfd97bc3f0325f04b3051603f48302f9315d762d78b078852291eeebc190799", "size_bytes": 10327}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1e0251ddbe1d181194a86ef9b4a6db6a646db871f7ef6a33a9ac71d43618e73d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 9, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1150.0, 195.0, 680.0, 680.0], "bbox_xyxy_clipped": [1150.0, 195.0, 1830.0, 875.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1160.0, 160.0, 640.0, 642.0], "bbox_xyxy_clipped": [1160.0, 160.0, 1800.0, 802.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [120.0, 150.0, 260.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 820.0, 260.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 110.0, 430.0, 159.0], "bbox_xyxy_clipped": [120.0, 110.0, 550.0, 269.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [120.0, 290.0, 380.0, 50.0], "bbox_xyxy_clipped": [120.0, 290.0, 500.0, 340.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 520.0, 330.0, 36.0], "bbox_xyxy_clipped": [120.0, 520.0, 450.0, 556.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 575.0, 240.0, 33.0], "bbox_xyxy_clipped": [120.0, 575.0, 360.0, 608.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 910.0, 320.0, 39.0], "bbox_xyxy_clipped": [120.0, 910.0, 440.0, 949.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0022027819631353918}, "Ove": {"reason": null, "status": "ok", "value": 0.11447430457331446}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5a240260d8141396fe9a9de3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a240260d8141396fe9a9de3/pipeline/l0_result.json", "sha256": "5b10ee4a094158aa33118b3dd30d31e6ae55bcf8d25628d62f4cca59d6fbf3ca", "size_bytes": 9787}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a240260d8141396fe9a9de3/inputs/pfull/asset_manifest.json", "sha256": "86bdd5c6044c82002e0004b988d35e02cd55586234451d8562a898a7f177f265", "size_bytes": 4946}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_03.png", "sha256": "1e0251ddbe1d181194a86ef9b4a6db6a646db871f7ef6a33a9ac71d43618e73d", "size_bytes": 423915}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a240260d8141396fe9a9de3/inputs/r3/r3_asset_manifest.json", "sha256": "88bd9f5a4dddb82ee8fc53f4ab5ceeb92dc05f9b1e9ea9446c07c48966c35158", "size_bytes": 4479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f12f58d63ceb6a1f032a2db3fce1cc3625ab74544d7779dcc92eb5c8fe3b920d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [20.0, 220.0, 560.0, 98.0], "bbox_xyxy_clipped": [20.0, 220.0, 580.0, 318.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 88.0, 300.0, 63.0], "bbox_xyxy_clipped": [150.0, 88.0, 450.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [125.0, 145.0, 350.0, 60.0], "bbox_xyxy_clipped": [125.0, 145.0, 475.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [112.0, 206.0, 376.0, 36.0], "bbox_xyxy_clipped": [112.0, 206.0, 488.0, 242.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [92.0, 258.0, 416.0, 42.0], "bbox_xyxy_clipped": [92.0, 258.0, 508.0, 300.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [125.0, 402.0, 350.0, 350.0], "bbox_xyxy_clipped": [125.0, 402.0, 475.0, 752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [35.0, 515.0, 170.0, 340.0], "bbox_xyxy_clipped": [35.0, 515.0, 205.0, 855.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [420.0, 520.0, 135.0, 135.0], "bbox_xyxy_clipped": [420.0, 520.0, 555.0, 655.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [210.0, 690.0, 130.0, 130.0], "bbox_xyxy_clipped": [210.0, 690.0, 340.0, 820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025734221208123897}, "Ove": {"reason": null, "status": "ok", "value": 0.08197029934107498}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5a26bcecd8141396fe9ac474", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a26bcecd8141396fe9ac474/pipeline/l0_result.json", "sha256": "f226eda6cc5a504f678ba66bbcf679d61f3806a3bed9d53e55150fbb099c1592", "size_bytes": 8680}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a26bcecd8141396fe9ac474/inputs/pfull/asset_manifest.json", "sha256": "9509d8e9fec33c7afb4f12a8c16148bbe9176941c4a59195da8e634f65fdf304", "size_bytes": 4910}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "sha256": "f12f58d63ceb6a1f032a2db3fce1cc3625ab74544d7779dcc92eb5c8fe3b920d", "size_bytes": 132073}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a26bcecd8141396fe9ac474/inputs/r3/r3_asset_manifest.json", "sha256": "c5c21479efdb921076eb245ee1eb2938d0c061cc22004b7ef03a4ceeb87793e9", "size_bytes": 4334}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2bb808cc14dd0d9ee6015cf9fc31076f78ef6b66cf3b03b9198e0eb9839e6304", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [75.0, 70.0, 320.0, 53.0], "bbox_xyxy_clipped": [75.0, 70.0, 395.0, 123.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [78.0, 134.0, 300.0, 32.0], "bbox_xyxy_clipped": [78.0, 134.0, 378.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [78.0, 172.0, 285.0, 33.0], "bbox_xyxy_clipped": [78.0, 172.0, 363.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [76.0, 260.0, 315.0, 32.0], "bbox_xyxy_clipped": [76.0, 260.0, 391.0, 292.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [76.0, 300.0, 316.0, 61.0], "bbox_xyxy_clipped": [76.0, 300.0, 392.0, 361.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [76.0, 400.0, 287.0, 28.0], "bbox_xyxy_clipped": [76.0, 400.0, 363.0, 428.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [76.0, 437.0, 284.0, 57.0], "bbox_xyxy_clipped": [76.0, 437.0, 360.0, 494.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [76.0, 536.0, 265.0, 30.0], "bbox_xyxy_clipped": [76.0, 536.0, 341.0, 566.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [76.0, 574.0, 286.0, 57.0], "bbox_xyxy_clipped": [76.0, 574.0, 362.0, 631.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [675.0, 60.0, 235.0, 93.0], "bbox_xyxy_clipped": [675.0, 60.0, 910.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [696.0, 180.0, 198.0, 247.0], "bbox_xyxy_clipped": [696.0, 180.0, 894.0, 427.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [702.0, 455.0, 198.0, 42.0], "bbox_xyxy_clipped": [702.0, 455.0, 900.0, 497.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [70.0, 224.0, 62.0, 76.0], "bbox_xyxy_clipped": [70.0, 224.0, 132.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [150.0, 218.0, 64.0, 49.0], "bbox_xyxy_clipped": [150.0, 218.0, 214.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [232.0, 225.0, 54.0, 50.0], "bbox_xyxy_clipped": [232.0, 225.0, 286.0, 275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0027115918761221316}, "Ove": {"reason": null, "status": "ok", "value": 0.016040203071782017}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5a9968cff07aee6977a29a68", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a9968cff07aee6977a29a68/pipeline/l0_result.json", "sha256": "ac09d1baef6eed2b007473bb3285f341a947f186569df0f574cf6478b35e86d8", "size_bytes": 12861}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a9968cff07aee6977a29a68/inputs/pfull/asset_manifest.json", "sha256": "85c558274751c79573ebaf6cc3da59bc58d6912bca93189b60793fd043ff89d8", "size_bytes": 8373}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_03.png", "sha256": "2bb808cc14dd0d9ee6015cf9fc31076f78ef6b66cf3b03b9198e0eb9839e6304", "size_bytes": 146182}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5a9968cff07aee6977a29a68/inputs/r3/r3_asset_manifest.json", "sha256": "c4457392b582054d433fb29c7f2344ad9df34f1e83e6e5fc691c181d81d82fd1", "size_bytes": 7627}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d1f48cf686b75b640a7b03f7d2599890901feeab509578a8ce66664a8be76430", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 21, "valid": 21}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [54.0, 64.0, 340.0, 340.0], "bbox_xyxy_clipped": [54.0, 64.0, 394.0, 404.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [182.0, 92.0, 178.0, 147.0], "bbox_xyxy_clipped": [182.0, 92.0, 360.0, 239.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 472.0, 220.0, 182.0], "bbox_xyxy_clipped": [88.0, 472.0, 308.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 154.0, 310.0, 89.0], "bbox_xyxy_clipped": [58.0, 154.0, 368.0, 243.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [96.0, 206.0, 246.0, 71.0], "bbox_xyxy_clipped": [96.0, 206.0, 342.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [84.0, 120.0, 262.0, 99.0], "bbox_xyxy_clipped": [84.0, 120.0, 346.0, 219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [132.0, 178.0, 206.0, 159.0], "bbox_xyxy_clipped": [132.0, 178.0, 338.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [246.0, 104.0, 150.0, 80.0], "bbox_xyxy_clipped": [246.0, 104.0, 396.0, 184.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [104.0, 264.0, 178.0, 164.0], "bbox_xyxy_clipped": [104.0, 264.0, 282.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [626.0, 760.0, 232.0, 111.0], "bbox_xyxy_clipped": [626.0, 760.0, 858.0, 871.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [694.0, 818.0, 172.0, 134.0], "bbox_xyxy_clipped": [694.0, 818.0, 866.0, 952.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [98.0, 584.0, 96.0, 88.0], "bbox_xyxy_clipped": [98.0, 584.0, 194.0, 672.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [178.0, 626.0, 86.0, 96.0], "bbox_xyxy_clipped": [178.0, 626.0, 264.0, 722.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [252.0, 246.0, 204.0, 184.0], "bbox_xyxy_clipped": [252.0, 246.0, 456.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [330.0, 70.0, 38.0, 113.0], "bbox_xyxy_clipped": [330.0, 70.0, 368.0, 183.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [70.0, 88.0, 370.0, 126.0], "bbox_xyxy_clipped": [70.0, 88.0, 440.0, 214.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [160.0, 172.0, 356.0, 102.0], "bbox_xyxy_clipped": [160.0, 172.0, 516.0, 274.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [226.0, 252.0, 248.0, 122.0], "bbox_xyxy_clipped": [226.0, 252.0, 474.0, 374.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [644.0, 720.0, 330.0, 61.0], "bbox_xyxy_clipped": [644.0, 720.0, 974.0, 781.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [676.0, 798.0, 262.0, 61.0], "bbox_xyxy_clipped": [676.0, 798.0, 938.0, 859.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [728.0, 884.0, 274.0, 34.0], "bbox_xyxy_clipped": [728.0, 884.0, 1002.0, 918.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004728783199677505}, "Ove": {"reason": null, "status": "ok", "value": 0.5930382487756437}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5aa915fef07aee69773a3ef4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5aa915fef07aee69773a3ef4/pipeline/l0_result.json", "sha256": "a745245b94e6b61a90ee997652c52cb30c53f0696f718b82f4ca7ce4e0321cdf", "size_bytes": 15863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5aa915fef07aee69773a3ef4/inputs/pfull/asset_manifest.json", "sha256": "d9dfe752f0a85ee80b5975a77fa361c9d087f9845f7454529d34d3bbb1b1b0ec", "size_bytes": 10862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_01.png", "sha256": "d1f48cf686b75b640a7b03f7d2599890901feeab509578a8ce66664a8be76430", "size_bytes": 150285}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5aa915fef07aee69773a3ef4/inputs/r3/r3_asset_manifest.json", "sha256": "1fdce800874ad88c5430cd670a8cbeea67765a26a79a4a5815282b9ecc9d60f4", "size_bytes": 9373}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "832fa067a5aa26724a85dccbeaa158cfcc83b6457725abe184c0e1ab6b4d0c85", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [235.0, 4.0, 184.0, 292.0], "bbox_xyxy_clipped": [235.0, 4.0, 419.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [177.0, 9.0, 242.0, 210.0], "bbox_xyxy_clipped": [177.0, 9.0, 419.0, 219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [264.0, 36.0, 128.0, 111.0], "bbox_xyxy_clipped": [264.0, 36.0, 392.0, 147.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [221.0, 109.0, 172.0, 149.0], "bbox_xyxy_clipped": [221.0, 109.0, 393.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [279.0, 64.0, 120.0, 71.0], "bbox_xyxy_clipped": [279.0, 64.0, 399.0, 135.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [396.0, 129.0, 20.0, 300.0], "bbox_xyxy_clipped": [396.0, 129.0, 416.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [319.0, 103.0, 100.0, 313.0], "bbox_xyxy_clipped": [319.0, 103.0, 419.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [23.0, 32.0, 160.0, 29.0], "bbox_xyxy_clipped": [23.0, 32.0, 183.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [23.0, 69.0, 145.0, 27.0], "bbox_xyxy_clipped": [23.0, 69.0, 168.0, 96.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [23.0, 100.0, 160.0, 28.0], "bbox_xyxy_clipped": [23.0, 100.0, 183.0, 128.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036173551064913054}, "Ove": {"reason": null, "status": "ok", "value": 0.43490664406914326}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6aaf851cc8aa542986ad50", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6aaf851cc8aa542986ad50/pipeline/l0_result.json", "sha256": "3f12aa9b41170c44684b2f75e9563ec3dafc1652cb4b8271acbc30c39006beec", "size_bytes": 9552}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6aaf851cc8aa542986ad50/inputs/pfull/asset_manifest.json", "sha256": "60c945ae5b9a482b685dcebc87e4e8d457c6b17335d1ecf5ebb0c510c0ca05e6", "size_bytes": 5357}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_02.png", "sha256": "832fa067a5aa26724a85dccbeaa158cfcc83b6457725abe184c0e1ab6b4d0c85", "size_bytes": 33378}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6aaf851cc8aa542986ad50/inputs/r3/r3_asset_manifest.json", "sha256": "8801c2b9c9b55bb39c454fa73c4dd447982a30912de3aae5fd2ab77b3e6e07ee", "size_bytes": 4690}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1e98094d664a6d444b24178a40e75912bf20b287ad71ac2c7973e8fcd77bd690", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [55.0, 24.0, 255.0, 49.0], "bbox_xyxy_clipped": [55.0, 24.0, 310.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [112.0, 74.0, 171.0, 63.0], "bbox_xyxy_clipped": [112.0, 74.0, 283.0, 137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [330.0, 58.0, 23.0, 22.0], "bbox_xyxy_clipped": [330.0, 58.0, 353.0, 80.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [128.0, 108.0, 150.0, 180.0], "bbox_xyxy_clipped": [128.0, 108.0, 278.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [47.0, 182.0, 88.0, 132.0], "bbox_xyxy_clipped": [47.0, 182.0, 135.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [303.0, 44.0, 18.0, 57.0], "bbox_xyxy_clipped": [303.0, 44.0, 321.0, 101.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.030785789718808607}, "Occ": {"reason": null, "status": "ok", "value": 0.006050336271177078}, "Ove": {"reason": null, "status": "ok", "value": 0.02762335780847222}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6ab3e01cc8aa542994ee9d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6ab3e01cc8aa542994ee9d/pipeline/l0_result.json", "sha256": "d7e0a6f3b4fa1212345813430412cf0f1d2189a8a252636064367b26262a698b", "size_bytes": 6690}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/pfull/asset_manifest.json", "sha256": "e9f753e51a321f7c11ae17ed0bb502602d4d32883dc3df7757d439f0f1de0b45", "size_bytes": 3383}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_03.png", "sha256": "1e98094d664a6d444b24178a40e75912bf20b287ad71ac2c7973e8fcd77bd690", "size_bytes": 88696}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/r3/r3_asset_manifest.json", "sha256": "7992866148e456e712225d070a504fb662b037a1a20c6ba633aa7bcecef79a2c", "size_bytes": 3053}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "754d0f0aca9558702eaa3d15eb5baa8df27a2bc3ba7b5cebdb21c3fc700b7329", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc6e5f6b16db1a64789c64daa557ba7ad0250c37cece34bf827354789a980649", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [454.0, 18.0, 230.0, 234.0], "bbox_xyxy_clipped": [454.0, 18.0, 684.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [636.0, 12.0, 82.0, 82.0], "bbox_xyxy_clipped": [636.0, 12.0, 718.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [456.0, 39.0, 86.0, 30.0], "bbox_xyxy_clipped": [456.0, 39.0, 542.0, 69.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [616.0, 2.0, 88.0, 50.0], "bbox_xyxy_clipped": [616.0, 2.0, 704.0, 52.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [340.0, 24.0, 56.0, 67.0], "bbox_xyxy_clipped": [340.0, 24.0, 396.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 32.0, 60.0, 31.0], "bbox_xyxy_clipped": [28.0, 32.0, 88.0, 63.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [26.0, 7.0, 206.0, 29.0], "bbox_xyxy_clipped": [26.0, 7.0, 232.0, 36.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [28.0, 62.0, 118.0, 21.0], "bbox_xyxy_clipped": [28.0, 62.0, 146.0, 83.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005194026136978192}, "Ove": {"reason": null, "status": "ok", "value": 0.10492981676909846}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f0d8e59a4c4d0091ee540d43a9e78c9993ad8a59fcc519bd0d92fbcfabca8038", "status": "computed"}, "sample_id": "5b85707d1cc8aa542972823c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b85707d1cc8aa542972823c/pipeline/l0_result.json", "sha256": "c308f6fa55a2b1de43861bc90085151117638a625c297d351dee79bdce511f46", "size_bytes": 8532}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b85707d1cc8aa542972823c/inputs/pfull/asset_manifest.json", "sha256": "7118d4dddc40b1eedbd77f9af1636aa5f424aa51ad846de9a249feb94c70a018", "size_bytes": 4386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_01.png", "sha256": "754d0f0aca9558702eaa3d15eb5baa8df27a2bc3ba7b5cebdb21c3fc700b7329", "size_bytes": 23768}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b85707d1cc8aa542972823c/inputs/r3/r3_asset_manifest.json", "sha256": "e95f4875202353e2951e7ffd633afc6d2ea2c0806a4715609a1a785ed7911b68", "size_bytes": 3957}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "40679185f7ef18c6c87fc586bd451d4d7d26218464be81a16d9187233d4e31c9", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1125.0, 1320.0, 475.0, 760.0], "bbox_xyxy_clipped": [1125.0, 1320.0, 1600.0, 2080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1148.0, 1360.0, 18.0, 640.0], "bbox_xyxy_clipped": [1148.0, 1360.0, 1166.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1186.0, 1400.0, 16.0, 600.0], "bbox_xyxy_clipped": [1186.0, 1400.0, 1202.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [130.0, 260.0, 520.0, 109.0], "bbox_xyxy_clipped": [130.0, 260.0, 650.0, 369.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [132.0, 388.0, 320.0, 140.0], "bbox_xyxy_clipped": [132.0, 388.0, 452.0, 528.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [130.0, 1690.0, 430.0, 137.0], "bbox_xyxy_clipped": [130.0, 1690.0, 560.0, 1827.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [130.0, 1888.0, 520.0, 57.0], "bbox_xyxy_clipped": [130.0, 1888.0, 650.0, 1945.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1170.0, 1260.0, 430.0, 666.0], "bbox_xyxy_clipped": [1170.0, 1260.0, 1600.0, 1926.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003754014566954302}, "Ove": {"reason": null, "status": "ok", "value": 0.09518152159510694}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9a550e18654940f754c07c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9a550e18654940f754c07c/pipeline/l0_result.json", "sha256": "3eb36eac6dba83d0198f6034f7489452ab4380ebf855e3fc0acae21c824f7f5c", "size_bytes": 9614}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9a550e18654940f754c07c/inputs/pfull/asset_manifest.json", "sha256": "881592a7cff0948a53c4731d9fcdda7a7cf330fcea9788ed701bda721dee83c1", "size_bytes": 4404}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "sha256": "40679185f7ef18c6c87fc586bd451d4d7d26218464be81a16d9187233d4e31c9", "size_bytes": 80806}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9a550e18654940f754c07c/inputs/r3/r3_asset_manifest.json", "sha256": "a3240db2b1473d0926cee7202c94008ad766c5bedd3a68bdfd311c1a2b139d7e", "size_bytes": 3932}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7f121e73b4f8ff38e6cf2eb02740166883abac158f57c8cf0bef15b376420099", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [300.0, 220.0, 1000.0, 207.0], "bbox_xyxy_clipped": [300.0, 220.0, 1300.0, 427.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [392.0, 445.0, 816.0, 204.0], "bbox_xyxy_clipped": [392.0, 445.0, 1208.0, 649.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [410.0, 700.0, 780.0, 34.0], "bbox_xyxy_clipped": [410.0, 700.0, 1190.0, 734.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [358.0, 760.0, 884.0, 74.0], "bbox_xyxy_clipped": [358.0, 760.0, 1242.0, 834.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [430.0, 1110.0, 741.0, 1134.0], "bbox_xyxy_clipped": [430.0, 1110.0, 1171.0, 2244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1085.0, 1245.0, 180.0, 1262.0], "bbox_xyxy_clipped": [1085.0, 1245.0, 1265.0, 2507.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1198.0, 2180.0, 94.0, 94.0], "bbox_xyxy_clipped": [1198.0, 2180.0, 1292.0, 2274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006267173342963812}, "Ove": {"reason": null, "status": "ok", "value": 0.01642120151905915}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9bc6a018654940f781b996", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9bc6a018654940f781b996/pipeline/l0_result.json", "sha256": "8db41c8fbd7faab5ed4f1d18463f837693aefc6858f4f9af14677b2149dc9455", "size_bytes": 8187}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9bc6a018654940f781b996/inputs/pfull/asset_manifest.json", "sha256": "b71d739f97959c3b731ebdf5174bfeed950a6d45fe26c79caf275b6d24c61b27", "size_bytes": 3919}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_03.png", "sha256": "7f121e73b4f8ff38e6cf2eb02740166883abac158f57c8cf0bef15b376420099", "size_bytes": 1218385}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5b9bc6a018654940f781b996/inputs/r3/r3_asset_manifest.json", "sha256": "bbde6ff378a8a09d744a9bb7134bf9f7704e1adc88e83ca933ce1667d2d070c2", "size_bytes": 3479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "43a3dc8cf9326f234082aac3b374aa10dc94aa1f64907bb3c4e40848dfe4045c", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [34.0, 575.0, 410.0, 425.0], "bbox_xyxy_clipped": [34.0, 575.0, 444.0, 1000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [86.0, 931.0, 154.0, 55.0], "bbox_xyxy_clipped": [86.0, 931.0, 240.0, 986.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 170.0, 130.0, 260.0], "bbox_xyxy_clipped": [0.0, 170.0, 130.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [96.0, 205.0, 105.0, 246.0], "bbox_xyxy_clipped": [96.0, 205.0, 201.0, 451.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [462.0, 70.0, 118.0, 96.0], "bbox_xyxy_clipped": [462.0, 70.0, 580.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [424.0, 184.0, 106.0, 22.0], "bbox_xyxy_clipped": [424.0, 184.0, 530.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [405.0, 216.0, 171.0, 79.0], "bbox_xyxy_clipped": [405.0, 216.0, 576.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [441.0, 314.0, 124.0, 9.0], "bbox_xyxy_clipped": [441.0, 314.0, 565.0, 323.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [474.0, 339.0, 82.0, 17.0], "bbox_xyxy_clipped": [474.0, 339.0, 556.0, 356.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [449.0, 395.0, 98.0, 28.0], "bbox_xyxy_clipped": [449.0, 395.0, 547.0, 423.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [444.0, 435.0, 102.0, 29.0], "bbox_xyxy_clipped": [444.0, 435.0, 546.0, 464.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [438.0, 503.0, 131.0, 7.0], "bbox_xyxy_clipped": [438.0, 503.0, 569.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [452.0, 530.0, 118.0, 18.0], "bbox_xyxy_clipped": [452.0, 530.0, 570.0, 548.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004706818334089455}, "Occ": {"reason": null, "status": "ok", "value": 0.007475584332355556}, "Ove": {"reason": null, "status": "ok", "value": 0.015060023892612082}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5ba8b598ebe74117be0792c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ba8b598ebe74117be0792c9/pipeline/l0_result.json", "sha256": "cb3a312fe06085a1b6fc6b4f0f8c8aa88c763cc9f0fc5e7180f3f28c11250aeb", "size_bytes": 10857}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ba8b598ebe74117be0792c9/inputs/pfull/asset_manifest.json", "sha256": "b8a04bb1c923ec98c91d5cff151f79e883884ad68cfe5bbe5ce46fdcc921856f", "size_bytes": 6967}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "sha256": "43a3dc8cf9326f234082aac3b374aa10dc94aa1f64907bb3c4e40848dfe4045c", "size_bytes": 94958}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ba8b598ebe74117be0792c9/inputs/r3/r3_asset_manifest.json", "sha256": "3fed7592ba0a8c53de2a0b50c194041355b1471a4ea4fc056ecc5d30ae76c669", "size_bytes": 6263}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c6969d67259329f95d744dc5c47c967e04ab181cebd8cc79bb789ee111c47055", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 552.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 552.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [760.0, 74.0, 268.0, 536.0], "bbox_xyxy_clipped": [760.0, 74.0, 1028.0, 610.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [622.0, 96.0, 380.0, 407.0], "bbox_xyxy_clipped": [622.0, 96.0, 1002.0, 503.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [106.0, 118.0, 315.0, 162.0], "bbox_xyxy_clipped": [106.0, 118.0, 421.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [109.0, 292.0, 284.0, 47.0], "bbox_xyxy_clipped": [109.0, 292.0, 393.0, 339.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [109.0, 360.0, 339.0, 96.0], "bbox_xyxy_clipped": [109.0, 360.0, 448.0, 456.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [114.0, 84.0, 230.0, 60.0], "bbox_xyxy_clipped": [114.0, 84.0, 344.0, 144.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [111.0, 510.0, 196.0, 216.0], "bbox_xyxy_clipped": [111.0, 510.0, 307.0, 726.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [337.0, 510.0, 196.0, 216.0], "bbox_xyxy_clipped": [337.0, 510.0, 533.0, 726.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [109.0, 468.0, 380.0, 5.0], "bbox_xyxy_clipped": [109.0, 468.0, 489.0, 473.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024950835635484813}, "Ove": {"reason": null, "status": "ok", "value": 0.12784260060929953}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5bbc9b3a78e1194aa616041e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbc9b3a78e1194aa616041e/pipeline/l0_result.json", "sha256": "9df94c0a63224d7e301e6ff4bbfbfa5910a6f4add2c7f394f85b0a8bae15e833", "size_bytes": 9549}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbc9b3a78e1194aa616041e/inputs/pfull/asset_manifest.json", "sha256": "836977cb4244aff16ddf4f05c0f490c4d1f41b8ea1142d8a8388549915edad91", "size_bytes": 5375}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_01.png", "sha256": "c6969d67259329f95d744dc5c47c967e04ab181cebd8cc79bb789ee111c47055", "size_bytes": 586804}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbc9b3a78e1194aa616041e/inputs/r3/r3_asset_manifest.json", "sha256": "054e96ccdb3d2d4bb40e6d7fc0f80e0b315a822c3536bf3c8e3d899984b43be0", "size_bytes": 4705}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "af7651b58f770709f669e6efcaeb1ad2724c18f053262e09839e06097ac46814", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 10, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [338.0, 72.0, 180.0, 358.0], "bbox_xyxy_clipped": [338.0, 72.0, 518.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 220.0, 218.0], "bbox_xyxy_clipped": [0.0, 0.0, 220.0, 218.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [39.0, 862.0, 316.0, 78.0], "bbox_xyxy_clipped": [39.0, 862.0, 355.0, 940.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [42.0, 755.0, 229.0, 124.0], "bbox_xyxy_clipped": [42.0, 755.0, 271.0, 879.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [122.0, 118.0, 118.0, 118.0], "bbox_xyxy_clipped": [122.0, 118.0, 240.0, 236.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [41.0, 710.0, 226.0, 80.0], "bbox_xyxy_clipped": [41.0, 710.0, 267.0, 790.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [37.0, 904.0, 421.0, 122.0], "bbox_xyxy_clipped": [37.0, 904.0, 458.0, 1026.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [40.0, 1070.0, 500.0, 4.0], "bbox_xyxy_clipped": [40.0, 1070.0, 540.0, 1074.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [40.0, 1096.0, 140.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [198.0, 1096.0, 140.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0057954239546581555}, "Occ": {"reason": null, "status": "ok", "value": 0.0075701994000899634}, "Ove": {"reason": null, "status": "ok", "value": 0.08092239822670211}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5bbcbdfd78e1194aa69fe067", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbcbdfd78e1194aa69fe067/pipeline/l0_result.json", "sha256": "03a217aff2eaed39687068145e98f45435e28b0afebe9fcedb7827161a34cb8d", "size_bytes": 8953}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbcbdfd78e1194aa69fe067/inputs/pfull/asset_manifest.json", "sha256": "284cc1331880f1e40a16b1a4df664010f07f03ff0312646318251d5a59ee149d", "size_bytes": 5359}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_03.png", "sha256": "af7651b58f770709f669e6efcaeb1ad2724c18f053262e09839e06097ac46814", "size_bytes": 177032}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bbcbdfd78e1194aa69fe067/inputs/r3/r3_asset_manifest.json", "sha256": "a8cd0fe74833a9c251b0e4f093cc83c684c849f0d867246a330e74f7fc919cee", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "426a677d2a495fdf7ef80e302dfc184481cf3f640c3cf034996df9442250d722", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [410.0, 210.0, 470.0, 758.0], "bbox_xyxy_clipped": [410.0, 210.0, 880.0, 968.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 92.0, 505.0, 85.0], "bbox_xyxy_clipped": [42.0, 92.0, 547.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [46.0, 220.0, 390.0, 293.0], "bbox_xyxy_clipped": [46.0, 220.0, 436.0, 513.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [48.0, 502.0, 220.0, 228.0], "bbox_xyxy_clipped": [48.0, 502.0, 268.0, 730.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [44.0, 790.0, 360.0, 264.0], "bbox_xyxy_clipped": [44.0, 790.0, 404.0, 1054.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [52.0, 1012.0, 262.0, 255.0], "bbox_xyxy_clipped": [52.0, 1012.0, 314.0, 1267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [72.0, 1120.0, 184.0, 393.0], "bbox_xyxy_clipped": [72.0, 1120.0, 256.0, 1513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [98.0, 1200.0, 170.0, 357.0], "bbox_xyxy_clipped": [98.0, 1200.0, 268.0, 1557.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [126.0, 1292.0, 128.0, 460.0], "bbox_xyxy_clipped": [126.0, 1292.0, 254.0, 1752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [150.0, 1280.0, 4.0, 522.0], "bbox_xyxy_clipped": [150.0, 1280.0, 154.0, 1802.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [168.0, 1308.0, 4.0, 522.0], "bbox_xyxy_clipped": [168.0, 1308.0, 172.0, 1830.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [330.0, 1778.0, 672.0, 56.0], "bbox_xyxy_clipped": [330.0, 1778.0, 1002.0, 1834.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00279298294961921}, "Ove": {"reason": null, "status": "ok", "value": 0.15213927062244423}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd05c0e78e1194aa6210e31", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd05c0e78e1194aa6210e31/pipeline/l0_result.json", "sha256": "ea57e9123908d381b344d51539ae87835fffce7a90ca42b6d69aa5f5b2af9d4a", "size_bytes": 10223}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd05c0e78e1194aa6210e31/inputs/pfull/asset_manifest.json", "sha256": "c6b9b6a0a3f29de90c612ae49492a6760f918c553b349c8c9ff1717491f6ca23", "size_bytes": 6408}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "sha256": "426a677d2a495fdf7ef80e302dfc184481cf3f640c3cf034996df9442250d722", "size_bytes": 439083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd05c0e78e1194aa6210e31/inputs/r3/r3_asset_manifest.json", "sha256": "8c797958d54934efc42f592fe6d7e829131ac6c0b9862730f6c1fadd090ac589", "size_bytes": 5676}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4cb135f0f064386099a3aaad0315ab797c8f5c2e40b91a315568f5489d1ac451", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0015", "bbox_lwh_raw": [58.0, 365.0, 430.0, 1177.0], "bbox_xyxy_clipped": [58.0, 365.0, 488.0, 1542.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [592.0, 120.0, 418.0, 33.0], "bbox_xyxy_clipped": [592.0, 120.0, 1010.0, 153.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [592.0, 168.0, 286.0, 83.0], "bbox_xyxy_clipped": [592.0, 168.0, 878.0, 251.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [676.0, 360.0, 240.0, 85.0], "bbox_xyxy_clipped": [676.0, 360.0, 916.0, 445.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [758.0, 445.0, 172.0, 64.0], "bbox_xyxy_clipped": [758.0, 445.0, 930.0, 509.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [818.0, 522.0, 97.0, 55.0], "bbox_xyxy_clipped": [818.0, 522.0, 915.0, 577.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [914.0, 522.0, 98.0, 55.0], "bbox_xyxy_clipped": [914.0, 522.0, 1012.0, 577.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [594.0, 62.0, 309.0, 28.0], "bbox_xyxy_clipped": [594.0, 62.0, 903.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [910.0, 0.0, 170.0, 303.0], "bbox_xyxy_clipped": [910.0, 0.0, 1080.0, 303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [980.0, 54.0, 100.0, 274.0], "bbox_xyxy_clipped": [980.0, 54.0, 1080.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [889.0, 318.0, 24.0, 1134.0], "bbox_xyxy_clipped": [889.0, 318.0, 913.0, 1452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 603.0, 431.0], "bbox_xyxy_clipped": [0.0, 0.0, 603.0, 431.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [0.0, 212.0, 1080.0, 55.0], "bbox_xyxy_clipped": [0.0, 212.0, 1080.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 280.0, 1080.0, 56.0], "bbox_xyxy_clipped": [0.0, 280.0, 1080.0, 336.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [453.0, 1160.0, 548.0, 624.0], "bbox_xyxy_clipped": [453.0, 1160.0, 1001.0, 1784.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [770.0, 1325.0, 310.0, 272.0], "bbox_xyxy_clipped": [770.0, 1325.0, 1080.0, 1597.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005893866772440561}, "Ove": {"reason": null, "status": "ok", "value": 0.10003347104763481}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd9d0209259f9ba54b29c99", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd9d0209259f9ba54b29c99/pipeline/l0_result.json", "sha256": "05599645e7fdd2edda4618dc3771ce18a9d1260174500cdb8eb938e87d23f0d8", "size_bytes": 13778}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd9d0209259f9ba54b29c99/inputs/pfull/asset_manifest.json", "sha256": "99757d262bb00c74cc7c2eff5aaf559c3cd33ded8a5df42896ab764cba48afd4", "size_bytes": 8413}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_02.png", "sha256": "4cb135f0f064386099a3aaad0315ab797c8f5c2e40b91a315568f5489d1ac451", "size_bytes": 1564886}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bd9d0209259f9ba54b29c99/inputs/r3/r3_asset_manifest.json", "sha256": "754251fa45262cdf5c7d5e9a9cc50b6035955713dff51b82ea16201f90be5567", "size_bytes": 7447}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "aa77423f95c895dffaee60d8797789f6c4ef599401ed3591a55cee66f6622df3", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [29.0, 96.0, 140.0, 14.0], "bbox_xyxy_clipped": [29.0, 96.0, 169.0, 110.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [76.0, 113.0, 82.0, 48.0], "bbox_xyxy_clipped": [76.0, 113.0, 158.0, 161.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [187.0, 93.0, 52.0, 9.0], "bbox_xyxy_clipped": [187.0, 93.0, 239.0, 102.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [28.0, 440.0, 128.0, 11.0], "bbox_xyxy_clipped": [28.0, 440.0, 156.0, 451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [214.0, 52.0, 115.0, 197.0], "bbox_xyxy_clipped": [214.0, 52.0, 329.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [228.0, 86.0, 77.0, 115.0], "bbox_xyxy_clipped": [228.0, 86.0, 305.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.007248313133808678}, "Occ": {"reason": null, "status": "ok", "value": 0.0005587303798709135}, "Ove": {"reason": null, "status": "ok", "value": 0.0685703334379016}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5be174d215d5cddfd04fd1a2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be174d215d5cddfd04fd1a2/pipeline/l0_result.json", "sha256": "5c0c3cb0b93320967c1cbd99e077a43ae32f8194c126800c9e82cbbcb70bd72a", "size_bytes": 6912}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be174d215d5cddfd04fd1a2/inputs/pfull/asset_manifest.json", "sha256": "78b52a26b54ff43660b6401c18d99020c0e5f0b36b1428fd19b846f4897a2faf", "size_bytes": 3386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_03.png", "sha256": "aa77423f95c895dffaee60d8797789f6c4ef599401ed3591a55cee66f6622df3", "size_bytes": 39646}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be174d215d5cddfd04fd1a2/inputs/r3/r3_asset_manifest.json", "sha256": "ea06c1241f6c1d7647fab4d43a32fdb27a15a4d622998daa53781a19fe95f03d", "size_bytes": 3071}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1a8480346dfb60e3d3d901c69156dc7946e5f14cee98b8ef22f7db17e5af1866", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "asset_size_bytes": 542, "kind": "asset", "pfull_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "r3_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "99c8c31cea418989f4208523849c14391bcd3df10d29f2617bec65a9c257fd16", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [290.0, 22.0, 438.0, 89.0], "bbox_xyxy_clipped": [290.0, 22.0, 728.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 8.0, 205.0, 79.0], "bbox_xyxy_clipped": [18.0, 8.0, 223.0, 87.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 10.0, 67.0, 37.0], "bbox_xyxy_clipped": [28.0, 10.0, 95.0, 47.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [98.0, 18.0, 82.0, 24.0], "bbox_xyxy_clipped": [98.0, 18.0, 180.0, 42.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [24.0, 46.0, 121.0, 76.0], "bbox_xyxy_clipped": [24.0, 46.0, 145.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [27.0, 72.0, 145.0, 48.0], "bbox_xyxy_clipped": [27.0, 72.0, 172.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [192.0, 42.0, 21.0, 46.0], "bbox_xyxy_clipped": [192.0, 42.0, 213.0, 88.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.05976896193197722}, "Ove": {"reason": null, "status": "ok", "value": 0.16250075881961545}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "ee039cc0fd90aa12af56946618ae113689b51b1da2d92a64adc2f445a88be65a", "status": "computed"}, "sample_id": "5be97b9241fdeab19f985504", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/pipeline/l0_result.json", "sha256": "370520986af2a131960f720edd22406ec8ea76a459603d3e944b0de7ec63722a", "size_bytes": 8426}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/inputs/pfull/asset_manifest.json", "sha256": "b1fa18d8593eec07f6decaa0abc56c70aa1e848b303a7d5d0f0c7c0fb879d774", "size_bytes": 4442}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_03.png", "sha256": "1a8480346dfb60e3d3d901c69156dc7946e5f14cee98b8ef22f7db17e5af1866", "size_bytes": 87346}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/inputs/r3/r3_asset_manifest.json", "sha256": "0aeb708e57433f70d586545bb4d8403749e8ca353ebc94dbb4797b1b6c71b0ab", "size_bytes": 3979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "size_bytes": 542}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ce77c2e389f86529fa6fa7ccc83576315504cb2fd54b61be35d064a8db4b3807", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [80.0, 38.0, 920.0, 244.0], "bbox_xyxy_clipped": [80.0, 38.0, 1000.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [98.0, 79.0, 884.0, 236.0], "bbox_xyxy_clipped": [98.0, 79.0, 982.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [160.0, 306.0, 760.0, 3.0], "bbox_xyxy_clipped": [160.0, 306.0, 920.0, 309.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [210.0, 396.0, 660.0, 6.0], "bbox_xyxy_clipped": [210.0, 396.0, 870.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [160.0, 486.0, 760.0, 3.0], "bbox_xyxy_clipped": [160.0, 486.0, 920.0, 489.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [210.0, 572.0, 660.0, 6.0], "bbox_xyxy_clipped": [210.0, 572.0, 870.0, 578.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [155.0, 190.0, 770.0, 116.0], "bbox_xyxy_clipped": [155.0, 190.0, 925.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [680.0, 198.0, 92.0, 100.0], "bbox_xyxy_clipped": [680.0, 198.0, 772.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [180.0, 336.0, 720.0, 183.0], "bbox_xyxy_clipped": [180.0, 336.0, 900.0, 519.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [232.0, 528.0, 616.0, 55.0], "bbox_xyxy_clipped": [232.0, 528.0, 848.0, 583.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [294.0, 556.0, 492.0, 738.0], "bbox_xyxy_clipped": [294.0, 556.0, 786.0, 1294.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [335.0, 1789.0, 410.0, 61.0], "bbox_xyxy_clipped": [335.0, 1789.0, 745.0, 1850.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001170765563207837}, "Ove": {"reason": null, "status": "ok", "value": 0.15140181962972885}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bf55e578caf671e1c2272f0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf55e578caf671e1c2272f0/pipeline/l0_result.json", "sha256": "dd6bfd2b2d87fc6c4eddf32cb3b5c2bcfa23182036ef53f7c2087db9b2a9f09b", "size_bytes": 10750}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf55e578caf671e1c2272f0/inputs/pfull/asset_manifest.json", "sha256": "aabde5d7e2c6d356de1e162d898f6e1a0ca2ad9e107cdd0ea0dbc1b1ec2677ce", "size_bytes": 6381}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_03.png", "sha256": "ce77c2e389f86529fa6fa7ccc83576315504cb2fd54b61be35d064a8db4b3807", "size_bytes": 423399}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf55e578caf671e1c2272f0/inputs/r3/r3_asset_manifest.json", "sha256": "1ad58c767c0f6ed61c437d110ad4f21779c0a30c9d164d05c3edf99ae29b58c6", "size_bytes": 5608}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f68e0ffcac3be53656bb6b6cf2c5839842226a01ba306eb3d2137d277390e40d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 13, "valid": 11}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [62.0, 34.0, 130.0, 105.0], "bbox_xyxy_clipped": [62.0, 34.0, 192.0, 139.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [60.0, 118.0, 170.0, 73.0], "bbox_xyxy_clipped": [60.0, 118.0, 230.0, 191.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [61.0, 178.0, 155.0, 24.0], "bbox_xyxy_clipped": [61.0, 178.0, 216.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [224.0, 108.0, 8.0, 31.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [224.0, 144.0, 8.0, 31.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [207.0, 131.0, 38.0, 38.0], "bbox_xyxy_clipped": [207.0, 131.0, 245.0, 169.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [236.0, 146.0, 27.0, 27.0], "bbox_xyxy_clipped": [236.0, 146.0, 263.0, 173.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [268.0, 153.0, 35.0, 59.0], "bbox_xyxy_clipped": [268.0, 153.0, 303.0, 212.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [308.0, 155.0, 35.0, 59.0], "bbox_xyxy_clipped": [308.0, 155.0, 343.0, 214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [350.0, 165.0, 28.0, 30.0], "bbox_xyxy_clipped": [350.0, 165.0, 378.0, 195.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [39.0, 207.0, 15.0, 103.0], "bbox_xyxy_clipped": [39.0, 207.0, 54.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [92.0, 255.0, 420.0, 11.0], "bbox_xyxy_clipped": [92.0, 255.0, 512.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [520.0, 102.0, 249.0, 162.0], "bbox_xyxy_clipped": [520.0, 102.0, 769.0, 264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0056169780732463455}, "Occ": {"reason": null, "status": "ok", "value": 0.004252946991281411}, "Ove": {"reason": null, "status": "ok", "value": 0.03930881267473729}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5bf828a38caf671e1c2632e9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf828a38caf671e1c2632e9/pipeline/l0_result.json", "sha256": "fc3dc511635cd097eac531828be0501dca026e609c259bf9626a0b63666368c1", "size_bytes": 11173}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf828a38caf671e1c2632e9/inputs/pfull/asset_manifest.json", "sha256": "745fca791a0a6c03219ffa19b1fa7f97d79711b3e675333bb35ae4e9b6e3accf", "size_bytes": 6824}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "sha256": "f68e0ffcac3be53656bb6b6cf2c5839842226a01ba306eb3d2137d277390e40d", "size_bytes": 95533}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5bf828a38caf671e1c2632e9/inputs/r3/r3_asset_manifest.json", "sha256": "38fa56cf9ce8655c6b8029160ad05d2fc983ad71bddff34fc0c82e1162db83f5", "size_bytes": 5875}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "bbab01bbf0d296dffb7069cbd02a1601d1caffce558911c0ceffee8770c00d54", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [135.0, 70.0, 670.0, 42.0], "bbox_xyxy_clipped": [135.0, 70.0, 805.0, 112.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [205.0, 118.0, 530.0, 257.0], "bbox_xyxy_clipped": [205.0, 118.0, 735.0, 375.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [315.0, 385.0, 311.0, 46.0], "bbox_xyxy_clipped": [315.0, 385.0, 626.0, 431.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [398.0, 178.0, 392.0, 530.0], "bbox_xyxy_clipped": [398.0, 178.0, 790.0, 708.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [305.0, 520.0, 604.0, 175.0], "bbox_xyxy_clipped": [305.0, 520.0, 909.0, 695.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [95.0, 238.0, 162.0, 136.0], "bbox_xyxy_clipped": [95.0, 238.0, 257.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 470.0, 61.0, 104.0], "bbox_xyxy_clipped": [92.0, 470.0, 153.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [175.0, 470.0, 61.0, 104.0], "bbox_xyxy_clipped": [175.0, 470.0, 236.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [258.0, 470.0, 61.0, 104.0], "bbox_xyxy_clipped": [258.0, 470.0, 319.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005085101364552484}, "Ove": {"reason": null, "status": "ok", "value": 0.06916391607956893}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5c263de4133a785392318ba9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c263de4133a785392318ba9/pipeline/l0_result.json", "sha256": "05ee0f86f8079e987609456be6d333aa4f9f4302c3f7a298a4c83be2887059de", "size_bytes": 8297}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c263de4133a785392318ba9/inputs/pfull/asset_manifest.json", "sha256": "844ce29a0dc09bac2270313a7aab2c77e76463d120422cbb1d5878618cd23a7e", "size_bytes": 4887}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "sha256": "bbab01bbf0d296dffb7069cbd02a1601d1caffce558911c0ceffee8770c00d54", "size_bytes": 243859}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c263de4133a785392318ba9/inputs/r3/r3_asset_manifest.json", "sha256": "2100e6b9158d00f3c31b7e1d8f242a4a424eb0cb4ad8d2b7c64d13fc3ee2d431", "size_bytes": 4316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7c3a0d81cfdbdc031f1b824460a40d86d9f24d453f338b578942d911b3ebdbb2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [90.0, 1180.0, 900.0, 678.0], "bbox_xyxy_clipped": [90.0, 1180.0, 990.0, 1858.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [255.0, 1085.0, 250.0, 444.0], "bbox_xyxy_clipped": [255.0, 1085.0, 505.0, 1529.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 1320.0, 300.0, 537.0], "bbox_xyxy_clipped": [120.0, 1320.0, 420.0, 1857.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [440.0, 1285.0, 300.0, 537.0], "bbox_xyxy_clipped": [440.0, 1285.0, 740.0, 1822.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [140.0, 980.0, 760.0, 135.0], "bbox_xyxy_clipped": [140.0, 980.0, 900.0, 1115.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [210.0, 1130.0, 610.0, 108.0], "bbox_xyxy_clipped": [210.0, 1130.0, 820.0, 1238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [670.0, 120.0, 330.0, 215.0], "bbox_xyxy_clipped": [670.0, 120.0, 1000.0, 335.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [665.0, 360.0, 320.0, 200.0], "bbox_xyxy_clipped": [665.0, 360.0, 985.0, 560.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [680.0, 555.0, 250.0, 46.0], "bbox_xyxy_clipped": [680.0, 555.0, 930.0, 601.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [55.0, 155.0, 560.0, 98.0], "bbox_xyxy_clipped": [55.0, 155.0, 615.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [625.0, 170.0, 160.0, 546.0], "bbox_xyxy_clipped": [625.0, 170.0, 785.0, 716.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.002488793648858659}, "Occ": {"reason": null, "status": "ok", "value": 0.0066827610885411915}, "Ove": {"reason": null, "status": "ok", "value": 0.13975082166692307}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f55b048d064dbcc85b80", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f55b048d064dbcc85b80/pipeline/l0_result.json", "sha256": "859854df394ffab14ecbf3db1440be0828896c00ca8f35e8e903619ba7b96f39", "size_bytes": 10267}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f55b048d064dbcc85b80/inputs/pfull/asset_manifest.json", "sha256": "bd74433ac7ea9c7f4241607241f1aa0186cc746ecfa18381192b6dd518d8b7bc", "size_bytes": 5860}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_03.png", "sha256": "7c3a0d81cfdbdc031f1b824460a40d86d9f24d453f338b578942d911b3ebdbb2", "size_bytes": 1396933}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f55b048d064dbcc85b80/inputs/r3/r3_asset_manifest.json", "sha256": "cb1676ff390727d77817ee7d0e75fb682673237ed0de01ed529acac691f6b7e8", "size_bytes": 5136}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d8076421e00b6c1a1f4b4e2ef976e4d302cfe397c28894c3f7730a1c664c986b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 520.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [790.0, 0.0, 290.0, 450.0], "bbox_xyxy_clipped": [790.0, 0.0, 1080.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [152.0, 86.0, 776.0, 323.0], "bbox_xyxy_clipped": [152.0, 86.0, 928.0, 409.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [320.0, 315.0, 439.0, 231.0], "bbox_xyxy_clipped": [320.0, 315.0, 759.0, 546.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [356.0, 560.0, 368.0, 596.0], "bbox_xyxy_clipped": [356.0, 560.0, 724.0, 1156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [760.0, 705.0, 88.0, 675.0], "bbox_xyxy_clipped": [760.0, 705.0, 848.0, 1380.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [242.0, 948.0, 596.0, 178.0], "bbox_xyxy_clipped": [242.0, 948.0, 838.0, 1126.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [244.0, 1230.0, 596.0, 178.0], "bbox_xyxy_clipped": [244.0, 1230.0, 840.0, 1408.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [183.0, 1694.0, 714.0, 64.0], "bbox_xyxy_clipped": [183.0, 1694.0, 897.0, 1758.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [331.0, 1776.0, 419.0, 43.0], "bbox_xyxy_clipped": [331.0, 1776.0, 750.0, 1819.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002990356118886328}, "Ove": {"reason": null, "status": "ok", "value": 0.15227361071203085}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f7a3048d064dbccfae94", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f7a3048d064dbccfae94/pipeline/l0_result.json", "sha256": "7efd398a8d45051e7804de21b5daadb59556739e4a8171d5355ae6e05a241157", "size_bytes": 9072}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f7a3048d064dbccfae94/inputs/pfull/asset_manifest.json", "sha256": "1279c182cccb67cc6b6e706577233e1c999f5dedbd1a0e607761d657476a882a", "size_bytes": 5409}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "sha256": "d8076421e00b6c1a1f4b4e2ef976e4d302cfe397c28894c3f7730a1c664c986b", "size_bytes": 508902}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c41f7a3048d064dbccfae94/inputs/r3/r3_asset_manifest.json", "sha256": "3e46fce14d33eaae674772ede386e9ec09b74bee65f4c3670df1ff1046ac28d0", "size_bytes": 4785}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e87a5092711bc2f220d387a6d8ed7ad8bd67111ba6d7272313f11dc79f1dd0c4", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [578.0, 780.0, 420.0, 436.0], "bbox_xyxy_clipped": [578.0, 780.0, 998.0, 1216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [32.0, 184.0, 430.0, 145.0], "bbox_xyxy_clipped": [32.0, 184.0, 462.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 342.0, 330.0, 72.0], "bbox_xyxy_clipped": [36.0, 342.0, 366.0, 414.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [44.0, 1048.0, 362.0, 88.0], "bbox_xyxy_clipped": [44.0, 1048.0, 406.0, 1136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [72.0, 1068.0, 276.0, 39.0], "bbox_xyxy_clipped": [72.0, 1068.0, 348.0, 1107.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [42.0, 446.0, 330.0, 286.0], "bbox_xyxy_clipped": [42.0, 446.0, 372.0, 732.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [714.0, 470.0, 268.0, 232.0], "bbox_xyxy_clipped": [714.0, 470.0, 982.0, 702.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 650.0, 250.0, 490.0], "bbox_xyxy_clipped": [58.0, 650.0, 308.0, 1140.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.005432926603896161}, "Occ": {"reason": null, "status": "ok", "value": 0.0017920711864333632}, "Ove": {"reason": null, "status": "ok", "value": 0.0853366584689515}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5af7a1048d064dbc1f0d67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5af7a1048d064dbc1f0d67/pipeline/l0_result.json", "sha256": "ead8cb8c51386804a20d1ef550c7e0dea283494e4d88159e2160cbfe0029db69", "size_bytes": 8195}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5af7a1048d064dbc1f0d67/inputs/pfull/asset_manifest.json", "sha256": "cf4e9b281aab693715180b45d8f388802e4d91896925162b9d350c6ac49ca3e9", "size_bytes": 4361}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_02.png", "sha256": "e87a5092711bc2f220d387a6d8ed7ad8bd67111ba6d7272313f11dc79f1dd0c4", "size_bytes": 512990}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5af7a1048d064dbc1f0d67/inputs/r3/r3_asset_manifest.json", "sha256": "1f7d7cfc1ba198dbca4a43b2f83f145027aa35aee1a2e176073c7ea28aa95c66", "size_bytes": 3883}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d07a419d188d47cc0f61c0ab2c811fd6292c3aa6332a222c41ef3465a6eef5df", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 17, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [372.0, 58.0, 338.0, 31.0], "bbox_xyxy_clipped": [372.0, 58.0, 710.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [321.0, 96.0, 440.0, 28.0], "bbox_xyxy_clipped": [321.0, 96.0, 761.0, 124.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [423.0, 132.0, 235.0, 89.0], "bbox_xyxy_clipped": [423.0, 132.0, 658.0, 221.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [257.0, 325.0, 566.0, 868.0], "bbox_xyxy_clipped": [257.0, 325.0, 823.0, 1193.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [164.0, 674.0, 240.0, 560.0], "bbox_xyxy_clipped": [164.0, 674.0, 404.0, 1234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [676.0, 674.0, 240.0, 560.0], "bbox_xyxy_clipped": [676.0, 674.0, 916.0, 1234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [414.0, 235.0, 252.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [331.0, 275.0, 215.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [533.0, 275.0, 215.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [392.0, 1180.0, 258.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [182.0, 1238.0, 716.0, 4.0], "bbox_xyxy_clipped": [182.0, 1238.0, 898.0, 1242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [182.0, 1260.0, 716.0, 4.0], "bbox_xyxy_clipped": [182.0, 1260.0, 898.0, 1264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [92.0, 1292.0, 63.0, 60.0], "bbox_xyxy_clipped": [92.0, 1292.0, 155.0, 1352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [157.0, 1285.0, 92.0, 62.0], "bbox_xyxy_clipped": [157.0, 1285.0, 249.0, 1347.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [92.0, 1360.0, 220.0, 61.0], "bbox_xyxy_clipped": [92.0, 1360.0, 312.0, 1421.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [322.0, 1360.0, 160.0, 64.0], "bbox_xyxy_clipped": [322.0, 1360.0, 482.0, 1424.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [92.0, 1432.0, 338.0, 31.0], "bbox_xyxy_clipped": [92.0, 1432.0, 430.0, 1463.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024913995547901514}, "Ove": {"reason": null, "status": "ok", "value": 0.021364199920611972}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b0913048d064dbc785e7c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b0913048d064dbc785e7c/pipeline/l0_result.json", "sha256": "afdf83dd5cb1c891d3f185adb16ee1ee871d5095b22983bb29651e184037b4d3", "size_bytes": 13257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b0913048d064dbc785e7c/inputs/pfull/asset_manifest.json", "sha256": "96504d1f39d65c13fff7f8abef1ca1ac06d5ce83fd0576def242a701d8abf145", "size_bytes": 8914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_02.png", "sha256": "d07a419d188d47cc0f61c0ab2c811fd6292c3aa6332a222c41ef3465a6eef5df", "size_bytes": 766752}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b0913048d064dbc785e7c/inputs/r3/r3_asset_manifest.json", "sha256": "76f84f0e517956ca87659f04ef56dbb85901b73ea5c4a4d181bb79bb3d89ec82", "size_bytes": 7931}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "60fb749c4161de840dbfd70ac7afdeaebbc9556a255104f92ecd1494a62a4791", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 6, "raw": 15, "valid": 9}, "elements": [{"asset_id": "asset_0012", "bbox_lwh_raw": [662.0, 150.0, 380.0, 250.0], "bbox_xyxy_clipped": [662.0, 150.0, 1042.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [55.0, 250.0, 240.0, 87.0], "bbox_xyxy_clipped": [55.0, 250.0, 295.0, 337.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [295.0, 260.0, 150.0, 62.0], "bbox_xyxy_clipped": [295.0, 260.0, 445.0, 322.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [58.0, 348.0, 455.0, 130.0], "bbox_xyxy_clipped": [58.0, 348.0, 513.0, 478.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 1695.0, 430.0, 40.0], "bbox_xyxy_clipped": [58.0, 1695.0, 488.0, 1735.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [710.0, 410.0, 285.0, 42.0], "bbox_xyxy_clipped": [710.0, 410.0, 995.0, 452.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [730.0, 455.0, 255.0, 49.0], "bbox_xyxy_clipped": [730.0, 455.0, 985.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [58.0, 515.0, 180.0, 15.0], "bbox_xyxy_clipped": [58.0, 515.0, 238.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [58.0, 538.0, 160.0, 13.0], "bbox_xyxy_clipped": [58.0, 538.0, 218.0, 551.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 610.0, 240.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [58.0, 624.0, 230.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [58.0, 636.0, 220.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [58.0, 648.0, 210.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [58.0, 500.0, 140.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [58.0, 510.0, 120.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0006982620895496493}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b095c048d064dbc7a0ede", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b095c048d064dbc7a0ede/pipeline/l0_result.json", "sha256": "f01d1c00806593edbfdb164dc95eba4f416bf9366384cdbf55b1f24017cbf221", "size_bytes": 11483}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b095c048d064dbc7a0ede/inputs/pfull/asset_manifest.json", "sha256": "67c84e5d845c91ef9be12fbbbb382e429fcab3c718bdd26004372baa902e1be9", "size_bytes": 7845}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_03.png", "sha256": "60fb749c4161de840dbfd70ac7afdeaebbc9556a255104f92ecd1494a62a4791", "size_bytes": 186877}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c5b095c048d064dbc7a0ede/inputs/r3/r3_asset_manifest.json", "sha256": "dd36c385244eb1cbc03dc806e22a286255a33ed41405d7e41fe3009beccee488", "size_bytes": 6792}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1be6310eb3ea1cedeead70303ed910cf93fb0511785d0042d42cbdfa7a52f6f8", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [56.0, 84.0, 424.0, 424.0], "bbox_xyxy_clipped": [56.0, 84.0, 480.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [650.0, 118.0, 350.0, 62.0], "bbox_xyxy_clipped": [650.0, 118.0, 1000.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [650.0, 198.0, 300.0, 69.0], "bbox_xyxy_clipped": [650.0, 198.0, 950.0, 267.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [650.0, 342.0, 360.0, 53.0], "bbox_xyxy_clipped": [650.0, 342.0, 1010.0, 395.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [650.0, 416.0, 150.0, 49.0], "bbox_xyxy_clipped": [650.0, 416.0, 800.0, 465.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [650.0, 495.0, 370.0, 9.0], "bbox_xyxy_clipped": [650.0, 495.0, 1020.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [650.0, 536.0, 340.0, 112.0], "bbox_xyxy_clipped": [650.0, 536.0, 990.0, 648.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [650.0, 832.0, 295.0, 192.0], "bbox_xyxy_clipped": [650.0, 832.0, 945.0, 1024.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 220.0, 124.0], "bbox_xyxy_clipped": [0.0, 0.0, 220.0, 124.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [124.0, 94.0, 148.0, 148.0], "bbox_xyxy_clipped": [124.0, 94.0, 272.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [250.0, 214.0, 168.0, 168.0], "bbox_xyxy_clipped": [250.0, 214.0, 418.0, 382.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [412.0, 360.0, 86.0, 86.0], "bbox_xyxy_clipped": [412.0, 360.0, 498.0, 446.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [476.0, 468.0, 72.0, 72.0], "bbox_xyxy_clipped": [476.0, 468.0, 548.0, 540.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [534.0, 550.0, 64.0, 64.0], "bbox_xyxy_clipped": [534.0, 550.0, 598.0, 614.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0005057123067576749}, "Ove": {"reason": null, "status": "ok", "value": 0.030216489185533154}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c6c147785ea3c16f98dd907", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c6c147785ea3c16f98dd907/pipeline/l0_result.json", "sha256": "d41b2065f7f75698634ac92e1f81d52a04004b7251d4007733744c177853af0c", "size_bytes": 13132}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c6c147785ea3c16f98dd907/inputs/pfull/asset_manifest.json", "sha256": "f2b9f81642b2d8a29a20053710c61f3374b8d2fbd81d6d742580abb049433527", "size_bytes": 7514}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_01.png", "sha256": "1be6310eb3ea1cedeead70303ed910cf93fb0511785d0042d42cbdfa7a52f6f8", "size_bytes": 170878}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c6c147785ea3c16f98dd907/inputs/r3/r3_asset_manifest.json", "sha256": "2122d17be76c42bfe5ac20b0d0aae80556910c38cb61242dad217450620a77b4", "size_bytes": 6586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5b41b16fe02217bc57e735deab1ebccab17050b2484cf024dad2f40a2e78394a", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [38.0, 98.0, 173.0, 121.0], "bbox_xyxy_clipped": [38.0, 98.0, 211.0, 219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 180.0, 118.0, 84.0], "bbox_xyxy_clipped": [0.0, 180.0, 118.0, 264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [260.0, 58.0, 122.0, 68.0], "bbox_xyxy_clipped": [260.0, 58.0, 382.0, 126.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [261.0, 128.0, 114.0, 46.0], "bbox_xyxy_clipped": [261.0, 128.0, 375.0, 174.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [240.0, 61.0, 17.0, 40.0], "bbox_xyxy_clipped": [240.0, 61.0, 257.0, 101.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [388.0, 118.0, 17.0, 40.0], "bbox_xyxy_clipped": [388.0, 118.0, 405.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [237.0, 18.0, 67.0, 30.0], "bbox_xyxy_clipped": [237.0, 18.0, 304.0, 48.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [322.0, 24.0, 52.0, 19.0], "bbox_xyxy_clipped": [322.0, 24.0, 374.0, 43.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [317.0, 174.0, 71.0, 73.0], "bbox_xyxy_clipped": [317.0, 174.0, 388.0, 247.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [357.0, 179.0, 55.0, 36.0], "bbox_xyxy_clipped": [357.0, 179.0, 412.0, 215.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [339.0, 223.0, 62.0, 30.0], "bbox_xyxy_clipped": [339.0, 223.0, 401.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [289.0, 235.0, 43.0, 44.0], "bbox_xyxy_clipped": [289.0, 235.0, 332.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.008751528140242508}, "Occ": {"reason": null, "status": "ok", "value": 0.003785421478493878}, "Ove": {"reason": null, "status": "ok", "value": 0.04363643076382631}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5c77eda885ea3c16f9f29101", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c77eda885ea3c16f9f29101/pipeline/l0_result.json", "sha256": "5a506ef584dd4da80dc5d80a09819a376b0ba71716ab1a4f47e07bd35a22a2fa", "size_bytes": 9823}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c77eda885ea3c16f9f29101/inputs/pfull/asset_manifest.json", "sha256": "bbcef0a6ac512a4d78688d0d7382624494597898e23ccb0aeb8d396adf2d2fe2", "size_bytes": 6331}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_01.png", "sha256": "5b41b16fe02217bc57e735deab1ebccab17050b2484cf024dad2f40a2e78394a", "size_bytes": 43262}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5c77eda885ea3c16f9f29101/inputs/r3/r3_asset_manifest.json", "sha256": "19ae8c21648cf8423738536ef966f01848e1e7da45f08f84898dad9bb11ea570", "size_bytes": 5543}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3bcce09ba46830615893f3dcc89ea3513e0ef9e2546730cca187129371d23242", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [43.0, 62.0, 320.0, 569.0], "bbox_xyxy_clipped": [43.0, 62.0, 363.0, 631.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [735.0, 88.0, 220.0, 90.0], "bbox_xyxy_clipped": [735.0, 88.0, 955.0, 178.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [86.0, 184.0, 300.0, 100.0], "bbox_xyxy_clipped": [86.0, 184.0, 386.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [705.0, 232.0, 260.0, 87.0], "bbox_xyxy_clipped": [705.0, 232.0, 965.0, 319.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [440.0, 805.0, 300.0, 190.0], "bbox_xyxy_clipped": [440.0, 805.0, 740.0, 995.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [215.0, 1018.0, 650.0, 176.0], "bbox_xyxy_clipped": [215.0, 1018.0, 865.0, 1194.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [684.0, 1032.0, 320.0, 228.0], "bbox_xyxy_clipped": [684.0, 1032.0, 1004.0, 1260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [604.0, 170.0, 339.0, 371.0], "bbox_xyxy_clipped": [604.0, 170.0, 943.0, 541.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [70.0, 1382.0, 350.0, 108.0], "bbox_xyxy_clipped": [70.0, 1382.0, 420.0, 1490.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [68.0, 1254.0, 390.0, 79.0], "bbox_xyxy_clipped": [68.0, 1254.0, 458.0, 1333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [70.0, 1548.0, 360.0, 252.0], "bbox_xyxy_clipped": [70.0, 1548.0, 430.0, 1800.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [445.0, 1450.0, 62.0, 370.0], "bbox_xyxy_clipped": [445.0, 1450.0, 507.0, 1820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0026705923568969953}, "Ove": {"reason": null, "status": "ok", "value": 0.04245844132259805}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ca5faf823c829c8218ffb10", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ca5faf823c829c8218ffb10/pipeline/l0_result.json", "sha256": "f90791ad766879a4c793614346b785e3eee31d54bebafa5cc8360cac69b16439", "size_bytes": 10641}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ca5faf823c829c8218ffb10/inputs/pfull/asset_manifest.json", "sha256": "f8ac0e756ce697109f87d9bc1f5c9a17e49dce61c58d17096ffb472c47550cbb", "size_bytes": 6362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_03.png", "sha256": "3bcce09ba46830615893f3dcc89ea3513e0ef9e2546730cca187129371d23242", "size_bytes": 253198}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ca5faf823c829c8218ffb10/inputs/r3/r3_asset_manifest.json", "sha256": "e0a7f37a18c31dd4dd88039baa1d0dbac7d0a578f2042474378e3735d533dfc8", "size_bytes": 5517}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f427d6b9f7859d7bb9f3b3563a6f5d77db93ebf91e23c0d791ae2770e79c0990", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [93.0, 56.0, 233.0, 166.0], "bbox_xyxy_clipped": [93.0, 56.0, 326.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [104.0, 65.0, 208.0, 143.0], "bbox_xyxy_clipped": [104.0, 65.0, 312.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [94.0, 20.0, 231.0, 32.0], "bbox_xyxy_clipped": [94.0, 20.0, 325.0, 52.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [106.0, 194.0, 206.0, 33.0], "bbox_xyxy_clipped": [106.0, 194.0, 312.0, 227.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [138.0, 238.0, 89.0, 28.0], "bbox_xyxy_clipped": [138.0, 238.0, 227.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [141.0, 261.0, 83.0, 26.0], "bbox_xyxy_clipped": [141.0, 261.0, 224.0, 287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [228.0, 238.0, 89.0, 28.0], "bbox_xyxy_clipped": [228.0, 238.0, 317.0, 266.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [231.0, 261.0, 83.0, 26.0], "bbox_xyxy_clipped": [231.0, 261.0, 314.0, 287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [106.0, 44.0, 203.0, 11.0], "bbox_xyxy_clipped": [106.0, 44.0, 309.0, 55.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [102.0, 221.0, 211.0, 12.0], "bbox_xyxy_clipped": [102.0, 221.0, 313.0, 233.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [188.0, 181.0, 16.0, 16.0], "bbox_xyxy_clipped": [188.0, 181.0, 204.0, 197.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [216.0, 168.0, 54.0, 91.0], "bbox_xyxy_clipped": [216.0, 168.0, 270.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [314.0, 145.0, 20.0, 99.0], "bbox_xyxy_clipped": [314.0, 145.0, 334.0, 244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [254.0, 190.0, 47.0, 79.0], "bbox_xyxy_clipped": [254.0, 190.0, 301.0, 269.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [201.0, 205.0, 14.0, 12.0], "bbox_xyxy_clipped": [201.0, 205.0, 215.0, 217.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005606861892919162}, "Ove": {"reason": null, "status": "ok", "value": 0.20242597621243574}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5cb89d8aadbc796055f970af", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cb89d8aadbc796055f970af/pipeline/l0_result.json", "sha256": "ba1e76c14edfbd3ef4874a174c29a3855a1f3d46cf490e75f90c512f61714825", "size_bytes": 13852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cb89d8aadbc796055f970af/inputs/pfull/asset_manifest.json", "sha256": "fdad396b6090bdb82d51284e972f644961a911cca42218bcdb467e88f0f4f328", "size_bytes": 7840}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_02.png", "sha256": "f427d6b9f7859d7bb9f3b3563a6f5d77db93ebf91e23c0d791ae2770e79c0990", "size_bytes": 38222}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cb89d8aadbc796055f970af/inputs/r3/r3_asset_manifest.json", "sha256": "7fe2412002e7dc5056dcc0ed8196f94405c660da0f56d30905b71efbce8b8dea", "size_bytes": 6895}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7bcf3908a8d9dae4245e5e6fc9e67aad8e390ea986a8f9f9e0514e2873d70c77", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [350.0, 586.0, 700.0, 395.0], "bbox_xyxy_clipped": [350.0, 586.0, 1050.0, 981.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1125.0, 105.0, 470.0, 224.0], "bbox_xyxy_clipped": [1125.0, 105.0, 1595.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1265.0, 305.0, 250.0, 73.0], "bbox_xyxy_clipped": [1265.0, 305.0, 1515.0, 378.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1540.0, 128.0, 260.0, 263.0], "bbox_xyxy_clipped": [1540.0, 128.0, 1800.0, 391.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [215.0, 955.0, 530.0, 42.0], "bbox_xyxy_clipped": [215.0, 955.0, 745.0, 997.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [980.0, 200.0, 620.0, 184.0], "bbox_xyxy_clipped": [980.0, 200.0, 1600.0, 384.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [875.0, 145.0, 520.0, 282.0], "bbox_xyxy_clipped": [875.0, 145.0, 1395.0, 427.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1180.0, 350.0, 390.0, 152.0], "bbox_xyxy_clipped": [1180.0, 350.0, 1570.0, 502.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1400.0, 210.0, 78.0, 64.0], "bbox_xyxy_clipped": [1400.0, 210.0, 1478.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1545.0, 250.0, 78.0, 64.0], "bbox_xyxy_clipped": [1545.0, 250.0, 1623.0, 314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1210.0, 470.0, 70.0, 60.0], "bbox_xyxy_clipped": [1210.0, 470.0, 1280.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1700.0, 410.0, 68.0, 56.0], "bbox_xyxy_clipped": [1700.0, 410.0, 1768.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.013589404786896568}, "Occ": {"reason": null, "status": "ok", "value": 0.003981558820429655}, "Ove": {"reason": null, "status": "ok", "value": 0.16851841287873814}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5cd67f1f7d4459dfe12714cf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd67f1f7d4459dfe12714cf/pipeline/l0_result.json", "sha256": "c4866c5b2deda599cb39f3fc379a8321d2fda67c8de79b25328d3e432d98e7c8", "size_bytes": 10395}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd67f1f7d4459dfe12714cf/inputs/pfull/asset_manifest.json", "sha256": "d79618e66ea3001dc7eec81a0046ed4e136481b249698c336fe63ddbc20b7422", "size_bytes": 6368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_03.png", "sha256": "7bcf3908a8d9dae4245e5e6fc9e67aad8e390ea986a8f9f9e0514e2873d70c77", "size_bytes": 376787}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd67f1f7d4459dfe12714cf/inputs/r3/r3_asset_manifest.json", "sha256": "cb8dc257d89eb493e706bdd4a0cd9ffcb0c75bccc3c4651859686d36baf73ced", "size_bytes": 5536}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c901e4e80eb0d1045ef657d2d92f8922632d904c39fb6a2ec98131d1fe35591e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [832.0, 58.0, 314.0, 598.0], "bbox_xyxy_clipped": [832.0, 58.0, 1146.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [70.0, 124.0, 360.0, 321.0], "bbox_xyxy_clipped": [70.0, 124.0, 430.0, 445.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [308.0, 236.0, 220.0, 201.0], "bbox_xyxy_clipped": [308.0, 236.0, 528.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [180.0, 210.0, 140.0, 127.0], "bbox_xyxy_clipped": [180.0, 210.0, 320.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 54.0, 316.0, 72.0], "bbox_xyxy_clipped": [92.0, 54.0, 408.0, 126.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [88.0, 128.0, 338.0, 137.0], "bbox_xyxy_clipped": [88.0, 128.0, 426.0, 265.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [97.0, 130.0, 318.0, 129.0], "bbox_xyxy_clipped": [97.0, 130.0, 415.0, 259.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [420.0, 170.0, 170.0, 50.0], "bbox_xyxy_clipped": [420.0, 170.0, 590.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [438.0, 218.0, 165.0, 43.0], "bbox_xyxy_clipped": [438.0, 218.0, 603.0, 261.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [460.0, 264.0, 154.0, 46.0], "bbox_xyxy_clipped": [460.0, 264.0, 614.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [484.0, 310.0, 160.0, 42.0], "bbox_xyxy_clipped": [484.0, 310.0, 644.0, 352.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [96.0, 274.0, 240.0, 74.0], "bbox_xyxy_clipped": [96.0, 274.0, 336.0, 348.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [99.0, 280.0, 234.0, 72.0], "bbox_xyxy_clipped": [99.0, 280.0, 333.0, 352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003330751539188753}, "Ove": {"reason": null, "status": "ok", "value": 0.33552719646369655}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5cd6984b7d4459dfe140c0b4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd6984b7d4459dfe140c0b4/pipeline/l0_result.json", "sha256": "21d5fe489930761ea9609cf8b2c732c85af2d236fd84b56987fe77c67a1b53a8", "size_bytes": 11195}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd6984b7d4459dfe140c0b4/inputs/pfull/asset_manifest.json", "sha256": "bbc2acddac40aa264c5f2f8d9cf98f5ea59c30367b713af0c300ed4b1da41cce", "size_bytes": 6862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "sha256": "c901e4e80eb0d1045ef657d2d92f8922632d904c39fb6a2ec98131d1fe35591e", "size_bytes": 577314}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cd6984b7d4459dfe140c0b4/inputs/r3/r3_asset_manifest.json", "sha256": "b3eb8aee6f4c3cdefcf6c2fc75da4c343304fde4841c11af6939200938ea320f", "size_bytes": 6019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "69b433954341c1596ce9263dab3453c8cb1b082f62fd25a2e8501759fbc6b8cb", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "asset_size_bytes": 1786, "kind": "asset", "pfull_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "r3_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "dad778e1d68806fdbbce49c426426ac2deba7575ea817980eb7445f6e674904e", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [48.0, 58.0, 145.0, 51.0], "bbox_xyxy_clipped": [48.0, 58.0, 193.0, 109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [48.0, 116.0, 76.0, 30.0], "bbox_xyxy_clipped": [48.0, 116.0, 124.0, 146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [48.0, 162.0, 117.0, 30.0], "bbox_xyxy_clipped": [48.0, 162.0, 165.0, 192.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [52.0, 270.0, 114.0, 15.0], "bbox_xyxy_clipped": [52.0, 270.0, 166.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [410.0, 65.0, 330.0, 206.0], "bbox_xyxy_clipped": [410.0, 65.0, 740.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [598.0, 99.0, 168.0, 77.0], "bbox_xyxy_clipped": [598.0, 99.0, 766.0, 176.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [380.0, 42.0, 130.0, 33.0], "bbox_xyxy_clipped": [380.0, 42.0, 510.0, 75.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [742.0, 214.0, 22.0, 121.0], "bbox_xyxy_clipped": [742.0, 214.0, 764.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [774.0, 214.0, 22.0, 121.0], "bbox_xyxy_clipped": [774.0, 214.0, 796.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0002624806725410293}, "Ove": {"reason": null, "status": "ok", "value": 0.018919036132931586}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "bd9071efcf1e6440b69900fc0c23c02f702805c59deebcd8bdc46b079dc0c508", "status": "computed"}, "sample_id": "5cde64e47d4459dfe1b81863", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/pipeline/l0_result.json", "sha256": "af18d54d6c8ce5eba22aff96427e3c5b72e9e7cf514b95a8259dc86bc90b02f2", "size_bytes": 8894}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/asset_manifest.json", "sha256": "a7048315feca221d2e4df3d3b541987ab68da2acaf53986ccce3c29cd64224a8", "size_bytes": 5416}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_03.png", "sha256": "69b433954341c1596ce9263dab3453c8cb1b082f62fd25a2e8501759fbc6b8cb", "size_bytes": 71349}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/inputs/r3/r3_asset_manifest.json", "sha256": "4bae08484acf9a519768e2050196b6f76b6d881bb8dd8f595a919c83a289dc25", "size_bytes": 4773}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "size_bytes": 1786}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "03a1ff7a828f06ade6dfd42064e3e65cb4b6db851d4af4de12035a49930cbd90", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [1098.0, 173.0, 620.0, 607.0], "bbox_xyxy_clipped": [1098.0, 173.0, 1718.0, 780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1002.0, 652.0, 500.0, 287.0], "bbox_xyxy_clipped": [1002.0, 652.0, 1502.0, 939.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1390.0, 118.0, 360.0, 446.0], "bbox_xyxy_clipped": [1390.0, 118.0, 1750.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [612.0, 456.0, 540.0, 90.0], "bbox_xyxy_clipped": [612.0, 456.0, 1152.0, 546.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [144.0, 130.0, 360.0, 78.0], "bbox_xyxy_clipped": [144.0, 130.0, 504.0, 208.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [170.0, 200.0, 470.0, 105.0], "bbox_xyxy_clipped": [170.0, 200.0, 640.0, 305.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [182.0, 292.0, 380.0, 85.0], "bbox_xyxy_clipped": [182.0, 292.0, 562.0, 377.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1335.0, 150.0, 290.0, 56.0], "bbox_xyxy_clipped": [1335.0, 150.0, 1625.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 392.0, 470.0, 48.0], "bbox_xyxy_clipped": [150.0, 392.0, 620.0, 440.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [150.0, 914.0, 260.0, 58.0], "bbox_xyxy_clipped": [150.0, 914.0, 410.0, 972.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [150.0, 978.0, 470.0, 44.0], "bbox_xyxy_clipped": [150.0, 978.0, 620.0, 1022.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004028135793219273}, "Ove": {"reason": null, "status": "ok", "value": 0.05831033290675631}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5ce3ba947d4459dfe1cebd75", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ce3ba947d4459dfe1cebd75/pipeline/l0_result.json", "sha256": "10436beeda90ac8da222753eb08be4636e10a4958f09c53de8a7e5d69943ea26", "size_bytes": 11163}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ce3ba947d4459dfe1cebd75/inputs/pfull/asset_manifest.json", "sha256": "383c244e6e2f912350b72b00c4bc592cd99bc4efad03ec181a88c0d409fb59bb", "size_bytes": 5980}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_01.png", "sha256": "03a1ff7a828f06ade6dfd42064e3e65cb4b6db851d4af4de12035a49930cbd90", "size_bytes": 329924}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ce3ba947d4459dfe1cebd75/inputs/r3/r3_asset_manifest.json", "sha256": "50591b112f259473b8428c735155bb870d34407c37b00cec2b2e426168ad881a", "size_bytes": 5449}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0340671997e987f491881db01a07661501ddb07b647bbfa71ceb7c9c4d493753", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [65.0, 170.0, 950.0, 309.0], "bbox_xyxy_clipped": [65.0, 170.0, 1015.0, 479.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 108.0, 75.0, 183.0], "bbox_xyxy_clipped": [52.0, 108.0, 127.0, 291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [952.0, 118.0, 69.0, 159.0], "bbox_xyxy_clipped": [952.0, 118.0, 1021.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [164.0, 138.0, 752.0, 323.0], "bbox_xyxy_clipped": [164.0, 138.0, 916.0, 461.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [212.0, 474.0, 657.0, 177.0], "bbox_xyxy_clipped": [212.0, 474.0, 869.0, 651.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [93.0, 648.0, 895.0, 70.0], "bbox_xyxy_clipped": [93.0, 648.0, 988.0, 718.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [220.0, 735.0, 640.0, 12.0], "bbox_xyxy_clipped": [220.0, 735.0, 860.0, 747.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [303.0, 650.0, 475.0, 711.0], "bbox_xyxy_clipped": [303.0, 650.0, 778.0, 1361.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [176.0, 872.0, 240.0, 240.0], "bbox_xyxy_clipped": [176.0, 872.0, 416.0, 1112.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [713.0, 855.0, 225.0, 495.0], "bbox_xyxy_clipped": [713.0, 855.0, 938.0, 1350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [623.0, 1190.0, 314.0, 644.0], "bbox_xyxy_clipped": [623.0, 1190.0, 937.0, 1834.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [408.0, 1768.0, 264.0, 36.0], "bbox_xyxy_clipped": [408.0, 1768.0, 672.0, 1804.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00348609599273306}, "Ove": {"reason": null, "status": "ok", "value": 0.10011135837565703}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5cfe2ad78cba87f943da4ec5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cfe2ad78cba87f943da4ec5/pipeline/l0_result.json", "sha256": "ccb93279cd7eb66241480f14a73f56f913d1be3680bc2a2469b7672e56cbb526", "size_bytes": 10690}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cfe2ad78cba87f943da4ec5/inputs/pfull/asset_manifest.json", "sha256": "8e6939aa9f1afedee3b29626c0f167dc7ff941bcf7c14c18bf7cfc934ddd7ce9", "size_bytes": 6424}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_02.png", "sha256": "0340671997e987f491881db01a07661501ddb07b647bbfa71ceb7c9c4d493753", "size_bytes": 574069}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5cfe2ad78cba87f943da4ec5/inputs/r3/r3_asset_manifest.json", "sha256": "904531aeb9e6032e18fc0c18283205654ea1f3f7cbe8c1d4c3bfaeb5f312b5f0", "size_bytes": 5594}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "95e67d1f65264e974cd05fa80249cece3df27573c0c974c24b61f8c1c01b518e", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [109.0, 180.0, 420.0, 502.0], "bbox_xyxy_clipped": [109.0, 180.0, 529.0, 682.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 48.0, 330.0, 693.0], "bbox_xyxy_clipped": [0.0, 48.0, 330.0, 741.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 244.0, 228.0, 495.0], "bbox_xyxy_clipped": [0.0, 244.0, 228.0, 739.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [54.0, 118.0, 246.0, 246.0], "bbox_xyxy_clipped": [54.0, 118.0, 300.0, 364.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [257.0, 63.0, 220.0, 220.0], "bbox_xyxy_clipped": [257.0, 63.0, 477.0, 283.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [369.0, 216.0, 355.0, 85.0], "bbox_xyxy_clipped": [369.0, 216.0, 724.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [592.0, 539.0, 267.0, 90.0], "bbox_xyxy_clipped": [592.0, 539.0, 859.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [533.0, 88.0, 311.0, 57.0], "bbox_xyxy_clipped": [533.0, 88.0, 844.0, 145.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [531.0, 26.0, 211.0, 55.0], "bbox_xyxy_clipped": [531.0, 26.0, 742.0, 81.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [533.0, 86.0, 176.0, 90.0], "bbox_xyxy_clipped": [533.0, 86.0, 709.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [578.0, 549.0, 33.0, 30.0], "bbox_xyxy_clipped": [578.0, 549.0, 611.0, 579.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [626.0, 520.0, 221.0, 31.0], "bbox_xyxy_clipped": [626.0, 520.0, 847.0, 551.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [559.0, 694.0, 255.0, 35.0], "bbox_xyxy_clipped": [559.0, 694.0, 814.0, 729.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [531.0, 179.0, 203.0, 104.0], "bbox_xyxy_clipped": [531.0, 179.0, 734.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [782.0, 31.0, 126.0, 159.0], "bbox_xyxy_clipped": [782.0, 31.0, 908.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005657481344254954}, "Ove": {"reason": null, "status": "ok", "value": 0.19636717720499222}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d08f3708cba87f943ec4e3f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f3708cba87f943ec4e3f/pipeline/l0_result.json", "sha256": "38c434638c5fa6c48503c469a19d2d9929c8cd084c2de3e28678b1618c518960", "size_bytes": 12123}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f3708cba87f943ec4e3f/inputs/pfull/asset_manifest.json", "sha256": "56b22a1439c7b1fa0d9d55f0c9c6a85e9a08ffc94fcc340d960baacf268e7d6e", "size_bytes": 7909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_01.png", "sha256": "95e67d1f65264e974cd05fa80249cece3df27573c0c974c24b61f8c1c01b518e", "size_bytes": 312220}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f3708cba87f943ec4e3f/inputs/r3/r3_asset_manifest.json", "sha256": "1fbd946b235ab3476456d76c6c05f1f8d1a310d450a8cda0e1a2e2fb770393a5", "size_bytes": 7019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3003c42921f5e5c1983943317794c6c7c83b9b3bb5d08f49873fc903a41fa072", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [38.0, 214.0, 510.0, 616.0], "bbox_xyxy_clipped": [38.0, 214.0, 548.0, 830.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [118.0, 250.0, 48.0, 167.0], "bbox_xyxy_clipped": [118.0, 250.0, 166.0, 417.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [74.0, 470.0, 30.0, 111.0], "bbox_xyxy_clipped": [74.0, 470.0, 104.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [118.0, 455.0, 48.0, 406.0], "bbox_xyxy_clipped": [118.0, 455.0, 166.0, 861.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [675.0, 170.0, 288.0, 45.0], "bbox_xyxy_clipped": [675.0, 170.0, 963.0, 215.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [670.0, 225.0, 320.0, 76.0], "bbox_xyxy_clipped": [670.0, 225.0, 990.0, 301.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [670.0, 332.0, 245.0, 46.0], "bbox_xyxy_clipped": [670.0, 332.0, 915.0, 378.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [670.0, 392.0, 325.0, 37.0], "bbox_xyxy_clipped": [670.0, 392.0, 995.0, 429.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [214.0, 172.0, 56.0, 108.0], "bbox_xyxy_clipped": [214.0, 172.0, 270.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [133.0, 742.0, 176.0, 56.0], "bbox_xyxy_clipped": [133.0, 742.0, 309.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [674.0, 846.0, 197.0, 46.0], "bbox_xyxy_clipped": [674.0, 846.0, 871.0, 892.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [675.0, 898.0, 149.0, 50.0], "bbox_xyxy_clipped": [675.0, 898.0, 824.0, 948.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [502.0, 176.0, 22.0, 393.0], "bbox_xyxy_clipped": [502.0, 176.0, 524.0, 569.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00574381112891585}, "Ove": {"reason": null, "status": "ok", "value": 0.01755342120621979}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d08f7a08cba87f943f48a6d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f7a08cba87f943f48a6d/pipeline/l0_result.json", "sha256": "280b5ca5ebd48b0027032043bf56d0f8690c3715917638204745901965e76969", "size_bytes": 11110}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f7a08cba87f943f48a6d/inputs/pfull/asset_manifest.json", "sha256": "d4db065f7064cc22266234297e404020d66473bf8d913865140a15e296887f8c", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_01.png", "sha256": "3003c42921f5e5c1983943317794c6c7c83b9b3bb5d08f49873fc903a41fa072", "size_bytes": 301942}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d08f7a08cba87f943f48a6d/inputs/r3/r3_asset_manifest.json", "sha256": "e0767acaab1122a19f873c80b5d5e875790c9a15d7085aa2abdc4f0891fae955", "size_bytes": 6114}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7fe6dae26af3dd5ac016a7138796d05ad0cb57445b89353e878d148063a47ce2", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 10, "raw": 18, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [74.0, 86.0, 320.0, 320.0], "bbox_xyxy_clipped": [74.0, 86.0, 394.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [702.0, 94.0, 24.0, 24.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0002", "bbox_lwh_raw": [82.0, 190.0, 260.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [84.0, 224.0, 210.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [82.0, 430.0, 250.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [206.0, 148.0, 54.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [268.0, 148.0, 42.0, 4.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [86.0, 760.0, 260.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0008", "bbox_lwh_raw": [86.0, 804.0, 220.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [86.0, 954.0, 180.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [86.0, 972.0, 200.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [86.0, 112.0, 332.0, 130.0], "bbox_xyxy_clipped": [86.0, 112.0, 418.0, 242.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [86.0, 58.0, 260.0, 46.0], "bbox_xyxy_clipped": [86.0, 58.0, 346.0, 104.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [88.0, 244.0, 210.0, 23.0], "bbox_xyxy_clipped": [88.0, 244.0, 298.0, 267.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [86.0, 390.0, 260.0, 26.0], "bbox_xyxy_clipped": [86.0, 390.0, 346.0, 416.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [86.0, 980.0, 200.0, 25.0], "bbox_xyxy_clipped": [86.0, 980.0, 286.0, 1005.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [86.0, 442.0, 300.0, 128.0], "bbox_xyxy_clipped": [86.0, 442.0, 386.0, 570.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [530.0, 112.0, 420.0, 778.0], "bbox_xyxy_clipped": [530.0, 112.0, 950.0, 890.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0026631895248044784}, "Ove": {"reason": null, "status": "ok", "value": 0.06361384156653051}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d0cf79f8cba87f943616ca6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d0cf79f8cba87f943616ca6/pipeline/l0_result.json", "sha256": "29e254c088fea6581e201102bdbbc1041fa307a93e6ca649b1945f3e0c68071e", "size_bytes": 12830}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d0cf79f8cba87f943616ca6/inputs/pfull/asset_manifest.json", "sha256": "bacbc0c1922b1df6727f0ff762d1bff5a0379ff16cd80e5436e307cfc30fd90f", "size_bytes": 9458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_03.png", "sha256": "7fe6dae26af3dd5ac016a7138796d05ad0cb57445b89353e878d148063a47ce2", "size_bytes": 580583}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d0cf79f8cba87f943616ca6/inputs/r3/r3_asset_manifest.json", "sha256": "4d2e55778d3bb324dcc18aaa3a038363d098ac740266798ad22fa20af48178a8", "size_bytes": 8137}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "cd1fc65b152a0a72b9742fad464a740de4859f3185567213bdee59c4759a1963", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 20, "valid": 20}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [110.0, 224.0, 360.0, 540.0], "bbox_xyxy_clipped": [110.0, 224.0, 470.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [118.0, 32.0, 345.0, 143.0], "bbox_xyxy_clipped": [118.0, 32.0, 463.0, 175.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [128.0, 150.0, 290.0, 105.0], "bbox_xyxy_clipped": [128.0, 150.0, 418.0, 255.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [855.0, 42.0, 120.0, 80.0], "bbox_xyxy_clipped": [855.0, 42.0, 975.0, 122.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [975.0, 43.0, 140.0, 81.0], "bbox_xyxy_clipped": [975.0, 43.0, 1115.0, 124.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [823.0, 52.0, 55.0, 81.0], "bbox_xyxy_clipped": [823.0, 52.0, 878.0, 133.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [900.0, 106.0, 115.0, 74.0], "bbox_xyxy_clipped": [900.0, 106.0, 1015.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1016.0, 106.0, 128.0, 74.0], "bbox_xyxy_clipped": [1016.0, 106.0, 1144.0, 180.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [875.0, 120.0, 52.0, 77.0], "bbox_xyxy_clipped": [875.0, 120.0, 927.0, 197.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [480.0, 235.0, 260.0, 173.0], "bbox_xyxy_clipped": [480.0, 235.0, 740.0, 408.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [80.0, 542.0, 210.0, 79.0], "bbox_xyxy_clipped": [80.0, 542.0, 290.0, 621.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [78.0, 588.0, 210.0, 25.0], "bbox_xyxy_clipped": [78.0, 588.0, 288.0, 613.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [34.0, 569.0, 70.0, 37.0], "bbox_xyxy_clipped": [34.0, 569.0, 104.0, 606.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [760.0, 180.0, 170.0, 170.0], "bbox_xyxy_clipped": [760.0, 180.0, 930.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [935.0, 176.0, 150.0, 150.0], "bbox_xyxy_clipped": [935.0, 176.0, 1085.0, 326.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [760.0, 352.0, 150.0, 150.0], "bbox_xyxy_clipped": [760.0, 352.0, 910.0, 502.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [930.0, 350.0, 140.0, 140.0], "bbox_xyxy_clipped": [930.0, 350.0, 1070.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1080.0, 185.0, 92.0, 92.0], "bbox_xyxy_clipped": [1080.0, 185.0, 1172.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [790.0, 520.0, 170.0, 114.0], "bbox_xyxy_clipped": [790.0, 520.0, 960.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1010.0, 500.0, 140.0, 101.0], "bbox_xyxy_clipped": [1010.0, 500.0, 1150.0, 601.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004367315757660271}, "Ove": {"reason": null, "status": "ok", "value": 0.06297275782646793}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5d234eaf8cba87f94322b763", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d234eaf8cba87f94322b763/pipeline/l0_result.json", "sha256": "1ca6cd9c4df5e91b648855fdccede501109a1d86e9afae2fea3f56be67a90de1", "size_bytes": 15373}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d234eaf8cba87f94322b763/inputs/pfull/asset_manifest.json", "sha256": "158f743366f9a87ffbae66845aca149583d2069cff7143f1c13a44a77daff78d", "size_bytes": 10451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_02.png", "sha256": "cd1fc65b152a0a72b9742fad464a740de4859f3185567213bdee59c4759a1963", "size_bytes": 235701}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d234eaf8cba87f94322b763/inputs/r3/r3_asset_manifest.json", "sha256": "dfbc5fb3f6ad404ea0b1ab3bf71bd173f0f7a0ee3946812eaa234a8dbb314e15", "size_bytes": 9239}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4f365af2d9ffa86e753b612291f70498a244b7c3e13dbee9094966405f2a330d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 24, "valid": 24}, "elements": [{"asset_id": "asset_0015", "bbox_lwh_raw": [110.0, 84.0, 430.0, 276.0], "bbox_xyxy_clipped": [110.0, 84.0, 540.0, 360.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [112.0, 360.0, 360.0, 49.0], "bbox_xyxy_clipped": [112.0, 360.0, 472.0, 409.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [112.0, 414.0, 208.0, 56.0], "bbox_xyxy_clipped": [112.0, 414.0, 320.0, 470.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [96.0, 487.0, 940.0, 14.0], "bbox_xyxy_clipped": [96.0, 487.0, 1036.0, 501.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [112.0, 525.0, 1140.0, 42.0], "bbox_xyxy_clipped": [112.0, 525.0, 1252.0, 567.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [154.0, 585.0, 720.0, 3.0], "bbox_xyxy_clipped": [154.0, 585.0, 874.0, 588.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [198.0, 622.0, 820.0, 191.0], "bbox_xyxy_clipped": [198.0, 622.0, 1018.0, 813.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [288.0, 516.0, 640.0, 132.0], "bbox_xyxy_clipped": [288.0, 516.0, 928.0, 648.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [110.0, 670.0, 270.0, 51.0], "bbox_xyxy_clipped": [110.0, 670.0, 380.0, 721.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [110.0, 724.0, 372.0, 209.0], "bbox_xyxy_clipped": [110.0, 724.0, 482.0, 933.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [496.0, 724.0, 360.0, 208.0], "bbox_xyxy_clipped": [496.0, 724.0, 856.0, 932.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [112.0, 948.0, 320.0, 97.0], "bbox_xyxy_clipped": [112.0, 948.0, 432.0, 1045.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [112.0, 1033.0, 350.0, 89.0], "bbox_xyxy_clipped": [112.0, 1033.0, 462.0, 1080.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1144.0, 468.0, 650.0, 630.0], "bbox_xyxy_clipped": [1144.0, 468.0, 1794.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1248.0, 575.0, 426.0, 426.0], "bbox_xyxy_clipped": [1248.0, 575.0, 1674.0, 1001.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1432.0, 498.0, 258.0, 300.0], "bbox_xyxy_clipped": [1432.0, 498.0, 1690.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1635.0, 650.0, 196.0, 369.0], "bbox_xyxy_clipped": [1635.0, 650.0, 1831.0, 1019.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1360.0, 92.0, 460.0, 238.0], "bbox_xyxy_clipped": [1360.0, 92.0, 1820.0, 330.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1495.0, 145.0, 270.0, 261.0], "bbox_xyxy_clipped": [1495.0, 145.0, 1765.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1260.0, 58.0, 380.0, 518.0], "bbox_xyxy_clipped": [1260.0, 58.0, 1640.0, 576.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1495.0, 18.0, 280.0, 486.0], "bbox_xyxy_clipped": [1495.0, 18.0, 1775.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1186.0, 716.0, 270.0, 157.0], "bbox_xyxy_clipped": [1186.0, 716.0, 1456.0, 873.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1468.0, 728.0, 76.0, 76.0], "bbox_xyxy_clipped": [1468.0, 728.0, 1544.0, 804.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1218.0, 634.0, 336.0, 262.0], "bbox_xyxy_clipped": [1218.0, 634.0, 1554.0, 896.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005720858347327029}, "Ove": {"reason": null, "status": "ok", "value": 0.23907772109883751}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d4ae4aecf657b21effa9831", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d4ae4aecf657b21effa9831/pipeline/l0_result.json", "sha256": "87deb599b09170006c10997e03506d8b66bc992a0ecdc2381a2afba67b858333", "size_bytes": 17197}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d4ae4aecf657b21effa9831/inputs/pfull/asset_manifest.json", "sha256": "c1768c97e914cd285be4110ccbe9e141d63cac5c366ee83668ecc79f1dd4075e", "size_bytes": 12496}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_03.png", "sha256": "4f365af2d9ffa86e753b612291f70498a244b7c3e13dbee9094966405f2a330d", "size_bytes": 738518}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d4ae4aecf657b21effa9831/inputs/r3/r3_asset_manifest.json", "sha256": "923a6d13afa47efc9cc9b4d42ecf22e331b29e79aceadd0d7b9bd0a2ede46f5b", "size_bytes": 10824}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"metrics": {}, "reason": "A3 summary did not mark sample completed", "run_id": "a3-rel100-t2-01", "sample_id": "5d67ed46cf657b21ef7bdad9", "source_artifacts": [], "source_status": "failed", "status": "source_skipped", "summary_entry": {"error_type": "A3L0PipelineError", "message": "CandidateShortfall: only 2/3 R0 candidates completed; Judge-Select requires exactly three complete renders", "sample_id": "5d67ed46cf657b21ef7bdad9", "status": "failed"}} +{"b0_render_sha256": "eb10ae321e05b4825fa6eabe3fc4f789d83cd3dca69aa439fa9f3ece32b9d50b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [24.0, 34.0, 150.0, 80.0], "bbox_xyxy_clipped": [24.0, 34.0, 174.0, 114.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [24.0, 116.0, 118.0, 44.0], "bbox_xyxy_clipped": [24.0, 116.0, 142.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [24.0, 182.0, 210.0, 42.0], "bbox_xyxy_clipped": [24.0, 182.0, 234.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [24.0, 228.0, 125.0, 26.0], "bbox_xyxy_clipped": [24.0, 228.0, 149.0, 254.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [214.0, 150.0, 122.0, 136.0], "bbox_xyxy_clipped": [214.0, 150.0, 336.0, 286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [265.0, 272.0, 56.0, 56.0], "bbox_xyxy_clipped": [265.0, 272.0, 321.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [236.0, 84.0, 70.0, 98.0], "bbox_xyxy_clipped": [236.0, 84.0, 306.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [292.0, 56.0, 44.0, 44.0], "bbox_xyxy_clipped": [292.0, 56.0, 336.0, 100.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0007295265042887057}, "Ove": {"reason": null, "status": "ok", "value": 0.02591282266252315}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5d68dd6ce79a2a634ea111b8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d68dd6ce79a2a634ea111b8/pipeline/l0_result.json", "sha256": "ba9d4f8e63a300ba2cf8ce402460279a8cba219e4e045a21ef0b247afbafb8b1", "size_bytes": 8109}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d68dd6ce79a2a634ea111b8/inputs/pfull/asset_manifest.json", "sha256": "14801938f3be9d74be875b7c053613b2d0303fd53ea3f285f554224099ad08d2", "size_bytes": 4401}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_03.png", "sha256": "eb10ae321e05b4825fa6eabe3fc4f789d83cd3dca69aa439fa9f3ece32b9d50b", "size_bytes": 30150}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d68dd6ce79a2a634ea111b8/inputs/r3/r3_asset_manifest.json", "sha256": "c0e529ca22f1e7ff835f56089dd91aba41a37223270b15e260b87ad3892c844e", "size_bytes": 3955}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "53488f98e26664386e3ee4c69641c6791da6ffadfef5069aa311aaa6ecb63bc8", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [86.0, 86.0, 265.0, 127.0], "bbox_xyxy_clipped": [86.0, 86.0, 351.0, 213.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [86.0, 205.0, 220.0, 113.0], "bbox_xyxy_clipped": [86.0, 205.0, 306.0, 318.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [86.0, 342.0, 356.0, 152.0], "bbox_xyxy_clipped": [86.0, 342.0, 442.0, 494.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [704.0, 62.0, 506.0, 754.0], "bbox_xyxy_clipped": [704.0, 62.0, 1210.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [581.0, 0.0, 699.0, 467.0], "bbox_xyxy_clipped": [581.0, 0.0, 1280.0, 467.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [392.0, 140.0, 238.0, 128.0], "bbox_xyxy_clipped": [392.0, 140.0, 630.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [505.0, 258.0, 292.0, 116.0], "bbox_xyxy_clipped": [505.0, 258.0, 797.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [613.0, 406.0, 217.0, 147.0], "bbox_xyxy_clipped": [613.0, 406.0, 830.0, 553.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [44.0, 468.0, 172.0, 106.0], "bbox_xyxy_clipped": [44.0, 468.0, 216.0, 574.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [188.0, 548.0, 218.0, 134.0], "bbox_xyxy_clipped": [188.0, 548.0, 406.0, 682.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [392.0, 502.0, 167.0, 126.0], "bbox_xyxy_clipped": [392.0, 502.0, 559.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [515.0, 586.0, 159.0, 158.0], "bbox_xyxy_clipped": [515.0, 586.0, 674.0, 720.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [58.0, 292.0, 198.0, 298.0], "bbox_xyxy_clipped": [58.0, 292.0, 256.0, 590.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005362294876705803}, "Ove": {"reason": null, "status": "ok", "value": 0.1162767928909174}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5d6903b8abc8ea6d1c0305fd", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6903b8abc8ea6d1c0305fd/pipeline/l0_result.json", "sha256": "a7ec5d4d75b2573163cbcf9da0e59ceed22ea35297d9a3260d2b95558de8b4ef", "size_bytes": 11333}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/pfull/asset_manifest.json", "sha256": "27ee0c92db7fea193a34e7eb84cccbd2f881b7aa33ed4af8199d098b315fa298", "size_bytes": 6867}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "sha256": "53488f98e26664386e3ee4c69641c6791da6ffadfef5069aa311aaa6ecb63bc8", "size_bytes": 637605}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/r3/r3_asset_manifest.json", "sha256": "1251aab6f3b2a9db9c4972f84f14eed08af2db9435a3e987fa21c9d0cb789667", "size_bytes": 5926}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8e27401198bc2a317f96585014b1be6845246e3349ca972d4872df702f6da51f", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "asset_size_bytes": 1172, "kind": "asset", "pfull_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "r3_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "c794e01b54b8c47dbc7c692d80e2a97a5614fa79af525e415f5524e7f55c1a20", "canvas": {"height": 288, "width": 432}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [22.0, 40.0, 220.0, 146.0], "bbox_xyxy_clipped": [22.0, 40.0, 242.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [260.0, 44.0, 140.0, 19.0], "bbox_xyxy_clipped": [260.0, 44.0, 400.0, 63.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [258.0, 86.0, 112.0, 52.0], "bbox_xyxy_clipped": [258.0, 86.0, 370.0, 138.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [260.0, 144.0, 150.0, 92.0], "bbox_xyxy_clipped": [260.0, 144.0, 410.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 110.0, 106.0], "bbox_xyxy_clipped": [0.0, 0.0, 110.0, 106.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [6.0, 14.0, 38.0, 94.0], "bbox_xyxy_clipped": [6.0, 14.0, 44.0, 108.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 0.0, 20.0, 200.0], "bbox_xyxy_clipped": [150.0, 0.0, 170.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [404.0, 0.0, 20.0, 200.0], "bbox_xyxy_clipped": [404.0, 0.0, 424.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.03659170617446027}, "Ove": {"reason": null, "status": "ok", "value": 0.07522260565714445}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "1b0df4abe14aa3752214a05725561259765380be09b0b18a036abe86a466163b", "status": "computed"}, "sample_id": "5d6909e8abc8ea6d1c0cda03", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/pipeline/l0_result.json", "sha256": "83a03a655aebf15dfbd562a67e018330028385aca4cc7d335574b201362cf847", "size_bytes": 8790}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/asset_manifest.json", "sha256": "3a0a8f14ceef56320f565151f65586be67a106092d752ee3f7c7fdc5e67add41", "size_bytes": 4924}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "sha256": "8e27401198bc2a317f96585014b1be6845246e3349ca972d4872df702f6da51f", "size_bytes": 74241}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/r3/r3_asset_manifest.json", "sha256": "a1a62a10b5d041bb3f7bed9d6ff4938bf18ea46fe17ff2f2c6867b42262a2c62", "size_bytes": 4257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "size_bytes": 1172}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "382b33b73f3b2962b7b1e520b8f42a16ae0d33493d2fec38d57b8e8b0febf721", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [660.0, 170.0, 260.0, 174.0], "bbox_xyxy_clipped": [660.0, 170.0, 920.0, 344.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [55.0, 45.0, 280.0, 52.0], "bbox_xyxy_clipped": [55.0, 45.0, 335.0, 97.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 110.0, 220.0, 54.0], "bbox_xyxy_clipped": [92.0, 110.0, 312.0, 164.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [52.0, 165.0, 200.0, 77.0], "bbox_xyxy_clipped": [52.0, 165.0, 252.0, 242.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [58.0, 600.0, 360.0, 41.0], "bbox_xyxy_clipped": [58.0, 600.0, 418.0, 641.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [560.0, 80.0, 160.0, 165.0], "bbox_xyxy_clipped": [560.0, 80.0, 720.0, 245.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [520.0, 430.0, 150.0, 154.0], "bbox_xyxy_clipped": [520.0, 430.0, 670.0, 584.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [290.0, 285.0, 330.0, 100.0], "bbox_xyxy_clipped": [290.0, 285.0, 620.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [410.0, 260.0, 120.0, 102.0], "bbox_xyxy_clipped": [410.0, 260.0, 530.0, 362.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [468.0, 292.0, 110.0, 20.0], "bbox_xyxy_clipped": [468.0, 292.0, 578.0, 312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [320.0, 390.0, 145.0, 60.0], "bbox_xyxy_clipped": [320.0, 390.0, 465.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [360.0, 250.0, 310.0, 12.0], "bbox_xyxy_clipped": [360.0, 250.0, 670.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [705.0, 360.0, 100.0, 42.0], "bbox_xyxy_clipped": [705.0, 360.0, 805.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [420.0, 560.0, 220.0, 5.0], "bbox_xyxy_clipped": [420.0, 560.0, 640.0, 565.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [445.0, 210.0, 92.0, 74.0], "bbox_xyxy_clipped": [445.0, 210.0, 537.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [760.0, 240.0, 84.0, 68.0], "bbox_xyxy_clipped": [760.0, 240.0, 844.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [790.0, 235.0, 110.0, 89.0], "bbox_xyxy_clipped": [790.0, 235.0, 900.0, 324.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [305.0, 130.0, 38.0, 38.0], "bbox_xyxy_clipped": [305.0, 130.0, 343.0, 168.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [98.0, 85.0, 150.0, 53.0], "bbox_xyxy_clipped": [98.0, 85.0, 248.0, 138.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002417786628349781}, "Ove": {"reason": null, "status": "ok", "value": 0.09428476867233207}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/pipeline/l0_result.json", "sha256": "40a9832164f52346da1cee85852ff4a1d22da7e762df2aa9d277d463cd024744", "size_bytes": 14721}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/pfull/asset_manifest.json", "sha256": "b1b4403e1c7ea428aa9513f7e1ed5ffde3d733e61e04ecc8650ecbce1a259c39", "size_bytes": 9856}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_03.png", "sha256": "382b33b73f3b2962b7b1e520b8f42a16ae0d33493d2fec38d57b8e8b0febf721", "size_bytes": 81562}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/r3/r3_asset_manifest.json", "sha256": "12c0d34ce59fddcfa768eacc30f62f56799ef471f998ca6f13366b5611ef9d41", "size_bytes": 8456}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0c6f44a94f31fc31425195d7bf3d65084f6698e2529338796554bc097312747e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 26, "valid": 22}, "elements": [{"asset_id": "asset_0017", "bbox_lwh_raw": [74.0, 82.0, 181.0, 43.0], "bbox_xyxy_clipped": [74.0, 82.0, 255.0, 125.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [88.0, 129.0, 112.0, 77.0], "bbox_xyxy_clipped": [88.0, 129.0, 200.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [74.0, 214.0, 330.0, 182.0], "bbox_xyxy_clipped": [74.0, 214.0, 404.0, 396.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [74.0, 402.0, 321.0, 40.0], "bbox_xyxy_clipped": [74.0, 402.0, 395.0, 442.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [74.0, 447.0, 290.0, 40.0], "bbox_xyxy_clipped": [74.0, 447.0, 364.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [74.0, 492.0, 233.0, 69.0], "bbox_xyxy_clipped": [74.0, 492.0, 307.0, 561.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [620.0, 320.0, 320.0, 640.0], "bbox_xyxy_clipped": [620.0, 320.0, 940.0, 960.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [736.0, 972.0, 200.0, 25.0], "bbox_xyxy_clipped": [736.0, 972.0, 936.0, 997.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 760.0, 120.0, 120.0], "bbox_xyxy_clipped": [40.0, 760.0, 160.0, 880.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [170.0, 770.0, 150.0, 296.0], "bbox_xyxy_clipped": [170.0, 770.0, 320.0, 1066.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 620.0, 300.0, 25.0], "bbox_xyxy_clipped": [0.0, 620.0, 300.0, 645.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [0.0, 655.0, 270.0, 72.0], "bbox_xyxy_clipped": [0.0, 655.0, 270.0, 727.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [0.0, 735.0, 210.0, 159.0], "bbox_xyxy_clipped": [0.0, 735.0, 210.0, 894.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [0.0, 900.0, 190.0, 17.0], "bbox_xyxy_clipped": [0.0, 900.0, 190.0, 917.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [250.0, 160.0, 430.0, 114.0], "bbox_xyxy_clipped": [250.0, 160.0, 680.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [260.0, 290.0, 260.0, 11.0], "bbox_xyxy_clipped": [260.0, 290.0, 520.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [545.0, 250.0, 300.0, 22.0], "bbox_xyxy_clipped": [545.0, 250.0, 845.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [650.0, 210.0, 250.0, 19.0], "bbox_xyxy_clipped": [650.0, 210.0, 900.0, 229.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [820.0, 180.0, 170.0, 21.0], "bbox_xyxy_clipped": [820.0, 180.0, 990.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [820.0, 220.0, 150.0, 17.0], "bbox_xyxy_clipped": [820.0, 220.0, 970.0, 237.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [840.0, 260.0, 120.0, 21.0], "bbox_xyxy_clipped": [840.0, 260.0, 960.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [860.0, 300.0, 140.0, 36.0], "bbox_xyxy_clipped": [860.0, 300.0, 1000.0, 336.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [875.0, 350.0, 130.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0022", "bbox_lwh_raw": [930.0, 380.0, 88.0, 9.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0023", "bbox_lwh_raw": [945.0, 398.0, 55.0, 15.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0025", "bbox_lwh_raw": [990.0, 420.0, 20.0, 43.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005291872750794757}, "Ove": {"reason": null, "status": "ok", "value": 0.03701092023466577}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d9cad82abc8ea6d1c23ebf1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cad82abc8ea6d1c23ebf1/pipeline/l0_result.json", "sha256": "0645482e0181a31d05e53f64c96c13af52af9eac4cf2ef10af146cbf494ca7d6", "size_bytes": 17685}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/pfull/asset_manifest.json", "sha256": "ad56482af78d56f2cd424a750d0bdd213cdb6b85ddfa444498ceac571120ba58", "size_bytes": 13333}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_02.png", "sha256": "0c6f44a94f31fc31425195d7bf3d65084f6698e2529338796554bc097312747e", "size_bytes": 87152}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/r3/r3_asset_manifest.json", "sha256": "595b874927f71b89b42561e12465226a85ba88dd3e6746d2412b00cdb87e54ff", "size_bytes": 11309}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "bdc5c703bef9467c8d303ae2806205cf14da0c921ef7a73a34c0bd7aee9db0b3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 23, "valid": 23}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [572.0, 263.0, 333.0, 222.0], "bbox_xyxy_clipped": [572.0, 263.0, 905.0, 485.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [54.0, 49.0, 287.0, 155.0], "bbox_xyxy_clipped": [54.0, 49.0, 341.0, 204.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [56.0, 215.0, 342.0, 30.0], "bbox_xyxy_clipped": [56.0, 215.0, 398.0, 245.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [384.0, 46.0, 417.0, 37.0], "bbox_xyxy_clipped": [384.0, 46.0, 801.0, 83.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [740.0, 48.0, 118.0, 24.0], "bbox_xyxy_clipped": [740.0, 48.0, 858.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [855.0, 48.0, 85.0, 20.0], "bbox_xyxy_clipped": [855.0, 48.0, 940.0, 68.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [54.0, 257.0, 271.0, 28.0], "bbox_xyxy_clipped": [54.0, 257.0, 325.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [55.0, 291.0, 197.0, 37.0], "bbox_xyxy_clipped": [55.0, 291.0, 252.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [846.0, 263.0, 94.0, 156.0], "bbox_xyxy_clipped": [846.0, 263.0, 940.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [58.0, 190.0, 790.0, 20.0], "bbox_xyxy_clipped": [58.0, 190.0, 848.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [60.0, 238.0, 220.0, 55.0], "bbox_xyxy_clipped": [60.0, 238.0, 280.0, 293.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [392.0, 244.0, 210.0, 53.0], "bbox_xyxy_clipped": [392.0, 244.0, 602.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [55.0, 120.0, 203.0, 62.0], "bbox_xyxy_clipped": [55.0, 120.0, 258.0, 182.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [270.0, 121.0, 216.0, 50.0], "bbox_xyxy_clipped": [270.0, 121.0, 486.0, 171.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [78.0, 392.0, 120.0, 8.0], "bbox_xyxy_clipped": [78.0, 392.0, 198.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [57.0, 343.0, 312.0, 18.0], "bbox_xyxy_clipped": [57.0, 343.0, 369.0, 361.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [383.0, 345.0, 272.0, 40.0], "bbox_xyxy_clipped": [383.0, 345.0, 655.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [632.0, 118.0, 227.0, 19.0], "bbox_xyxy_clipped": [632.0, 118.0, 859.0, 137.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [744.0, 159.0, 120.0, 8.0], "bbox_xyxy_clipped": [744.0, 159.0, 864.0, 167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [401.0, 392.0, 122.0, 27.0], "bbox_xyxy_clipped": [401.0, 392.0, 523.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [291.0, 391.0, 157.0, 13.0], "bbox_xyxy_clipped": [291.0, 391.0, 448.0, 404.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [460.0, 392.0, 153.0, 12.0], "bbox_xyxy_clipped": [460.0, 392.0, 613.0, 404.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [636.0, 342.0, 206.0, 47.0], "bbox_xyxy_clipped": [636.0, 342.0, 842.0, 389.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0005553915326116536}, "Ove": {"reason": null, "status": "ok", "value": 0.07426216918371002}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d9cadb1abc8ea6d1c246dc8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cadb1abc8ea6d1c246dc8/pipeline/l0_result.json", "sha256": "f625e2deaa9930d704b54cf56e31d039743192ebb728bc6702d9aea1f6ebc78a", "size_bytes": 15768}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/pfull/asset_manifest.json", "sha256": "c3e79c7c8c4db408cd86640f1fda18b89dc79bc4fa80146f7fd501d78554d722", "size_bytes": 11889}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_02.png", "sha256": "bdc5c703bef9467c8d303ae2806205cf14da0c921ef7a73a34c0bd7aee9db0b3", "size_bytes": 120248}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/r3/r3_asset_manifest.json", "sha256": "7eb3ca40945d6dae614b10d090782e1ed3b87af07e199f1c7485a0865e6dcab2", "size_bytes": 10223}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7e5c6797779de22516c69d2408813286497def4cd4686894d4c75e0f3c75d2df", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [102.0, 73.0, 246.0, 52.0], "bbox_xyxy_clipped": [102.0, 73.0, 348.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [102.0, 146.0, 360.0, 37.0], "bbox_xyxy_clipped": [102.0, 146.0, 462.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [102.0, 190.0, 220.0, 92.0], "bbox_xyxy_clipped": [102.0, 190.0, 322.0, 282.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [102.0, 305.0, 320.0, 50.0], "bbox_xyxy_clipped": [102.0, 305.0, 422.0, 355.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [102.0, 374.0, 360.0, 39.0], "bbox_xyxy_clipped": [102.0, 374.0, 462.0, 413.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [102.0, 928.0, 165.0, 30.0], "bbox_xyxy_clipped": [102.0, 928.0, 267.0, 958.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1073.0, 83.0, 560.0, 403.0], "bbox_xyxy_clipped": [1073.0, 83.0, 1633.0, 486.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1390.0, 540.0, 330.0, 494.0], "bbox_xyxy_clipped": [1390.0, 540.0, 1720.0, 1034.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [52.0, 520.0, 350.0, 482.0], "bbox_xyxy_clipped": [52.0, 520.0, 402.0, 1002.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1478.0, 118.0, 258.0, 258.0], "bbox_xyxy_clipped": [1478.0, 118.0, 1736.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003389566161866109}, "Ove": {"reason": null, "status": "ok", "value": 0.018787271459043346}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5da04604abc8ea6d1cbe2935", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da04604abc8ea6d1cbe2935/pipeline/l0_result.json", "sha256": "7ee72e2f945e8943db8f681bacd516f2c36b851722a72f94a58a48a1af7cf7f5", "size_bytes": 9482}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da04604abc8ea6d1cbe2935/inputs/pfull/asset_manifest.json", "sha256": "bbdca2a242e8e20775e7c73e3818fcc4a985abfbe6c8e1c84956c7b442c44eff", "size_bytes": 5451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da04604abc8ea6d1cbe2935/renders/r0_candidate_01.png", "sha256": "7e5c6797779de22516c69d2408813286497def4cd4686894d4c75e0f3c75d2df", "size_bytes": 476747}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da04604abc8ea6d1cbe2935/inputs/r3/r3_asset_manifest.json", "sha256": "ab8432a2abdc0dd06196743f659db025ec1be7c6c4ad82fe2e38340a353b58cb", "size_bytes": 4930}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "dde7abe95876fdc90145e35dc6021644647a04a0ded3332aceacceb6a5426c1d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 26, "valid": 25}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [610.0, 210.0, 520.0, 778.0], "bbox_xyxy_clipped": [610.0, 210.0, 1130.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [84.0, 130.0, 318.0, 52.0], "bbox_xyxy_clipped": [84.0, 130.0, 402.0, 182.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [84.0, 185.0, 395.0, 86.0], "bbox_xyxy_clipped": [84.0, 185.0, 479.0, 271.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [88.0, 290.0, 92.0, 44.0], "bbox_xyxy_clipped": [88.0, 290.0, 180.0, 334.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [176.0, 282.0, 68.0, 52.0], "bbox_xyxy_clipped": [176.0, 282.0, 244.0, 334.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [246.0, 292.0, 26.0, 38.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0020", "bbox_lwh_raw": [272.0, 292.0, 72.0, 40.0], "bbox_xyxy_clipped": [272.0, 292.0, 344.0, 332.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [510.0, 260.0, 150.0, 99.0], "bbox_xyxy_clipped": [510.0, 260.0, 660.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [88.0, 382.0, 260.0, 373.0], "bbox_xyxy_clipped": [88.0, 382.0, 348.0, 755.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [372.0, 394.0, 82.0, 266.0], "bbox_xyxy_clipped": [372.0, 394.0, 454.0, 660.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [470.0, 394.0, 74.0, 254.0], "bbox_xyxy_clipped": [470.0, 394.0, 544.0, 648.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [88.0, 1470.0, 236.0, 30.0], "bbox_xyxy_clipped": [88.0, 1470.0, 324.0, 1500.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [88.0, 1510.0, 164.0, 63.0], "bbox_xyxy_clipped": [88.0, 1510.0, 252.0, 1573.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1190.0, 21.0], "bbox_xyxy_clipped": [0.0, 0.0, 1190.0, 21.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 58.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 58.0, 1190.0, 78.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 116.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 116.0, 1190.0, 136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 170.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 170.0, 1190.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [0.0, 228.0, 1190.0, 21.0], "bbox_xyxy_clipped": [0.0, 228.0, 1190.0, 249.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [0.0, 286.0, 1190.0, 23.0], "bbox_xyxy_clipped": [0.0, 286.0, 1190.0, 309.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 350.0, 1190.0, 69.0], "bbox_xyxy_clipped": [0.0, 350.0, 1190.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [0.0, 450.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 450.0, 1190.0, 470.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [0.0, 514.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 514.0, 1190.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [0.0, 582.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 582.0, 1190.0, 602.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [0.0, 650.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 650.0, 1190.0, 670.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [0.0, 718.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 718.0, 1190.0, 738.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [0.0, 786.0, 1190.0, 20.0], "bbox_xyxy_clipped": [0.0, 786.0, 1190.0, 806.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012823955365278293}, "Ove": {"reason": null, "status": "ok", "value": 0.05954439231526775}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5da071b5abc8ea6d1c1f1d6f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da071b5abc8ea6d1c1f1d6f/pipeline/l0_result.json", "sha256": "8564b7b8a6a47f873d2f220b990356698d4ad40430381c8e069186971ac0d5f9", "size_bytes": 18735}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/pfull/asset_manifest.json", "sha256": "a361229d845a27aa05e282bcc85190ff9e18e3e84b3258a012a7dbc945961400", "size_bytes": 13521}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_03.png", "sha256": "dde7abe95876fdc90145e35dc6021644647a04a0ded3332aceacceb6a5426c1d", "size_bytes": 680568}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/r3/r3_asset_manifest.json", "sha256": "9c447b1700ad2ca65a7de2c009eb489be6bd6290fd3d1c0515811cc81713aa0d", "size_bytes": 11822}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f1109c0ec5574653a480776b40cf855a152a37dedd3b3317f8d5b67131709834", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 118.0, 585.0, 390.0], "bbox_xyxy_clipped": [0.0, 118.0, 585.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [540.0, 76.0, 540.0, 115.0], "bbox_xyxy_clipped": [540.0, 76.0, 1080.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [720.0, 28.0, 360.0, 178.0], "bbox_xyxy_clipped": [720.0, 28.0, 1080.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [935.0, 46.0, 145.0, 293.0], "bbox_xyxy_clipped": [935.0, 46.0, 1080.0, 339.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [960.0, 220.0, 120.0, 216.0], "bbox_xyxy_clipped": [960.0, 220.0, 1080.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [623.0, 221.0, 330.0, 114.0], "bbox_xyxy_clipped": [623.0, 221.0, 953.0, 335.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [628.0, 343.0, 384.0, 57.0], "bbox_xyxy_clipped": [628.0, 343.0, 1012.0, 400.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [629.0, 420.0, 305.0, 104.0], "bbox_xyxy_clipped": [629.0, 420.0, 934.0, 524.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [629.0, 533.0, 225.0, 97.0], "bbox_xyxy_clipped": [629.0, 533.0, 854.0, 630.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [628.0, 637.0, 205.0, 47.0], "bbox_xyxy_clipped": [628.0, 637.0, 833.0, 684.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [628.0, 756.0, 375.0, 81.0], "bbox_xyxy_clipped": [628.0, 756.0, 1003.0, 837.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [629.0, 848.0, 365.0, 146.0], "bbox_xyxy_clipped": [629.0, 848.0, 994.0, 994.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [45.0, 766.0, 180.0, 180.0], "bbox_xyxy_clipped": [45.0, 766.0, 225.0, 946.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [226.0, 786.0, 95.0, 137.0], "bbox_xyxy_clipped": [226.0, 786.0, 321.0, 923.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [96.0, 919.0, 95.0, 137.0], "bbox_xyxy_clipped": [96.0, 919.0, 191.0, 1056.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [270.0, 910.0, 95.0, 137.0], "bbox_xyxy_clipped": [270.0, 910.0, 365.0, 1047.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00429322627961693}, "Ove": {"reason": null, "status": "ok", "value": 0.08812266412792909}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5dbbff2eabc8ea6d1c15c382", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dbbff2eabc8ea6d1c15c382/pipeline/l0_result.json", "sha256": "ebd5958e2a866837b315041c0de08ea4c602a728ff45b5f1fce008c2898962e4", "size_bytes": 13288}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/pfull/asset_manifest.json", "sha256": "f0935f8c3e5c74afde9facef5f5aeab7693167dbf26aa2a09174e0ef999644be", "size_bytes": 8454}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "sha256": "f1109c0ec5574653a480776b40cf855a152a37dedd3b3317f8d5b67131709834", "size_bytes": 531179}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/r3/r3_asset_manifest.json", "sha256": "be579f6a8f24a57227a01530777d61f862a62b52228db94aa9f6ee66eeb8a086", "size_bytes": 7482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9e412115a70f5ce65388f09b02ea6643cac0b99d03d475be41299fdc8c98bbc4", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 20, "valid": 17}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [770.0, 120.0, 320.0, 505.0], "bbox_xyxy_clipped": [770.0, 120.0, 1090.0, 625.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [985.0, 260.0, 120.0, 155.0], "bbox_xyxy_clipped": [985.0, 260.0, 1105.0, 415.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1040.0, 365.0, 58.0, 235.0], "bbox_xyxy_clipped": [1040.0, 365.0, 1098.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 95.0, 235.0, 131.0], "bbox_xyxy_clipped": [92.0, 95.0, 327.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [92.0, 232.0, 260.0, 89.0], "bbox_xyxy_clipped": [92.0, 232.0, 352.0, 321.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [92.0, 338.0, 110.0, 140.0], "bbox_xyxy_clipped": [92.0, 338.0, 202.0, 478.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [210.0, 350.0, 95.0, 69.0], "bbox_xyxy_clipped": [210.0, 350.0, 305.0, 419.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [92.0, 450.0, 360.0, 84.0], "bbox_xyxy_clipped": [92.0, 450.0, 452.0, 534.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [92.0, 545.0, 160.0, 84.0], "bbox_xyxy_clipped": [92.0, 545.0, 252.0, 629.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [260.0, 548.0, 170.0, 77.0], "bbox_xyxy_clipped": [260.0, 548.0, 430.0, 625.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [92.0, 1070.0, 260.0, 59.0], "bbox_xyxy_clipped": [92.0, 1070.0, 352.0, 1129.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [92.0, 1148.0, 345.0, 50.0], "bbox_xyxy_clipped": [92.0, 1148.0, 437.0, 1198.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [92.0, 1215.0, 310.0, 41.0], "bbox_xyxy_clipped": [92.0, 1215.0, 402.0, 1256.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [92.0, 1270.0, 256.0, 127.0], "bbox_xyxy_clipped": [92.0, 1270.0, 348.0, 1397.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [360.0, 90.0, 610.0, 77.0], "bbox_xyxy_clipped": [360.0, 90.0, 970.0, 167.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [505.0, 187.0, 165.0, 165.0], "bbox_xyxy_clipped": [505.0, 187.0, 670.0, 352.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [725.0, 205.0, 110.0, 252.0], "bbox_xyxy_clipped": [725.0, 205.0, 835.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [860.0, 100.0, 235.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [860.0, 130.0, 235.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0019", "bbox_lwh_raw": [860.0, 160.0, 235.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002224998211209645}, "Ove": {"reason": null, "status": "ok", "value": 0.028488913542732853}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5dc27c32abc8ea6d1cbf115a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dc27c32abc8ea6d1cbf115a/pipeline/l0_result.json", "sha256": "878ee56afd7c9e5e549d7e67f04310bd663fef6c9fe346be0c51ba414c3a42ba", "size_bytes": 19051}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/pfull/asset_manifest.json", "sha256": "ca78a246932251bcfe2531ca725070ea5be71c76c0638b1aa8dce2270b08c597", "size_bytes": 10489}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "sha256": "9e412115a70f5ce65388f09b02ea6643cac0b99d03d475be41299fdc8c98bbc4", "size_bytes": 60923}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/r3/r3_asset_manifest.json", "sha256": "338f976750a2532c1a9648649d4933c3b8b6cadf1fc0a0bf2c62bc906aae2045", "size_bytes": 9361}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e813bd079f2a67f4047470e3ef466ded564611e0b9849164d938c9bf42c95c9c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [474.0, 0.0, 466.0, 390.0], "bbox_xyxy_clipped": [474.0, 0.0, 940.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [30.0, 30.0, 420.0, 629.0], "bbox_xyxy_clipped": [30.0, 30.0, 450.0, 659.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [530.0, 70.0, 350.0, 43.0], "bbox_xyxy_clipped": [530.0, 70.0, 880.0, 113.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [540.0, 120.0, 290.0, 69.0], "bbox_xyxy_clipped": [540.0, 120.0, 830.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [525.0, 205.0, 330.0, 70.0], "bbox_xyxy_clipped": [525.0, 205.0, 855.0, 275.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [852.0, 108.0, 46.0, 46.0], "bbox_xyxy_clipped": [852.0, 108.0, 898.0, 154.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [560.0, 565.0, 270.0, 46.0], "bbox_xyxy_clipped": [560.0, 565.0, 830.0, 611.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [846.0, 562.0, 74.0, 67.0], "bbox_xyxy_clipped": [846.0, 562.0, 920.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [560.0, 625.0, 255.0, 55.0], "bbox_xyxy_clipped": [560.0, 625.0, 815.0, 680.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003955738904542233}, "Ove": {"reason": null, "status": "ok", "value": 0.03776481469552758}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5df211c29fea0cc374abbbba", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df211c29fea0cc374abbbba/pipeline/l0_result.json", "sha256": "fa8cb2cf552285e2e125565aece97bf1f9b618637e409c423bf09321ed2b762d", "size_bytes": 8522}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df211c29fea0cc374abbbba/inputs/pfull/asset_manifest.json", "sha256": "ed3b8ecb8f9d96450548e996b1a040328542a81b1d4f1ad5bd79d6b7fbdd3122", "size_bytes": 4948}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_02.png", "sha256": "e813bd079f2a67f4047470e3ef466ded564611e0b9849164d938c9bf42c95c9c", "size_bytes": 379241}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df211c29fea0cc374abbbba/inputs/r3/r3_asset_manifest.json", "sha256": "67367d4c15300e380136b60b3c5a9692b38f4317f36354155afbcc916e0408da", "size_bytes": 4481}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "852b8850cd9a86513b58b9be6d4ff04f937115d8b7d70de6f7c8936f5a3b5523", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [271.0, 83.0, 659.0, 440.0], "bbox_xyxy_clipped": [271.0, 83.0, 930.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [304.0, 109.0, 86.0, 86.0], "bbox_xyxy_clipped": [304.0, 109.0, 390.0, 195.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [360.0, 208.0, 401.0, 28.0], "bbox_xyxy_clipped": [360.0, 208.0, 761.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [341.0, 242.0, 438.0, 71.0], "bbox_xyxy_clipped": [341.0, 242.0, 779.0, 313.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [384.0, 315.0, 432.0, 84.0], "bbox_xyxy_clipped": [384.0, 315.0, 816.0, 399.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [447.0, 333.0, 240.0, 118.0], "bbox_xyxy_clipped": [447.0, 333.0, 687.0, 451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [496.0, 345.0, 67.0, 50.0], "bbox_xyxy_clipped": [496.0, 345.0, 563.0, 395.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [566.0, 355.0, 41.0, 50.0], "bbox_xyxy_clipped": [566.0, 355.0, 607.0, 405.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [442.0, 555.0, 316.0, 41.0], "bbox_xyxy_clipped": [442.0, 555.0, 758.0, 596.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00505259451052437}, "Ove": {"reason": null, "status": "ok", "value": 0.1188995354883608}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5df216b89fea0cc374b8d341", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df216b89fea0cc374b8d341/pipeline/l0_result.json", "sha256": "1afb44f6cbc3b987078023a5a6ffc806fe5a98edcf47ea5c6e53c28edf47eb0d", "size_bytes": 8962}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df216b89fea0cc374b8d341/inputs/pfull/asset_manifest.json", "sha256": "a10377eaf8259f1ea32155bfffc8370667a915942fda63e6aba04053c8a76bb1", "size_bytes": 4925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_02.png", "sha256": "852b8850cd9a86513b58b9be6d4ff04f937115d8b7d70de6f7c8936f5a3b5523", "size_bytes": 429563}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df216b89fea0cc374b8d341/inputs/r3/r3_asset_manifest.json", "sha256": "8a0317e39245c49fd4ac7d1531a49efd8fa757036e00c46df17bcba8d45dff34", "size_bytes": 4507}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "be5bbec4460ab71713392c87b903d0bd5ff3e49244bfc42de0dad707d1059a03", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9cb1a443207bce73c0f03469462c58ea7cbeec7f0dd14016fdf88f64b54d9162", "canvas": {"height": 250, "width": 300}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 35.0, 210.0, 62.0], "bbox_xyxy_clipped": [18.0, 35.0, 228.0, 97.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [22.0, 18.0, 56.0, 14.0], "bbox_xyxy_clipped": [22.0, 18.0, 78.0, 32.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [68.0, 24.0, 164.0, 28.0], "bbox_xyxy_clipped": [68.0, 24.0, 232.0, 52.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [65.0, 43.0, 170.0, 28.0], "bbox_xyxy_clipped": [65.0, 43.0, 235.0, 71.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [68.0, 74.0, 180.0, 14.0], "bbox_xyxy_clipped": [68.0, 74.0, 248.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [20.0, 110.0, 180.0, 100.0], "bbox_xyxy_clipped": [20.0, 110.0, 200.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00465530833061524}, "Ove": {"reason": null, "status": "ok", "value": 0.14981982528118867}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "381287d0ea82fb8f07717a21d2294273bfd9028437c93b531bab8c80933fe19f", "status": "computed"}, "sample_id": "5df3af489fea0cc3742457a9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df3af489fea0cc3742457a9/pipeline/l0_result.json", "sha256": "7510334a8d943f8e7d5bf043b96f3fa773433b6044541108c6397ea6c4debc89", "size_bytes": 6638}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df3af489fea0cc3742457a9/inputs/pfull/asset_manifest.json", "sha256": "19ce46dba26a87936035dc105bcc0f5a7e8a8e70db2a684c1fd0587d76fcd77a", "size_bytes": 3391}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_02.png", "sha256": "be5bbec4460ab71713392c87b903d0bd5ff3e49244bfc42de0dad707d1059a03", "size_bytes": 47688}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df3af489fea0cc3742457a9/inputs/r3/r3_asset_manifest.json", "sha256": "896cee90cf6f999ddeb8e6677c68c6d63bf8527b787cc5a10bfee5617fb76152", "size_bytes": 3075}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8da6d50faef8b68045d167c31d76a8d2219d26e46ef8d609f4e23e163d93234d", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [70.0, 70.0, 410.0, 614.0], "bbox_xyxy_clipped": [70.0, 70.0, 480.0, 684.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [760.0, 95.0, 420.0, 120.0], "bbox_xyxy_clipped": [760.0, 95.0, 1180.0, 215.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [770.0, 212.0, 235.0, 40.0], "bbox_xyxy_clipped": [770.0, 212.0, 1005.0, 252.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1025.0, 206.0, 120.0, 50.0], "bbox_xyxy_clipped": [1025.0, 206.0, 1145.0, 256.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [905.0, 250.0, 375.0, 211.0], "bbox_xyxy_clipped": [905.0, 250.0, 1280.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1120.0, 120.0, 160.0, 243.0], "bbox_xyxy_clipped": [1120.0, 120.0, 1280.0, 363.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1100.0, 345.0, 165.0, 253.0], "bbox_xyxy_clipped": [1100.0, 345.0, 1265.0, 598.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1030.0, 560.0, 125.0, 134.0], "bbox_xyxy_clipped": [1030.0, 560.0, 1155.0, 694.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1145.0, 575.0, 110.0, 137.0], "bbox_xyxy_clipped": [1145.0, 575.0, 1255.0, 712.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1180.0, 505.0, 100.0, 122.0], "bbox_xyxy_clipped": [1180.0, 505.0, 1280.0, 627.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025733418855664}, "Ove": {"reason": null, "status": "ok", "value": 0.10027206944459044}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5df7606b9fea0cc374d371db", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df7606b9fea0cc374d371db/pipeline/l0_result.json", "sha256": "5aa22d9b412f910aa23c045e9a889882c960aac2da12a2e13f8ef09c0c9dd87a", "size_bytes": 9203}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df7606b9fea0cc374d371db/inputs/pfull/asset_manifest.json", "sha256": "950738483c631cf855128c2489238a2b1bae383bf940c77385e9d233e22f01f0", "size_bytes": 5423}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_01.png", "sha256": "8da6d50faef8b68045d167c31d76a8d2219d26e46ef8d609f4e23e163d93234d", "size_bytes": 371010}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5df7606b9fea0cc374d371db/inputs/r3/r3_asset_manifest.json", "sha256": "682aef8bcd1a78a9450ed55d01ea4e5a234aa09396382a36837acfbbc8b0a040", "size_bytes": 4913}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "90a7100e620a6ef10ced42fff1e548511117417de9c3df34468db4c7d5385deb", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [360.0, 150.0, 720.0, 1352.0], "bbox_xyxy_clipped": [360.0, 150.0, 1080.0, 1502.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 90.0, 520.0, 924.0], "bbox_xyxy_clipped": [0.0, 90.0, 520.0, 1014.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 520.0, 900.0, 676.0], "bbox_xyxy_clipped": [0.0, 520.0, 900.0, 1196.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [90.0, 1180.0, 520.0, 134.0], "bbox_xyxy_clipped": [90.0, 1180.0, 610.0, 1314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [655.0, 1210.0, 285.0, 285.0], "bbox_xyxy_clipped": [655.0, 1210.0, 940.0, 1495.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [500.0, 1390.0, 180.0, 180.0], "bbox_xyxy_clipped": [500.0, 1390.0, 680.0, 1570.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [70.0, 120.0, 560.0, 264.0], "bbox_xyxy_clipped": [70.0, 120.0, 630.0, 384.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 392.0, 340.0, 96.0], "bbox_xyxy_clipped": [78.0, 392.0, 418.0, 488.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [82.0, 492.0, 470.0, 68.0], "bbox_xyxy_clipped": [82.0, 492.0, 552.0, 560.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [430.0, 360.0, 220.0, 250.0], "bbox_xyxy_clipped": [430.0, 360.0, 650.0, 610.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [760.0, 1500.0, 250.0, 40.0], "bbox_xyxy_clipped": [760.0, 1500.0, 1010.0, 1540.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [760.0, 1548.0, 245.0, 40.0], "bbox_xyxy_clipped": [760.0, 1548.0, 1005.0, 1588.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [760.0, 1590.0, 280.0, 31.0], "bbox_xyxy_clipped": [760.0, 1590.0, 1040.0, 1621.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [760.0, 1630.0, 130.0, 30.0], "bbox_xyxy_clipped": [760.0, 1630.0, 890.0, 1660.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [745.0, 1588.0, 10.0, 526.0], "bbox_xyxy_clipped": [745.0, 1588.0, 755.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003889185174076035}, "Ove": {"reason": null, "status": "ok", "value": 0.10798542018521963}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e0213489fea0cc374175712", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0213489fea0cc374175712/pipeline/l0_result.json", "sha256": "3a867666354d68b6ee0054e48abd9885f85dc64f59e5ce3d5ec86a82e976147f", "size_bytes": 12077}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0213489fea0cc374175712/inputs/pfull/asset_manifest.json", "sha256": "91ed68570568cbb558b46a418cc8dea6c73d9940248fa6f82440cfc135dbeb7b", "size_bytes": 7976}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_03.png", "sha256": "90a7100e620a6ef10ced42fff1e548511117417de9c3df34468db4c7d5385deb", "size_bytes": 581229}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0213489fea0cc374175712/inputs/r3/r3_asset_manifest.json", "sha256": "71579af03b289dc79a5b4023c25c8ce88dcd78083c12b1b7869be75c086a2015", "size_bytes": 7055}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "cebb880c1406b72572945bd1ca3260b20a2646c272e15fcfb8395419ad3e468b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 27, "valid": 27}, "elements": [{"asset_id": "asset_0014", "bbox_lwh_raw": [29.0, 36.0, 302.0, 91.0], "bbox_xyxy_clipped": [29.0, 36.0, 331.0, 127.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [29.0, 17.0, 146.0, 35.0], "bbox_xyxy_clipped": [29.0, 17.0, 175.0, 52.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [30.0, 54.0, 173.0, 24.0], "bbox_xyxy_clipped": [30.0, 54.0, 203.0, 78.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [283.0, 16.0, 42.0, 36.0], "bbox_xyxy_clipped": [283.0, 16.0, 325.0, 52.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [29.0, 118.0, 171.0, 35.0], "bbox_xyxy_clipped": [29.0, 118.0, 200.0, 153.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [29.0, 167.0, 64.0, 90.0], "bbox_xyxy_clipped": [29.0, 167.0, 93.0, 257.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [96.0, 166.0, 107.0, 156.0], "bbox_xyxy_clipped": [96.0, 166.0, 203.0, 322.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [29.0, 268.0, 130.0, 27.0], "bbox_xyxy_clipped": [29.0, 268.0, 159.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [28.0, 304.0, 304.0, 12.0], "bbox_xyxy_clipped": [28.0, 304.0, 332.0, 316.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [29.0, 323.0, 154.0, 29.0], "bbox_xyxy_clipped": [29.0, 323.0, 183.0, 352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [29.0, 356.0, 124.0, 142.0], "bbox_xyxy_clipped": [29.0, 356.0, 153.0, 498.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [29.0, 444.0, 199.0, 77.0], "bbox_xyxy_clipped": [29.0, 444.0, 228.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [29.0, 476.0, 188.0, 69.0], "bbox_xyxy_clipped": [29.0, 476.0, 217.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [36.0, 336.0, 214.0, 142.0], "bbox_xyxy_clipped": [36.0, 336.0, 250.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [227.0, 349.0, 133.0, 89.0], "bbox_xyxy_clipped": [227.0, 349.0, 360.0, 438.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 349.0, 43.0, 34.0], "bbox_xyxy_clipped": [40.0, 349.0, 83.0, 383.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [52.0, 92.0, 232.0, 7.0], "bbox_xyxy_clipped": [52.0, 92.0, 284.0, 99.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [260.0, 358.0, 61.0, 48.0], "bbox_xyxy_clipped": [260.0, 358.0, 321.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [255.0, 487.0, 78.0, 4.0], "bbox_xyxy_clipped": [255.0, 487.0, 333.0, 491.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [31.0, 439.0, 18.0, 18.0], "bbox_xyxy_clipped": [31.0, 439.0, 49.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [52.0, 443.0, 16.0, 16.0], "bbox_xyxy_clipped": [52.0, 443.0, 68.0, 459.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [71.0, 438.0, 18.0, 18.0], "bbox_xyxy_clipped": [71.0, 438.0, 89.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [92.0, 442.0, 15.0, 15.0], "bbox_xyxy_clipped": [92.0, 442.0, 107.0, 457.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [110.0, 439.0, 17.0, 17.0], "bbox_xyxy_clipped": [110.0, 439.0, 127.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [130.0, 443.0, 16.0, 16.0], "bbox_xyxy_clipped": [130.0, 443.0, 146.0, 459.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [149.0, 440.0, 18.0, 18.0], "bbox_xyxy_clipped": [149.0, 440.0, 167.0, 458.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [31.0, 302.0, 304.0, 12.0], "bbox_xyxy_clipped": [31.0, 302.0, 335.0, 314.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006553855894555588}, "Ove": {"reason": null, "status": "ok", "value": 0.13233278724683448}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5e0219159fea0cc37425a627", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0219159fea0cc37425a627/pipeline/l0_result.json", "sha256": "e78374f18164f074ae558b37def6aff77d36846a370305e83e8044dc09e2bb3b", "size_bytes": 19310}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0219159fea0cc37425a627/inputs/pfull/asset_manifest.json", "sha256": "5a58c1c059abea2d9409afafb40c5c1a6492e40b8b53e7f4756945c8a01d4e1b", "size_bytes": 14038}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "sha256": "cebb880c1406b72572945bd1ca3260b20a2646c272e15fcfb8395419ad3e468b", "size_bytes": 142717}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0219159fea0cc37425a627/inputs/r3/r3_asset_manifest.json", "sha256": "001d7c06ad57f40d67909c0c02b23bd342d6d341e52bdb08ebb3baf1bc9e0810", "size_bytes": 12185}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c854ec145d1cc912e81b52cd1b576101cee2ab36b927d12c6a65b5d7b0cfd96b", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [193.0, 470.0, 694.0, 492.0], "bbox_xyxy_clipped": [193.0, 470.0, 887.0, 962.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [230.0, 500.0, 621.0, 443.0], "bbox_xyxy_clipped": [230.0, 500.0, 851.0, 943.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [95.0, 375.0, 620.0, 500.0], "bbox_xyxy_clipped": [95.0, 375.0, 715.0, 875.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [388.0, 835.0, 504.0, 406.0], "bbox_xyxy_clipped": [388.0, 835.0, 892.0, 1241.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [263.0, 120.0, 420.0, 121.0], "bbox_xyxy_clipped": [263.0, 120.0, 683.0, 241.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [356.0, 228.0, 236.0, 115.0], "bbox_xyxy_clipped": [356.0, 228.0, 592.0, 343.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [823.0, 560.0, 166.0, 111.0], "bbox_xyxy_clipped": [823.0, 560.0, 989.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [786.0, 664.0, 215.0, 48.0], "bbox_xyxy_clipped": [786.0, 664.0, 1001.0, 712.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [331.0, 1560.0, 417.0, 211.0], "bbox_xyxy_clipped": [331.0, 1560.0, 748.0, 1771.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [313.0, 1795.0, 455.0, 107.0], "bbox_xyxy_clipped": [313.0, 1795.0, 768.0, 1902.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [478.0, 74.0, 125.0, 116.0], "bbox_xyxy_clipped": [478.0, 74.0, 603.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [590.0, 188.0, 83.0, 87.0], "bbox_xyxy_clipped": [590.0, 188.0, 673.0, 275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [244.0, 1548.0, 602.0, 16.0], "bbox_xyxy_clipped": [244.0, 1548.0, 846.0, 1564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [292.0, 1584.0, 554.0, 14.0], "bbox_xyxy_clipped": [292.0, 1584.0, 846.0, 1598.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [84.0, 270.0, 166.0, 224.0], "bbox_xyxy_clipped": [84.0, 270.0, 250.0, 494.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004523838998958996}, "Ove": {"reason": null, "status": "ok", "value": 0.16883632567722576}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e04ba7f9fea0cc3749733ea", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e04ba7f9fea0cc3749733ea/pipeline/l0_result.json", "sha256": "c29e861362cd2155078f96fdb0326d367da158449d99646dec2dcf1529aea208", "size_bytes": 12954}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e04ba7f9fea0cc3749733ea/inputs/pfull/asset_manifest.json", "sha256": "e1a79164bf070c6d0ea28b34d61be62f09049c580d4e15a459c74b056dfb9485", "size_bytes": 7878}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_02.png", "sha256": "c854ec145d1cc912e81b52cd1b576101cee2ab36b927d12c6a65b5d7b0cfd96b", "size_bytes": 718784}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e04ba7f9fea0cc3749733ea/inputs/r3/r3_asset_manifest.json", "sha256": "c8e10892aa5a4e8ae672364d01366e052d80a47e52800e1b59530eb5ae0b6b10", "size_bytes": 6918}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "563e8a63ea4a90ab21eaf8cefd8611ddbe8f552272eb402434b349db045c8732", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1920.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [130.0, 95.0, 760.0, 824.0], "bbox_xyxy_clipped": [130.0, 95.0, 890.0, 919.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [102.0, 980.0, 1716.0, 39.0], "bbox_xyxy_clipped": [102.0, 980.0, 1818.0, 1019.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1545.0, 0.0, 375.0, 521.0], "bbox_xyxy_clipped": [1545.0, 0.0, 1920.0, 521.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1730.0, 350.0, 190.0, 377.0], "bbox_xyxy_clipped": [1730.0, 350.0, 1920.0, 727.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1410.0, 0.0, 510.0, 340.0], "bbox_xyxy_clipped": [1410.0, 0.0, 1920.0, 340.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [170.0, 150.0, 520.0, 209.0], "bbox_xyxy_clipped": [170.0, 150.0, 690.0, 359.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [190.0, 365.0, 430.0, 100.0], "bbox_xyxy_clipped": [190.0, 365.0, 620.0, 465.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [470.0, 360.0, 140.0, 91.0], "bbox_xyxy_clipped": [470.0, 360.0, 610.0, 451.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [190.0, 500.0, 390.0, 92.0], "bbox_xyxy_clipped": [190.0, 500.0, 580.0, 592.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [190.0, 615.0, 460.0, 63.0], "bbox_xyxy_clipped": [190.0, 615.0, 650.0, 678.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [190.0, 715.0, 370.0, 112.0], "bbox_xyxy_clipped": [190.0, 715.0, 560.0, 827.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006251716142819251}, "Ove": {"reason": null, "status": "ok", "value": 0.17100131664975363}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5e0621989fea0cc3748583f6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0621989fea0cc3748583f6/pipeline/l0_result.json", "sha256": "0489d50eace34652630a59773918ccd32d81f2a02a5bd8a728e54e4b9e1a42cc", "size_bytes": 12083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0621989fea0cc3748583f6/inputs/pfull/asset_manifest.json", "sha256": "2c8453013a832af6b409501f0c6d93635a0fcb35e12612fac186fd2394ad6aa5", "size_bytes": 6444}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "sha256": "563e8a63ea4a90ab21eaf8cefd8611ddbe8f552272eb402434b349db045c8732", "size_bytes": 557311}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0621989fea0cc3748583f6/inputs/r3/r3_asset_manifest.json", "sha256": "19e0cc163fe2f80b51028311fdb7e582bcccd98ee8f93d2f7b0077b4e8f5b0a1", "size_bytes": 5775}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5550f34032636921cd94d3b6033b4f8193357bb69551a867858aeac077dc760f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [70.0, 575.0, 470.0, 295.0], "bbox_xyxy_clipped": [70.0, 575.0, 540.0, 870.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [620.0, 120.0, 360.0, 52.0], "bbox_xyxy_clipped": [620.0, 120.0, 980.0, 172.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [675.0, 186.0, 290.0, 50.0], "bbox_xyxy_clipped": [675.0, 186.0, 965.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [650.0, 260.0, 290.0, 53.0], "bbox_xyxy_clipped": [650.0, 260.0, 940.0, 313.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [635.0, 332.0, 350.0, 42.0], "bbox_xyxy_clipped": [635.0, 332.0, 985.0, 374.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [755.0, 900.0, 235.0, 42.0], "bbox_xyxy_clipped": [755.0, 900.0, 990.0, 942.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [820.0, 948.0, 160.0, 33.0], "bbox_xyxy_clipped": [820.0, 948.0, 980.0, 981.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [905.0, 520.0, 95.0, 105.0], "bbox_xyxy_clipped": [905.0, 520.0, 1000.0, 625.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [860.0, 470.0, 140.0, 107.0], "bbox_xyxy_clipped": [860.0, 470.0, 1000.0, 577.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [888.0, 600.0, 105.0, 80.0], "bbox_xyxy_clipped": [888.0, 600.0, 993.0, 680.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005984655546061031}, "Ove": {"reason": null, "status": "ok", "value": 0.041313621327629765}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e0d99499fea0cc374a71bcc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0d99499fea0cc374a71bcc/pipeline/l0_result.json", "sha256": "24fd282b96142cb23b20ad514eff783ffc8c35d7c23b8efce7bc4806bd34d782", "size_bytes": 10092}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0d99499fea0cc374a71bcc/inputs/pfull/asset_manifest.json", "sha256": "7a981440cdca5a743cb3647313d0be5119d408419fa1697643c2a0d7c6023dcc", "size_bytes": 5429}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_03.png", "sha256": "5550f34032636921cd94d3b6033b4f8193357bb69551a867858aeac077dc760f", "size_bytes": 213679}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e0d99499fea0cc374a71bcc/inputs/r3/r3_asset_manifest.json", "sha256": "609adfa7baa33c719e7d4de1322b04d8d73ecb6d74177a6def271ce6cedc217d", "size_bytes": 4941}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "cd62043a81811dd6b498d6fdd31504b5b99610cba0bc6261f546e7f0bcd890af", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [118.0, 90.0, 542.0, 260.0], "bbox_xyxy_clipped": [118.0, 90.0, 660.0, 350.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [121.0, 345.0, 445.0, 196.0], "bbox_xyxy_clipped": [121.0, 345.0, 566.0, 541.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [248.0, 545.0, 420.0, 402.0], "bbox_xyxy_clipped": [248.0, 545.0, 668.0, 947.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [352.0, 420.0, 340.0, 490.0], "bbox_xyxy_clipped": [352.0, 420.0, 692.0, 910.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [403.0, 675.0, 250.0, 361.0], "bbox_xyxy_clipped": [403.0, 675.0, 653.0, 1036.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [112.0, 305.0, 620.0, 128.0], "bbox_xyxy_clipped": [112.0, 305.0, 732.0, 433.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [790.0, 948.0, 230.0, 32.0], "bbox_xyxy_clipped": [790.0, 948.0, 1020.0, 980.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.00845636532277679}, "Occ": {"reason": null, "status": "ok", "value": 0.0047807462698349484}, "Ove": {"reason": null, "status": "ok", "value": 0.25000700806641907}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e202d829fea0cc3744908a8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e202d829fea0cc3744908a8/pipeline/l0_result.json", "sha256": "1ef826773b5bc2f6e627aed1cb8fc183f70b39d81ccd37752f5d19f71fd6424a", "size_bytes": 7610}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e202d829fea0cc3744908a8/inputs/pfull/asset_manifest.json", "sha256": "4347f06e0e4bb3486b7a3cb2e55da879ff4271312f3c4caa6a325b84998a7e7a", "size_bytes": 3899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_03.png", "sha256": "cd62043a81811dd6b498d6fdd31504b5b99610cba0bc6261f546e7f0bcd890af", "size_bytes": 219597}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e202d829fea0cc3744908a8/inputs/r3/r3_asset_manifest.json", "sha256": "85f96b89f38844bb58a3956cd9e5abfd2ec04ca72dc27561fcb974033247940f", "size_bytes": 3496}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "78f89902677e3fee0f12e74bacba732063c78adc71e30e4ca9d5a677dec006eb", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [150.0, 210.0, 780.0, 521.0], "bbox_xyxy_clipped": [150.0, 210.0, 930.0, 731.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [296.0, 740.0, 488.0, 161.0], "bbox_xyxy_clipped": [296.0, 740.0, 784.0, 901.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [293.0, 890.0, 494.0, 149.0], "bbox_xyxy_clipped": [293.0, 890.0, 787.0, 1039.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [356.0, 1065.0, 368.0, 118.0], "bbox_xyxy_clipped": [356.0, 1065.0, 724.0, 1183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [385.0, 1188.0, 311.0, 111.0], "bbox_xyxy_clipped": [385.0, 1188.0, 696.0, 1299.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [179.0, 1315.0, 722.0, 58.0], "bbox_xyxy_clipped": [179.0, 1315.0, 901.0, 1373.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [240.0, 1368.0, 600.0, 94.0], "bbox_xyxy_clipped": [240.0, 1368.0, 840.0, 1462.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [315.0, 1488.0, 450.0, 28.0], "bbox_xyxy_clipped": [315.0, 1488.0, 765.0, 1516.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [315.0, 1542.0, 450.0, 28.0], "bbox_xyxy_clipped": [315.0, 1542.0, 765.0, 1570.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [826.0, 1458.0, 8.0, 288.0], "bbox_xyxy_clipped": [826.0, 1458.0, 834.0, 1746.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [288.0, 1760.0, 505.0, 51.0], "bbox_xyxy_clipped": [288.0, 1760.0, 793.0, 1811.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [108.0, 160.0, 864.0, 702.0], "bbox_xyxy_clipped": [108.0, 160.0, 972.0, 862.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [166.0, 420.0, 748.0, 812.0], "bbox_xyxy_clipped": [166.0, 420.0, 914.0, 1232.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0028764657492218286}, "Ove": {"reason": null, "status": "ok", "value": 0.14228559534318103}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e2031da9fea0cc37450dd01", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e2031da9fea0cc37450dd01/pipeline/l0_result.json", "sha256": "b8fcae26c7563841870f7101ae290b820b6e57a77d0408d185e20455f8529b82", "size_bytes": 10747}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e2031da9fea0cc37450dd01/inputs/pfull/asset_manifest.json", "sha256": "4c69a7c107f098b6a080c5da3f9ef93046eb9eb6e05968af86db08e0d1ef1868", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_03.png", "sha256": "78f89902677e3fee0f12e74bacba732063c78adc71e30e4ca9d5a677dec006eb", "size_bytes": 972363}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e2031da9fea0cc37450dd01/inputs/r3/r3_asset_manifest.json", "sha256": "4e68883d70f03114b2f9d1a8bff561db4495e8a11b1366a26774d816b858a9fa", "size_bytes": 6174}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fb28f24f81ca2377cd25f3ff8f78ccd5b3581cb9ec8f4016d8e92f16ae40be5c", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [80.0, 210.0, 250.0, 137.0], "bbox_xyxy_clipped": [80.0, 210.0, 330.0, 347.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [82.0, 372.0, 290.0, 110.0], "bbox_xyxy_clipped": [82.0, 372.0, 372.0, 482.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [78.0, 500.0, 340.0, 31.0], "bbox_xyxy_clipped": [78.0, 500.0, 418.0, 531.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [78.0, 158.0, 310.0, 28.0], "bbox_xyxy_clipped": [78.0, 158.0, 388.0, 186.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [82.0, 545.0, 360.0, 188.0], "bbox_xyxy_clipped": [82.0, 545.0, 442.0, 733.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [86.0, 1170.0, 340.0, 104.0], "bbox_xyxy_clipped": [86.0, 1170.0, 426.0, 1274.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [88.0, 1295.0, 330.0, 34.0], "bbox_xyxy_clipped": [88.0, 1295.0, 418.0, 1329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [425.0, 1205.0, 72.0, 334.0], "bbox_xyxy_clipped": [425.0, 1205.0, 497.0, 1539.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [356.0, 1080.0, 260.0, 308.0], "bbox_xyxy_clipped": [356.0, 1080.0, 616.0, 1388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [720.0, 250.0, 470.0, 375.0], "bbox_xyxy_clipped": [720.0, 250.0, 1190.0, 625.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [910.0, 545.0, 210.0, 286.0], "bbox_xyxy_clipped": [910.0, 545.0, 1120.0, 831.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0034328006498880828}, "Ove": {"reason": null, "status": "ok", "value": 0.028500602766440362}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5e28090f9fea0cc3748fc62a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e28090f9fea0cc3748fc62a/pipeline/l0_result.json", "sha256": "0724f6c0f6dc729c0fb72ce686ec56ae02104886541dc0b69e78fca14bf8e7c0", "size_bytes": 9708}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e28090f9fea0cc3748fc62a/inputs/pfull/asset_manifest.json", "sha256": "08277f146c49b10c714a4a3ed44fafbc2af9dc0dfd43b6c73fef0d93ff47a079", "size_bytes": 6047}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_03.png", "sha256": "fb28f24f81ca2377cd25f3ff8f78ccd5b3581cb9ec8f4016d8e92f16ae40be5c", "size_bytes": 262360}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e28090f9fea0cc3748fc62a/inputs/r3/r3_asset_manifest.json", "sha256": "e0971a11a09bcf7da3d8bfe3929baab0a24cd0b7e1eab7d499cb5b597ca2b0f5", "size_bytes": 5419}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ad4d21501c693dbdbf4d8cabb5ded16fe777959f7f56b12ca9ad97a6ff2aa199", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3b41f2ec7aa4d5b8818ae47fa4f6584bb208c30cdf00562414a6317e4ee18070", "canvas": {"height": 612, "width": 792}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [24.0, 70.0, 116.0, 168.0], "bbox_xyxy_clipped": [24.0, 70.0, 140.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [94.0, 78.0, 46.0, 169.0], "bbox_xyxy_clipped": [94.0, 78.0, 140.0, 247.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [110.0, 92.0, 14.0, 177.0], "bbox_xyxy_clipped": [110.0, 92.0, 124.0, 269.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [52.0, 38.0, 392.0, 23.0], "bbox_xyxy_clipped": [52.0, 38.0, 444.0, 61.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [360.0, 84.0, 356.0, 81.0], "bbox_xyxy_clipped": [360.0, 84.0, 716.0, 165.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [364.0, 192.0, 160.0, 26.0], "bbox_xyxy_clipped": [364.0, 192.0, 524.0, 218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [364.0, 374.0, 378.0, 39.0], "bbox_xyxy_clipped": [364.0, 374.0, 742.0, 413.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [362.0, 222.0, 236.0, 87.0], "bbox_xyxy_clipped": [362.0, 222.0, 598.0, 309.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [40.0, 272.0, 154.0, 299.0], "bbox_xyxy_clipped": [40.0, 272.0, 194.0, 571.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [44.0, 564.0, 708.0, 2.0], "bbox_xyxy_clipped": [44.0, 564.0, 752.0, 566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [122.0, 120.0, 12.0, 113.0], "bbox_xyxy_clipped": [122.0, 120.0, 134.0, 233.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [562.0, 494.0, 200.0, 25.0], "bbox_xyxy_clipped": [562.0, 494.0, 762.0, 519.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0036587162219443663}, "Ove": {"reason": null, "status": "ok", "value": 0.08782655087634604}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "01748acae88359682970cac43bc46e72928c52e46ec485fc11adbc6100db5f5e", "status": "computed"}, "sample_id": "5e6f770e4b3890eb07175aee", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e6f770e4b3890eb07175aee/pipeline/l0_result.json", "sha256": "fca90e597ecfdea4d9aab0a00766f98615d3597e2dbe2f851b7e1e744b917950", "size_bytes": 9677}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e6f770e4b3890eb07175aee/inputs/pfull/asset_manifest.json", "sha256": "9c033c126a83dc24e207a6eea4b5f3b9f745fc296bfa814b92fa6d3e96df8547", "size_bytes": 6487}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_01.png", "sha256": "ad4d21501c693dbdbf4d8cabb5ded16fe777959f7f56b12ca9ad97a6ff2aa199", "size_bytes": 124869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e6f770e4b3890eb07175aee/inputs/r3/r3_asset_manifest.json", "sha256": "7f2a533bdc725207a72831619ed308ab8c41f2c3c4eeadac23cf39c51625047e", "size_bytes": 5749}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9343c054af282fb5953770ea790c551e015d67e20ab1715c09aee88344726726", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [300.0, 80.0, 540.0, 117.0], "bbox_xyxy_clipped": [300.0, 80.0, 840.0, 197.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [560.0, 204.0, 430.0, 138.0], "bbox_xyxy_clipped": [560.0, 204.0, 990.0, 342.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [705.0, 908.0, 300.0, 76.0], "bbox_xyxy_clipped": [705.0, 908.0, 1005.0, 984.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [118.0, 430.0, 430.0, 533.0], "bbox_xyxy_clipped": [118.0, 430.0, 548.0, 963.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [635.0, 460.0, 350.0, 383.0], "bbox_xyxy_clipped": [635.0, 460.0, 985.0, 843.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [390.0, 622.0, 310.0, 133.0], "bbox_xyxy_clipped": [390.0, 622.0, 700.0, 755.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 210.0, 190.0], "bbox_xyxy_clipped": [0.0, 0.0, 210.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [842.0, 0.0, 238.0, 263.0], "bbox_xyxy_clipped": [842.0, 0.0, 1080.0, 263.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004461071166030766}, "Ove": {"reason": null, "status": "ok", "value": 0.026659062029911123}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8762404b3890eb0782ad22", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8762404b3890eb0782ad22/pipeline/l0_result.json", "sha256": "6dc14c3ddf865fd827c5faa4c7ed64a5af34c3611498677b33efbf2d484a8c5d", "size_bytes": 7737}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8762404b3890eb0782ad22/inputs/pfull/asset_manifest.json", "sha256": "b60b731e68e2d7053bfdc9ad061f8d59ad196dcd70db4223d21494db6a4ce035", "size_bytes": 4445}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "sha256": "9343c054af282fb5953770ea790c551e015d67e20ab1715c09aee88344726726", "size_bytes": 173279}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8762404b3890eb0782ad22/inputs/r3/r3_asset_manifest.json", "sha256": "c27f214d59c8fd7007bc31c087991bdaf8bb51ee6d0584ed8bfaae5360bc8e4d", "size_bytes": 3950}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c554167efebacdd2f42d7f5b9985190f8098d8d299637448815de6be2fe5b205", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [170.0, 170.0, 740.0, 149.0], "bbox_xyxy_clipped": [170.0, 170.0, 910.0, 319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [246.0, 344.0, 588.0, 180.0], "bbox_xyxy_clipped": [246.0, 344.0, 834.0, 524.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [223.0, 534.0, 634.0, 168.0], "bbox_xyxy_clipped": [223.0, 534.0, 857.0, 702.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [145.0, 705.0, 360.0, 326.0], "bbox_xyxy_clipped": [145.0, 705.0, 505.0, 1031.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [572.0, 705.0, 344.0, 380.0], "bbox_xyxy_clipped": [572.0, 705.0, 916.0, 1085.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [434.0, 890.0, 226.0, 97.0], "bbox_xyxy_clipped": [434.0, 890.0, 660.0, 987.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [758.0, 905.0, 154.0, 190.0], "bbox_xyxy_clipped": [758.0, 905.0, 912.0, 1095.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [886.0, 928.0, 126.0, 138.0], "bbox_xyxy_clipped": [886.0, 928.0, 1012.0, 1066.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0009441950889318392}, "Ove": {"reason": null, "status": "ok", "value": 0.05411523936056828}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e8d96cb4b3890eb071c683d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8d96cb4b3890eb071c683d/pipeline/l0_result.json", "sha256": "4910998ec2c4d1001372eb04a6a1766f69b77e0e995a30347a3439a2f21c0fca", "size_bytes": 7674}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8d96cb4b3890eb071c683d/inputs/pfull/asset_manifest.json", "sha256": "e3f82a048584a36c036994d9cfcfafccd597ff55ec859b8ca5821b21ed527f05", "size_bytes": 4449}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_02.png", "sha256": "c554167efebacdd2f42d7f5b9985190f8098d8d299637448815de6be2fe5b205", "size_bytes": 191230}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8d96cb4b3890eb071c683d/inputs/r3/r3_asset_manifest.json", "sha256": "bba0f3680931e26eb177c62fe3e41e5e0fb5f2a2d78ef5d1e6755170c0409dd1", "size_bytes": 3943}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "73af3425fde056cb055a30e9aab179a40afb166c5468bb950e577c24dd67e314", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0011", "bbox_lwh_raw": [118.0, 375.0, 320.0, 116.0], "bbox_xyxy_clipped": [118.0, 375.0, 438.0, 491.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [118.0, 492.0, 266.0, 47.0], "bbox_xyxy_clipped": [118.0, 492.0, 384.0, 539.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [118.0, 548.0, 58.0, 30.0], "bbox_xyxy_clipped": [118.0, 548.0, 176.0, 578.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [118.0, 621.0, 282.0, 33.0], "bbox_xyxy_clipped": [118.0, 621.0, 400.0, 654.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [650.0, 332.0, 292.0, 292.0], "bbox_xyxy_clipped": [650.0, 332.0, 942.0, 624.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [734.0, 212.0, 168.0, 145.0], "bbox_xyxy_clipped": [734.0, 212.0, 902.0, 357.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [884.0, 468.0, 118.0, 116.0], "bbox_xyxy_clipped": [884.0, 468.0, 1002.0, 584.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [690.0, 606.0, 206.0, 184.0], "bbox_xyxy_clipped": [690.0, 606.0, 896.0, 790.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [728.0, 392.0, 208.0, 208.0], "bbox_xyxy_clipped": [728.0, 392.0, 936.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [632.0, 501.0, 192.0, 107.0], "bbox_xyxy_clipped": [632.0, 501.0, 824.0, 608.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [838.0, 298.0, 140.0, 153.0], "bbox_xyxy_clipped": [838.0, 298.0, 978.0, 451.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [598.0, 528.0, 72.0, 149.0], "bbox_xyxy_clipped": [598.0, 528.0, 670.0, 677.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [575.0, 416.0, 124.0, 165.0], "bbox_xyxy_clipped": [575.0, 416.0, 699.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [503.0, 479.0, 96.0, 159.0], "bbox_xyxy_clipped": [503.0, 479.0, 599.0, 638.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [799.0, 143.0, 133.0, 137.0], "bbox_xyxy_clipped": [799.0, 143.0, 932.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0017121260845931491}, "Ove": {"reason": null, "status": "ok", "value": 0.1505010555420829}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8ef9fb4b3890eb0760bade", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8ef9fb4b3890eb0760bade/pipeline/l0_result.json", "sha256": "23d952c492e7ee69ba0cfcfadc4d47cff13d7e3ee1ca2aa771d478aa4c087d90", "size_bytes": 12433}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8ef9fb4b3890eb0760bade/inputs/pfull/asset_manifest.json", "sha256": "212a39c527e3a7409ff00b17233042c8fafc4906c830b4040b9c0f891d588fa2", "size_bytes": 7875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_03.png", "sha256": "73af3425fde056cb055a30e9aab179a40afb166c5468bb950e577c24dd67e314", "size_bytes": 79506}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e8ef9fb4b3890eb0760bade/inputs/r3/r3_asset_manifest.json", "sha256": "4ac834ece904a66ce404683fe91112b325dbb301b6012456020d352f3d3c0f85", "size_bytes": 6789}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "80dba9f08fc4018720ae94cf05b83b8fd731db8350498fb9b3d01a569f9f400f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "asset_size_bytes": 3291, "kind": "asset", "pfull_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "r3_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "12d1629a8b4ed95adbcbddf05c3c8b8fca07cab0f9ad5bec55b4f2c035b18c5b", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [70.0, 150.0, 320.0, 48.0], "bbox_xyxy_clipped": [70.0, 150.0, 390.0, 198.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [70.0, 205.0, 276.0, 166.0], "bbox_xyxy_clipped": [70.0, 205.0, 346.0, 371.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [70.0, 375.0, 230.0, 47.0], "bbox_xyxy_clipped": [70.0, 375.0, 300.0, 422.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [70.0, 455.0, 323.0, 38.0], "bbox_xyxy_clipped": [70.0, 455.0, 393.0, 493.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [500.0, 90.0, 420.0, 187.0], "bbox_xyxy_clipped": [500.0, 90.0, 920.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [848.0, 118.0, 126.0, 173.0], "bbox_xyxy_clipped": [848.0, 118.0, 974.0, 291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [392.0, 120.0, 216.0, 96.0], "bbox_xyxy_clipped": [392.0, 120.0, 608.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.06736772116699724}, "Ove": {"reason": null, "status": "ok", "value": 0.035057616847949745}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "5dd5d0915de07635d7a6ccb9968e083eb823f99b04cc92403f740ee66aed5181", "status": "computed"}, "sample_id": "5e90704d499b85dcc7d7114d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/pipeline/l0_result.json", "sha256": "990bcc0503a93eeeb7f30a37b2b24df7a22955f21ffd4a4f2749f50580dd3e4d", "size_bytes": 8377}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/asset_manifest.json", "sha256": "340dc453b680f13e45975e9540d534a71ad2d7d0b0cf53585861369f6843c031", "size_bytes": 4503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_03.png", "sha256": "80dba9f08fc4018720ae94cf05b83b8fd731db8350498fb9b3d01a569f9f400f", "size_bytes": 79852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/inputs/r3/r3_asset_manifest.json", "sha256": "bb144f7f80bd458a252d4c7198479d4bdd0d172c32bdc8433a793ca965ed5535", "size_bytes": 3999}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "size_bytes": 3291}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6a5406e913563f9173225f06e86fdce2c469ffb111898a548ee24e3d15b14f83", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [60.0, 78.0, 960.0, 540.0], "bbox_xyxy_clipped": [60.0, 78.0, 1020.0, 618.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [140.0, 130.0, 720.0, 694.0], "bbox_xyxy_clipped": [140.0, 130.0, 860.0, 824.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 92.0, 840.0, 67.0], "bbox_xyxy_clipped": [120.0, 92.0, 960.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [180.0, 170.0, 720.0, 86.0], "bbox_xyxy_clipped": [180.0, 170.0, 900.0, 256.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [686.0, 232.0, 304.0, 69.0], "bbox_xyxy_clipped": [686.0, 232.0, 990.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [762.0, 242.0, 152.0, 34.0], "bbox_xyxy_clipped": [762.0, 242.0, 914.0, 276.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [268.0, 860.0, 544.0, 609.0], "bbox_xyxy_clipped": [268.0, 860.0, 812.0, 1469.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002209050236137246}, "Ove": {"reason": null, "status": "ok", "value": 0.19043167359947796}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e984f83499b85dcc792f6be", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e984f83499b85dcc792f6be/pipeline/l0_result.json", "sha256": "d1ed82d83a9c8135e33a2999ed658c3c5087ad3fbc07fa3bbe43cb59c5624fed", "size_bytes": 7200}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e984f83499b85dcc792f6be/inputs/pfull/asset_manifest.json", "sha256": "82d9e521c23398e7a2f735c255777037d1ccf6daa80a9fb824c2fd972f8320a3", "size_bytes": 3898}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_03.png", "sha256": "6a5406e913563f9173225f06e86fdce2c469ffb111898a548ee24e3d15b14f83", "size_bytes": 422875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5e984f83499b85dcc792f6be/inputs/r3/r3_asset_manifest.json", "sha256": "fb9c74dfdab5f0d88c1a2857f5d57619fcb62f689a5d7cd4e0f4a68f914b413b", "size_bytes": 3482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1f66d58238508c32b8f0154ed7a3bbe6d096f6d095559e28801a061dafddad57", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [72.0, 101.0, 236.0, 419.0], "bbox_xyxy_clipped": [72.0, 101.0, 308.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [191.0, 132.0, 152.0, 75.0], "bbox_xyxy_clipped": [191.0, 132.0, 343.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [816.0, 228.0, 204.0, 71.0], "bbox_xyxy_clipped": [816.0, 228.0, 1020.0, 299.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [96.0, 1562.0, 350.0, 138.0], "bbox_xyxy_clipped": [96.0, 1562.0, 446.0, 1700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [646.0, 1562.0, 350.0, 138.0], "bbox_xyxy_clipped": [646.0, 1562.0, 996.0, 1700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [178.0, 248.0, 724.0, 116.0], "bbox_xyxy_clipped": [178.0, 248.0, 902.0, 364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [276.0, 390.0, 528.0, 833.0], "bbox_xyxy_clipped": [276.0, 390.0, 804.0, 1223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [328.0, 1185.0, 425.0, 140.0], "bbox_xyxy_clipped": [328.0, 1185.0, 753.0, 1325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [381.0, 1324.0, 319.0, 70.0], "bbox_xyxy_clipped": [381.0, 1324.0, 700.0, 1394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002833099382490657}, "Ove": {"reason": null, "status": "ok", "value": 0.029784492495870188}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ea01126499b85dcc781e788", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea01126499b85dcc781e788/pipeline/l0_result.json", "sha256": "b60ad501cab58bb783c052ddff49b2a25d23991dd7a2d476c2c714c9e5842377", "size_bytes": 9234}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea01126499b85dcc781e788/inputs/pfull/asset_manifest.json", "sha256": "f847d28cbefb16d29574b9a5fc557610d5b57980bdad45cf32ec2917e52e53c2", "size_bytes": 4870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_02.png", "sha256": "1f66d58238508c32b8f0154ed7a3bbe6d096f6d095559e28801a061dafddad57", "size_bytes": 346993}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea01126499b85dcc781e788/inputs/r3/r3_asset_manifest.json", "sha256": "270b4fd050089cbd8d38a4f7cc82c3acb226e0413c5a8156a92938e9e08c5404", "size_bytes": 4275}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e611bf67b91c93fadabf1c89f2e6cae32a6e3e56610fc5a4945a825f347363c3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [86.0, 124.0, 379.0, 75.0], "bbox_xyxy_clipped": [86.0, 124.0, 465.0, 199.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [88.0, 216.0, 157.0, 82.0], "bbox_xyxy_clipped": [88.0, 216.0, 245.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [91.0, 316.0, 376.0, 38.0], "bbox_xyxy_clipped": [91.0, 316.0, 467.0, 354.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [616.0, 948.0, 489.0, 338.0], "bbox_xyxy_clipped": [616.0, 948.0, 1105.0, 1286.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [568.0, 912.0, 315.0, 445.0], "bbox_xyxy_clipped": [568.0, 912.0, 883.0, 1357.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [709.0, 862.0, 321.0, 365.0], "bbox_xyxy_clipped": [709.0, 862.0, 1030.0, 1227.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [129.0, 562.0, 589.0, 118.0], "bbox_xyxy_clipped": [129.0, 562.0, 718.0, 680.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [548.0, 517.0, 149.0, 151.0], "bbox_xyxy_clipped": [548.0, 517.0, 697.0, 668.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [184.0, 721.0, 246.0, 120.0], "bbox_xyxy_clipped": [184.0, 721.0, 430.0, 841.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.006574686726204123}, "Occ": {"reason": null, "status": "ok", "value": 0.0041981372995718415}, "Ove": {"reason": null, "status": "ok", "value": 0.15128009875921344}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5ea2d990499b85dcc7aaeb92", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea2d990499b85dcc7aaeb92/pipeline/l0_result.json", "sha256": "b280a2b28169a3c93b6eef6a4120f2ea58d8b7419b1633e1587d572ee4e10645", "size_bytes": 8178}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea2d990499b85dcc7aaeb92/inputs/pfull/asset_manifest.json", "sha256": "f57470cd944a0f39eea99baad52f509aedd47c85048f672ca41f7f2ebcbe5c15", "size_bytes": 4869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_02.png", "sha256": "e611bf67b91c93fadabf1c89f2e6cae32a6e3e56610fc5a4945a825f347363c3", "size_bytes": 276100}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea2d990499b85dcc7aaeb92/inputs/r3/r3_asset_manifest.json", "sha256": "162110f1184e62a3fe3534b7e68f96a39f0ad926d18ad0748667a4aee1ed5de7", "size_bytes": 4293}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fdf1e34b8454d735051d49165c374f046ad6a32effe65e54d18e36e5c02aa518", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1200.0, 628.0], "bbox_xyxy_clipped": [0.0, 0.0, 1200.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [386.0, 145.0, 428.0, 543.0], "bbox_xyxy_clipped": [386.0, 145.0, 814.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [480.0, 212.0, 232.0, 255.0], "bbox_xyxy_clipped": [480.0, 212.0, 712.0, 467.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [762.0, 418.0, 138.0, 114.0], "bbox_xyxy_clipped": [762.0, 418.0, 900.0, 532.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [58.0, 42.0, 175.0, 202.0], "bbox_xyxy_clipped": [58.0, 42.0, 233.0, 244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [185.0, 46.0, 130.0, 129.0], "bbox_xyxy_clipped": [185.0, 46.0, 315.0, 175.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [58.0, 245.0, 309.0, 112.0], "bbox_xyxy_clipped": [58.0, 245.0, 367.0, 357.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [58.0, 360.0, 286.0, 113.0], "bbox_xyxy_clipped": [58.0, 360.0, 344.0, 473.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006247743254254578}, "Ove": {"reason": null, "status": "ok", "value": 0.12250499064814685}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5ea97187499b85dcc7c45e3d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea97187499b85dcc7c45e3d/pipeline/l0_result.json", "sha256": "2b13139f7f5c4ed499db4f7f79d27aa1a5423b466cc5b13402235cc73203cff9", "size_bytes": 8196}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea97187499b85dcc7c45e3d/inputs/pfull/asset_manifest.json", "sha256": "eb2c053b2a1537da25dde02b557df26050276e07065ea9abd2875cc3c5382a37", "size_bytes": 4372}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_02.png", "sha256": "fdf1e34b8454d735051d49165c374f046ad6a32effe65e54d18e36e5c02aa518", "size_bytes": 324983}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5ea97187499b85dcc7c45e3d/inputs/r3/r3_asset_manifest.json", "sha256": "0197c33ca42a2784cb94b6076e06ed0c3601d50b69e313d4f8fdefe94a2015ef", "size_bytes": 3889}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c2c0919408d3a700975359d1e0a4691e172346a6e6006a8b8a875140c276686d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "asset_size_bytes": 1034, "kind": "asset", "pfull_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "r3_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f93f6737b4650292700cfa9ecbf89cec44d8f4f79fb354516ad6384874ccf4e5", "canvas": {"height": 216, "width": 576}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [36.0, 26.0, 118.0, 98.0], "bbox_xyxy_clipped": [36.0, 26.0, 154.0, 124.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [38.0, 132.0, 130.0, 26.0], "bbox_xyxy_clipped": [38.0, 132.0, 168.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [38.0, 164.0, 142.0, 30.0], "bbox_xyxy_clipped": [38.0, 164.0, 180.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [38.0, 195.0, 122.0, 25.0], "bbox_xyxy_clipped": [38.0, 195.0, 160.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [38.0, 206.0, 78.0, 27.0], "bbox_xyxy_clipped": [38.0, 206.0, 116.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [208.0, 58.0, 161.0, 224.0], "bbox_xyxy_clipped": [208.0, 58.0, 369.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [273.0, 10.0, 2.0, 216.0], "bbox_xyxy_clipped": [273.0, 10.0, 275.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [454.0, 142.0, 122.0, 120.0], "bbox_xyxy_clipped": [454.0, 142.0, 576.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.008085896931255327}, "Ove": {"reason": null, "status": "ok", "value": 0.039603163087504764}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "cbe08409065657f5bdac6c69ca8b81365dd6465f8f1e073d688bdd940e5f261e", "status": "computed"}, "sample_id": "5f114599499b85dcc796da51", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/pipeline/l0_result.json", "sha256": "bbad046e7c75b29277c429371ebab5812b0ee845d8bfb0360ead61c4a7b8174e", "size_bytes": 8630}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/inputs/pfull/asset_manifest.json", "sha256": "3af5a3abca82bcc5758b1f2e4b73b8d1d22ef93b448ac9da604ea33ac9e56f1a", "size_bytes": 4952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_03.png", "sha256": "c2c0919408d3a700975359d1e0a4691e172346a6e6006a8b8a875140c276686d", "size_bytes": 102938}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/inputs/r3/r3_asset_manifest.json", "sha256": "d40513afaa4f9407070791584bd6f6ba2763d2151718a3a2a970cdbc99e89e18", "size_bytes": 4451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "size_bytes": 1034}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5570960f84a09eaec0b8e9b5b8b7103a412826ad267b91a7b7ab2d02f824104d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7620a7c3b9e96e49e41d2d7005e790c4aec88f0e514e706423acc725e9874b64", "canvas": {"height": 841, "width": 595}, "element_counts": {"invalid_below_0_1pct": 12, "raw": 37, "valid": 25}, "elements": [{"asset_id": "asset_0023", "bbox_lwh_raw": [41.0, 17.0, 112.0, 27.0], "bbox_xyxy_clipped": [41.0, 17.0, 153.0, 44.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [43.0, 50.0, 130.0, 16.0], "bbox_xyxy_clipped": [43.0, 50.0, 173.0, 66.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0036", "bbox_lwh_raw": [173.0, 18.0, 82.0, 60.0], "bbox_xyxy_clipped": [173.0, 18.0, 255.0, 78.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [41.0, 112.0, 172.0, 36.0], "bbox_xyxy_clipped": [41.0, 112.0, 213.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [42.0, 165.0, 120.0, 38.0], "bbox_xyxy_clipped": [42.0, 165.0, 162.0, 203.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [43.0, 212.0, 150.0, 139.0], "bbox_xyxy_clipped": [43.0, 212.0, 193.0, 351.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [206.0, 214.0, 31.0, 151.0], "bbox_xyxy_clipped": [206.0, 214.0, 237.0, 365.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [41.0, 356.0, 96.0, 32.0], "bbox_xyxy_clipped": [41.0, 356.0, 137.0, 388.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [42.0, 398.0, 148.0, 136.0], "bbox_xyxy_clipped": [42.0, 398.0, 190.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [42.0, 548.0, 154.0, 130.0], "bbox_xyxy_clipped": [42.0, 548.0, 196.0, 678.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [205.0, 395.0, 22.0, 153.0], "bbox_xyxy_clipped": [205.0, 395.0, 227.0, 548.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [41.0, 701.0, 151.0, 32.0], "bbox_xyxy_clipped": [41.0, 701.0, 192.0, 733.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [43.0, 742.0, 145.0, 147.0], "bbox_xyxy_clipped": [43.0, 742.0, 188.0, 841.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [207.0, 741.0, 28.0, 146.0], "bbox_xyxy_clipped": [207.0, 741.0, 235.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [40.0, 541.0, 125.0, 33.0], "bbox_xyxy_clipped": [40.0, 541.0, 165.0, 574.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [42.0, 588.0, 146.0, 133.0], "bbox_xyxy_clipped": [42.0, 588.0, 188.0, 721.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [206.0, 548.0, 31.0, 151.0], "bbox_xyxy_clipped": [206.0, 548.0, 237.0, 699.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [41.0, 804.0, 164.0, 35.0], "bbox_xyxy_clipped": [41.0, 804.0, 205.0, 839.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [43.0, 806.0, 149.0, 30.0], "bbox_xyxy_clipped": [43.0, 806.0, 192.0, 836.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [207.0, 807.0, 17.0, 145.0], "bbox_xyxy_clipped": [207.0, 807.0, 224.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [207.0, 166.0, 37.0, 151.0], "bbox_xyxy_clipped": [207.0, 166.0, 244.0, 317.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [43.0, 794.0, 120.0, 19.0], "bbox_xyxy_clipped": [43.0, 794.0, 163.0, 813.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [43.0, 819.0, 111.0, 18.0], "bbox_xyxy_clipped": [43.0, 819.0, 154.0, 837.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [255.0, 36.0, 303.0, 269.0], "bbox_xyxy_clipped": [255.0, 36.0, 558.0, 305.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [275.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0025", "bbox_lwh_raw": [300.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0026", "bbox_lwh_raw": [325.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0027", "bbox_lwh_raw": [350.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0028", "bbox_lwh_raw": [375.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0029", "bbox_lwh_raw": [400.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0030", "bbox_lwh_raw": [425.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0031", "bbox_lwh_raw": [450.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0032", "bbox_lwh_raw": [475.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0033", "bbox_lwh_raw": [500.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0034", "bbox_lwh_raw": [525.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0035", "bbox_lwh_raw": [550.0, 58.0, 1.0, 225.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0000", "bbox_lwh_raw": [351.0, 24.0, 200.0, 378.0], "bbox_xyxy_clipped": [351.0, 24.0, 551.0, 402.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0030313607306501423}, "Ove": {"reason": null, "status": "ok", "value": 0.18879315549242381}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "e04e4f941ab84a58a796f823faaafea8a212e66f55008e43b1dd3a23a0e2b8a8", "status": "computed"}, "sample_id": "5f3b84c8a637ee11e32ee4c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f3b84c8a637ee11e32ee4c9/pipeline/l0_result.json", "sha256": "800aac1babecf79bade8ac585154a855883a23900a9246d0f4abdd737d9d3951", "size_bytes": 28626}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/pfull/asset_manifest.json", "sha256": "bf5014db47563d61d10dc24d3e45747aa12b5b44400243c6f8c6a104a3e98e4d", "size_bytes": 18959}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_02.png", "sha256": "5570960f84a09eaec0b8e9b5b8b7103a412826ad267b91a7b7ab2d02f824104d", "size_bytes": 294398}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/r3/r3_asset_manifest.json", "sha256": "fc580377f6f9fd07d8803eca9c0e2c2df9bfae20cc59809f490bbc155411fe4f", "size_bytes": 16316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1ded42109bd047557a860b1d13ace02985460e66fb6873cefac20f4344ee0389", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [80.0, 70.0, 640.0, 485.0], "bbox_xyxy_clipped": [80.0, 70.0, 720.0, 555.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [700.0, 70.0, 520.0, 706.0], "bbox_xyxy_clipped": [700.0, 70.0, 1220.0, 776.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [420.0, 720.0, 600.0, 272.0], "bbox_xyxy_clipped": [420.0, 720.0, 1020.0, 992.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [428.0, 732.0, 588.0, 264.0], "bbox_xyxy_clipped": [428.0, 732.0, 1016.0, 996.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [180.0, 930.0, 980.0, 77.0], "bbox_xyxy_clipped": [180.0, 930.0, 1160.0, 1007.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [420.0, 925.0, 820.0, 82.0], "bbox_xyxy_clipped": [420.0, 925.0, 1240.0, 1007.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1320.0, 936.0, 560.0, 66.0], "bbox_xyxy_clipped": [1320.0, 936.0, 1880.0, 1002.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1440.0, 942.0, 360.0, 54.0], "bbox_xyxy_clipped": [1440.0, 942.0, 1800.0, 996.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003847946357475742}, "Ove": {"reason": null, "status": "ok", "value": 0.3775264256788228}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5f4c9d6fa637ee11e34ab88b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f4c9d6fa637ee11e34ab88b/pipeline/l0_result.json", "sha256": "bf0b712790bad9e5a9484af6355993283025c1cf2340de83a208581930585b59", "size_bytes": 8608}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/pfull/asset_manifest.json", "sha256": "2e51b7cb1ac0c7d58711ab76d00eaee8f01b6447dc6f320b6bb39bb826193418", "size_bytes": 4485}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_02.png", "sha256": "1ded42109bd047557a860b1d13ace02985460e66fb6873cefac20f4344ee0389", "size_bytes": 413488}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/r3/r3_asset_manifest.json", "sha256": "f145b213815be057719c985c4c9986d1503331787323a884e203d0828b521f11", "size_bytes": 4157}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "87d9806f0fa3b1d2cbc71c3a594c2511eb3fbf944bf1362c956385f86a68b159", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0015", "bbox_lwh_raw": [120.0, 110.0, 760.0, 68.0], "bbox_xyxy_clipped": [120.0, 110.0, 880.0, 178.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [120.0, 190.0, 380.0, 73.0], "bbox_xyxy_clipped": [120.0, 190.0, 500.0, 263.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 290.0, 310.0, 70.0], "bbox_xyxy_clipped": [120.0, 290.0, 430.0, 360.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [120.0, 372.0, 450.0, 169.0], "bbox_xyxy_clipped": [120.0, 372.0, 570.0, 541.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [120.0, 560.0, 920.0, 970.0], "bbox_xyxy_clipped": [120.0, 560.0, 1040.0, 1530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [170.0, 1548.0, 520.0, 84.0], "bbox_xyxy_clipped": [170.0, 1548.0, 690.0, 1632.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [120.0, 640.0, 310.0, 69.0], "bbox_xyxy_clipped": [120.0, 640.0, 430.0, 709.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [120.0, 720.0, 560.0, 150.0], "bbox_xyxy_clipped": [120.0, 720.0, 680.0, 870.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1180.0, 560.0, 760.0, 801.0], "bbox_xyxy_clipped": [1180.0, 560.0, 1940.0, 1361.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1210.0, 1390.0, 700.0, 109.0], "bbox_xyxy_clipped": [1210.0, 1390.0, 1910.0, 1499.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [120.0, 930.0, 310.0, 76.0], "bbox_xyxy_clipped": [120.0, 930.0, 430.0, 1006.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [120.0, 1022.0, 540.0, 145.0], "bbox_xyxy_clipped": [120.0, 1022.0, 660.0, 1167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1880.0, 980.0, 1020.0, 1075.0], "bbox_xyxy_clipped": [1880.0, 980.0, 2900.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1900.0, 1810.0, 900.0, 162.0], "bbox_xyxy_clipped": [1900.0, 1810.0, 2800.0, 1972.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [980.0, 170.0, 260.0, 82.0], "bbox_xyxy_clipped": [980.0, 170.0, 1240.0, 252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [1270.0, 120.0, 70.0, 220.0], "bbox_xyxy_clipped": [1270.0, 120.0, 1340.0, 340.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [1460.0, 220.0, 250.0, 80.0], "bbox_xyxy_clipped": [1460.0, 220.0, 1710.0, 300.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [2140.0, 140.0, 420.0, 280.0], "bbox_xyxy_clipped": [2140.0, 140.0, 2560.0, 420.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2360.0, 500.0, 220.0, 361.0], "bbox_xyxy_clipped": [2360.0, 500.0, 2580.0, 861.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [220.0, 1600.0, 260.0, 428.0], "bbox_xyxy_clipped": [220.0, 1600.0, 480.0, 2000.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [540.0, 1580.0, 220.0, 361.0], "bbox_xyxy_clipped": [540.0, 1580.0, 760.0, 1941.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1120.0, 260.0, 180.0, 200.0], "bbox_xyxy_clipped": [1120.0, 260.0, 1300.0, 460.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00543700354391501}, "Ove": {"reason": null, "status": "ok", "value": 0.025713696664231275}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f5b5a3da637ee11e3e5adbf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f5b5a3da637ee11e3e5adbf/pipeline/l0_result.json", "sha256": "20d01c8a570bc3608946e9867ac62d61f22616a943bd31a966e6b1cb051da06d", "size_bytes": 16108}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/pfull/asset_manifest.json", "sha256": "39de93d0203dca0ce0206de41a5d1e3a7701f1e87275d42f5d7a47783b7ed49c", "size_bytes": 11698}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_03.png", "sha256": "87d9806f0fa3b1d2cbc71c3a594c2511eb3fbf944bf1362c956385f86a68b159", "size_bytes": 2220113}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/r3/r3_asset_manifest.json", "sha256": "d2e10234cc784f326bff53e16e2f95716d5ce49b6f506cb30912796c79c6d7c8", "size_bytes": 10407}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"metrics": {}, "reason": "A3 summary did not mark sample completed", "run_id": "a3-rel100-t2-01", "sample_id": "5f644f40a637ee11e3669a1c", "source_artifacts": [], "source_status": "failed", "status": "source_skipped", "summary_entry": {"error_type": "ValueError", "message": "PlanAssetsA3 failed after 3 attempts: 1 validation error for A3LayoutTree\n Value error, Layout Tree contains duplicate asset IDs [type=value_error, input_value={'schema_version': 'a3.la...3, 'confidence': 0.92}]}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/value_error", "sample_id": "5f644f40a637ee11e3669a1c", "status": "failed"}} +{"b0_render_sha256": "ed7a5380e1dca0b52c2930e39123ae614f4da6280d51c24910f320810ca8f46a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "11217e9a8883c2f2e8529f1bb744f403fd69b979aa781cb901beeaeedf01a747", "canvas": {"height": 654, "width": 420}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [32.0, 34.0, 248.0, 80.0], "bbox_xyxy_clipped": [32.0, 34.0, 280.0, 114.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [132.0, 44.0, 178.0, 74.0], "bbox_xyxy_clipped": [132.0, 44.0, 310.0, 118.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [78.0, 92.0, 222.0, 79.0], "bbox_xyxy_clipped": [78.0, 92.0, 300.0, 171.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [127.0, 330.0, 166.0, 249.0], "bbox_xyxy_clipped": [127.0, 330.0, 293.0, 579.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [86.0, 392.0, 232.0, 86.0], "bbox_xyxy_clipped": [86.0, 392.0, 318.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [210.0, 430.0, 154.0, 50.0], "bbox_xyxy_clipped": [210.0, 430.0, 364.0, 480.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [67.0, 475.0, 188.0, 100.0], "bbox_xyxy_clipped": [67.0, 475.0, 255.0, 575.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [324.0, 420.0, 28.0, 94.0], "bbox_xyxy_clipped": [324.0, 420.0, 352.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [39.0, 455.0, 31.0, 79.0], "bbox_xyxy_clipped": [39.0, 455.0, 70.0, 534.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [300.0, 520.0, 61.0, 20.0], "bbox_xyxy_clipped": [300.0, 520.0, 361.0, 540.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [112.0, 535.0, 46.0, 30.0], "bbox_xyxy_clipped": [112.0, 535.0, 158.0, 565.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [18.0, 575.0, 24.0, 90.0], "bbox_xyxy_clipped": [18.0, 575.0, 42.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [357.0, 565.0, 39.0, 101.0], "bbox_xyxy_clipped": [357.0, 565.0, 396.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006800148753792066}, "Ove": {"reason": null, "status": "ok", "value": 0.14907836308935235}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "d09109066a15e44b18dd96cd5d5d3bf52cb21140804f0b9a19e9249c4795b48a", "status": "computed"}, "sample_id": "5f96aca7a637ee11e30bb517", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f96aca7a637ee11e30bb517/pipeline/l0_result.json", "sha256": "c4f5bb31eb038da33fa5dd28a56e90c05cb97a32a3ec87f51b493058331639f4", "size_bytes": 11268}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f96aca7a637ee11e30bb517/inputs/pfull/asset_manifest.json", "sha256": "673a6e2e695143ecabe30bdedf4c1628c47e214e146a853e2dca5a1e32662850", "size_bytes": 6785}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "sha256": "ed7a5380e1dca0b52c2930e39123ae614f4da6280d51c24910f320810ca8f46a", "size_bytes": 67804}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5f96aca7a637ee11e30bb517/inputs/r3/r3_asset_manifest.json", "sha256": "a4f2f5b122aaa902e9d8cccfa5338de347744831901f8f482ae3c3eb92769a8f", "size_bytes": 5899}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "15eb79b4b38b8cc3968d32a53d53753b5c53c50ae10935883a47b0239f43bc27", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [525.0, 112.0, 871.0, 374.0], "bbox_xyxy_clipped": [525.0, 112.0, 1396.0, 486.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [790.0, 505.0, 341.0, 192.0], "bbox_xyxy_clipped": [790.0, 505.0, 1131.0, 697.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [738.0, 631.0, 444.0, 147.0], "bbox_xyxy_clipped": [738.0, 631.0, 1182.0, 778.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [330.0, 708.0, 1260.0, 709.0], "bbox_xyxy_clipped": [330.0, 708.0, 1590.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1264.0, 654.0, 300.0, 707.0], "bbox_xyxy_clipped": [1264.0, 654.0, 1564.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [122.0, 174.0, 134.0, 407.0], "bbox_xyxy_clipped": [122.0, 174.0, 256.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1748.0, 247.0, 108.0, 317.0], "bbox_xyxy_clipped": [1748.0, 247.0, 1856.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [367.0, 927.0, 560.0, 9.0], "bbox_xyxy_clipped": [367.0, 927.0, 927.0, 936.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [939.0, 909.0, 839.0, 92.0], "bbox_xyxy_clipped": [939.0, 909.0, 1778.0, 1001.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 240.0, 240.0], "bbox_xyxy_clipped": [0.0, 0.0, 240.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1680.0, 0.0, 240.0, 240.0], "bbox_xyxy_clipped": [1680.0, 0.0, 1920.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [840.0, 0.0, 240.0, 240.0], "bbox_xyxy_clipped": [840.0, 0.0, 1080.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0077345933045963}, "Ove": {"reason": null, "status": "ok", "value": 0.07926696462306289}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t2-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5fbf5b4aa637ee11e3a82536", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5fbf5b4aa637ee11e3a82536/pipeline/l0_result.json", "sha256": "53c07ca89c7b7910bb86af3d9f71e1ba48841ad2b064fa4830a297d705e219e9", "size_bytes": 10397}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5fbf5b4aa637ee11e3a82536/inputs/pfull/asset_manifest.json", "sha256": "0f652009b29500545e406f6bd2885135bd4e38ec1188501ad35e3b584a066198", "size_bytes": 6326}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_03.png", "sha256": "15eb79b4b38b8cc3968d32a53d53753b5c53c50ae10935883a47b0239f43bc27", "size_bytes": 478702}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01/samples/5fbf5b4aa637ee11e3a82536/inputs/r3/r3_asset_manifest.json", "sha256": "678329199c0cc64d7965eb71f6770eb8507e84a15b11d3c0f7ed2848a41d7551", "size_bytes": 5491}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "381512a37e21cbee1c59086e786b97a2031af6a5b636dc876c94dfceafc3b2e0", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 18, "valid": 18}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [360.0, 120.0, 220.0, 440.0], "bbox_xyxy_clipped": [360.0, 120.0, 580.0, 560.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [310.0, 80.0, 270.0, 596.0], "bbox_xyxy_clipped": [310.0, 80.0, 580.0, 676.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [36.0, 1048.0, 220.0, 529.0], "bbox_xyxy_clipped": [36.0, 1048.0, 256.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [210.0, 220.0, 130.0, 53.0], "bbox_xyxy_clipped": [210.0, 220.0, 340.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [172.0, 300.0, 160.0, 66.0], "bbox_xyxy_clipped": [172.0, 300.0, 332.0, 366.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [230.0, 170.0, 54.0, 98.0], "bbox_xyxy_clipped": [230.0, 170.0, 284.0, 268.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [270.0, 250.0, 48.0, 87.0], "bbox_xyxy_clipped": [270.0, 250.0, 318.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [320.0, 190.0, 44.0, 84.0], "bbox_xyxy_clipped": [320.0, 190.0, 364.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [250.0, 350.0, 52.0, 80.0], "bbox_xyxy_clipped": [250.0, 350.0, 302.0, 430.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 560.0, 34.0, 58.0], "bbox_xyxy_clipped": [120.0, 560.0, 154.0, 618.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [150.0, 620.0, 39.0, 38.0], "bbox_xyxy_clipped": [150.0, 620.0, 189.0, 658.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [78.0, 1127.0, 140.0, 25.0], "bbox_xyxy_clipped": [78.0, 1127.0, 218.0, 1152.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [42.0, 920.0, 210.0, 124.0], "bbox_xyxy_clipped": [42.0, 920.0, 252.0, 1044.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [38.0, 1078.0, 210.0, 84.0], "bbox_xyxy_clipped": [38.0, 1078.0, 248.0, 1162.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [48.0, 400.0, 170.0, 115.0], "bbox_xyxy_clipped": [48.0, 400.0, 218.0, 515.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [48.0, 720.0, 210.0, 73.0], "bbox_xyxy_clipped": [48.0, 720.0, 258.0, 793.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [36.0, 88.0, 244.0, 49.0], "bbox_xyxy_clipped": [36.0, 88.0, 280.0, 137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [36.0, 52.0, 320.0, 24.0], "bbox_xyxy_clipped": [36.0, 52.0, 356.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0021821770869935786}, "Ove": {"reason": null, "status": "ok", "value": 0.12208100618597029}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5888bb2995a7a863ddcc1f74", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888bb2995a7a863ddcc1f74/pipeline/l0_result.json", "sha256": "52ea8220c980b7f38cf6c4ffe9d17b38e923c56f5e112e140391e57f4f08dc96", "size_bytes": 13822}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888bb2995a7a863ddcc1f74/inputs/pfull/asset_manifest.json", "sha256": "922f50633ecd3d3165242ae387a25df6ceebce024aa4fb97c55f08b4ab943753", "size_bytes": 9477}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888bb2995a7a863ddcc1f74/renders/r0_candidate_03.png", "sha256": "381512a37e21cbee1c59086e786b97a2031af6a5b636dc876c94dfceafc3b2e0", "size_bytes": 342205}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888bb2995a7a863ddcc1f74/inputs/r3/r3_asset_manifest.json", "sha256": "93dfab5f3cd1f62c3e5f4919a08702e300246f8ab33282a0f29b78d918a57940", "size_bytes": 8285}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "fc753d55e56b73c7d969372f6512efa90b7762d6a80c2e07782ad7bbea876683", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "8c850b0de1a3153d867aa574f3845e0f97045e1fab692b8ae261b643c759e55d", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1024.0, 512.0], "bbox_xyxy_clipped": [0.0, 0.0, 1024.0, 512.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [78.0, 56.0, 560.0, 400.0], "bbox_xyxy_clipped": [78.0, 56.0, 638.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [654.0, 28.0, 320.0, 296.0], "bbox_xyxy_clipped": [654.0, 28.0, 974.0, 324.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [92.0, 66.0, 238.0, 45.0], "bbox_xyxy_clipped": [92.0, 66.0, 330.0, 111.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [90.0, 113.0, 156.0, 52.0], "bbox_xyxy_clipped": [90.0, 113.0, 246.0, 165.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [90.0, 170.0, 198.0, 63.0], "bbox_xyxy_clipped": [90.0, 170.0, 288.0, 233.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [92.0, 320.0, 310.0, 61.0], "bbox_xyxy_clipped": [92.0, 320.0, 402.0, 381.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [104.0, 330.0, 286.0, 58.0], "bbox_xyxy_clipped": [104.0, 330.0, 390.0, 388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [121.0, 337.0, 245.0, 30.0], "bbox_xyxy_clipped": [121.0, 337.0, 366.0, 367.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006211206782609224}, "Ove": {"reason": null, "status": "ok", "value": 0.2899552780777013}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "ddaa9e1a2fe5b2616a49fcc7b5295106ee9671377b5c45ed244d03ec4ffd2ed8", "status": "computed"}, "sample_id": "5888c54095a7a863ddcc2082", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888c54095a7a863ddcc2082/pipeline/l0_result.json", "sha256": "041d3d6da6cfa8e7f0bc9980ccfc85f984331257b43c5b9bb5deec25ba45c052", "size_bytes": 10461}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888c54095a7a863ddcc2082/inputs/pfull/asset_manifest.json", "sha256": "23f745ee082de79ae8b77e9f924c4d01363355aecdd8adfa30857e55691750db", "size_bytes": 4846}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888c54095a7a863ddcc2082/renders/r0_candidate_02.png", "sha256": "fc753d55e56b73c7d969372f6512efa90b7762d6a80c2e07782ad7bbea876683", "size_bytes": 598409}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888c54095a7a863ddcc2082/inputs/r3/r3_asset_manifest.json", "sha256": "5ec565008ccd296017824017051c0be70d9732f07fd5c11d8e6d62b4c50b808b", "size_bytes": 4337}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "167eba0d5eb6d70294e60a6b6f4e103c2b438bd922bbf8d49276e46acc7f4168", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "r3_asset_sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f794bb2410b195fc618a2f0295ec93e2218cc742a2a8411135405f1f5a748969", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [199.0, 56.0, 136.0, 175.0], "bbox_xyxy_clipped": [199.0, 56.0, 335.0, 231.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [17.0, 406.0, 286.0, 65.0], "bbox_xyxy_clipped": [17.0, 406.0, 303.0, 471.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [146.0, 108.0, 54.0, 122.0], "bbox_xyxy_clipped": [146.0, 108.0, 200.0, 230.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [141.0, 44.0, 89.0, 36.0], "bbox_xyxy_clipped": [141.0, 44.0, 230.0, 80.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [26.0, 205.0, 112.0, 89.0], "bbox_xyxy_clipped": [26.0, 205.0, 138.0, 294.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [83.0, 58.0, 23.0, 56.0], "bbox_xyxy_clipped": [83.0, 58.0, 106.0, 114.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [141.0, 80.0, 19.0, 35.0], "bbox_xyxy_clipped": [141.0, 80.0, 160.0, 115.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [111.0, 33.0, 22.0, 31.0], "bbox_xyxy_clipped": [111.0, 33.0, 133.0, 64.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [168.0, 65.0, 17.0, 32.0], "bbox_xyxy_clipped": [168.0, 65.0, 185.0, 97.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [59.0, 150.0, 29.0, 46.0], "bbox_xyxy_clipped": [59.0, 150.0, 88.0, 196.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [29.0, 252.0, 18.0, 29.0], "bbox_xyxy_clipped": [29.0, 252.0, 47.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [63.0, 274.0, 18.0, 18.0], "bbox_xyxy_clipped": [63.0, 274.0, 81.0, 292.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [130.0, 444.0, 67.0, 362.0], "bbox_xyxy_clipped": [130.0, 444.0, 197.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [23.0, 327.0, 98.0, 55.0], "bbox_xyxy_clipped": [23.0, 327.0, 121.0, 382.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [22.0, 461.0, 121.0, 44.0], "bbox_xyxy_clipped": [22.0, 461.0, 143.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [25.0, 159.0, 95.0, 61.0], "bbox_xyxy_clipped": [25.0, 159.0, 120.0, 220.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [24.0, 284.0, 112.0, 42.0], "bbox_xyxy_clipped": [24.0, 284.0, 136.0, 326.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [23.0, 34.0, 138.0, 27.0], "bbox_xyxy_clipped": [23.0, 34.0, 161.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [23.0, 65.0, 153.0, 13.0], "bbox_xyxy_clipped": [23.0, 65.0, 176.0, 78.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 5.275095887996995e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.06607849615713414}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f56c56f66d2b8abbd4d42a81da75b75b6223d5f1de922e99293da8094bdd9ff3", "status": "computed"}, "sample_id": "5888dd7995a7a863ddcc2e86", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/pipeline/l0_result.json", "sha256": "dced5ad7f9cf63c74b14f82b08236636404714331db3d526124b0359032bc960", "size_bytes": 15369}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/asset_manifest.json", "sha256": "6b881db9a5586308013197c74d350fccb90ed262ff6db23ddf0af742e3ce41fc", "size_bytes": 10516}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/renders/r0_candidate_03.png", "sha256": "167eba0d5eb6d70294e60a6b6f4e103c2b438bd922bbf8d49276e46acc7f4168", "size_bytes": 115122}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/inputs/r3/r3_asset_manifest.json", "sha256": "e8a523214bcee339695978bf2061b103786963c2750b5ab74387f9aa91d98bdf", "size_bytes": 9089}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5888dd7995a7a863ddcc2e86/inputs/pfull/assets/asset_0000.png", "sha256": "841c3bf2930fd22f20e09389534716448120443fcae61d126a5a099bada744c4", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e9b9d9cdea0e1da9460d78c186aa1310660c5fac25483245a6d209c48c2e1601", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 360.0, 504.0], "bbox_xyxy_clipped": [0.0, 0.0, 360.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [66.0, 59.0, 214.0, 328.0], "bbox_xyxy_clipped": [66.0, 59.0, 280.0, 387.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [262.0, 59.0, 21.0, 33.0], "bbox_xyxy_clipped": [262.0, 59.0, 283.0, 92.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [111.0, 88.0, 139.0, 21.0], "bbox_xyxy_clipped": [111.0, 88.0, 250.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [116.0, 114.0, 129.0, 19.0], "bbox_xyxy_clipped": [116.0, 114.0, 245.0, 133.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [81.0, 247.0, 198.0, 32.0], "bbox_xyxy_clipped": [81.0, 247.0, 279.0, 279.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [151.0, 346.0, 58.0, 78.0], "bbox_xyxy_clipped": [151.0, 346.0, 209.0, 424.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [171.0, 346.0, 58.0, 78.0], "bbox_xyxy_clipped": [171.0, 346.0, 229.0, 424.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [98.0, 150.0, 164.0, 16.0], "bbox_xyxy_clipped": [98.0, 150.0, 262.0, 166.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [108.0, 298.0, 144.0, 17.0], "bbox_xyxy_clipped": [108.0, 298.0, 252.0, 315.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [102.0, 251.0, 157.0, 17.0], "bbox_xyxy_clipped": [102.0, 251.0, 259.0, 268.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [135.0, 320.0, 90.0, 38.0], "bbox_xyxy_clipped": [135.0, 320.0, 225.0, 358.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006237427645890171}, "Ove": {"reason": null, "status": "ok", "value": 0.17165160813292799}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5889bc5995a7a863ddcc3b97", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5889bc5995a7a863ddcc3b97/pipeline/l0_result.json", "sha256": "2e4bac4bfa584dfd5b434f50e89af5d8d9a250b43fc20db7e4561fdd8d2baf96", "size_bytes": 11679}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5889bc5995a7a863ddcc3b97/inputs/pfull/asset_manifest.json", "sha256": "af10fd770b14af1b1abfa0336fb197a196f73399b863ac5f8ccec571ccd48192", "size_bytes": 6410}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5889bc5995a7a863ddcc3b97/renders/r0_candidate_02.png", "sha256": "e9b9d9cdea0e1da9460d78c186aa1310660c5fac25483245a6d209c48c2e1601", "size_bytes": 164227}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5889bc5995a7a863ddcc3b97/inputs/r3/r3_asset_manifest.json", "sha256": "7f167ab3bad72a0d343ea77fe971921f12a39d81ec6a9330bc79eacabf3a4e94", "size_bytes": 5602}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "14c2bb49941119830419c64c5c0219657f5f5ca670e6f84f98d9b8fb1e722e70", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 721.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 721.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [160.0, 150.0, 760.0, 181.0], "bbox_xyxy_clipped": [160.0, 150.0, 920.0, 331.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [24.0, 24.0, 1032.0, 239.0], "bbox_xyxy_clipped": [24.0, 24.0, 1056.0, 263.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [10.0, 10.0, 1060.0, 245.0], "bbox_xyxy_clipped": [10.0, 10.0, 1070.0, 255.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [360.0, 340.0, 120.0, 29.0], "bbox_xyxy_clipped": [360.0, 340.0, 480.0, 369.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [650.0, 345.0, 130.0, 31.0], "bbox_xyxy_clipped": [650.0, 345.0, 780.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [88.0, 360.0, 84.0, 290.0], "bbox_xyxy_clipped": [88.0, 360.0, 172.0, 650.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [78.0, 760.0, 250.0, 869.0], "bbox_xyxy_clipped": [78.0, 760.0, 328.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [646.0, 560.0, 220.0, 550.0], "bbox_xyxy_clipped": [646.0, 560.0, 866.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [690.0, 500.0, 290.0, 729.0], "bbox_xyxy_clipped": [690.0, 500.0, 980.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [430.0, 545.0, 330.0, 303.0], "bbox_xyxy_clipped": [430.0, 545.0, 760.0, 848.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [470.0, 500.0, 390.0, 358.0], "bbox_xyxy_clipped": [470.0, 500.0, 860.0, 858.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [590.0, 90.0, 320.0, 69.0], "bbox_xyxy_clipped": [590.0, 90.0, 910.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [712.0, 138.0, 170.0, 92.0], "bbox_xyxy_clipped": [712.0, 138.0, 882.0, 230.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [54.0, 792.0, 92.0, 95.0], "bbox_xyxy_clipped": [54.0, 792.0, 146.0, 887.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [118.0, 846.0, 218.0, 75.0], "bbox_xyxy_clipped": [118.0, 846.0, 336.0, 921.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004883903895253142}, "Ove": {"reason": null, "status": "ok", "value": 0.3362645913712162}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "589b457b95a7a863ddcc5331", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/589b457b95a7a863ddcc5331/pipeline/l0_result.json", "sha256": "671b3c5a6f3853f7e9c5d3454cd6d0f45b8bf93e7e0bd4f0ebe4a39967f6ca32", "size_bytes": 13984}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/589b457b95a7a863ddcc5331/inputs/pfull/asset_manifest.json", "sha256": "1c9f00a6a8b0fd7a555c1bd180ec6a9f65a47306b517369f85c1ef8a2d340346", "size_bytes": 8305}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/589b457b95a7a863ddcc5331/renders/r0_candidate_03.png", "sha256": "14c2bb49941119830419c64c5c0219657f5f5ca670e6f84f98d9b8fb1e722e70", "size_bytes": 1024469}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/589b457b95a7a863ddcc5331/inputs/r3/r3_asset_manifest.json", "sha256": "085da6bfdca4185b8737ad16a077d28cfda52265a24d7c1f7fb8757ce4061cb4", "size_bytes": 7171}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f4952e772543b94dcb10ea832a307c27103001d103ccdff725b98fcdcd6644e4", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "asset_size_bytes": 1855, "kind": "asset", "pfull_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "r3_asset_sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "5c23665f7df6f57c8fa7119a33c87e737e52f9829cadf0c04fdc968f0de75b47", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 145.0, 192.0], "bbox_xyxy_clipped": [0.0, 0.0, 145.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [18.0, 0.0, 121.0, 141.0], "bbox_xyxy_clipped": [18.0, 0.0, 139.0, 141.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [40.0, 18.0, 112.0, 97.0], "bbox_xyxy_clipped": [40.0, 18.0, 152.0, 115.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [128.0, 38.0, 54.0, 46.0], "bbox_xyxy_clipped": [128.0, 38.0, 182.0, 84.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [270.0, 58.0, 62.0, 59.0], "bbox_xyxy_clipped": [270.0, 58.0, 332.0, 117.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [294.0, 206.0, 66.0, 59.0], "bbox_xyxy_clipped": [294.0, 206.0, 360.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [138.0, 126.0, 112.0, 132.0], "bbox_xyxy_clipped": [138.0, 126.0, 250.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [143.0, 131.0, 102.0, 121.0], "bbox_xyxy_clipped": [143.0, 131.0, 245.0, 252.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [162.0, 142.0, 74.0, 9.0], "bbox_xyxy_clipped": [162.0, 142.0, 236.0, 151.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [184.0, 157.0, 30.0, 31.0], "bbox_xyxy_clipped": [184.0, 157.0, 214.0, 188.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [161.0, 232.0, 78.0, 5.0], "bbox_xyxy_clipped": [161.0, 232.0, 239.0, 237.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [155.0, 172.0, 86.0, 11.0], "bbox_xyxy_clipped": [155.0, 172.0, 241.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [164.0, 189.0, 66.0, 13.0], "bbox_xyxy_clipped": [164.0, 189.0, 230.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [169.0, 207.0, 56.0, 17.0], "bbox_xyxy_clipped": [169.0, 207.0, 225.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [184.0, 431.0, 97.0, 12.0], "bbox_xyxy_clipped": [184.0, 431.0, 281.0, 443.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [184.0, 448.0, 139.0, 11.0], "bbox_xyxy_clipped": [184.0, 448.0, 323.0, 459.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 2.7612015296914464e-05}, "Ove": {"reason": null, "status": "ok", "value": 0.21281316400577782}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "1357996aa9dd3f6f2e170f3106776c28a910c56ce82a2f2b923153db811e3d20", "status": "computed"}, "sample_id": "58ab17ba95a7a863ddcc77bf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/pipeline/l0_result.json", "sha256": "6638bddce1adfb6529b2228b435205ca20a975c79f0876e71de6c1c80a4acfd0", "size_bytes": 12449}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/asset_manifest.json", "sha256": "d3f60578bc4797c6974725c420ce6d468a7545f6bc77061d00f8032efba5daba", "size_bytes": 8941}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/renders/r0_candidate_02.png", "sha256": "f4952e772543b94dcb10ea832a307c27103001d103ccdff725b98fcdcd6644e4", "size_bytes": 64069}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/inputs/r3/r3_asset_manifest.json", "sha256": "6fa12eff6dadca41263e1eff771fd4a6c63f29809f44d0551ecb3102c8c588b4", "size_bytes": 7707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab17ba95a7a863ddcc77bf/inputs/pfull/assets/asset_0000.png", "sha256": "aa46a7ed9d55f5d25c5a7dc97e2abac8e73f8d70d1e89a013b5666c0f5d7a806", "size_bytes": 1855}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3677a0892564727f76aee0d1aa86e2cf2bf072699bbd9fa9c05a5de1298d975b", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "asset_size_bytes": 1168, "kind": "asset", "pfull_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "r3_asset_sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e7368a74623399c74381a081a94a9cb6279b6c6fc41eff773942bc635e404d67", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [23.0, 18.0, 373.0, 125.0], "bbox_xyxy_clipped": [23.0, 18.0, 396.0, 143.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [24.0, 14.0, 371.0, 263.0], "bbox_xyxy_clipped": [24.0, 14.0, 395.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [145.0, 92.0, 129.0, 109.0], "bbox_xyxy_clipped": [145.0, 92.0, 274.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [181.0, 121.0, 57.0, 44.0], "bbox_xyxy_clipped": [181.0, 121.0, 238.0, 165.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [84.0, 57.0, 251.0, 31.0], "bbox_xyxy_clipped": [84.0, 57.0, 335.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [229.0, 136.0, 22.0, 19.0], "bbox_xyxy_clipped": [229.0, 136.0, 251.0, 155.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [138.0, 35.0, 123.0, 63.0], "bbox_xyxy_clipped": [138.0, 35.0, 261.0, 98.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [278.0, 111.0, 95.0, 40.0], "bbox_xyxy_clipped": [278.0, 111.0, 373.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 4.099512207945938e-05}, "Ove": {"reason": null, "status": "ok", "value": 0.25289136005331553}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "a6d6867d22b3fe8b10abc02a12d35da4263e227990469800e51c4a89eda79323", "status": "computed"}, "sample_id": "58ab189395a7a863ddcc7847", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/pipeline/l0_result.json", "sha256": "606bb98f03e26fc68f92cb06823f5d0f3def9c1f3cf6a569d216e126060d6980", "size_bytes": 8827}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/asset_manifest.json", "sha256": "3b7db23edcbb2f99e6839feb8f393f35b8ce37e2febd96cfbafb2993dd8a44ca", "size_bytes": 4944}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/renders/r0_candidate_03.png", "sha256": "3677a0892564727f76aee0d1aa86e2cf2bf072699bbd9fa9c05a5de1298d975b", "size_bytes": 88710}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/inputs/r3/r3_asset_manifest.json", "sha256": "e6462a9f92bf926483bab15be26d31079c43a7a29cc4056511e1bbcc172406a4", "size_bytes": 4443}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58ab189395a7a863ddcc7847/inputs/pfull/assets/asset_0000.png", "sha256": "7f56897861fcdf110968d56da519ea009bd6879021351040375a0b8957b4443e", "size_bytes": 1168}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e5e554da405314d579b148e38d8aa19da2b630d3c0bc92caad436f2080a74a71", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [296.0, 0.0, 4.0, 455.0], "bbox_xyxy_clipped": [296.0, 0.0, 300.0, 455.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 600.0, 3.0], "bbox_xyxy_clipped": [0.0, 0.0, 600.0, 3.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [70.0, 130.0, 460.0, 145.0], "bbox_xyxy_clipped": [70.0, 130.0, 530.0, 275.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [80.0, 292.0, 440.0, 4.0], "bbox_xyxy_clipped": [80.0, 292.0, 520.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [80.0, 430.0, 440.0, 4.0], "bbox_xyxy_clipped": [80.0, 430.0, 520.0, 434.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [80.0, 568.0, 440.0, 4.0], "bbox_xyxy_clipped": [80.0, 568.0, 520.0, 572.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [80.0, 708.0, 440.0, 4.0], "bbox_xyxy_clipped": [80.0, 708.0, 520.0, 712.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [364.0, 84.0, 154.0, 198.0], "bbox_xyxy_clipped": [364.0, 84.0, 518.0, 282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [320.0, 936.0, 20.0, 146.0], "bbox_xyxy_clipped": [320.0, 936.0, 340.0, 1082.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [470.0, 396.0, 30.0, 188.0], "bbox_xyxy_clipped": [470.0, 396.0, 500.0, 584.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [361.0, 1045.0, 199.0, 17.0], "bbox_xyxy_clipped": [361.0, 1045.0, 560.0, 1062.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [390.0, 1084.0, 183.0, 19.0], "bbox_xyxy_clipped": [390.0, 1084.0, 573.0, 1103.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [74.0, 1052.0, 297.0, 26.0], "bbox_xyxy_clipped": [74.0, 1052.0, 371.0, 1078.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [74.0, 1018.0, 258.0, 23.0], "bbox_xyxy_clipped": [74.0, 1018.0, 332.0, 1041.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [86.0, 732.0, 188.0, 19.0], "bbox_xyxy_clipped": [86.0, 732.0, 274.0, 751.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [63.0, 699.0, 357.0, 30.0], "bbox_xyxy_clipped": [63.0, 699.0, 420.0, 729.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [204.0, 239.0, 141.0, 25.0], "bbox_xyxy_clipped": [204.0, 239.0, 345.0, 264.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [201.0, 193.0, 106.0, 30.0], "bbox_xyxy_clipped": [201.0, 193.0, 307.0, 223.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [173.0, 154.0, 253.0, 40.0], "bbox_xyxy_clipped": [173.0, 154.0, 426.0, 194.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [227.0, 108.0, 145.0, 37.0], "bbox_xyxy_clipped": [227.0, 108.0, 372.0, 145.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [217.0, 903.0, 166.0, 16.0], "bbox_xyxy_clipped": [217.0, 903.0, 383.0, 919.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [231.0, 875.0, 138.0, 16.0], "bbox_xyxy_clipped": [231.0, 875.0, 369.0, 891.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003534097103803}, "Ove": {"reason": null, "status": "ok", "value": 0.045916930306827065}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "58cbc44595a7a863ddccc20b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58cbc44595a7a863ddccc20b/pipeline/l0_result.json", "sha256": "658cadd139694fb13a15b0d24f145ce5d29a37bab13f425e0479f402af07e643", "size_bytes": 18911}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58cbc44595a7a863ddccc20b/inputs/pfull/asset_manifest.json", "sha256": "ca0e0c149f2e42effcea1bc03c7c3627b069099776b2f24872f09e2cedaaa2a0", "size_bytes": 11495}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58cbc44595a7a863ddccc20b/renders/r0_candidate_02.png", "sha256": "e5e554da405314d579b148e38d8aa19da2b630d3c0bc92caad436f2080a74a71", "size_bytes": 81224}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/58cbc44595a7a863ddccc20b/inputs/r3/r3_asset_manifest.json", "sha256": "5ca8893060220462b47f28f257e9b49677c10e91c58691f7c03ebb56bdc6cc7e", "size_bytes": 10273}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "04a2c9a87d48f244a532f7a8204de02fb7095b65cfdf687cd9a5451f9ae93947", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 330.0, 840.0, 339.0], "bbox_xyxy_clipped": [120.0, 330.0, 960.0, 669.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [105.0, 305.0, 870.0, 342.0], "bbox_xyxy_clipped": [105.0, 305.0, 975.0, 647.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [238.0, 86.0, 604.0, 46.0], "bbox_xyxy_clipped": [238.0, 86.0, 842.0, 132.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [276.0, 140.0, 528.0, 41.0], "bbox_xyxy_clipped": [276.0, 140.0, 804.0, 181.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [249.0, 194.0, 582.0, 50.0], "bbox_xyxy_clipped": [249.0, 194.0, 831.0, 244.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [172.0, 724.0, 736.0, 42.0], "bbox_xyxy_clipped": [172.0, 724.0, 908.0, 766.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [356.0, 780.0, 368.0, 20.0], "bbox_xyxy_clipped": [356.0, 780.0, 724.0, 800.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [356.0, 820.0, 368.0, 20.0], "bbox_xyxy_clipped": [356.0, 820.0, 724.0, 840.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [197.0, 860.0, 686.0, 54.0], "bbox_xyxy_clipped": [197.0, 860.0, 883.0, 914.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062465652026266714}, "Ove": {"reason": null, "status": "ok", "value": 0.28340740378491147}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5909cfb695a7a863ddcd37cb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5909cfb695a7a863ddcd37cb/pipeline/l0_result.json", "sha256": "0f1865b72b603cb993930c6193b416da8ade5d387d5a73f5ff9f6494d975e5ff", "size_bytes": 10742}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5909cfb695a7a863ddcd37cb/inputs/pfull/asset_manifest.json", "sha256": "8d2dbedfce8d6e66e6e6dbcbf85ce4141a642bb66052520701bb830487fcedd4", "size_bytes": 6000}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5909cfb695a7a863ddcd37cb/renders/r0_candidate_02.png", "sha256": "04a2c9a87d48f244a532f7a8204de02fb7095b65cfdf687cd9a5451f9ae93947", "size_bytes": 1259147}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5909cfb695a7a863ddcd37cb/inputs/r3/r3_asset_manifest.json", "sha256": "ba7bb2f1c05696abc0a83322b63516cab2674767ffa752b48c3da89a153dec9b", "size_bytes": 5331}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "99bb772a7aa3bdacc0f09cfb9b5561a2b905b65427d4bd0cb5d16106ab705676", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [60.0, 225.0, 420.0, 316.0], "bbox_xyxy_clipped": [60.0, 225.0, 480.0, 541.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [98.0, 310.0, 344.0, 258.0], "bbox_xyxy_clipped": [98.0, 310.0, 442.0, 568.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [158.0, 256.0, 225.0, 150.0], "bbox_xyxy_clipped": [158.0, 256.0, 383.0, 406.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [432.0, 54.0, 68.0, 108.0], "bbox_xyxy_clipped": [432.0, 54.0, 500.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [130.0, 184.0, 280.0, 4.0], "bbox_xyxy_clipped": [130.0, 184.0, 410.0, 188.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [130.0, 193.0, 280.0, 4.0], "bbox_xyxy_clipped": [130.0, 193.0, 410.0, 197.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 575.0, 300.0, 4.0], "bbox_xyxy_clipped": [120.0, 575.0, 420.0, 579.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [120.0, 590.0, 300.0, 4.0], "bbox_xyxy_clipped": [120.0, 590.0, 420.0, 594.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [150.0, 540.0, 240.0, 23.0], "bbox_xyxy_clipped": [150.0, 540.0, 390.0, 563.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [122.0, 94.0, 296.0, 43.0], "bbox_xyxy_clipped": [122.0, 94.0, 418.0, 137.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [131.0, 395.0, 278.0, 25.0], "bbox_xyxy_clipped": [131.0, 395.0, 409.0, 420.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [142.0, 645.0, 256.0, 31.0], "bbox_xyxy_clipped": [142.0, 645.0, 398.0, 676.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0031806649459330052}, "Ove": {"reason": null, "status": "ok", "value": 0.1072745876691677}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5914233f95a7a863ddcd777c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5914233f95a7a863ddcd777c/pipeline/l0_result.json", "sha256": "ec7d5c33e478a13be3af2a483b299a9633a2fea202fd8d1a755ce7c9ecef5d60", "size_bytes": 10320}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5914233f95a7a863ddcd777c/inputs/pfull/asset_manifest.json", "sha256": "ad89a247adfd629a173a901dd202d9c1357708b4545dfaafe372fff8f7bbbb84", "size_bytes": 6397}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5914233f95a7a863ddcd777c/renders/r0_candidate_03.png", "sha256": "99bb772a7aa3bdacc0f09cfb9b5561a2b905b65427d4bd0cb5d16106ab705676", "size_bytes": 194032}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5914233f95a7a863ddcd777c/inputs/r3/r3_asset_manifest.json", "sha256": "e91666d4d79b5260543865032f9db6a6da3f8fee1393648394620f96b9d96586", "size_bytes": 5557}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8fb164ff9321a27cbd8980be93106fbd188631a4b4812dc11ec9fcbb269b1cd6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 5, "raw": 22, "valid": 17}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [160.0, 84.0, 180.0, 107.0], "bbox_xyxy_clipped": [160.0, 84.0, 340.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [121.0, 96.0, 96.0, 81.0], "bbox_xyxy_clipped": [121.0, 96.0, 217.0, 177.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [274.0, 30.0, 54.0, 62.0], "bbox_xyxy_clipped": [274.0, 30.0, 328.0, 92.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [286.0, 39.0, 61.0, 70.0], "bbox_xyxy_clipped": [286.0, 39.0, 347.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [40.0, 168.0, 114.0, 52.0], "bbox_xyxy_clipped": [40.0, 168.0, 154.0, 220.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 214.0, 292.0, 14.0], "bbox_xyxy_clipped": [34.0, 214.0, 326.0, 228.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [38.0, 44.0, 231.0, 15.0], "bbox_xyxy_clipped": [38.0, 44.0, 269.0, 59.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [51.0, 450.0, 258.0, 16.0], "bbox_xyxy_clipped": [51.0, 450.0, 309.0, 466.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [48.0, 228.0, 109.0, 68.0], "bbox_xyxy_clipped": [48.0, 228.0, 157.0, 296.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [20.0, 26.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0010", "bbox_lwh_raw": [328.0, 26.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [20.0, 244.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [170.0, 244.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [330.0, 244.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 0.0, 16.0, 504.0], "bbox_xyxy_clipped": [0.0, 0.0, 16.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [344.0, 0.0, 16.0, 504.0], "bbox_xyxy_clipped": [344.0, 0.0, 360.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [52.0, 92.0, 22.0, 320.0], "bbox_xyxy_clipped": [52.0, 92.0, 74.0, 412.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [286.0, 104.0, 18.0, 286.0], "bbox_xyxy_clipped": [286.0, 104.0, 304.0, 390.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [94.0, 318.0, 16.0, 126.0], "bbox_xyxy_clipped": [94.0, 318.0, 110.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [252.0, 308.0, 14.0, 136.0], "bbox_xyxy_clipped": [252.0, 308.0, 266.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [148.0, 392.0, 20.0, 82.0], "bbox_xyxy_clipped": [148.0, 392.0, 168.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [200.0, 396.0, 18.0, 78.0], "bbox_xyxy_clipped": [200.0, 396.0, 218.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005693678316079224}, "Ove": {"reason": null, "status": "ok", "value": 0.07485237144897347}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "592d1a2b95a7a863ddcd97aa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592d1a2b95a7a863ddcd97aa/pipeline/l0_result.json", "sha256": "1d19bf6acd112c95c95ca683f6ff1a7ada8fb45f1565c16b3d847c487441b1d2", "size_bytes": 15317}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592d1a2b95a7a863ddcd97aa/inputs/pfull/asset_manifest.json", "sha256": "ede69618b4d702559f3c738da7d7db8f6c6d1285a4e4b65b02b43feb8e813428", "size_bytes": 11370}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592d1a2b95a7a863ddcd97aa/renders/r0_candidate_02.png", "sha256": "8fb164ff9321a27cbd8980be93106fbd188631a4b4812dc11ec9fcbb269b1cd6", "size_bytes": 44863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592d1a2b95a7a863ddcd97aa/inputs/r3/r3_asset_manifest.json", "sha256": "f62a66b5214088abeee86fc083e4adb1134c708b08787c980e424f1b49cf7981", "size_bytes": 9576}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2dfa2a709c1fd7b34257838afad8991b08826b377caf59ab2dff8f3de680d248", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab484b76cff9f79f3a64e3a56fc20a936c05a909f699172c4285cd4ec36e606a", "canvas": {"height": 600, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1200.0, 600.0], "bbox_xyxy_clipped": [0.0, 0.0, 1200.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [256.0, 110.0, 688.0, 380.0], "bbox_xyxy_clipped": [256.0, 110.0, 944.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [272.0, 124.0, 656.0, 326.0], "bbox_xyxy_clipped": [272.0, 124.0, 928.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [370.0, 176.0, 460.0, 44.0], "bbox_xyxy_clipped": [370.0, 176.0, 830.0, 220.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [514.0, 222.0, 173.0, 22.0], "bbox_xyxy_clipped": [514.0, 222.0, 687.0, 244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [347.0, 260.0, 506.0, 80.0], "bbox_xyxy_clipped": [347.0, 260.0, 853.0, 340.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [398.0, 278.0, 405.0, 45.0], "bbox_xyxy_clipped": [398.0, 278.0, 803.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [387.0, 282.0, 426.0, 44.0], "bbox_xyxy_clipped": [387.0, 282.0, 813.0, 326.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [505.0, 337.0, 190.0, 82.0], "bbox_xyxy_clipped": [505.0, 337.0, 695.0, 419.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0062499064127604165}, "Ove": {"reason": null, "status": "ok", "value": 0.4861037490647203}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "81440495bff348c35d9fcdb9a6ad4f9f527df7a7fd9a31ef0b34712c634ecdfe", "status": "computed"}, "sample_id": "592fdd7e95a7a863ddcdbe67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592fdd7e95a7a863ddcdbe67/pipeline/l0_result.json", "sha256": "b37eb4a443b4bc131bce9f98e5cac02107e89c34aec634e0e88a05f5d050a210", "size_bytes": 8939}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592fdd7e95a7a863ddcdbe67/inputs/pfull/asset_manifest.json", "sha256": "ff90174854fcf913b98b48de1eb3f3d5cf5616181707a1a03f23cbe7a7db3311", "size_bytes": 4914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592fdd7e95a7a863ddcdbe67/renders/r0_candidate_01.png", "sha256": "2dfa2a709c1fd7b34257838afad8991b08826b377caf59ab2dff8f3de680d248", "size_bytes": 944651}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/592fdd7e95a7a863ddcdbe67/inputs/r3/r3_asset_manifest.json", "sha256": "a12c8417144d4e1e976707c1271f933e4b2f8b636a22e4fe816f004aa46e700a", "size_bytes": 4393}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "380b3c2991f8b112050cc22a371997eabc980254b85ddbd1bef7950b5fa91ee0", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [320.0, 0.0, 280.0, 1200.0], "bbox_xyxy_clipped": [320.0, 0.0, 600.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [360.0, 120.0, 223.0, 245.0], "bbox_xyxy_clipped": [360.0, 120.0, 583.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [214.0, 155.0, 286.0, 177.0], "bbox_xyxy_clipped": [214.0, 155.0, 500.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [66.0, 0.0, 56.0, 600.0], "bbox_xyxy_clipped": [66.0, 0.0, 122.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [112.0, 176.0, 56.0, 47.0], "bbox_xyxy_clipped": [112.0, 176.0, 168.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [56.0, 160.0, 282.0, 134.0], "bbox_xyxy_clipped": [56.0, 160.0, 338.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [42.0, 820.0, 144.0, 86.0], "bbox_xyxy_clipped": [42.0, 820.0, 186.0, 906.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [170.0, 836.0, 53.0, 45.0], "bbox_xyxy_clipped": [170.0, 836.0, 223.0, 881.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [216.0, 845.0, 95.0, 38.0], "bbox_xyxy_clipped": [216.0, 845.0, 311.0, 883.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [40.0, 928.0, 302.0, 96.0], "bbox_xyxy_clipped": [40.0, 928.0, 342.0, 1024.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005164551974829549}, "Ove": {"reason": null, "status": "ok", "value": 0.10994655300189046}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5930177f95a7a863ddcdc313", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5930177f95a7a863ddcdc313/pipeline/l0_result.json", "sha256": "db249e3ba98c1beb9853f6075d8fb8a01cd064bc6417c8c5c70b521fe6a4fcac", "size_bytes": 9706}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5930177f95a7a863ddcdc313/inputs/pfull/asset_manifest.json", "sha256": "bf7c5ab77eec9be6d5dd01ed06caab51bd964339fdc289bd5dbaf1d073b81509", "size_bytes": 5400}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5930177f95a7a863ddcdc313/renders/r0_candidate_03.png", "sha256": "380b3c2991f8b112050cc22a371997eabc980254b85ddbd1bef7950b5fa91ee0", "size_bytes": 103304}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5930177f95a7a863ddcdc313/inputs/r3/r3_asset_manifest.json", "sha256": "fe3a30fa35213946c8db0d240d039ab1cd5030ec2dbcb6eae3e5a037aead1cde", "size_bytes": 4851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "3bd06b7ff67950aa73dbbeedd694771ed5f0d3f2dbda81e7e2482cb97068702f", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "asset_size_bytes": 4720, "kind": "asset", "pfull_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "r3_asset_sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "098faaace2db9293b83a766e8f49c32c91960bca84f91c8b2cf0c0a0000b0eb9", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 22, "valid": 21}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 940.0, 788.0], "bbox_xyxy_clipped": [0.0, 0.0, 940.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [170.0, 42.0, 601.0, 529.0], "bbox_xyxy_clipped": [170.0, 42.0, 771.0, 571.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [651.0, -18.0, 289.0, 210.0], "bbox_xyxy_clipped": [651.0, 0.0, 940.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [665.0, 82.0, 162.0, 125.0], "bbox_xyxy_clipped": [665.0, 82.0, 827.0, 207.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [721.0, 102.0, 158.0, 121.0], "bbox_xyxy_clipped": [721.0, 102.0, 879.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [620.0, 118.0, 154.0, 118.0], "bbox_xyxy_clipped": [620.0, 118.0, 774.0, 236.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [741.0, 134.0, 149.0, 114.0], "bbox_xyxy_clipped": [741.0, 134.0, 890.0, 248.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [684.0, 164.0, 146.0, 109.0], "bbox_xyxy_clipped": [684.0, 164.0, 830.0, 273.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [728.0, 36.0, 141.0, 96.0], "bbox_xyxy_clipped": [728.0, 36.0, 869.0, 132.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [823.0, 71.0, 86.0, 59.0], "bbox_xyxy_clipped": [823.0, 71.0, 909.0, 130.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [609.0, 34.0, 94.0, 69.0], "bbox_xyxy_clipped": [609.0, 34.0, 703.0, 103.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [842.0, 139.0, 78.0, 72.0], "bbox_xyxy_clipped": [842.0, 139.0, 920.0, 211.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [321.0, 166.0, 298.0, 128.0], "bbox_xyxy_clipped": [321.0, 166.0, 619.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [300.0, 279.0, 339.0, 80.0], "bbox_xyxy_clipped": [300.0, 279.0, 639.0, 359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [250.0, 389.0, 440.0, 59.0], "bbox_xyxy_clipped": [250.0, 389.0, 690.0, 448.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [284.0, 381.0, 372.0, 3.0], "bbox_xyxy_clipped": [284.0, 381.0, 656.0, 384.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [284.0, 458.0, 372.0, 3.0], "bbox_xyxy_clipped": [284.0, 458.0, 656.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [284.0, 475.0, 372.0, 3.0], "bbox_xyxy_clipped": [284.0, 475.0, 656.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [458.0, 435.0, 10.0, 10.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [282.0, 243.0, 84.0, 59.0], "bbox_xyxy_clipped": [282.0, 243.0, 366.0, 302.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [560.0, 246.0, 78.0, 55.0], "bbox_xyxy_clipped": [560.0, 246.0, 638.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [255.0, 703.0, 430.0, 75.0], "bbox_xyxy_clipped": [255.0, 703.0, 685.0, 778.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002299739130244475}, "Ove": {"reason": null, "status": "ok", "value": 0.3182063572881272}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "056aca6988933b052a2df876433d5518d7c24695c7944b47997e05011a73b75b", "status": "computed"}, "sample_id": "5931132c95a7a863ddcdc5d3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/pipeline/l0_result.json", "sha256": "d2cf6e915bf69bdb2fe289322c4847f6e16c147566aa7b5153fc220ebda607be", "size_bytes": 16912}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/asset_manifest.json", "sha256": "1e8275fe00c4b328558fcf1c379261ef4e1d368e4c3023da9462651821ca9ca1", "size_bytes": 11863}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/renders/r0_candidate_01.png", "sha256": "3bd06b7ff67950aa73dbbeedd694771ed5f0d3f2dbda81e7e2482cb97068702f", "size_bytes": 276576}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/inputs/r3/r3_asset_manifest.json", "sha256": "2795b48798b1aae0467011d7a1859e21eb6c14bae13f77c9d2d2d1523fcce3e6", "size_bytes": 9979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5931132c95a7a863ddcdc5d3/inputs/pfull/assets/asset_0000.png", "sha256": "9dafaab5290bcf4845e8e1dc3251aa9372f2d73ff5cc3cb94a375d118c24266f", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "956c17cbd8326cc8c74ff8238759acfdccc21e625c140ee672ab8e21273faf3c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "asset_size_bytes": 1856, "kind": "asset", "pfull_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "r3_asset_sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "93b6b3c3b1b77b78b9325f38d684b4d00a3eeb10e13f41a0250b52402f1457fe", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 17, "valid": 17}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 360.0, 504.0], "bbox_xyxy_clipped": [0.0, 0.0, 360.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [48.0, 22.0, 264.0, 460.0], "bbox_xyxy_clipped": [48.0, 22.0, 312.0, 482.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [70.0, 31.0, 220.0, 52.0], "bbox_xyxy_clipped": [70.0, 31.0, 290.0, 83.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [250.0, 88.0, 78.0, 83.0], "bbox_xyxy_clipped": [250.0, 88.0, 328.0, 171.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [122.0, 314.0, 34.0, 23.0], "bbox_xyxy_clipped": [122.0, 314.0, 156.0, 337.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [106.0, 250.0, 118.0, 135.0], "bbox_xyxy_clipped": [106.0, 250.0, 224.0, 385.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [195.0, 265.0, 112.0, 202.0], "bbox_xyxy_clipped": [195.0, 265.0, 307.0, 467.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 168.0, 34.0, 38.0], "bbox_xyxy_clipped": [34.0, 168.0, 68.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [284.0, 182.0, 28.0, 38.0], "bbox_xyxy_clipped": [284.0, 182.0, 312.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [93.0, 126.0, 22.0, 24.0], "bbox_xyxy_clipped": [93.0, 126.0, 115.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [247.0, 134.0, 21.0, 23.0], "bbox_xyxy_clipped": [247.0, 134.0, 268.0, 157.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [171.0, 96.0, 20.0, 22.0], "bbox_xyxy_clipped": [171.0, 96.0, 191.0, 118.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [136.0, 196.0, 82.0, 35.0], "bbox_xyxy_clipped": [136.0, 196.0, 218.0, 231.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [69.0, 82.0, 223.0, 100.0], "bbox_xyxy_clipped": [69.0, 82.0, 292.0, 182.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [73.0, 470.0, 214.0, 17.0], "bbox_xyxy_clipped": [73.0, 470.0, 287.0, 487.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [137.0, 53.0, 86.0, 19.0], "bbox_xyxy_clipped": [137.0, 53.0, 223.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [103.0, 18.0, 114.0, 72.0], "bbox_xyxy_clipped": [103.0, 18.0, 217.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.033225878626370976}, "Ove": {"reason": null, "status": "ok", "value": 0.1894424654452591}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e149f044c8861ee5953956a680d30cac4452b24565a8f6870fdcfce36e79d002", "status": "computed"}, "sample_id": "59313e5495a7a863ddcdc9ac", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/pipeline/l0_result.json", "sha256": "14766ac68c2fc9c33637a1aac98ed6b90c634024eaa3797005a21beb88f60e2e", "size_bytes": 15674}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/asset_manifest.json", "sha256": "23bde2d39df5063da6506db9d712ac394f5cc58fa13e13094b6ca96320fe95fd", "size_bytes": 9415}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/renders/r0_candidate_02.png", "sha256": "956c17cbd8326cc8c74ff8238759acfdccc21e625c140ee672ab8e21273faf3c", "size_bytes": 98337}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/inputs/r3/r3_asset_manifest.json", "sha256": "8a5866437f6314e721044fe8bec96315ea8bd5966133aad77eab908b64fd2b17", "size_bytes": 8037}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59313e5495a7a863ddcdc9ac/inputs/pfull/assets/asset_0000.png", "sha256": "f44008e10f71b58c8b004f47333248899b00726ce53daed584f538cfa26ee97c", "size_bytes": 1856}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4f055af63fcb113ce34652237fa9b255dab94094b2b2a6a1ff11a06cefc35fae", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 419.0, 298.0], "bbox_xyxy_clipped": [0.0, 0.0, 419.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [215.0, 45.0, 148.0, 129.0], "bbox_xyxy_clipped": [215.0, 45.0, 363.0, 174.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [302.0, 20.0, 72.0, 83.0], "bbox_xyxy_clipped": [302.0, 20.0, 374.0, 103.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [244.0, 111.0, 136.0, 97.0], "bbox_xyxy_clipped": [244.0, 111.0, 380.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [170.0, 88.0, 40.0, 41.0], "bbox_xyxy_clipped": [170.0, 88.0, 210.0, 129.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [29.0, 28.0, 121.0, 26.0], "bbox_xyxy_clipped": [29.0, 28.0, 150.0, 54.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [40.0, 56.0, 116.0, 31.0], "bbox_xyxy_clipped": [40.0, 56.0, 156.0, 87.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [24.0, 225.0, 121.0, 44.0], "bbox_xyxy_clipped": [24.0, 225.0, 145.0, 269.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [27.0, 199.0, 104.0, 18.0], "bbox_xyxy_clipped": [27.0, 199.0, 131.0, 217.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [29.0, 94.0, 90.0, 25.0], "bbox_xyxy_clipped": [29.0, 94.0, 119.0, 119.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [44.0, 122.0, 110.0, 25.0], "bbox_xyxy_clipped": [44.0, 122.0, 154.0, 147.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006193261677297987}, "Ove": {"reason": null, "status": "ok", "value": 0.08527363709960084}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5952704d95a7a863ddcdecb5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952704d95a7a863ddcdecb5/pipeline/l0_result.json", "sha256": "4837fc25cd383874ce58ba1c1bdbce09749b691356138eebd98b6f146743859c", "size_bytes": 11579}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952704d95a7a863ddcdecb5/inputs/pfull/asset_manifest.json", "sha256": "399d534af7f84be1f2e0d1163a73cacdf76b3fef3cffc4faf247b972ca0431ad", "size_bytes": 5909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952704d95a7a863ddcdecb5/renders/r0_candidate_03.png", "sha256": "4f055af63fcb113ce34652237fa9b255dab94094b2b2a6a1ff11a06cefc35fae", "size_bytes": 52507}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952704d95a7a863ddcdecb5/inputs/r3/r3_asset_manifest.json", "sha256": "09b6e5fb1cda2f60fd5a1d14ea9a57c068a5a12c712bc52cd15bf3dd814ef03c", "size_bytes": 5358}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c032ba07b6df25cb45ccadb37b8f9d5483b77ca22c99b15eb68f55e8071ef724", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 14, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 0.0, 332.0, 495.0], "bbox_xyxy_clipped": [18.0, 0.0, 350.0, 495.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [362.0, 0.0, 162.0, 243.0], "bbox_xyxy_clipped": [362.0, 0.0, 524.0, 243.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [388.0, 255.0, 108.0, 165.0], "bbox_xyxy_clipped": [388.0, 255.0, 496.0, 420.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [18.0, 504.0, 276.0, 182.0], "bbox_xyxy_clipped": [18.0, 504.0, 294.0, 686.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [304.0, 506.0, 216.0, 158.0], "bbox_xyxy_clipped": [304.0, 506.0, 520.0, 664.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [368.0, 690.0, 154.0, 8.0], "bbox_xyxy_clipped": [368.0, 690.0, 522.0, 698.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [389.0, 418.0, 121.0, 43.0], "bbox_xyxy_clipped": [389.0, 418.0, 510.0, 461.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [365.0, 44.0, 154.0, 10.0], "bbox_xyxy_clipped": [365.0, 44.0, 519.0, 54.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [365.0, 56.0, 152.0, 22.0], "bbox_xyxy_clipped": [365.0, 56.0, 517.0, 78.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [368.0, 84.0, 149.0, 10.0], "bbox_xyxy_clipped": [368.0, 84.0, 517.0, 94.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [389.0, 118.0, 91.0, 15.0], "bbox_xyxy_clipped": [389.0, 118.0, 480.0, 133.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [382.0, 143.0, 151.0, 29.0], "bbox_xyxy_clipped": [382.0, 143.0, 533.0, 172.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [368.0, 562.0, 150.0, 21.0], "bbox_xyxy_clipped": [368.0, 562.0, 518.0, 583.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [368.0, 594.0, 152.0, 13.0], "bbox_xyxy_clipped": [368.0, 594.0, 520.0, 607.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0037670826219495116}, "Ove": {"reason": null, "status": "ok", "value": 0.03286368022789439}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "5952794195a7a863ddcdf36a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952794195a7a863ddcdf36a/pipeline/l0_result.json", "sha256": "719467d943cc785cccda2298728437f49c92961dd9632dd9b0413046462100f8", "size_bytes": 11795}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952794195a7a863ddcdf36a/inputs/pfull/asset_manifest.json", "sha256": "d2af88f05dafb5e40c2cbc9bd0cde7621202f02b791f9d00758d4fc2016a5fde", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952794195a7a863ddcdf36a/renders/r0_candidate_01.png", "sha256": "c032ba07b6df25cb45ccadb37b8f9d5483b77ca22c99b15eb68f55e8071ef724", "size_bytes": 520047}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952794195a7a863ddcdf36a/inputs/r3/r3_asset_manifest.json", "sha256": "ccf9e2177a33e0cf3400145aaa53d36a30a691123f4db787f8b397e4b8836d8c", "size_bytes": 6821}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f268b02a0ea5cdac2af9b6a9f20473c1b82275eefb34868b466db10e489cefda", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "asset_size_bytes": 1851, "kind": "asset", "pfull_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "r3_asset_sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [32.0, 18.0, 296.0, 239.0], "bbox_xyxy_clipped": [32.0, 18.0, 328.0, 257.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [47.0, 277.0, 266.0, 49.0], "bbox_xyxy_clipped": [47.0, 277.0, 313.0, 326.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [82.0, 332.0, 196.0, 20.0], "bbox_xyxy_clipped": [82.0, 332.0, 278.0, 352.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [68.0, 358.0, 225.0, 22.0], "bbox_xyxy_clipped": [68.0, 358.0, 293.0, 380.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [118.0, 417.0, 124.0, 15.0], "bbox_xyxy_clipped": [118.0, 417.0, 242.0, 432.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [89.0, 444.0, 183.0, 31.0], "bbox_xyxy_clipped": [89.0, 444.0, 272.0, 475.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [102.0, 409.0, 156.0, 4.0], "bbox_xyxy_clipped": [102.0, 409.0, 258.0, 413.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [104.0, 472.0, 152.0, 6.0], "bbox_xyxy_clipped": [104.0, 472.0, 256.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003141181329412669}, "Ove": {"reason": null, "status": "ok", "value": 0.00930004894762604}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5952934395a7a863ddcdff21", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/pipeline/l0_result.json", "sha256": "3629c288ca86858fd2148e0569159a3dac58895c4637abada0e4a9da9891273e", "size_bytes": 8759}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/inputs/pfull/asset_manifest.json", "sha256": "2fe75bfb720520a54fe57e71c0c3c429dd35445b1de737a0f7e8e66621fb82cc", "size_bytes": 5048}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/renders/r0_candidate_01.png", "sha256": "f268b02a0ea5cdac2af9b6a9f20473c1b82275eefb34868b466db10e489cefda", "size_bytes": 117617}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/inputs/r3/r3_asset_manifest.json", "sha256": "8242f25003e1bc690975163509e0b297793905faf9376062d996f7634d3cbeb7", "size_bytes": 4497}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5952934395a7a863ddcdff21/inputs/pfull/assets/asset_0000.png", "sha256": "cbe4517b159267df3e0a6de69631bd58893f4399f1e3ef70cc1655d3aa407324", "size_bytes": 1851}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "85579ef4408fdf3d1a45b1b2f6508fd0c7cf38f58f2086987d1114fe08693281", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "asset_size_bytes": 1586, "kind": "asset", "pfull_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "r3_asset_sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "3115e826093ff292c80e054f014976ad1a1105ba523634cbe5b41f8817b3439e", "canvas": {"height": 600, "width": 160}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [10.0, 170.0, 55.0, 101.0], "bbox_xyxy_clipped": [10.0, 170.0, 65.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [94.0, 42.0, 56.0, 20.0], "bbox_xyxy_clipped": [94.0, 42.0, 150.0, 62.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [82.0, 67.0, 68.0, 9.0], "bbox_xyxy_clipped": [82.0, 67.0, 150.0, 76.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [134.0, 93.0, 4.0, 73.0], "bbox_xyxy_clipped": [134.0, 93.0, 138.0, 166.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [90.0, 187.0, 65.0, 22.0], "bbox_xyxy_clipped": [90.0, 187.0, 155.0, 209.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [83.0, 214.0, 72.0, 11.0], "bbox_xyxy_clipped": [83.0, 214.0, 155.0, 225.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00043507029044240143}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "ff5a7814d740163fe578c1a93a16bc8aa267803c6acfd9bdf3450948893c935c", "status": "computed"}, "sample_id": "599ecb061350e83293007738", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/pipeline/l0_result.json", "sha256": "9b97fa160e344ae43cf88e13a39a25742eb4eae0c93e3ca5a686d870a56fffa0", "size_bytes": 7103}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/inputs/pfull/asset_manifest.json", "sha256": "39382e24a6fa70bf34ddab1a39b941005059991e26516f1a07c4c006489068c9", "size_bytes": 3952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/renders/r0_candidate_03.png", "sha256": "85579ef4408fdf3d1a45b1b2f6508fd0c7cf38f58f2086987d1114fe08693281", "size_bytes": 22592}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/inputs/r3/r3_asset_manifest.json", "sha256": "90f9fd5444e8505e1e673e7f98cd741d4e53de0f9aecd5857b31eb71ee5b9946", "size_bytes": 3572}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/599ecb061350e83293007738/inputs/pfull/assets/asset_0000.png", "sha256": "8e46ba6f892907656ec5077452d232b39a67966ec2ebd771fd7d60e1563eefcc", "size_bytes": 1586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "18c73aa73ae6c92d936ab6b124a3e3a43a9605fc88b4efc2533a3a7f22c30e6e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7a791ca4a993ee5f777796f67da5ec7dda9b177f7de407e4724fcaea4e533b22", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 20, "valid": 20}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 540.0, 810.0], "bbox_xyxy_clipped": [0.0, 0.0, 540.0, 810.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 355.0, 230.0, 342.0], "bbox_xyxy_clipped": [18.0, 355.0, 248.0, 697.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [165.0, 86.0, 235.0, 300.0], "bbox_xyxy_clipped": [165.0, 86.0, 400.0, 386.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [297.0, 45.0, 192.0, 188.0], "bbox_xyxy_clipped": [297.0, 45.0, 489.0, 233.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [56.0, 48.0, 205.0, 112.0], "bbox_xyxy_clipped": [56.0, 48.0, 261.0, 160.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [74.0, 167.0, 165.0, 100.0], "bbox_xyxy_clipped": [74.0, 167.0, 239.0, 267.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [262.0, 250.0, 172.0, 143.0], "bbox_xyxy_clipped": [262.0, 250.0, 434.0, 393.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [402.0, 150.0, 130.0, 122.0], "bbox_xyxy_clipped": [402.0, 150.0, 532.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [410.0, 300.0, 116.0, 116.0], "bbox_xyxy_clipped": [410.0, 300.0, 526.0, 416.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [468.0, 88.0, 50.0, 45.0], "bbox_xyxy_clipped": [468.0, 88.0, 518.0, 133.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [458.0, 198.0, 72.0, 44.0], "bbox_xyxy_clipped": [458.0, 198.0, 530.0, 242.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [31.0, 312.0, 265.0, 39.0], "bbox_xyxy_clipped": [31.0, 312.0, 296.0, 351.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [22.0, 40.0, 210.0, 48.0], "bbox_xyxy_clipped": [22.0, 40.0, 232.0, 88.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [24.0, 89.0, 185.0, 50.0], "bbox_xyxy_clipped": [24.0, 89.0, 209.0, 139.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [26.0, 144.0, 240.0, 39.0], "bbox_xyxy_clipped": [26.0, 144.0, 266.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [28.0, 202.0, 196.0, 54.0], "bbox_xyxy_clipped": [28.0, 202.0, 224.0, 256.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [28.0, 265.0, 242.0, 63.0], "bbox_xyxy_clipped": [28.0, 265.0, 270.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [26.0, 724.0, 276.0, 40.0], "bbox_xyxy_clipped": [26.0, 724.0, 302.0, 764.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [33.0, 729.0, 227.0, 16.0], "bbox_xyxy_clipped": [33.0, 729.0, 260.0, 745.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [369.0, 522.0, 131.0, 131.0], "bbox_xyxy_clipped": [369.0, 522.0, 500.0, 653.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006259967121949303}, "Ove": {"reason": null, "status": "ok", "value": 0.20232564841558917}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e606ebfa0f48866ca34d0c4d842ef731e57c0673fae4e3564570e2ea0b1fdd98", "status": "computed"}, "sample_id": "59b2809c1350e8329300dbe4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59b2809c1350e8329300dbe4/pipeline/l0_result.json", "sha256": "ba8faa7a2c02c482ecc27efd6988354b69dd711daac2475c8ba1b7b3cb5321b0", "size_bytes": 17020}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59b2809c1350e8329300dbe4/inputs/pfull/asset_manifest.json", "sha256": "a1ca024cc2508e2b58bfc4187be8d28624eb07c19e87052e8de355a9a2b6fc18", "size_bytes": 10452}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59b2809c1350e8329300dbe4/renders/r0_candidate_03.png", "sha256": "18c73aa73ae6c92d936ab6b124a3e3a43a9605fc88b4efc2533a3a7f22c30e6e", "size_bytes": 231816}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59b2809c1350e8329300dbe4/inputs/r3/r3_asset_manifest.json", "sha256": "210101c6b13cedf21aed0c89cc9d226e6c0cfae378dd94ee707ee78846d08199", "size_bytes": 9047}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "064f9bed1826f7c74b33d8f3d83cadf5c04e9751d39e53bb04b64947760cb45f", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "asset_size_bytes": 3534, "kind": "asset", "pfull_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "r3_asset_sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "88a14e36481d902d326851ec9181179de60acb3e3b8857685ec64e33c6db22dc", "canvas": {"height": 810, "width": 540}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [266.0, 247.0, 240.0, 158.0], "bbox_xyxy_clipped": [266.0, 247.0, 506.0, 405.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 143.0, 172.0, 49.0], "bbox_xyxy_clipped": [88.0, 143.0, 260.0, 192.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [213.0, 170.0, 28.0, 29.0], "bbox_xyxy_clipped": [213.0, 170.0, 241.0, 199.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [56.0, 326.0, 78.0, 131.0], "bbox_xyxy_clipped": [56.0, 326.0, 134.0, 457.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [120.0, 344.0, 76.0, 128.0], "bbox_xyxy_clipped": [120.0, 344.0, 196.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [174.0, 365.0, 72.0, 121.0], "bbox_xyxy_clipped": [174.0, 365.0, 246.0, 486.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [223.0, 383.0, 63.0, 145.0], "bbox_xyxy_clipped": [223.0, 383.0, 286.0, 528.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [77.0, 121.0, 214.0, 36.0], "bbox_xyxy_clipped": [77.0, 121.0, 291.0, 157.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [31.0, 81.0, 257.0, 31.0], "bbox_xyxy_clipped": [31.0, 81.0, 288.0, 112.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [57.0, 266.0, 35.0, 42.0], "bbox_xyxy_clipped": [57.0, 266.0, 92.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [56.0, 189.0, 238.0, 34.0], "bbox_xyxy_clipped": [56.0, 189.0, 294.0, 223.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [79.0, 199.0, 232.0, 33.0], "bbox_xyxy_clipped": [79.0, 199.0, 311.0, 232.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 1.4193097602210527e-06}, "Ove": {"reason": null, "status": "ok", "value": 0.09949345570980439}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7477000bd00b63645744c2011f087e6d08386f5cb52d5fe47fec077ce4db1da1", "status": "computed"}, "sample_id": "59bb96701350e8329301120a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/pipeline/l0_result.json", "sha256": "2b51b4da402d597f63f12027b294e3259740ffe8d3efbb4e2aaa3ff5483a81ad", "size_bytes": 10658}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/inputs/pfull/asset_manifest.json", "sha256": "fdf1749074fb199bfcf3faaf09d1d4f69eccb2356f6ca08b9987428883a4ace5", "size_bytes": 6899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/renders/r0_candidate_02.png", "sha256": "064f9bed1826f7c74b33d8f3d83cadf5c04e9751d39e53bb04b64947760cb45f", "size_bytes": 71361}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/inputs/r3/r3_asset_manifest.json", "sha256": "dda8a317cf8065244ba10ddec67bacc7c0c8356eb75e8b65acc12a76c35bade0", "size_bytes": 6099}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/59bb96701350e8329301120a/inputs/pfull/assets/asset_0000.png", "sha256": "09d5763af534f81f69854c6ac185493f539d91d7bdd521adc8314e1ea094c636", "size_bytes": 3534}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "1d2969b6c67a1d00feb1a4aaf258e34fdfa1cf8bad983794920350b17e5ce591", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "asset_size_bytes": 4721, "kind": "asset", "pfull_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "r3_asset_sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "e9708568a1fecab05eac14b6ec245d1f5576515e93def3fa254f5551e23f847d", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [119.0, 9.0, 702.0, 490.0], "bbox_xyxy_clipped": [119.0, 9.0, 821.0, 499.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [108.0, 523.0, 118.0, 145.0], "bbox_xyxy_clipped": [108.0, 523.0, 226.0, 668.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [701.0, 525.0, 119.0, 146.0], "bbox_xyxy_clipped": [701.0, 525.0, 820.0, 671.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [130.0, 488.0, 162.0, 94.0], "bbox_xyxy_clipped": [130.0, 488.0, 292.0, 582.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [649.0, 488.0, 162.0, 94.0], "bbox_xyxy_clipped": [649.0, 488.0, 811.0, 582.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [293.0, 191.0, 355.0, 100.0], "bbox_xyxy_clipped": [293.0, 191.0, 648.0, 291.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [367.0, 301.0, 205.0, 94.0], "bbox_xyxy_clipped": [367.0, 301.0, 572.0, 395.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [240.0, 401.0, 460.0, 101.0], "bbox_xyxy_clipped": [240.0, 401.0, 700.0, 502.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [73.0, 635.0, 92.0, 94.0], "bbox_xyxy_clipped": [73.0, 635.0, 165.0, 729.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [778.0, 639.0, 92.0, 94.0], "bbox_xyxy_clipped": [778.0, 639.0, 870.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [212.0, 508.0, 516.0, 58.0], "bbox_xyxy_clipped": [212.0, 508.0, 728.0, 566.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [14.0, 566.0, 89.0, 131.0], "bbox_xyxy_clipped": [14.0, 566.0, 103.0, 697.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [838.0, 560.0, 95.0, 131.0], "bbox_xyxy_clipped": [838.0, 560.0, 933.0, 691.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [206.0, 625.0, 92.0, 98.0], "bbox_xyxy_clipped": [206.0, 625.0, 298.0, 723.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [355.0, 642.0, 90.0, 96.0], "bbox_xyxy_clipped": [355.0, 642.0, 445.0, 738.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [532.0, 631.0, 93.0, 99.0], "bbox_xyxy_clipped": [532.0, 631.0, 625.0, 730.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001095564848438948}, "Ove": {"reason": null, "status": "ok", "value": 0.08699785441609384}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "232d5b6cffc423c12d07a02a86a949937d399fa14c36754e17b0449871afce50", "status": "computed"}, "sample_id": "5a034425d8141396fe9898fa", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/pipeline/l0_result.json", "sha256": "7d40f9bdc8408b51105fc2e2fd7904f5f95f8ba31cde2655eac9245779726bac", "size_bytes": 12713}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/inputs/pfull/asset_manifest.json", "sha256": "4a52558049eae13e4754034a3fbb6b7e78d6b0d732b67a9e6ef9cd3ba3b99260", "size_bytes": 8870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/renders/r0_candidate_01.png", "sha256": "1d2969b6c67a1d00feb1a4aaf258e34fdfa1cf8bad983794920350b17e5ce591", "size_bytes": 231654}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/inputs/r3/r3_asset_manifest.json", "sha256": "277e6eaf1c4d137fde91ad34f4554054429aba68e4bc76ea876aba748e81117e", "size_bytes": 7622}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a034425d8141396fe9898fa/inputs/pfull/assets/asset_0000.png", "sha256": "30d060bb1fcfb10ba20c43790be38df7f6814d279eb0f17c45a497b50fc7c19c", "size_bytes": 4721}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f0be99758d64944a245620a29cb8de02be13cfbc2511fa32ed050dd6bad4664a", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab1a9f828f65cce21df87b478148e38ba7e508b4ead4206dcdc5d3ac86964240", "canvas": {"height": 1440, "width": 2560}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 24, "valid": 24}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 2560.0, 1440.0], "bbox_xyxy_clipped": [0.0, 0.0, 2560.0, 1440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 120.0, 620.0, 403.0], "bbox_xyxy_clipped": [120.0, 120.0, 740.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [780.0, 150.0, 560.0, 364.0], "bbox_xyxy_clipped": [780.0, 150.0, 1340.0, 514.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [190.0, 210.0, 520.0, 549.0], "bbox_xyxy_clipped": [190.0, 210.0, 710.0, 759.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1730.0, 210.0, 520.0, 549.0], "bbox_xyxy_clipped": [1730.0, 210.0, 2250.0, 759.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [360.0, 60.0, 760.0, 7.0], "bbox_xyxy_clipped": [360.0, 60.0, 1120.0, 67.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [760.0, 95.0, 620.0, 32.0], "bbox_xyxy_clipped": [760.0, 95.0, 1380.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1180.0, 125.0, 470.0, 28.0], "bbox_xyxy_clipped": [1180.0, 125.0, 1650.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1610.0, 160.0, 420.0, 25.0], "bbox_xyxy_clipped": [1610.0, 160.0, 2030.0, 185.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [2050.0, 130.0, 84.0, 80.0], "bbox_xyxy_clipped": [2050.0, 130.0, 2134.0, 210.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1940.0, 260.0, 74.0, 70.0], "bbox_xyxy_clipped": [1940.0, 260.0, 2014.0, 330.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1550.0, 980.0, 260.0, 135.0], "bbox_xyxy_clipped": [1550.0, 980.0, 1810.0, 1115.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1510.0, 1130.0, 820.0, 8.0], "bbox_xyxy_clipped": [1510.0, 1130.0, 2330.0, 1138.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [145.0, 860.0, 150.0, 40.0], "bbox_xyxy_clipped": [145.0, 860.0, 295.0, 900.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [520.0, 980.0, 160.0, 43.0], "bbox_xyxy_clipped": [520.0, 980.0, 680.0, 1023.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1040.0, 910.0, 140.0, 38.0], "bbox_xyxy_clipped": [1040.0, 910.0, 1180.0, 948.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [2040.0, 820.0, 95.0, 92.0], "bbox_xyxy_clipped": [2040.0, 820.0, 2135.0, 912.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [430.0, 820.0, 190.0, 70.0], "bbox_xyxy_clipped": [430.0, 820.0, 620.0, 890.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [470.0, 900.0, 190.0, 70.0], "bbox_xyxy_clipped": [470.0, 900.0, 660.0, 970.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [2140.0, 1075.0, 300.0, 300.0], "bbox_xyxy_clipped": [2140.0, 1075.0, 2440.0, 1375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [1510.0, 130.0, 460.0, 102.0], "bbox_xyxy_clipped": [1510.0, 130.0, 1970.0, 232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [1630.0, 220.0, 730.0, 108.0], "bbox_xyxy_clipped": [1630.0, 220.0, 2360.0, 328.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [1900.0, 334.0, 85.0, 82.0], "bbox_xyxy_clipped": [1900.0, 334.0, 1985.0, 416.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [1970.0, 414.0, 520.0, 97.0], "bbox_xyxy_clipped": [1970.0, 414.0, 2490.0, 511.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006266766124301487}, "Ove": {"reason": null, "status": "ok", "value": 0.06378552165248777}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "9470d09ed5f1f202a6333e1636398f82721bee206398e413fb3cbd5e9af4f0bd", "status": "computed"}, "sample_id": "5a21848dd8141396fe9a33eb", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a21848dd8141396fe9a33eb/pipeline/l0_result.json", "sha256": "be5c20b394f060add0fb080b34658a24168b94fa0fa2650f581219681f45d635", "size_bytes": 17872}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a21848dd8141396fe9a33eb/inputs/pfull/asset_manifest.json", "sha256": "680789b6113181aef612b390380d03f056cf37299c86fb9c3706dad71dc04aa5", "size_bytes": 12265}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a21848dd8141396fe9a33eb/renders/r0_candidate_03.png", "sha256": "f0be99758d64944a245620a29cb8de02be13cfbc2511fa32ed050dd6bad4664a", "size_bytes": 2096449}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a21848dd8141396fe9a33eb/inputs/r3/r3_asset_manifest.json", "sha256": "21cc4331f5cee4c33414db10882d052c84e9ca35cfd11cdcc315437fdb705c53", "size_bytes": 10327}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "364d5c88140676ddd2a2a38f15a4e3c1c6113ec8d65fe2e9e7fbb284cb01ab08", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 9, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 1920.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 1920.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [535.0, 190.0, 390.0, 391.0], "bbox_xyxy_clipped": [535.0, 190.0, 925.0, 581.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1150.0, 70.0, 650.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1150.0, 92.0, 640.0, 2.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1225.0, 120.0, 410.0, 151.0], "bbox_xyxy_clipped": [1225.0, 120.0, 1635.0, 271.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1228.0, 286.0, 250.0, 33.0], "bbox_xyxy_clipped": [1228.0, 286.0, 1478.0, 319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1228.0, 370.0, 300.0, 41.0], "bbox_xyxy_clipped": [1228.0, 370.0, 1528.0, 411.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1228.0, 426.0, 375.0, 41.0], "bbox_xyxy_clipped": [1228.0, 426.0, 1603.0, 467.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1228.0, 478.0, 290.0, 36.0], "bbox_xyxy_clipped": [1228.0, 478.0, 1518.0, 514.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006251716142819251}, "Ove": {"reason": null, "status": "ok", "value": 0.017964960868606706}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5a240260d8141396fe9a9de3", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a240260d8141396fe9a9de3/pipeline/l0_result.json", "sha256": "83950acba58e1a7fec0dfa8a0808db6ab59b7ee772ce25562fe0464eab15d988", "size_bytes": 8639}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a240260d8141396fe9a9de3/inputs/pfull/asset_manifest.json", "sha256": "e95faf442c6997a94535180cc9d8ebd0ea96fa339adf50a66be8b85fb3fda52d", "size_bytes": 4946}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a240260d8141396fe9a9de3/renders/r0_candidate_03.png", "sha256": "364d5c88140676ddd2a2a38f15a4e3c1c6113ec8d65fe2e9e7fbb284cb01ab08", "size_bytes": 226975}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a240260d8141396fe9a9de3/inputs/r3/r3_asset_manifest.json", "sha256": "c1150c5774d9e1a8128bc3b7a74effb7523e5c439611d18c1368fbd6f188da67", "size_bytes": 4479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6209a5fbc1a5b0a4ff563b56ad0729b035dbcd21eaf43eb50a9828bfb74cfe31", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [38.0, 820.0, 196.0, 392.0], "bbox_xyxy_clipped": [38.0, 820.0, 234.0, 1200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [444.0, 920.0, 110.0, 110.0], "bbox_xyxy_clipped": [444.0, 920.0, 554.0, 1030.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [362.0, 104.0, 118.0, 118.0], "bbox_xyxy_clipped": [362.0, 104.0, 480.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [20.0, 470.0, 342.0, 60.0], "bbox_xyxy_clipped": [20.0, 470.0, 362.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [286.0, 360.0, 238.0, 238.0], "bbox_xyxy_clipped": [286.0, 360.0, 524.0, 598.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 62.0, 283.0, 27.0], "bbox_xyxy_clipped": [34.0, 62.0, 317.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [34.0, 132.0, 127.0, 27.0], "bbox_xyxy_clipped": [34.0, 132.0, 161.0, 159.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [34.0, 168.0, 165.0, 28.0], "bbox_xyxy_clipped": [34.0, 168.0, 199.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [34.0, 214.0, 251.0, 25.0], "bbox_xyxy_clipped": [34.0, 214.0, 285.0, 239.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0038709548446687267}, "Ove": {"reason": null, "status": "ok", "value": 0.006978495216057885}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5a26bcecd8141396fe9ac474", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a26bcecd8141396fe9ac474/pipeline/l0_result.json", "sha256": "7225ae6288bc99b5b2b8572841a3e9c9258d4e24744dbb219098b67c2afee46e", "size_bytes": 9512}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a26bcecd8141396fe9ac474/inputs/pfull/asset_manifest.json", "sha256": "41c9b7f2fca43b0667958a03fcea9e6d38af860c819730157aea35f26e427a4d", "size_bytes": 4910}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a26bcecd8141396fe9ac474/renders/r0_candidate_02.png", "sha256": "6209a5fbc1a5b0a4ff563b56ad0729b035dbcd21eaf43eb50a9828bfb74cfe31", "size_bytes": 83558}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a26bcecd8141396fe9ac474/inputs/r3/r3_asset_manifest.json", "sha256": "64bcde89ef7dbf38f3e4d2e0892c58ae11b98a5bd73468c06b5a6c080ffafd5e", "size_bytes": 4334}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "45b837b28226f4b2f4f7b4c7aa8782c9d7643b6e2e24806f3cbbab2d47580353", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [590.0, 35.0, 290.0, 115.0], "bbox_xyxy_clipped": [590.0, 35.0, 880.0, 150.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [555.0, 145.0, 310.0, 385.0], "bbox_xyxy_clipped": [555.0, 145.0, 865.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [548.0, 165.0, 322.0, 69.0], "bbox_xyxy_clipped": [548.0, 165.0, 870.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [56.0, 67.0, 292.0, 48.0], "bbox_xyxy_clipped": [56.0, 67.0, 348.0, 115.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [58.0, 122.0, 245.0, 26.0], "bbox_xyxy_clipped": [58.0, 122.0, 303.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [57.0, 155.0, 210.0, 26.0], "bbox_xyxy_clipped": [57.0, 155.0, 267.0, 181.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [56.0, 260.0, 292.0, 30.0], "bbox_xyxy_clipped": [56.0, 260.0, 348.0, 290.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [56.0, 295.0, 263.0, 128.0], "bbox_xyxy_clipped": [56.0, 295.0, 319.0, 423.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [56.0, 448.0, 257.0, 25.0], "bbox_xyxy_clipped": [56.0, 448.0, 313.0, 473.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [56.0, 479.0, 253.0, 128.0], "bbox_xyxy_clipped": [56.0, 479.0, 309.0, 607.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [56.0, 619.0, 222.0, 25.0], "bbox_xyxy_clipped": [56.0, 619.0, 278.0, 644.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [56.0, 650.0, 255.0, 128.0], "bbox_xyxy_clipped": [56.0, 650.0, 311.0, 778.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [18.0, 252.0, 30.0, 37.0], "bbox_xyxy_clipped": [18.0, 252.0, 48.0, 289.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [17.0, 439.0, 31.0, 39.0], "bbox_xyxy_clipped": [17.0, 439.0, 48.0, 478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [18.0, 612.0, 30.0, 34.0], "bbox_xyxy_clipped": [18.0, 612.0, 48.0, 646.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029574259746266555}, "Ove": {"reason": null, "status": "ok", "value": 0.012471492725883921}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5a9968cff07aee6977a29a68", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a9968cff07aee6977a29a68/pipeline/l0_result.json", "sha256": "d16b053e4a48c81039dc9730d3f81f57b421217ab58d028eed7aaf3923513030", "size_bytes": 13091}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a9968cff07aee6977a29a68/inputs/pfull/asset_manifest.json", "sha256": "1e8509100e4cc89c501489114a590fd9fe455cea3ef8138fc90aacddddc3ff9f", "size_bytes": 8373}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a9968cff07aee6977a29a68/renders/r0_candidate_03.png", "sha256": "45b837b28226f4b2f4f7b4c7aa8782c9d7643b6e2e24806f3cbbab2d47580353", "size_bytes": 133953}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5a9968cff07aee6977a29a68/inputs/r3/r3_asset_manifest.json", "sha256": "6ac8cbf2b7b1520af4ab285b39e5b201e0a1e4bca17ba5c7b3b3b418d77b3f26", "size_bytes": 7627}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "919da4d3e697992516a58fc2226a72111a78d875d04affc658ec364a1f18efd2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 21, "valid": 21}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [337.0, 520.0, 406.0, 406.0], "bbox_xyxy_clipped": [337.0, 520.0, 743.0, 926.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [181.0, 404.0, 268.0, 222.0], "bbox_xyxy_clipped": [181.0, 404.0, 449.0, 626.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [592.0, 401.0, 246.0, 204.0], "bbox_xyxy_clipped": [592.0, 401.0, 838.0, 605.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [102.0, 561.0, 352.0, 101.0], "bbox_xyxy_clipped": [102.0, 561.0, 454.0, 662.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [627.0, 560.0, 352.0, 101.0], "bbox_xyxy_clipped": [627.0, 560.0, 979.0, 661.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [286.0, 271.0, 510.0, 193.0], "bbox_xyxy_clipped": [286.0, 271.0, 796.0, 464.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [334.0, 336.0, 312.0, 240.0], "bbox_xyxy_clipped": [334.0, 336.0, 646.0, 576.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [751.0, 618.0, 242.0, 129.0], "bbox_xyxy_clipped": [751.0, 618.0, 993.0, 747.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [95.0, 623.0, 318.0, 293.0], "bbox_xyxy_clipped": [95.0, 623.0, 413.0, 916.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [727.0, 302.0, 294.0, 140.0], "bbox_xyxy_clipped": [727.0, 302.0, 1021.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [156.0, 250.0, 300.0, 235.0], "bbox_xyxy_clipped": [156.0, 250.0, 456.0, 485.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [470.0, 771.0, 180.0, 180.0], "bbox_xyxy_clipped": [470.0, 771.0, 650.0, 951.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [835.0, 682.0, 202.0, 225.0], "bbox_xyxy_clipped": [835.0, 682.0, 1037.0, 907.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [395.0, 430.0, 288.0, 261.0], "bbox_xyxy_clipped": [395.0, 430.0, 683.0, 691.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [478.0, 236.0, 140.0, 416.0], "bbox_xyxy_clipped": [478.0, 236.0, 618.0, 652.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [310.0, 128.0, 120.0, 41.0], "bbox_xyxy_clipped": [310.0, 128.0, 430.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [441.0, 126.0, 142.0, 41.0], "bbox_xyxy_clipped": [441.0, 126.0, 583.0, 167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [602.0, 128.0, 83.0, 41.0], "bbox_xyxy_clipped": [602.0, 128.0, 685.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [249.0, 207.0, 583.0, 107.0], "bbox_xyxy_clipped": [249.0, 207.0, 832.0, 314.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [301.0, 318.0, 478.0, 89.0], "bbox_xyxy_clipped": [301.0, 318.0, 779.0, 407.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [266.0, 892.0, 549.0, 69.0], "bbox_xyxy_clipped": [266.0, 892.0, 815.0, 961.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005390335817659361}, "Ove": {"reason": null, "status": "ok", "value": 0.3092713157473693}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5aa915fef07aee69773a3ef4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5aa915fef07aee69773a3ef4/pipeline/l0_result.json", "sha256": "b36765cee802df61b14e14178120c40b7dfd52483746460bc8b075c29ad50853", "size_bytes": 16060}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5aa915fef07aee69773a3ef4/inputs/pfull/asset_manifest.json", "sha256": "1a8befe8a22a3013dc455d712683756eb6df4a6b9b87d2b5b32249ee81217e65", "size_bytes": 10862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5aa915fef07aee69773a3ef4/renders/r0_candidate_02.png", "sha256": "919da4d3e697992516a58fc2226a72111a78d875d04affc658ec364a1f18efd2", "size_bytes": 218652}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5aa915fef07aee69773a3ef4/inputs/r3/r3_asset_manifest.json", "sha256": "d063fef05ff6c6743bc7bfd2f279c2c975f569d42ed1ced6a12daaf96d881760", "size_bytes": 9373}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "24a346b22f49044d47bbdd0b71bf77594bf7f1e6ff6a333e206b37dbb324d544", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 10, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [42.0, 176.0, 116.0, 364.0], "bbox_xyxy_clipped": [42.0, 176.0, 158.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [58.0, 210.0, 90.0, 143.0], "bbox_xyxy_clipped": [58.0, 210.0, 148.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [95.0, 165.0, 133.0, 116.0], "bbox_xyxy_clipped": [95.0, 165.0, 228.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [44.0, 146.0, 138.0, 119.0], "bbox_xyxy_clipped": [44.0, 146.0, 182.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [150.0, 176.0, 150.0, 89.0], "bbox_xyxy_clipped": [150.0, 176.0, 300.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [20.0, 70.0, 138.0, 119.0], "bbox_xyxy_clipped": [20.0, 70.0, 158.0, 189.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [258.0, 96.0, 126.0, 24.0], "bbox_xyxy_clipped": [258.0, 96.0, 384.0, 120.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [258.0, 126.0, 131.0, 23.0], "bbox_xyxy_clipped": [258.0, 126.0, 389.0, 149.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [258.0, 54.0, 150.0, 28.0], "bbox_xyxy_clipped": [258.0, 54.0, 408.0, 82.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [243.0, 56.0, 2.0, 30.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0074152143911497}, "Ove": {"reason": null, "status": "ok", "value": 0.3220550592758355}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6aaf851cc8aa542986ad50", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6aaf851cc8aa542986ad50/pipeline/l0_result.json", "sha256": "b0c1830ad2ed7c40de3e2399bd8a2d79ef314a399e69c84d799fb997dfc32ce6", "size_bytes": 9353}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6aaf851cc8aa542986ad50/inputs/pfull/asset_manifest.json", "sha256": "f3105ab49b30c3e3874ea04d3042d7ce44e45149ec904e140ee40b0541e06722", "size_bytes": 5357}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6aaf851cc8aa542986ad50/renders/r0_candidate_03.png", "sha256": "24a346b22f49044d47bbdd0b71bf77594bf7f1e6ff6a333e206b37dbb324d544", "size_bytes": 27787}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6aaf851cc8aa542986ad50/inputs/r3/r3_asset_manifest.json", "sha256": "e438ab42ca3b3fbfb077294e2eacb508a0e81a635b80567fdddc57a230496f95", "size_bytes": 4690}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "671791cb16a624da8b1f9d3f51b9f336d7a8e89eb62c85b907f27cb77bed9cf8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [108.0, 22.0, 64.0, 203.0], "bbox_xyxy_clipped": [108.0, 22.0, 172.0, 225.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [91.0, 36.0, 104.0, 125.0], "bbox_xyxy_clipped": [91.0, 36.0, 195.0, 161.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [138.0, 97.0, 70.0, 105.0], "bbox_xyxy_clipped": [138.0, 97.0, 208.0, 202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [226.0, 44.0, 153.0, 30.0], "bbox_xyxy_clipped": [226.0, 44.0, 379.0, 74.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [234.0, 79.0, 37.0, 35.0], "bbox_xyxy_clipped": [234.0, 79.0, 271.0, 114.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [265.0, 92.0, 150.0, 56.0], "bbox_xyxy_clipped": [265.0, 92.0, 415.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.017547318103900172}, "Occ": {"reason": null, "status": "ok", "value": 0.0017785860748729474}, "Ove": {"reason": null, "status": "ok", "value": 0.14828616282581866}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5b6ab3e01cc8aa542994ee9d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6ab3e01cc8aa542994ee9d/pipeline/l0_result.json", "sha256": "31f82bb60910916f2674a4be3b985964feb639678dcc62cbdc3c341a27253857", "size_bytes": 6561}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/pfull/asset_manifest.json", "sha256": "540c71b9e652cd765c76b8fd650b5e3d74b86889e675c000c38730bde499acb9", "size_bytes": 3383}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6ab3e01cc8aa542994ee9d/renders/r0_candidate_03.png", "sha256": "671791cb16a624da8b1f9d3f51b9f336d7a8e89eb62c85b907f27cb77bed9cf8", "size_bytes": 51646}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b6ab3e01cc8aa542994ee9d/inputs/r3/r3_asset_manifest.json", "sha256": "be11cf62cc606f80e8de24e4ae399365446376d86d5563e273af1f08dfd481d3", "size_bytes": 3053}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "aedcc183f825041146ec98eaa46e15f38e46744bbf7d9e09ecd78af329494a0e", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fc6e5f6b16db1a64789c64daa557ba7ad0250c37cece34bf827354789a980649", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [184.0, 7.0, 182.0, 182.0], "bbox_xyxy_clipped": [184.0, 7.0, 366.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [300.0, 28.0, 124.0, 149.0], "bbox_xyxy_clipped": [300.0, 28.0, 424.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [170.0, -1.0, 178.0, 181.0], "bbox_xyxy_clipped": [170.0, 0.0, 348.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [313.0, 34.0, 88.0, 50.0], "bbox_xyxy_clipped": [313.0, 34.0, 401.0, 84.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [463.0, 14.0, 165.0, 84.0], "bbox_xyxy_clipped": [463.0, 14.0, 628.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [627.0, 10.0, 58.0, 20.0], "bbox_xyxy_clipped": [627.0, 10.0, 685.0, 30.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [466.0, 40.0, 88.0, 13.0], "bbox_xyxy_clipped": [466.0, 40.0, 554.0, 53.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [466.0, 58.0, 78.0, 44.0], "bbox_xyxy_clipped": [466.0, 58.0, 544.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0061038362025364916}, "Ove": {"reason": null, "status": "ok", "value": 0.2817826667516331}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f0d8e59a4c4d0091ee540d43a9e78c9993ad8a59fcc519bd0d92fbcfabca8038", "status": "computed"}, "sample_id": "5b85707d1cc8aa542972823c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b85707d1cc8aa542972823c/pipeline/l0_result.json", "sha256": "c7e85cae9036fbe3ee123af815f4bd58858e6aefbd0ad712cb982c3938bdea24", "size_bytes": 9410}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b85707d1cc8aa542972823c/inputs/pfull/asset_manifest.json", "sha256": "203af10c04cbc3d55d4975da13c404798404a6e418937ef67963d13a3310791c", "size_bytes": 4386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b85707d1cc8aa542972823c/renders/r0_candidate_02.png", "sha256": "aedcc183f825041146ec98eaa46e15f38e46744bbf7d9e09ecd78af329494a0e", "size_bytes": 21277}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b85707d1cc8aa542972823c/inputs/r3/r3_asset_manifest.json", "sha256": "5b1aedadec01b3b6f6c7c1dace4fa2d8f58f71c4fecc1b8885f1abaa60d95791", "size_bytes": 3957}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "df4a33457431ab8f1ac9b3478279224535ef2c9d8919c089addc9905fa8cffa3", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [60.0, 0.0, 560.0, 896.0], "bbox_xyxy_clipped": [60.0, 0.0, 620.0, 896.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [80.0, 40.0, 500.0, 800.0], "bbox_xyxy_clipped": [80.0, 40.0, 580.0, 840.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [95.0, 55.0, 470.0, 752.0], "bbox_xyxy_clipped": [95.0, 55.0, 565.0, 807.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [76.0, 92.0, 380.0, 42.0], "bbox_xyxy_clipped": [76.0, 92.0, 456.0, 134.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [76.0, 210.0, 420.0, 88.0], "bbox_xyxy_clipped": [76.0, 210.0, 496.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [76.0, 318.0, 320.0, 140.0], "bbox_xyxy_clipped": [76.0, 318.0, 396.0, 458.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [78.0, 488.0, 340.0, 108.0], "bbox_xyxy_clipped": [78.0, 488.0, 418.0, 596.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [820.0, 1460.0, 700.0, 1082.0], "bbox_xyxy_clipped": [820.0, 1460.0, 1520.0, 2542.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007293724244982766}, "Ove": {"reason": null, "status": "ok", "value": 0.4180486907021481}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9a550e18654940f754c07c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9a550e18654940f754c07c/pipeline/l0_result.json", "sha256": "31fd550f45b70b7e1d0231c8d195d14484ad7427342298f12da0ce70c130ac2b", "size_bytes": 8643}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9a550e18654940f754c07c/inputs/pfull/asset_manifest.json", "sha256": "f0bbe3928a4a4b9f4968d440e9ec79443b5cb135b3906c5a561a552214a0efc5", "size_bytes": 4404}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9a550e18654940f754c07c/renders/r0_candidate_03.png", "sha256": "df4a33457431ab8f1ac9b3478279224535ef2c9d8919c089addc9905fa8cffa3", "size_bytes": 128219}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9a550e18654940f754c07c/inputs/r3/r3_asset_manifest.json", "sha256": "efecf8a2a70e6161b373ddfe617358db89e303e014c9a4901b1e526e2b821729", "size_bytes": 3932}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f9181e509eb6cc2ffd265c637a8f2fdb66e705a4a84f07cc8ff10a2dcc67a2c6", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9fa99907ea9e4b0562697426a68c10e3b4e402fe0a6a47be02e6d802917eeb59", "canvas": {"height": 2560, "width": 1600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [794.0, 1528.0, 664.0, 1017.0], "bbox_xyxy_clipped": [794.0, 1528.0, 1458.0, 2545.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [145.0, 150.0, 360.0, 360.0], "bbox_xyxy_clipped": [145.0, 150.0, 505.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [141.0, 548.0, 100.0, 702.0], "bbox_xyxy_clipped": [141.0, 548.0, 241.0, 1250.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [150.0, 318.0, 820.0, 69.0], "bbox_xyxy_clipped": [150.0, 318.0, 970.0, 387.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [122.0, 621.0, 1364.0, 60.0], "bbox_xyxy_clipped": [122.0, 621.0, 1486.0, 681.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [148.0, 143.0, 867.0, 179.0], "bbox_xyxy_clipped": [148.0, 143.0, 1015.0, 322.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [148.0, 351.0, 600.0, 150.0], "bbox_xyxy_clipped": [148.0, 351.0, 748.0, 501.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.008263284376008938}, "Ove": {"reason": null, "status": "ok", "value": 0.1396907486636655}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "8da6c734bb87269b9cc7cd69e3f72e7ec71605bed24f8be2a0aef0482e9e9f47", "status": "computed"}, "sample_id": "5b9bc6a018654940f781b996", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9bc6a018654940f781b996/pipeline/l0_result.json", "sha256": "1b986af63ec28a2be65929b8248bd9a727d32d6a719ec7c0c1c0ff27d8427b8c", "size_bytes": 8239}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9bc6a018654940f781b996/inputs/pfull/asset_manifest.json", "sha256": "cae8c9b374400c9a0507ea42079b9953b65ae8fc257212f6932de8f8de80a13e", "size_bytes": 3919}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9bc6a018654940f781b996/renders/r0_candidate_02.png", "sha256": "f9181e509eb6cc2ffd265c637a8f2fdb66e705a4a84f07cc8ff10a2dcc67a2c6", "size_bytes": 1119707}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5b9bc6a018654940f781b996/inputs/r3/r3_asset_manifest.json", "sha256": "19c4dd3a4b18761a2b597b6d8e6a4ad332d9ecd22024b81f610f5524f549d425", "size_bytes": 3479}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "245c3a74ec539e3d1792f1df7583851fcea729bde7b75a23d2f254416ed70916", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 13, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 36.0, 154.0, 308.0], "bbox_xyxy_clipped": [18.0, 36.0, 172.0, 344.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [34.0, 50.0, 131.0, 307.0], "bbox_xyxy_clipped": [34.0, 50.0, 165.0, 357.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [62.0, 110.0, 230.0, 238.0], "bbox_xyxy_clipped": [62.0, 110.0, 292.0, 348.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [324.0, 68.0, 240.0, 195.0], "bbox_xyxy_clipped": [324.0, 68.0, 564.0, 263.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [326.0, 256.0, 238.0, 110.0], "bbox_xyxy_clipped": [326.0, 256.0, 564.0, 366.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [448.0, 380.0, 132.0, 20.0], "bbox_xyxy_clipped": [448.0, 380.0, 580.0, 400.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [430.0, 382.0, 18.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [320.0, 304.0, 250.0, 18.0], "bbox_xyxy_clipped": [320.0, 304.0, 570.0, 322.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [320.0, 344.0, 230.0, 12.0], "bbox_xyxy_clipped": [320.0, 344.0, 550.0, 356.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [348.0, 770.0, 140.0, 28.0], "bbox_xyxy_clipped": [348.0, 770.0, 488.0, 798.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [360.0, 816.0, 138.0, 28.0], "bbox_xyxy_clipped": [360.0, 816.0, 498.0, 844.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [414.0, 874.0, 112.0, 32.0], "bbox_xyxy_clipped": [414.0, 874.0, 526.0, 906.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [392.0, 938.0, 116.0, 34.0], "bbox_xyxy_clipped": [392.0, 938.0, 508.0, 972.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016911049641486315}, "Ove": {"reason": null, "status": "ok", "value": 0.1463882532533315}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5ba8b598ebe74117be0792c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ba8b598ebe74117be0792c9/pipeline/l0_result.json", "sha256": "9fb6bbd03fb06f448cc1730f6c82832e6ce7d65144f070a9bf3f6dad1c0078a2", "size_bytes": 10545}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ba8b598ebe74117be0792c9/inputs/pfull/asset_manifest.json", "sha256": "287c428a01c7daab1718050c784c29b3e76904cc01caee1be0ad001dc5e216e6", "size_bytes": 6967}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ba8b598ebe74117be0792c9/renders/r0_candidate_01.png", "sha256": "245c3a74ec539e3d1792f1df7583851fcea729bde7b75a23d2f254416ed70916", "size_bytes": 93730}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ba8b598ebe74117be0792c9/inputs/r3/r3_asset_manifest.json", "sha256": "29ca9b118b6527cf0bcff220348f83ac9f79c6eae3d7a75fbdc5554b1dbc40cf", "size_bytes": 6263}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "55d6750d2665f7097182ab37de803a5c4e48a19b937bad54f33504c367dc9e7c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 589.0, 301.0], "bbox_xyxy_clipped": [0.0, 0.0, 589.0, 301.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 540.0, 1080.0], "bbox_xyxy_clipped": [0.0, 0.0, 540.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [0.0, 739.0, 1080.0, 282.0], "bbox_xyxy_clipped": [0.0, 739.0, 1080.0, 1021.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [127.0, 204.0, 172.0, 88.0], "bbox_xyxy_clipped": [127.0, 204.0, 299.0, 292.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [131.0, 303.0, 316.0, 52.0], "bbox_xyxy_clipped": [131.0, 303.0, 447.0, 355.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [131.0, 372.0, 336.0, 95.0], "bbox_xyxy_clipped": [131.0, 372.0, 467.0, 467.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [657.0, 96.0, 336.0, 360.0], "bbox_xyxy_clipped": [657.0, 96.0, 993.0, 456.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [74.0, 84.0, 353.0, 390.0], "bbox_xyxy_clipped": [74.0, 84.0, 427.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [88.0, 520.0, 326.0, 359.0], "bbox_xyxy_clipped": [88.0, 520.0, 414.0, 879.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 985.0, 1080.0, 14.0], "bbox_xyxy_clipped": [0.0, 985.0, 1080.0, 999.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006836190275050821}, "Ove": {"reason": null, "status": "ok", "value": 0.2034738377867718}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5bbc9b3a78e1194aa616041e", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbc9b3a78e1194aa616041e/pipeline/l0_result.json", "sha256": "a45dab496a40e71fb7a28b2d88a4d05133061de6f6d1040e657b7bcf180c0cd2", "size_bytes": 9369}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbc9b3a78e1194aa616041e/inputs/pfull/asset_manifest.json", "sha256": "fb88af094c91a7653705c1e0401fc2b19d43cf5da1e4c7cc587f893ea6c1b6e8", "size_bytes": 5375}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbc9b3a78e1194aa616041e/renders/r0_candidate_02.png", "sha256": "55d6750d2665f7097182ab37de803a5c4e48a19b937bad54f33504c367dc9e7c", "size_bytes": 140408}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbc9b3a78e1194aa616041e/inputs/r3/r3_asset_manifest.json", "sha256": "9a32f523ab6e5452f54b630c29fe3a1e4d1d9e303dde5a703570c9920289ec48", "size_bytes": 4705}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6360c3449b8b7f2eb00b06eb1ff4fef6c94dbcf6e7bfe5579894e977d719f7b3", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "01c6e8435718200eb16faa29e8960af7158c635ce76aa6e6101b944e2cab5d5e", "canvas": {"height": 1200, "width": 600}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0005", "bbox_lwh_raw": [48.0, 176.0, 170.0, 60.0], "bbox_xyxy_clipped": [48.0, 176.0, 218.0, 236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [48.0, 235.0, 225.0, 66.0], "bbox_xyxy_clipped": [48.0, 235.0, 273.0, 301.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [48.0, 98.0, 156.0, 84.0], "bbox_xyxy_clipped": [48.0, 98.0, 204.0, 182.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [48.0, 54.0, 162.0, 40.0], "bbox_xyxy_clipped": [48.0, 54.0, 210.0, 94.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [294.0, 64.0, 266.0, 529.0], "bbox_xyxy_clipped": [294.0, 64.0, 560.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [236.0, 138.0, 122.0, 121.0], "bbox_xyxy_clipped": [236.0, 138.0, 358.0, 259.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [201.0, 275.0, 90.0, 90.0], "bbox_xyxy_clipped": [201.0, 275.0, 291.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [36.0, 342.0, 528.0, 4.0], "bbox_xyxy_clipped": [36.0, 342.0, 564.0, 346.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [54.0, 382.0, 492.0, 4.0], "bbox_xyxy_clipped": [54.0, 382.0, 546.0, 386.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [72.0, 422.0, 456.0, 4.0], "bbox_xyxy_clipped": [72.0, 422.0, 528.0, 426.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0003786529928431449}, "Ove": {"reason": null, "status": "ok", "value": 0.02785967746591973}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7a1aee5fc1092f9c121be7d96adbc59d88d40207bcdff748052d815353f6da1d", "status": "computed"}, "sample_id": "5bbcbdfd78e1194aa69fe067", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbcbdfd78e1194aa69fe067/pipeline/l0_result.json", "sha256": "519938d613994f2affb129cc262a98dd70411dd7cd92ee4b3b90f6776a6552d3", "size_bytes": 10202}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbcbdfd78e1194aa69fe067/inputs/pfull/asset_manifest.json", "sha256": "df1d60261fc5ff1764f8cdb65accfb3fec89862cbfd22ca18c3125e6dba6cac7", "size_bytes": 5359}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbcbdfd78e1194aa69fe067/renders/r0_candidate_02.png", "sha256": "6360c3449b8b7f2eb00b06eb1ff4fef6c94dbcf6e7bfe5579894e977d719f7b3", "size_bytes": 261021}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bbcbdfd78e1194aa69fe067/inputs/r3/r3_asset_manifest.json", "sha256": "53afc0459492d33ed76e90338eeac5ddb268c821c4d98f159366f93fa22b985c", "size_bytes": 4720}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a293ee3d8d8da1472f7b25391190cddbab645ba94bd6e5c199af14a1ce909d1a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 120.0, 250.0, 898.0], "bbox_xyxy_clipped": [52.0, 120.0, 302.0, 1018.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [684.0, 170.0, 318.0, 53.0], "bbox_xyxy_clipped": [684.0, 170.0, 1002.0, 223.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 560.0, 496.0, 799.0], "bbox_xyxy_clipped": [0.0, 560.0, 496.0, 1359.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [64.0, 1040.0, 210.0, 449.0], "bbox_xyxy_clipped": [64.0, 1040.0, 274.0, 1489.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [18.0, 70.0, 320.0, 673.0], "bbox_xyxy_clipped": [18.0, 70.0, 338.0, 743.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [694.0, 270.0, 200.0, 207.0], "bbox_xyxy_clipped": [694.0, 270.0, 894.0, 477.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [10.0, 1460.0, 430.0, 418.0], "bbox_xyxy_clipped": [10.0, 1460.0, 440.0, 1878.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [725.0, 1670.0, 268.0, 22.0], "bbox_xyxy_clipped": [725.0, 1670.0, 993.0, 1692.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [688.0, 505.0, 245.0, 179.0], "bbox_xyxy_clipped": [688.0, 505.0, 933.0, 684.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [845.0, 120.0, 12.0, 1565.0], "bbox_xyxy_clipped": [845.0, 120.0, 857.0, 1685.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [814.0, 120.0, 12.0, 1565.0], "bbox_xyxy_clipped": [814.0, 120.0, 826.0, 1685.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [684.0, 700.0, 303.0, 228.0], "bbox_xyxy_clipped": [684.0, 700.0, 987.0, 928.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005183059311127387}, "Ove": {"reason": null, "status": "ok", "value": 0.1111291612005057}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd05c0e78e1194aa6210e31", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd05c0e78e1194aa6210e31/pipeline/l0_result.json", "sha256": "2ababb2cf9ca9d70c82997e53032fc1976a6de97c4cc80aec20e6529e8aa96c1", "size_bytes": 10770}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd05c0e78e1194aa6210e31/inputs/pfull/asset_manifest.json", "sha256": "cbe931e195aed823310df7b535a85e430df901957f818af245cf1dd4406ef527", "size_bytes": 6408}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd05c0e78e1194aa6210e31/renders/r0_candidate_02.png", "sha256": "a293ee3d8d8da1472f7b25391190cddbab645ba94bd6e5c199af14a1ce909d1a", "size_bytes": 440530}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd05c0e78e1194aa6210e31/inputs/r3/r3_asset_manifest.json", "sha256": "f3569d9066ac7aff6472e9506cf7b140ee70207dbd2ea18077e669768ea9f724", "size_bytes": 5676}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "98995e18b6633e6af16c6ce563111763e1086196d9196a312052faf23c77f453", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 190.0, 136.0], "bbox_xyxy_clipped": [0.0, 0.0, 190.0, 136.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 136.0, 190.0, 338.0], "bbox_xyxy_clipped": [0.0, 136.0, 190.0, 474.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 474.0, 190.0, 520.0], "bbox_xyxy_clipped": [0.0, 474.0, 190.0, 994.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 994.0, 190.0, 900.0], "bbox_xyxy_clipped": [0.0, 994.0, 190.0, 1894.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [765.0, 0.0, 315.0, 863.0], "bbox_xyxy_clipped": [765.0, 0.0, 1080.0, 863.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [230.0, 110.0, 680.0, 54.0], "bbox_xyxy_clipped": [230.0, 110.0, 910.0, 164.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [235.0, 178.0, 343.0, 100.0], "bbox_xyxy_clipped": [235.0, 178.0, 578.0, 278.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [230.0, 275.0, 170.0, 60.0], "bbox_xyxy_clipped": [230.0, 275.0, 400.0, 335.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [404.0, 279.0, 145.0, 54.0], "bbox_xyxy_clipped": [404.0, 279.0, 549.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [231.0, 354.0, 132.0, 75.0], "bbox_xyxy_clipped": [231.0, 354.0, 363.0, 429.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [364.0, 354.0, 136.0, 75.0], "bbox_xyxy_clipped": [364.0, 354.0, 500.0, 429.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [230.0, 462.0, 820.0, 41.0], "bbox_xyxy_clipped": [230.0, 462.0, 1050.0, 503.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [230.0, 525.0, 780.0, 41.0], "bbox_xyxy_clipped": [230.0, 525.0, 1010.0, 566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [228.0, 1760.0, 300.0, 27.0], "bbox_xyxy_clipped": [228.0, 1760.0, 528.0, 1787.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [900.0, 930.0, 180.0, 205.0], "bbox_xyxy_clipped": [900.0, 930.0, 1080.0, 1135.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [915.0, 1160.0, 165.0, 145.0], "bbox_xyxy_clipped": [915.0, 1160.0, 1080.0, 1305.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004628643719224115}, "Ove": {"reason": null, "status": "ok", "value": 0.006953240439738525}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bd9d0209259f9ba54b29c99", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd9d0209259f9ba54b29c99/pipeline/l0_result.json", "sha256": "5c4844477d5675610cd7da294a551b0988a64ccb899277ae1f4f5b46af74e39f", "size_bytes": 13849}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd9d0209259f9ba54b29c99/inputs/pfull/asset_manifest.json", "sha256": "037b155d8066785851abb76017105826d645568baa910277603a8d7d06f53c02", "size_bytes": 8413}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd9d0209259f9ba54b29c99/renders/r0_candidate_01.png", "sha256": "98995e18b6633e6af16c6ce563111763e1086196d9196a312052faf23c77f453", "size_bytes": 767238}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bd9d0209259f9ba54b29c99/inputs/r3/r3_asset_manifest.json", "sha256": "5014b08b0e1adf39acd4c9089b41ce7004a91915f7e6f33472d1ce22de4855dc", "size_bytes": 7447}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5874b014713025d28b06ea3f7593e9084a8631cf83471ec8e5864a9189a41379", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [69.0, 58.0, 152.0, 260.0], "bbox_xyxy_clipped": [69.0, 58.0, 221.0, 318.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [225.0, 48.0, 118.0, 12.0], "bbox_xyxy_clipped": [225.0, 48.0, 343.0, 60.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [256.0, 72.0, 71.0, 41.0], "bbox_xyxy_clipped": [256.0, 72.0, 327.0, 113.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [196.0, 432.0, 146.0, 13.0], "bbox_xyxy_clipped": [196.0, 432.0, 342.0, 445.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [16.0, 14.0, 168.0, 250.0], "bbox_xyxy_clipped": [16.0, 14.0, 184.0, 264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [281.0, 196.0, 60.0, 10.0], "bbox_xyxy_clipped": [281.0, 196.0, 341.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.007248313133808678}, "Occ": {"reason": null, "status": "ok", "value": 0.0017972135938391148}, "Ove": {"reason": null, "status": "ok", "value": 0.06827482852037582}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5be174d215d5cddfd04fd1a2", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be174d215d5cddfd04fd1a2/pipeline/l0_result.json", "sha256": "135f8a214cd7559c490c04c98d98388db9e3dc867fc7d8f1b8f61199dd1de764", "size_bytes": 6979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be174d215d5cddfd04fd1a2/inputs/pfull/asset_manifest.json", "sha256": "c30351d7acd966b06d900d0fd1abcc8e5b5249f02d5baf94e70b1e3e0eb7b22f", "size_bytes": 3386}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be174d215d5cddfd04fd1a2/renders/r0_candidate_02.png", "sha256": "5874b014713025d28b06ea3f7593e9084a8631cf83471ec8e5864a9189a41379", "size_bytes": 61141}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be174d215d5cddfd04fd1a2/inputs/r3/r3_asset_manifest.json", "sha256": "c90e2f124e408f4a31a6ed901a0eaf43a190f805e302d8ddbbfc80e7e0e92a88", "size_bytes": 3071}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c9e013423bc1669915b13e718dbf2b527f1a2df5778c408415d863d753bd616b", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "asset_size_bytes": 542, "kind": "asset", "pfull_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "r3_asset_sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "99c8c31cea418989f4208523849c14391bcd3df10d29f2617bec65a9c257fd16", "canvas": {"height": 90, "width": 728}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0007", "bbox_lwh_raw": [6.0, 40.0, 360.0, 73.0], "bbox_xyxy_clipped": [6.0, 40.0, 366.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 52.0, 220.0, 85.0], "bbox_xyxy_clipped": [0.0, 52.0, 220.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [14.0, 72.0, 39.0, 85.0], "bbox_xyxy_clipped": [14.0, 72.0, 53.0, 90.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [535.0, 6.0, 98.0, 54.0], "bbox_xyxy_clipped": [535.0, 6.0, 633.0, 60.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [631.0, 12.0, 86.0, 25.0], "bbox_xyxy_clipped": [631.0, 12.0, 717.0, 37.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [504.0, 31.0, 140.0, 88.0], "bbox_xyxy_clipped": [504.0, 31.0, 644.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [529.0, 63.0, 199.0, 66.0], "bbox_xyxy_clipped": [529.0, 63.0, 728.0, 90.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.054874204412981346}, "Ove": {"reason": null, "status": "ok", "value": 0.1633855498348911}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "ee039cc0fd90aa12af56946618ae113689b51b1da2d92a64adc2f445a88be65a", "status": "computed"}, "sample_id": "5be97b9241fdeab19f985504", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/pipeline/l0_result.json", "sha256": "1cd1fdf98d0863a02e00c3482efe3feb20f94ba475fa3db7afab4e6b84f27351", "size_bytes": 8552}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/inputs/pfull/asset_manifest.json", "sha256": "a374aa778517d48fc0317915a3ab11739341c1d9d4fca76fe913d3337af11d41", "size_bytes": 4442}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/renders/r0_candidate_01.png", "sha256": "c9e013423bc1669915b13e718dbf2b527f1a2df5778c408415d863d753bd616b", "size_bytes": 45818}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/inputs/r3/r3_asset_manifest.json", "sha256": "63239e5e323e9e5eb55a1c966067159db3c008eec0a32c86da1c0ae663a5a1e3", "size_bytes": 3979}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5be97b9241fdeab19f985504/inputs/pfull/assets/asset_0000.png", "sha256": "34339ebe703ef5fa70a35e886cf17e94940283f84102cc60e9397de15926ceb6", "size_bytes": 542}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "41873a83817712d2cb97f5047e1e48df04aeea033af31425cc8e4de9899de608", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [290.0, 70.0, 501.0, 750.0], "bbox_xyxy_clipped": [290.0, 70.0, 791.0, 820.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 287.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 287.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 288.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 4.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 4.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 9.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 9.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 4.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 4.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 285.0, 1080.0, 12.0], "bbox_xyxy_clipped": [0.0, 285.0, 1080.0, 297.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [362.0, 1015.0, 120.0, 131.0], "bbox_xyxy_clipped": [362.0, 1015.0, 482.0, 1146.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [226.0, 1225.0, 629.0, 160.0], "bbox_xyxy_clipped": [226.0, 1225.0, 855.0, 1385.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [239.0, 1377.0, 602.0, 54.0], "bbox_xyxy_clipped": [239.0, 1377.0, 841.0, 1431.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [171.0, 1450.0, 738.0, 111.0], "bbox_xyxy_clipped": [171.0, 1450.0, 909.0, 1561.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [412.0, 1747.0, 257.0, 38.0], "bbox_xyxy_clipped": [412.0, 1747.0, 669.0, 1785.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00383697115041007}, "Ove": {"reason": null, "status": "ok", "value": 0.2876057128301498}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5bf55e578caf671e1c2272f0", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf55e578caf671e1c2272f0/pipeline/l0_result.json", "sha256": "5d2939b695bf9a79e014c052acc7661d3fae884e1abcdbb6b42533540d14fc3f", "size_bytes": 10459}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf55e578caf671e1c2272f0/inputs/pfull/asset_manifest.json", "sha256": "49dc4f9da5f5c43613eb82e53f70c1d253e5de0f69e76d0606d64b57e6136adb", "size_bytes": 6381}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf55e578caf671e1c2272f0/renders/r0_candidate_01.png", "sha256": "41873a83817712d2cb97f5047e1e48df04aeea033af31425cc8e4de9899de608", "size_bytes": 418193}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf55e578caf671e1c2272f0/inputs/r3/r3_asset_manifest.json", "sha256": "08fa9bb55dae26179338b3d798ec1f6781e981e150ad2c7a979f996d92d22680", "size_bytes": 5608}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0123aed703a311eb0ce5acf03a4e15764abea88b1df6613a147082aefbf7ab2d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "4ec8cfefd96285b54914c4ae5f1715b5a2b3ab383c2485011169c8223ce4ee99", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [45.0, 42.0, 250.0, 108.0], "bbox_xyxy_clipped": [45.0, 42.0, 295.0, 150.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [48.0, 145.0, 214.0, 33.0], "bbox_xyxy_clipped": [48.0, 145.0, 262.0, 178.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [48.0, 176.0, 129.0, 104.0], "bbox_xyxy_clipped": [48.0, 176.0, 177.0, 280.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [408.0, 28.0, 393.0, 255.0], "bbox_xyxy_clipped": [408.0, 28.0, 801.0, 283.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [42.0, 217.0, 52.0, 200.0], "bbox_xyxy_clipped": [42.0, 217.0, 94.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [103.0, 218.0, 52.0, 200.0], "bbox_xyxy_clipped": [103.0, 218.0, 155.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [166.0, 246.0, 64.0, 64.0], "bbox_xyxy_clipped": [166.0, 246.0, 230.0, 310.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [239.0, 244.0, 64.0, 64.0], "bbox_xyxy_clipped": [239.0, 244.0, 303.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [56.0, 250.0, 53.0, 90.0], "bbox_xyxy_clipped": [56.0, 250.0, 109.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [125.0, 251.0, 53.0, 90.0], "bbox_xyxy_clipped": [125.0, 251.0, 178.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [190.0, 240.0, 74.0, 80.0], "bbox_xyxy_clipped": [190.0, 240.0, 264.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [280.0, 238.0, 21.0, 144.0], "bbox_xyxy_clipped": [280.0, 238.0, 301.0, 315.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [332.0, 273.0, 190.0, 5.0], "bbox_xyxy_clipped": [332.0, 273.0, 522.0, 278.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004677645455431231}, "Ove": {"reason": null, "status": "ok", "value": 0.18418563732389773}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "b65b35160838685ec966e02f4cc4ba34c2e35011554719063a5718f14cf42f2a", "status": "computed"}, "sample_id": "5bf828a38caf671e1c2632e9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf828a38caf671e1c2632e9/pipeline/l0_result.json", "sha256": "4192a303670ec6a60050319f8b74851160b37e0e6780282db1e5d05090316c5b", "size_bytes": 11083}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf828a38caf671e1c2632e9/inputs/pfull/asset_manifest.json", "sha256": "d457b2d01899f4c033ed52b5de6976e1d050e8dc72ed08d650ecd19aec77faf3", "size_bytes": 6824}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf828a38caf671e1c2632e9/renders/r0_candidate_03.png", "sha256": "0123aed703a311eb0ce5acf03a4e15764abea88b1df6613a147082aefbf7ab2d", "size_bytes": 191358}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5bf828a38caf671e1c2632e9/inputs/r3/r3_asset_manifest.json", "sha256": "80244a688d27a9a21fc1b1ead722451208d1b24737d4c7f85f8516328685cab8", "size_bytes": 5875}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f13ed8999ab50e2e10557a97e650a03b4d76d8ebd3b91130e8cf14910e2fc449", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 940.0, 789.0], "bbox_xyxy_clipped": [0.0, 0.0, 940.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [92.0, 74.0, 214.0, 31.0], "bbox_xyxy_clipped": [92.0, 74.0, 306.0, 105.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [92.0, 118.0, 320.0, 155.0], "bbox_xyxy_clipped": [92.0, 118.0, 412.0, 273.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [93.0, 279.0, 400.0, 25.0], "bbox_xyxy_clipped": [93.0, 279.0, 493.0, 304.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [72.0, 322.0, 365.0, 106.0], "bbox_xyxy_clipped": [72.0, 322.0, 437.0, 428.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [364.0, 310.0, 58.0, 99.0], "bbox_xyxy_clipped": [364.0, 310.0, 422.0, 409.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [427.0, 338.0, 58.0, 99.0], "bbox_xyxy_clipped": [427.0, 338.0, 485.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [301.0, 346.0, 58.0, 99.0], "bbox_xyxy_clipped": [301.0, 346.0, 359.0, 445.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [470.0, 336.0, 470.0, 635.0], "bbox_xyxy_clipped": [470.0, 336.0, 940.0, 788.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006255637462536451}, "Ove": {"reason": null, "status": "ok", "value": 0.08080266948606615}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5c263de4133a785392318ba9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c263de4133a785392318ba9/pipeline/l0_result.json", "sha256": "95dde8eef8024331477f31aa0eff8992a2da556031508e13c1560c4fb8a59899", "size_bytes": 8720}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c263de4133a785392318ba9/inputs/pfull/asset_manifest.json", "sha256": "33dcb202c08687a683a0e45202c3b17849d89b110c9841361b8616b1e09b7a8f", "size_bytes": 4887}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c263de4133a785392318ba9/renders/r0_candidate_03.png", "sha256": "f13ed8999ab50e2e10557a97e650a03b4d76d8ebd3b91130e8cf14910e2fc449", "size_bytes": 422212}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c263de4133a785392318ba9/inputs/r3/r3_asset_manifest.json", "sha256": "f74592d15f57ca5a61172871ee5cde35e5a9002aa5a69082d2b803c20a798324", "size_bytes": 4316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "28cade55145f89a234de4e40c2cdd957071f7816c84c0e6b2aafc231ea4716d1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [99.0, 88.0, 883.0, 1570.0], "bbox_xyxy_clipped": [99.0, 88.0, 982.0, 1658.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [91.0, 123.0, 898.0, 1608.0], "bbox_xyxy_clipped": [91.0, 123.0, 989.0, 1731.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [96.0, 158.0, 888.0, 1590.0], "bbox_xyxy_clipped": [96.0, 158.0, 984.0, 1748.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [75.0, 193.0, 930.0, 165.0], "bbox_xyxy_clipped": [75.0, 193.0, 1005.0, 358.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [75.0, 372.0, 930.0, 165.0], "bbox_xyxy_clipped": [75.0, 372.0, 1005.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [180.0, 215.0, 720.0, 542.0], "bbox_xyxy_clipped": [180.0, 215.0, 900.0, 757.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [389.0, 1153.0, 302.0, 196.0], "bbox_xyxy_clipped": [389.0, 1153.0, 691.0, 1349.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [295.0, 930.0, 490.0, 306.0], "bbox_xyxy_clipped": [295.0, 930.0, 785.0, 1236.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [323.0, 1655.0, 434.0, 76.0], "bbox_xyxy_clipped": [323.0, 1655.0, 757.0, 1731.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [248.0, 1295.0, 584.0, 107.0], "bbox_xyxy_clipped": [248.0, 1295.0, 832.0, 1402.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [509.0, 1648.0, 71.0, 243.0], "bbox_xyxy_clipped": [509.0, 1648.0, 580.0, 1891.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004637717095942571}, "Ove": {"reason": null, "status": "ok", "value": 0.5255277548924124}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f55b048d064dbcc85b80", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f55b048d064dbcc85b80/pipeline/l0_result.json", "sha256": "6e28d5f8a9599e802710f671c4cb13766c685d9f60929e2b4a7b061c9f357ddf", "size_bytes": 10103}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f55b048d064dbcc85b80/inputs/pfull/asset_manifest.json", "sha256": "6d9624243e479a55ba68b483e7538dbe7816e029c7620a3f8023a9f530beb972", "size_bytes": 5860}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f55b048d064dbcc85b80/renders/r0_candidate_03.png", "sha256": "28cade55145f89a234de4e40c2cdd957071f7816c84c0e6b2aafc231ea4716d1", "size_bytes": 1811127}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f55b048d064dbcc85b80/inputs/r3/r3_asset_manifest.json", "sha256": "a089e5b02a4bbdc53f21013c10eeb62b04b3aadb4a79fcd347b5ef0459d64f80", "size_bytes": 5136}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "775cd11cedc80a96068de6d0d876eeb51bdbe2f1ce412b6a54e615f09f77129a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [83.0, 492.0, 914.0, 514.0], "bbox_xyxy_clipped": [83.0, 492.0, 997.0, 1006.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [107.0, 330.0, 865.0, 1341.0], "bbox_xyxy_clipped": [107.0, 330.0, 972.0, 1671.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [141.0, 1188.0, 798.0, 612.0], "bbox_xyxy_clipped": [141.0, 1188.0, 939.0, 1800.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [144.0, 1044.0, 793.0, 237.0], "bbox_xyxy_clipped": [144.0, 1044.0, 937.0, 1281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [144.0, 1368.0, 793.0, 237.0], "bbox_xyxy_clipped": [144.0, 1368.0, 937.0, 1605.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [262.0, 540.0, 556.0, 901.0], "bbox_xyxy_clipped": [262.0, 540.0, 818.0, 1441.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [285.0, 92.0, 510.0, 268.0], "bbox_xyxy_clipped": [285.0, 92.0, 795.0, 360.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [240.0, 390.0, 601.0, 250.0], "bbox_xyxy_clipped": [240.0, 390.0, 841.0, 640.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [178.0, 690.0, 724.0, 65.0], "bbox_xyxy_clipped": [178.0, 690.0, 902.0, 755.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [279.0, 1662.0, 523.0, 53.0], "bbox_xyxy_clipped": [279.0, 1662.0, 802.0, 1715.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0049243922030166596}, "Ove": {"reason": null, "status": "ok", "value": 0.344681901952371}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c41f7a3048d064dbccfae94", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f7a3048d064dbccfae94/pipeline/l0_result.json", "sha256": "9064561e365592d3132c03a11394464ee7ca505792aa1299d720816ee42a1627", "size_bytes": 8953}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f7a3048d064dbccfae94/inputs/pfull/asset_manifest.json", "sha256": "6a80acd971eb948b7b49a9b4df74103818eeb1dc2e79be9d868b40ff91fbea8f", "size_bytes": 5409}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f7a3048d064dbccfae94/renders/r0_candidate_02.png", "sha256": "775cd11cedc80a96068de6d0d876eeb51bdbe2f1ce412b6a54e615f09f77129a", "size_bytes": 836290}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c41f7a3048d064dbccfae94/inputs/r3/r3_asset_manifest.json", "sha256": "fc2c3a544e1e7276a99ab3e79e4a67526de5d6402bc4f798c0182348c69292a8", "size_bytes": 4785}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e7fa6fa08d0adc0f00bb15a1081b340eae3f4ad74c38d5609771ffa05d7b0d0c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [47.0, 132.0, 427.0, 443.0], "bbox_xyxy_clipped": [47.0, 132.0, 474.0, 575.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [500.0, 126.0, 444.0, 385.0], "bbox_xyxy_clipped": [500.0, 126.0, 944.0, 511.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [547.0, 549.0, 347.0, 301.0], "bbox_xyxy_clipped": [547.0, 549.0, 894.0, 850.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [636.0, 892.0, 241.0, 58.0], "bbox_xyxy_clipped": [636.0, 892.0, 877.0, 950.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [502.0, 985.0, 506.0, 994.0], "bbox_xyxy_clipped": [502.0, 985.0, 1008.0, 1920.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [551.0, 624.0, 408.0, 138.0], "bbox_xyxy_clipped": [551.0, 624.0, 959.0, 762.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [560.0, 788.0, 326.0, 71.0], "bbox_xyxy_clipped": [560.0, 788.0, 886.0, 859.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [552.0, 1114.0, 427.0, 60.0], "bbox_xyxy_clipped": [552.0, 1114.0, 979.0, 1174.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006464777567453089}, "Ove": {"reason": null, "status": "ok", "value": 0.08246551516407326}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5af7a1048d064dbc1f0d67", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5af7a1048d064dbc1f0d67/pipeline/l0_result.json", "sha256": "de4250b6a2e04c6f96615b296b08b195411dd5f7ee9426b9d36cc833cd4bc662", "size_bytes": 8271}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5af7a1048d064dbc1f0d67/inputs/pfull/asset_manifest.json", "sha256": "875bb36f5cc0a781f162e0c2d7c85818042e8f6f808b2ae050f27def8da20358", "size_bytes": 4361}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5af7a1048d064dbc1f0d67/renders/r0_candidate_02.png", "sha256": "e7fa6fa08d0adc0f00bb15a1081b340eae3f4ad74c38d5609771ffa05d7b0d0c", "size_bytes": 541954}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5af7a1048d064dbc1f0d67/inputs/r3/r3_asset_manifest.json", "sha256": "9bae7cb036fc61e3cdf96b4c8af705c336e0a07f7a59d8cf46df2ff18abd1491", "size_bytes": 3883}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "420b1006c5ad5dfd65b78a56fc15ee5a8ba899176749b04077e475396d4e4b6a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 5, "raw": 17, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [18.0, 24.0, 198.0, 18.0], "bbox_xyxy_clipped": [18.0, 24.0, 216.0, 42.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 50.0, 247.0, 16.0], "bbox_xyxy_clipped": [18.0, 50.0, 265.0, 66.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [18.0, 282.0, 230.0, 87.0], "bbox_xyxy_clipped": [18.0, 282.0, 248.0, 369.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [18.0, 382.0, 203.0, 56.0], "bbox_xyxy_clipped": [18.0, 382.0, 221.0, 438.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [22.0, 755.0, 84.0, 57.0], "bbox_xyxy_clipped": [22.0, 755.0, 106.0, 812.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [111.0, 738.0, 55.0, 52.0], "bbox_xyxy_clipped": [111.0, 738.0, 166.0, 790.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [168.0, 748.0, 60.0, 24.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0016", "bbox_lwh_raw": [24.0, 824.0, 188.0, 17.0], "bbox_xyxy_clipped": [24.0, 824.0, 212.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [592.0, 86.0, 410.0, 628.0], "bbox_xyxy_clipped": [592.0, 86.0, 1002.0, 714.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [294.0, 76.0, 7.0, 222.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0003", "bbox_lwh_raw": [318.0, 76.0, 7.0, 222.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [342.0, 76.0, 7.0, 222.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0005", "bbox_lwh_raw": [366.0, 76.0, 7.0, 222.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0006", "bbox_lwh_raw": [74.0, 1180.0, 432.0, 101.0], "bbox_xyxy_clipped": [74.0, 1180.0, 506.0, 1281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [552.0, 1180.0, 432.0, 101.0], "bbox_xyxy_clipped": [552.0, 1180.0, 984.0, 1281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 1560.0, 1080.0, 6.0], "bbox_xyxy_clipped": [0.0, 1560.0, 1080.0, 1566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 1598.0, 1080.0, 6.0], "bbox_xyxy_clipped": [0.0, 1598.0, 1080.0, 1604.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002808991160858478}, "Ove": {"reason": null, "status": "ok", "value": 0.0}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b0913048d064dbc785e7c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b0913048d064dbc785e7c/pipeline/l0_result.json", "sha256": "2f2448cd9c522737e8d2a591f4f34a4555933697f8e8a7021fd2dd623a950049", "size_bytes": 12869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b0913048d064dbc785e7c/inputs/pfull/asset_manifest.json", "sha256": "a88d027131b456dd7e7c0101ab717a1e4cebf599e79979c8eba87da5dda8152d", "size_bytes": 8914}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b0913048d064dbc785e7c/renders/r0_candidate_02.png", "sha256": "420b1006c5ad5dfd65b78a56fc15ee5a8ba899176749b04077e475396d4e4b6a", "size_bytes": 423812}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b0913048d064dbc785e7c/inputs/r3/r3_asset_manifest.json", "sha256": "e5113fa082c329dbe070c49ddd6553ee71d1a5d1f2fbaa3938104258fcd84d80", "size_bytes": 7931}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "00d74b43d646962abcf993dcdc1fda999affd0cebedbd65faa51ab61fac53e7e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0012", "bbox_lwh_raw": [56.0, 430.0, 475.0, 313.0], "bbox_xyxy_clipped": [56.0, 430.0, 531.0, 743.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [641.0, 130.0, 302.0, 109.0], "bbox_xyxy_clipped": [641.0, 130.0, 943.0, 239.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [650.0, 240.0, 321.0, 92.0], "bbox_xyxy_clipped": [650.0, 240.0, 971.0, 332.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [792.0, 334.0, 228.0, 95.0], "bbox_xyxy_clipped": [792.0, 334.0, 1020.0, 429.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [647.0, 1720.0, 353.0, 33.0], "bbox_xyxy_clipped": [647.0, 1720.0, 1000.0, 1753.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [0.0, 0.0, 1080.0, 12.0], "bbox_xyxy_clipped": [0.0, 0.0, 1080.0, 12.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [0.0, 191.0, 1080.0, 41.0], "bbox_xyxy_clipped": [0.0, 191.0, 1080.0, 232.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 381.0, 1080.0, 41.0], "bbox_xyxy_clipped": [0.0, 381.0, 1080.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 571.0, 1080.0, 12.0], "bbox_xyxy_clipped": [0.0, 571.0, 1080.0, 583.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 762.0, 1080.0, 43.0], "bbox_xyxy_clipped": [0.0, 762.0, 1080.0, 805.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 953.0, 1080.0, 43.0], "bbox_xyxy_clipped": [0.0, 953.0, 1080.0, 996.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [0.0, 1144.0, 1080.0, 160.0], "bbox_xyxy_clipped": [0.0, 1144.0, 1080.0, 1304.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [0.0, 1330.0, 1080.0, 207.0], "bbox_xyxy_clipped": [0.0, 1330.0, 1080.0, 1537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [0.0, 1547.0, 1080.0, 91.0], "bbox_xyxy_clipped": [0.0, 1547.0, 1080.0, 1638.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [0.0, 1667.0, 1080.0, 91.0], "bbox_xyxy_clipped": [0.0, 1667.0, 1080.0, 1758.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006401408531674017}, "Ove": {"reason": null, "status": "ok", "value": 0.03408652146366597}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c5b095c048d064dbc7a0ede", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b095c048d064dbc7a0ede/pipeline/l0_result.json", "sha256": "d25c6a5f64dd2561972b91f2deb9ee73f4a611d7070ef3a3ad91d2ab6509b9fe", "size_bytes": 11770}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b095c048d064dbc7a0ede/inputs/pfull/asset_manifest.json", "sha256": "5e70463c9f679c07341cdfdab1d9efbfd191243e95f0b4f6f648d727e00a0fda", "size_bytes": 7845}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b095c048d064dbc7a0ede/renders/r0_candidate_03.png", "sha256": "00d74b43d646962abcf993dcdc1fda999affd0cebedbd65faa51ab61fac53e7e", "size_bytes": 264659}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c5b095c048d064dbc7a0ede/inputs/r3/r3_asset_manifest.json", "sha256": "641a8786eba73799e93f00de6dc6b9c7ef2200b76793c02cfb9955d636564d58", "size_bytes": 6792}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b479a9b12793676fd5b391dc31c9103602c3a652bfb421811961d996357bf5d0", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 14, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [55.0, 85.0, 620.0, 1102.0], "bbox_xyxy_clipped": [55.0, 85.0, 675.0, 1187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [85.0, 135.0, 220.0, 220.0], "bbox_xyxy_clipped": [85.0, 135.0, 305.0, 355.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [360.0, 180.0, 180.0, 180.0], "bbox_xyxy_clipped": [360.0, 180.0, 540.0, 360.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [120.0, 510.0, 460.0, 11.0], "bbox_xyxy_clipped": [120.0, 510.0, 580.0, 521.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [140.0, 620.0, 380.0, 9.0], "bbox_xyxy_clipped": [140.0, 620.0, 520.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [170.0, 745.0, 300.0, 7.0], "bbox_xyxy_clipped": [170.0, 745.0, 470.0, 752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [230.0, 870.0, 220.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [640.0, 120.0, 360.0, 360.0], "bbox_xyxy_clipped": [640.0, 120.0, 1000.0, 480.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [60.0, 110.0, 342.0, 60.0], "bbox_xyxy_clipped": [60.0, 110.0, 402.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [60.0, 170.0, 245.0, 56.0], "bbox_xyxy_clipped": [60.0, 170.0, 305.0, 226.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [60.0, 360.0, 460.0, 151.0], "bbox_xyxy_clipped": [60.0, 360.0, 520.0, 511.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [60.0, 525.0, 220.0, 32.0], "bbox_xyxy_clipped": [60.0, 525.0, 280.0, 557.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [60.0, 620.0, 126.0, 41.0], "bbox_xyxy_clipped": [60.0, 620.0, 186.0, 661.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [60.0, 1640.0, 280.0, 183.0], "bbox_xyxy_clipped": [60.0, 1640.0, 340.0, 1823.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0012753503343993693}, "Ove": {"reason": null, "status": "ok", "value": 0.05756576738148135}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5c6c147785ea3c16f98dd907", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c6c147785ea3c16f98dd907/pipeline/l0_result.json", "sha256": "7d1242180efcea3b5ef0a4eba7102f4b4af381e2a44a0ca640e20fee80c0bc2f", "size_bytes": 12682}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c6c147785ea3c16f98dd907/inputs/pfull/asset_manifest.json", "sha256": "b1ada7514a0c2489972b4580d9c4d76de72dd2e10dec6517b3feab7bb0ee8c91", "size_bytes": 7514}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c6c147785ea3c16f98dd907/renders/r0_candidate_02.png", "sha256": "b479a9b12793676fd5b391dc31c9103602c3a652bfb421811961d996357bf5d0", "size_bytes": 205257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c6c147785ea3c16f98dd907/inputs/r3/r3_asset_manifest.json", "sha256": "c4b1f679c6f1c6f1e796e6cac61f42d32779f27997c4ad5831db399f35cb31c0", "size_bytes": 6586}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "142cbd57d49d50162344650c4f26990b7ecdd025d068aaf508a21fd4b2425741", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 70.0, 180.0, 128.0], "bbox_xyxy_clipped": [40.0, 70.0, 220.0, 198.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [195.0, 55.0, 174.0, 122.0], "bbox_xyxy_clipped": [195.0, 55.0, 369.0, 177.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [308.0, 22.0, 92.0, 34.0], "bbox_xyxy_clipped": [308.0, 22.0, 400.0, 56.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [331.0, 76.0, 75.0, 77.0], "bbox_xyxy_clipped": [331.0, 76.0, 406.0, 153.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [344.0, 184.0, 63.0, 41.0], "bbox_xyxy_clipped": [344.0, 184.0, 407.0, 225.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [360.0, 235.0, 74.0, 36.0], "bbox_xyxy_clipped": [360.0, 235.0, 419.0, 271.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [280.0, 252.0, 80.0, 36.0], "bbox_xyxy_clipped": [280.0, 252.0, 360.0, 288.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [24.0, 22.0, 90.0, 50.0], "bbox_xyxy_clipped": [24.0, 22.0, 114.0, 72.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [24.0, 68.0, 92.0, 37.0], "bbox_xyxy_clipped": [24.0, 68.0, 116.0, 105.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [14.0, 19.0, 18.0, 42.0], "bbox_xyxy_clipped": [14.0, 19.0, 32.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [114.0, 19.0, 18.0, 42.0], "bbox_xyxy_clipped": [114.0, 19.0, 132.0, 61.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [348.0, 12.0, 62.0, 63.0], "bbox_xyxy_clipped": [348.0, 12.0, 410.0, 75.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0016465611852593339}, "Ove": {"reason": null, "status": "ok", "value": 0.06409618042622268}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5c77eda885ea3c16f9f29101", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c77eda885ea3c16f9f29101/pipeline/l0_result.json", "sha256": "9d5ede84e8a36bded71e8256baa35a31def166cbb70ed8fc0ec6acabf111b08f", "size_bytes": 10432}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c77eda885ea3c16f9f29101/inputs/pfull/asset_manifest.json", "sha256": "5e1ec2e78e3b817cde64fab1230e58cb2d6bc0791d78545e9bf8925a836ad290", "size_bytes": 6331}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c77eda885ea3c16f9f29101/renders/r0_candidate_03.png", "sha256": "142cbd57d49d50162344650c4f26990b7ecdd025d068aaf508a21fd4b2425741", "size_bytes": 35039}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5c77eda885ea3c16f9f29101/inputs/r3/r3_asset_manifest.json", "sha256": "e977b2cfb1de33e48e0de22438062667482097134da9aad810b7d7e804842941", "size_bytes": 5543}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f898e34ea1bd1b9921db7c1b8337fe81837fb2d5eea8cb4e92443ad79d64d484", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 721.0, 1282.0], "bbox_xyxy_clipped": [0.0, 0.0, 721.0, 1282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [681.0, 0.0, 399.0, 164.0], "bbox_xyxy_clipped": [681.0, 0.0, 1080.0, 164.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [760.0, 130.0, 320.0, 107.0], "bbox_xyxy_clipped": [760.0, 130.0, 1080.0, 237.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [629.0, 226.0, 371.0, 124.0], "bbox_xyxy_clipped": [629.0, 226.0, 1000.0, 350.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [795.0, 356.0, 285.0, 180.0], "bbox_xyxy_clipped": [795.0, 356.0, 1080.0, 536.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [734.0, 509.0, 346.0, 94.0], "bbox_xyxy_clipped": [734.0, 509.0, 1080.0, 603.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [588.0, 640.0, 492.0, 351.0], "bbox_xyxy_clipped": [588.0, 640.0, 1080.0, 991.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [68.0, 1080.0, 336.0, 368.0], "bbox_xyxy_clipped": [68.0, 1080.0, 404.0, 1448.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [640.0, 120.0, 360.0, 111.0], "bbox_xyxy_clipped": [640.0, 120.0, 1000.0, 231.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [644.0, 58.0, 330.0, 67.0], "bbox_xyxy_clipped": [644.0, 58.0, 974.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [660.0, 272.0, 350.0, 245.0], "bbox_xyxy_clipped": [660.0, 272.0, 1010.0, 517.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [630.0, 288.0, 52.0, 311.0], "bbox_xyxy_clipped": [630.0, 288.0, 682.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0034579072198362873}, "Ove": {"reason": null, "status": "ok", "value": 0.1774592957054015}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ca5faf823c829c8218ffb10", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ca5faf823c829c8218ffb10/pipeline/l0_result.json", "sha256": "264bdfb279178b81cabfabd053745f2cf9ab02a461e7f9b5e0ab640e3246d131", "size_bytes": 10760}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ca5faf823c829c8218ffb10/inputs/pfull/asset_manifest.json", "sha256": "5eb49f003084f7975d4d982175f2644e7025804dce44ee56b9542090b85c206f", "size_bytes": 6362}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ca5faf823c829c8218ffb10/renders/r0_candidate_01.png", "sha256": "f898e34ea1bd1b9921db7c1b8337fe81837fb2d5eea8cb4e92443ad79d64d484", "size_bytes": 219342}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ca5faf823c829c8218ffb10/inputs/r3/r3_asset_manifest.json", "sha256": "a734b963956357f7c079fe23f5c10b822e126a2298212f603b04ff1a20495e45", "size_bytes": 5517}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b22fbe3fe427c7c073250f93a733e9be81b10400210eb288d7750061bf731fc6", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3265361c03480983d918d5386b979af6bfaa989fd6cd0f58842bfffc9e3a2600", "canvas": {"height": 298, "width": 419}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [28.0, 22.0, 157.0, 112.0], "bbox_xyxy_clipped": [28.0, 22.0, 185.0, 134.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [49.0, 37.0, 162.0, 112.0], "bbox_xyxy_clipped": [49.0, 37.0, 211.0, 149.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [215.0, 176.0, 173.0, 24.0], "bbox_xyxy_clipped": [215.0, 176.0, 388.0, 200.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [258.0, 208.0, 158.0, 25.0], "bbox_xyxy_clipped": [258.0, 208.0, 416.0, 233.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [219.0, 201.0, 57.0, 18.0], "bbox_xyxy_clipped": [219.0, 201.0, 276.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [281.0, 201.0, 57.0, 18.0], "bbox_xyxy_clipped": [281.0, 201.0, 338.0, 219.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [261.0, 233.0, 57.0, 18.0], "bbox_xyxy_clipped": [261.0, 233.0, 318.0, 251.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [323.0, 233.0, 57.0, 18.0], "bbox_xyxy_clipped": [323.0, 233.0, 380.0, 251.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [230.0, 161.0, 72.0, 4.0], "bbox_xyxy_clipped": [230.0, 161.0, 302.0, 165.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [313.0, 161.0, 72.0, 4.0], "bbox_xyxy_clipped": [313.0, 161.0, 385.0, 165.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [360.0, 214.0, 26.0, 26.0], "bbox_xyxy_clipped": [360.0, 214.0, 386.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [391.0, 229.0, 31.0, 52.0], "bbox_xyxy_clipped": [391.0, 229.0, 419.0, 281.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [350.0, 245.0, 16.0, 80.0], "bbox_xyxy_clipped": [350.0, 245.0, 366.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [308.0, 247.0, 19.0, 90.0], "bbox_xyxy_clipped": [308.0, 247.0, 327.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [382.0, 257.0, 58.0, 48.0], "bbox_xyxy_clipped": [382.0, 257.0, 419.0, 298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0035978099560446423}, "Ove": {"reason": null, "status": "ok", "value": 0.09157339467405165}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "c7e11dcbb4bf5f2cc04096158406394ddfe249c6bc2dae285a12fe89a4e1b8b1", "status": "computed"}, "sample_id": "5cb89d8aadbc796055f970af", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cb89d8aadbc796055f970af/pipeline/l0_result.json", "sha256": "3801d544bede468782db94bcbb1db6e06cecceb656099934774c7ed88ad55e1f", "size_bytes": 13294}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cb89d8aadbc796055f970af/inputs/pfull/asset_manifest.json", "sha256": "55e92d3847bfd489ef74355f5b52fb70a053e00b75f6811e7e2f14f2bb167134", "size_bytes": 7840}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cb89d8aadbc796055f970af/renders/r0_candidate_01.png", "sha256": "b22fbe3fe427c7c073250f93a733e9be81b10400210eb288d7750061bf731fc6", "size_bytes": 27261}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cb89d8aadbc796055f970af/inputs/r3/r3_asset_manifest.json", "sha256": "c4de21fe73943663b7f9fcbbb48a34c4d3fc1c8d26ead1a965a1cd71234d0b30", "size_bytes": 6895}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a47df7ce23b15d8b2f28fb01f9b58ce0d78dac3bead46402f326de2f5100c35d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1010.0, 110.0, 800.0, 452.0], "bbox_xyxy_clipped": [1010.0, 110.0, 1810.0, 562.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [690.0, 130.0, 300.0, 113.0], "bbox_xyxy_clipped": [690.0, 130.0, 990.0, 243.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [610.0, 295.0, 260.0, 141.0], "bbox_xyxy_clipped": [610.0, 295.0, 870.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1220.0, 70.0, 280.0, 109.0], "bbox_xyxy_clipped": [1220.0, 70.0, 1500.0, 179.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1420.0, 240.0, 240.0, 197.0], "bbox_xyxy_clipped": [1420.0, 240.0, 1660.0, 437.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [700.0, 610.0, 260.0, 214.0], "bbox_xyxy_clipped": [700.0, 610.0, 960.0, 824.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1240.0, 610.0, 280.0, 240.0], "bbox_xyxy_clipped": [1240.0, 610.0, 1520.0, 850.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1480.0, 820.0, 230.0, 190.0], "bbox_xyxy_clipped": [1480.0, 820.0, 1710.0, 1010.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1550.0, 60.0, 300.0, 303.0], "bbox_xyxy_clipped": [1550.0, 60.0, 1850.0, 363.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [120.0, 110.0, 520.0, 248.0], "bbox_xyxy_clipped": [120.0, 110.0, 640.0, 358.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [140.0, 385.0, 260.0, 76.0], "bbox_xyxy_clipped": [140.0, 385.0, 400.0, 461.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 930.0, 720.0, 58.0], "bbox_xyxy_clipped": [120.0, 930.0, 840.0, 988.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001864227900887331}, "Ove": {"reason": null, "status": "ok", "value": 0.040308309719103826}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5cd67f1f7d4459dfe12714cf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd67f1f7d4459dfe12714cf/pipeline/l0_result.json", "sha256": "fd179455fbf381ce9b26df594efe6448d08e3ce3dbe1f1f7d0b9fa5998e4a099", "size_bytes": 10057}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd67f1f7d4459dfe12714cf/inputs/pfull/asset_manifest.json", "sha256": "5ad71c888a480b11ef710a651d89df1cd54cfeac6625fa370cd3a174046c38c6", "size_bytes": 6368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd67f1f7d4459dfe12714cf/renders/r0_candidate_03.png", "sha256": "a47df7ce23b15d8b2f28fb01f9b58ce0d78dac3bead46402f326de2f5100c35d", "size_bytes": 428458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd67f1f7d4459dfe12714cf/inputs/r3/r3_asset_manifest.json", "sha256": "c3605bfc43cfb651e3400b575857252401e0ec9ba2c04eb65c5a249c87944bc1", "size_bytes": 5536}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "647cf3687e3ec369a9a9732ed234db86a0abad043f730367ed08a90ba2209019", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [360.0, 175.0, 480.0, 914.0], "bbox_xyxy_clipped": [360.0, 175.0, 840.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [54.0, 36.0, 270.0, 241.0], "bbox_xyxy_clipped": [54.0, 36.0, 324.0, 277.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [918.0, 42.0, 260.0, 238.0], "bbox_xyxy_clipped": [918.0, 42.0, 1178.0, 280.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [400.0, 118.0, 400.0, 363.0], "bbox_xyxy_clipped": [400.0, 118.0, 800.0, 481.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [338.0, 246.0, 525.0, 119.0], "bbox_xyxy_clipped": [338.0, 246.0, 863.0, 365.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [357.0, 281.0, 486.0, 196.0], "bbox_xyxy_clipped": [357.0, 281.0, 843.0, 477.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [372.0, 292.0, 486.0, 196.0], "bbox_xyxy_clipped": [372.0, 292.0, 858.0, 488.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [80.0, 520.0, 340.0, 101.0], "bbox_xyxy_clipped": [80.0, 520.0, 420.0, 621.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [430.0, 505.0, 360.0, 93.0], "bbox_xyxy_clipped": [430.0, 505.0, 790.0, 598.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [815.0, 520.0, 340.0, 101.0], "bbox_xyxy_clipped": [815.0, 520.0, 1155.0, 621.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [515.0, 92.0, 360.0, 93.0], "bbox_xyxy_clipped": [515.0, 92.0, 875.0, 185.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [397.0, 440.0, 420.0, 130.0], "bbox_xyxy_clipped": [397.0, 440.0, 817.0, 570.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [410.0, 448.0, 420.0, 129.0], "bbox_xyxy_clipped": [410.0, 448.0, 830.0, 577.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006140178434769299}, "Ove": {"reason": null, "status": "ok", "value": 0.5732303978420956}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5cd6984b7d4459dfe140c0b4", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd6984b7d4459dfe140c0b4/pipeline/l0_result.json", "sha256": "fa52b777e5a04a5e97473d900a1e21fcb5aa8da4a6e0b8d70fbbd5e6db06f5e2", "size_bytes": 11085}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd6984b7d4459dfe140c0b4/inputs/pfull/asset_manifest.json", "sha256": "b2530fdc3fcdc3fee3d841618e7f504d4e75081c828239399034a6010cf32e96", "size_bytes": 6862}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd6984b7d4459dfe140c0b4/renders/r0_candidate_02.png", "sha256": "647cf3687e3ec369a9a9732ed234db86a0abad043f730367ed08a90ba2209019", "size_bytes": 393057}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cd6984b7d4459dfe140c0b4/inputs/r3/r3_asset_manifest.json", "sha256": "028566e1dd1d79ff9ffeff1f3be1dd211680ee7b8f803e997a618cf1b9b069b5", "size_bytes": 6019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e828b9d86ce559b3b10b73545f1ab9719d87a211b4222627bb0fcd41b7dc918c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "asset_size_bytes": 1786, "kind": "asset", "pfull_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "r3_asset_sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "dad778e1d68806fdbbce49c426426ac2deba7575ea817980eb7445f6e674904e", "canvas": {"height": 315, "width": 851}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [0.0, 0.0, 851.0, 214.0], "bbox_xyxy_clipped": [0.0, 0.0, 851.0, 214.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [47.0, 33.0, 155.0, 40.0], "bbox_xyxy_clipped": [47.0, 33.0, 202.0, 73.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [85.0, 74.0, 210.0, 74.0], "bbox_xyxy_clipped": [85.0, 74.0, 295.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [184.0, 128.0, 115.0, 46.0], "bbox_xyxy_clipped": [184.0, 128.0, 299.0, 174.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [444.0, 83.0, 335.0, 154.0], "bbox_xyxy_clipped": [444.0, 83.0, 779.0, 237.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [388.0, 95.0, 245.0, 153.0], "bbox_xyxy_clipped": [388.0, 95.0, 633.0, 248.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [768.0, 52.0, 18.0, 99.0], "bbox_xyxy_clipped": [768.0, 52.0, 786.0, 151.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [796.0, 63.0, 18.0, 99.0], "bbox_xyxy_clipped": [796.0, 63.0, 814.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [34.0, 284.0, 171.0, 23.0], "bbox_xyxy_clipped": [34.0, 284.0, 205.0, 307.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.013803370450866336}, "Occ": {"reason": null, "status": "ok", "value": 0.0010430876872969189}, "Ove": {"reason": null, "status": "ok", "value": 0.12411161762952044}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "bd9071efcf1e6440b69900fc0c23c02f702805c59deebcd8bdc46b079dc0c508", "status": "computed"}, "sample_id": "5cde64e47d4459dfe1b81863", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/pipeline/l0_result.json", "sha256": "6b7c3b4d2375d0e1130b118d02a19322f89aff0cd0056993b3b07e9b7b6d7523", "size_bytes": 9428}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/asset_manifest.json", "sha256": "033428fcad427bf2365d1cbc92982ee936e3ea3bfcf2becadec88f9427ac397a", "size_bytes": 5416}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/renders/r0_candidate_02.png", "sha256": "e828b9d86ce559b3b10b73545f1ab9719d87a211b4222627bb0fcd41b7dc918c", "size_bytes": 84115}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/inputs/r3/r3_asset_manifest.json", "sha256": "272fe3c8abcb9ffc061339a3e85d04c19fac9772ec05c986fd669b279f8c1b96", "size_bytes": 4773}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cde64e47d4459dfe1b81863/inputs/pfull/assets/asset_0000.png", "sha256": "a3ba8e72a1ef920b71d8573cfcaa8a3afb9b4f884b09841298e9929d11366ef7", "size_bytes": 1786}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e87015572257cd80df44d9fe4107526c5c0381ddd7e59b27b0dbbb3db7aac5fe", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 11, "valid": 11}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [90.0, 40.0, 360.0, 352.0], "bbox_xyxy_clipped": [90.0, 40.0, 450.0, 392.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [520.0, 55.0, 760.0, 941.0], "bbox_xyxy_clipped": [520.0, 55.0, 1280.0, 996.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1410.0, 78.0, 430.0, 71.0], "bbox_xyxy_clipped": [1410.0, 78.0, 1840.0, 149.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [540.0, 430.0, 520.0, 113.0], "bbox_xyxy_clipped": [540.0, 430.0, 1060.0, 543.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [690.0, 500.0, 560.0, 125.0], "bbox_xyxy_clipped": [690.0, 500.0, 1250.0, 625.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [760.0, 490.0, 560.0, 125.0], "bbox_xyxy_clipped": [760.0, 490.0, 1320.0, 615.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [760.0, 625.0, 395.0, 76.0], "bbox_xyxy_clipped": [760.0, 625.0, 1155.0, 701.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [430.0, 688.0, 1060.0, 108.0], "bbox_xyxy_clipped": [430.0, 688.0, 1490.0, 796.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [150.0, 983.0, 270.0, 60.0], "bbox_xyxy_clipped": [150.0, 983.0, 420.0, 1043.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [150.0, 1038.0, 520.0, 49.0], "bbox_xyxy_clipped": [150.0, 1038.0, 670.0, 1080.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1130.0, 280.0, 640.0, 367.0], "bbox_xyxy_clipped": [1130.0, 280.0, 1770.0, 647.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00438962200578777}, "Ove": {"reason": null, "status": "ok", "value": 0.15009432720588556}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5ce3ba947d4459dfe1cebd75", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ce3ba947d4459dfe1cebd75/pipeline/l0_result.json", "sha256": "0589fe449161fe6cbd3831ee5123909c30effc9576ef1aaffec82abcc1bb2dc8", "size_bytes": 10493}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ce3ba947d4459dfe1cebd75/inputs/pfull/asset_manifest.json", "sha256": "bb055b6dbebfd1d59f1b8f5734142f7d2dcedd2c7fc9ecd2ad18058df08ced0c", "size_bytes": 5980}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ce3ba947d4459dfe1cebd75/renders/r0_candidate_02.png", "sha256": "e87015572257cd80df44d9fe4107526c5c0381ddd7e59b27b0dbbb3db7aac5fe", "size_bytes": 442701}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ce3ba947d4459dfe1cebd75/inputs/r3/r3_asset_manifest.json", "sha256": "42d827c10155da1f69160c1ca453f436b5be89568f7b9d350baabd6131ce56d3", "size_bytes": 5449}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7f3d3152fdce36434ab87971214b08788086ae7235d65a99dc5cceba694d7cf2", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [53.0, 0.0, 300.0, 733.0], "bbox_xyxy_clipped": [53.0, 0.0, 353.0, 733.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [728.0, 0.0, 352.0, 811.0], "bbox_xyxy_clipped": [728.0, 0.0, 1080.0, 811.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [209.0, 150.0, 663.0, 285.0], "bbox_xyxy_clipped": [209.0, 150.0, 872.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [290.0, 78.0, 500.0, 67.0], "bbox_xyxy_clipped": [290.0, 78.0, 790.0, 145.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [150.0, 455.0, 781.0, 61.0], "bbox_xyxy_clipped": [150.0, 455.0, 931.0, 516.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [230.0, 382.0, 620.0, 167.0], "bbox_xyxy_clipped": [230.0, 382.0, 850.0, 549.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 48.0, 68.0, 1250.0], "bbox_xyxy_clipped": [0.0, 48.0, 68.0, 1298.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [965.0, 52.0, 115.0, 353.0], "bbox_xyxy_clipped": [965.0, 52.0, 1080.0, 405.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [325.0, 556.0, 430.0, 430.0], "bbox_xyxy_clipped": [325.0, 556.0, 755.0, 986.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [255.0, 760.0, 570.0, 853.0], "bbox_xyxy_clipped": [255.0, 760.0, 825.0, 1613.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [790.0, 690.0, 250.0, 512.0], "bbox_xyxy_clipped": [790.0, 690.0, 1040.0, 1202.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [40.0, 780.0, 220.0, 484.0], "bbox_xyxy_clipped": [40.0, 780.0, 260.0, 1264.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004400281916273953}, "Ove": {"reason": null, "status": "ok", "value": 0.12266333131489714}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5cfe2ad78cba87f943da4ec5", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cfe2ad78cba87f943da4ec5/pipeline/l0_result.json", "sha256": "75f14bfddba05cc8872589a511343fdaf61705e1839f9f527ffd49dbd0fc80ac", "size_bytes": 10642}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cfe2ad78cba87f943da4ec5/inputs/pfull/asset_manifest.json", "sha256": "98d2c44523385f0de5af3c1839520ed78eb8e27ecfd25478415f7a85030f4d45", "size_bytes": 6424}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cfe2ad78cba87f943da4ec5/renders/r0_candidate_02.png", "sha256": "7f3d3152fdce36434ab87971214b08788086ae7235d65a99dc5cceba694d7cf2", "size_bytes": 719741}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5cfe2ad78cba87f943da4ec5/inputs/r3/r3_asset_manifest.json", "sha256": "ba7e680526de16d8a7461d03c70de8211f1430ebd166d077fa50060c59f3e58c", "size_bytes": 5594}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "73eee8b3725aea141a5bfbe8f378b13a08c06ff7984cb1980486eecf1a276df5", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [565.0, 130.0, 270.0, 323.0], "bbox_xyxy_clipped": [565.0, 130.0, 835.0, 453.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [560.0, 155.0, 260.0, 548.0], "bbox_xyxy_clipped": [560.0, 155.0, 820.0, 703.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [700.0, 180.0, 180.0, 379.0], "bbox_xyxy_clipped": [700.0, 180.0, 880.0, 559.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [635.0, 95.0, 140.0, 140.0], "bbox_xyxy_clipped": [635.0, 95.0, 775.0, 235.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [742.0, 120.0, 120.0, 120.0], "bbox_xyxy_clipped": [742.0, 120.0, 862.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [660.0, 430.0, 230.0, 55.0], "bbox_xyxy_clipped": [660.0, 430.0, 890.0, 485.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [585.0, 470.0, 220.0, 74.0], "bbox_xyxy_clipped": [585.0, 470.0, 805.0, 544.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [78.0, 150.0, 210.0, 39.0], "bbox_xyxy_clipped": [78.0, 150.0, 288.0, 189.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [78.0, 615.0, 118.0, 31.0], "bbox_xyxy_clipped": [78.0, 615.0, 196.0, 646.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [78.0, 195.0, 170.0, 87.0], "bbox_xyxy_clipped": [78.0, 195.0, 248.0, 282.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [78.0, 287.0, 42.0, 38.0], "bbox_xyxy_clipped": [78.0, 287.0, 120.0, 325.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [78.0, 420.0, 196.0, 27.0], "bbox_xyxy_clipped": [78.0, 420.0, 274.0, 447.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [78.0, 653.0, 128.0, 18.0], "bbox_xyxy_clipped": [78.0, 653.0, 206.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [78.0, 332.0, 136.0, 70.0], "bbox_xyxy_clipped": [78.0, 332.0, 214.0, 402.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [206.0, 612.0, 49.0, 62.0], "bbox_xyxy_clipped": [206.0, 612.0, 255.0, 674.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0038412206209049904}, "Ove": {"reason": null, "status": "ok", "value": 0.15194895619980928}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d08f3708cba87f943ec4e3f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f3708cba87f943ec4e3f/pipeline/l0_result.json", "sha256": "24ffcb2476da92ab1bb6fab541ce7007be47e0dd64edca0e24e7aa9adadb0fb9", "size_bytes": 11925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f3708cba87f943ec4e3f/inputs/pfull/asset_manifest.json", "sha256": "9d4ee7bf3693d086cbbed2681d66353e62d22c198aa33e5c14ac6b52b501aaec", "size_bytes": 7909}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f3708cba87f943ec4e3f/renders/r0_candidate_02.png", "sha256": "73eee8b3725aea141a5bfbe8f378b13a08c06ff7984cb1980486eecf1a276df5", "size_bytes": 153368}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f3708cba87f943ec4e3f/inputs/r3/r3_asset_manifest.json", "sha256": "7bc2b07a6a655282cb69dd18e0b2a476391463167a5544e5728c503961a3c39b", "size_bytes": 7019}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "22d7775d38f4913352aa1facee9994c35e19c6e9fb94ef43f1b6eaac526043b9", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [129.0, 160.0, 540.0, 652.0], "bbox_xyxy_clipped": [129.0, 160.0, 669.0, 812.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [752.0, 118.0, 151.0, 527.0], "bbox_xyxy_clipped": [752.0, 118.0, 903.0, 645.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [780.0, 132.0, 123.0, 454.0], "bbox_xyxy_clipped": [780.0, 132.0, 903.0, 586.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [758.0, 110.0, 62.0, 526.0], "bbox_xyxy_clipped": [758.0, 110.0, 820.0, 636.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [755.0, 168.0, 219.0, 34.0], "bbox_xyxy_clipped": [755.0, 168.0, 974.0, 202.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [745.0, 215.0, 286.0, 68.0], "bbox_xyxy_clipped": [745.0, 215.0, 1031.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [748.0, 733.0, 237.0, 44.0], "bbox_xyxy_clipped": [748.0, 733.0, 985.0, 777.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [748.0, 783.0, 315.0, 36.0], "bbox_xyxy_clipped": [748.0, 783.0, 1063.0, 819.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [777.0, 567.0, 80.0, 154.0], "bbox_xyxy_clipped": [777.0, 567.0, 857.0, 721.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [824.0, 566.0, 159.0, 51.0], "bbox_xyxy_clipped": [824.0, 566.0, 983.0, 617.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [748.0, 892.0, 229.0, 53.0], "bbox_xyxy_clipped": [748.0, 892.0, 977.0, 945.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [953.0, 900.0, 127.0, 42.0], "bbox_xyxy_clipped": [953.0, 900.0, 1080.0, 942.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [986.0, 114.0, 32.0, 574.0], "bbox_xyxy_clipped": [986.0, 114.0, 1018.0, 688.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0031506438188990175}, "Ove": {"reason": null, "status": "ok", "value": 0.1789801653310878}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d08f7a08cba87f943f48a6d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f7a08cba87f943f48a6d/pipeline/l0_result.json", "sha256": "09efedf00b95d68a2c4071e0a0c3f9f63ccc1ae1f230e33c431c77c10702b838", "size_bytes": 11410}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f7a08cba87f943f48a6d/inputs/pfull/asset_manifest.json", "sha256": "57d33d72c4f0b9b6af16391908fd2ebfb7ac96fc470f5aa7725c0de61291d414", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f7a08cba87f943f48a6d/renders/r0_candidate_03.png", "sha256": "22d7775d38f4913352aa1facee9994c35e19c6e9fb94ef43f1b6eaac526043b9", "size_bytes": 347465}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d08f7a08cba87f943f48a6d/inputs/r3/r3_asset_manifest.json", "sha256": "91ca2e3190b959966d3c832f08417af2bfbbdeb9cfd7e1decb651900c2f38055", "size_bytes": 6114}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8a1607ca3758d7f99effb3de4310f187d8eb61fbfc0863b06f622eb5f68149c0", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 18, "valid": 18}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [88.0, 126.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 126.0, 604.0, 130.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [88.0, 204.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 204.0, 604.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [88.0, 304.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 304.0, 604.0, 308.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [88.0, 418.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 418.0, 604.0, 422.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [88.0, 520.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 520.0, 604.0, 524.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [88.0, 698.0, 516.0, 34.0], "bbox_xyxy_clipped": [88.0, 698.0, 604.0, 732.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [88.0, 748.0, 516.0, 34.0], "bbox_xyxy_clipped": [88.0, 748.0, 604.0, 782.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [88.0, 790.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 790.0, 604.0, 794.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [88.0, 864.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 864.0, 604.0, 868.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [88.0, 920.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 920.0, 604.0, 924.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [88.0, 984.0, 516.0, 4.0], "bbox_xyxy_clipped": [88.0, 984.0, 604.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [88.0, 86.0, 408.0, 160.0], "bbox_xyxy_clipped": [88.0, 86.0, 496.0, 246.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [88.0, 36.0, 300.0, 53.0], "bbox_xyxy_clipped": [88.0, 36.0, 388.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [92.0, 252.0, 330.0, 35.0], "bbox_xyxy_clipped": [92.0, 252.0, 422.0, 287.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [88.0, 360.0, 320.0, 32.0], "bbox_xyxy_clipped": [88.0, 360.0, 408.0, 392.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [88.0, 576.0, 350.0, 151.0], "bbox_xyxy_clipped": [88.0, 576.0, 438.0, 727.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [88.0, 944.0, 312.0, 38.0], "bbox_xyxy_clipped": [88.0, 944.0, 400.0, 982.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [618.0, 86.0, 374.0, 694.0], "bbox_xyxy_clipped": [618.0, 86.0, 992.0, 780.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002496654223477197}, "Ove": {"reason": null, "status": "ok", "value": 0.012742420209908041}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d0cf79f8cba87f943616ca6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d0cf79f8cba87f943616ca6/pipeline/l0_result.json", "sha256": "eee6a7dbb5db448645f7d6fe2c28347b31c638025150ed94f837c5049dbe94e2", "size_bytes": 12822}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d0cf79f8cba87f943616ca6/inputs/pfull/asset_manifest.json", "sha256": "1ac4871dc17d67a34592ec18546a61a6c37f6fe895a1e55c9dea1ba7a7250066", "size_bytes": 9458}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d0cf79f8cba87f943616ca6/renders/r0_candidate_01.png", "sha256": "8a1607ca3758d7f99effb3de4310f187d8eb61fbfc0863b06f622eb5f68149c0", "size_bytes": 463493}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d0cf79f8cba87f943616ca6/inputs/r3/r3_asset_manifest.json", "sha256": "60f20a78994a8394df1ebd1073e985e1fa4940017aae2b2cd52f099483111f6c", "size_bytes": 8137}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5f2f75e6ce2ae6993c794eb4b179fe6cb442cf91290f2fb5bf1f342a8852c128", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 20, "valid": 20}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [782.0, 80.0, 355.0, 533.0], "bbox_xyxy_clipped": [782.0, 80.0, 1137.0, 613.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [54.0, 496.0, 233.0, 87.0], "bbox_xyxy_clipped": [54.0, 496.0, 287.0, 583.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [76.0, 592.0, 177.0, 21.0], "bbox_xyxy_clipped": [76.0, 592.0, 253.0, 613.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [860.0, 334.0, 240.0, 160.0], "bbox_xyxy_clipped": [860.0, 334.0, 1100.0, 494.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [980.0, 24.0, 156.0, 156.0], "bbox_xyxy_clipped": [980.0, 24.0, 1136.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1094.0, 34.0, 82.0, 82.0], "bbox_xyxy_clipped": [1094.0, 34.0, 1176.0, 116.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1110.0, 186.0, 76.0, 76.0], "bbox_xyxy_clipped": [1110.0, 186.0, 1186.0, 262.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1001.0, 525.0, 74.0, 74.0], "bbox_xyxy_clipped": [1001.0, 525.0, 1075.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1120.0, 382.0, 68.0, 68.0], "bbox_xyxy_clipped": [1120.0, 382.0, 1188.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [48.0, 56.0, 274.0, 114.0], "bbox_xyxy_clipped": [48.0, 56.0, 322.0, 170.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [56.0, 182.0, 214.0, 77.0], "bbox_xyxy_clipped": [56.0, 182.0, 270.0, 259.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [955.0, 236.0, 92.0, 92.0], "bbox_xyxy_clipped": [955.0, 236.0, 1047.0, 328.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [66.0, 236.0, 112.0, 75.0], "bbox_xyxy_clipped": [66.0, 236.0, 178.0, 311.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [185.0, 244.0, 123.0, 71.0], "bbox_xyxy_clipped": [185.0, 244.0, 308.0, 315.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1088.0, 476.0, 88.0, 63.0], "bbox_xyxy_clipped": [1088.0, 476.0, 1176.0, 539.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [57.0, 316.0, 120.0, 78.0], "bbox_xyxy_clipped": [57.0, 316.0, 177.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [185.0, 324.0, 125.0, 72.0], "bbox_xyxy_clipped": [185.0, 324.0, 310.0, 396.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [20.0, 263.0, 46.0, 68.0], "bbox_xyxy_clipped": [20.0, 263.0, 66.0, 331.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [20.0, 343.0, 44.0, 65.0], "bbox_xyxy_clipped": [20.0, 343.0, 64.0, 408.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1068.0, 548.0, 82.0, 44.0], "bbox_xyxy_clipped": [1068.0, 548.0, 1150.0, 592.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032349894467970544}, "Ove": {"reason": null, "status": "ok", "value": 0.039333244073271434}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5d234eaf8cba87f94322b763", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d234eaf8cba87f94322b763/pipeline/l0_result.json", "sha256": "bd6a03da55d5511fd761a7cc48a9dd0d653d9279c3873aa7b0c30ca91b600be0", "size_bytes": 14560}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d234eaf8cba87f94322b763/inputs/pfull/asset_manifest.json", "sha256": "bb853778aff2b40fb8c5f5763c76bb00b2f5d53d4a5061110b19a38e2b877c46", "size_bytes": 10451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d234eaf8cba87f94322b763/renders/r0_candidate_03.png", "sha256": "5f2f75e6ce2ae6993c794eb4b179fe6cb442cf91290f2fb5bf1f342a8852c128", "size_bytes": 223180}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d234eaf8cba87f94322b763/inputs/r3/r3_asset_manifest.json", "sha256": "8b26e86619f71e213ccb17e074686b136b1bd13ba2f386302c2281c4c09be31d", "size_bytes": 9239}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "621cf5786df5f8594990ac03804ee4e49d10f0dbcc5ace9d2d25886fc6549846", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 24, "valid": 24}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [55.0, 40.0, 430.0, 587.0], "bbox_xyxy_clipped": [55.0, 40.0, 485.0, 627.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [92.0, 73.0, 368.0, 638.0], "bbox_xyxy_clipped": [92.0, 73.0, 460.0, 711.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [0.0, 0.0, 517.0, 500.0], "bbox_xyxy_clipped": [0.0, 0.0, 517.0, 500.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [130.0, 120.0, 294.0, 152.0], "bbox_xyxy_clipped": [130.0, 120.0, 424.0, 272.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [160.0, 535.0, 22.0, 4928.0], "bbox_xyxy_clipped": [160.0, 535.0, 182.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [118.0, 160.0, 360.0, 209.0], "bbox_xyxy_clipped": [118.0, 160.0, 478.0, 369.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [190.0, 210.0, 660.0, 10.0], "bbox_xyxy_clipped": [190.0, 210.0, 850.0, 220.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [65.0, 430.0, 485.0, 100.0], "bbox_xyxy_clipped": [65.0, 430.0, 550.0, 530.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [320.0, 86.0, 86.0, 86.0], "bbox_xyxy_clipped": [320.0, 86.0, 406.0, 172.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [392.0, 124.0, 98.0, 98.0], "bbox_xyxy_clipped": [392.0, 124.0, 490.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [430.0, 210.0, 120.0, 120.0], "bbox_xyxy_clipped": [430.0, 210.0, 550.0, 330.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [238.0, 340.0, 230.0, 180.0], "bbox_xyxy_clipped": [238.0, 340.0, 468.0, 520.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [520.0, 96.0, 344.0, 80.0], "bbox_xyxy_clipped": [520.0, 96.0, 864.0, 176.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [40.0, 500.0, 118.0, 137.0], "bbox_xyxy_clipped": [40.0, 500.0, 158.0, 637.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [470.0, 405.0, 256.0, 481.0], "bbox_xyxy_clipped": [470.0, 405.0, 726.0, 886.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [620.0, 165.0, 420.0, 270.0], "bbox_xyxy_clipped": [620.0, 165.0, 1040.0, 435.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [622.0, 118.0, 310.0, 42.0], "bbox_xyxy_clipped": [622.0, 118.0, 932.0, 160.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [980.0, 40.0, 845.0, 31.0], "bbox_xyxy_clipped": [980.0, 40.0, 1825.0, 71.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1240.0, 618.0, 270.0, 151.0], "bbox_xyxy_clipped": [1240.0, 618.0, 1510.0, 769.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [1240.0, 770.0, 278.0, 152.0], "bbox_xyxy_clipped": [1240.0, 770.0, 1518.0, 922.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [1000.0, 118.0, 180.0, 49.0], "bbox_xyxy_clipped": [1000.0, 118.0, 1180.0, 167.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [1230.0, 930.0, 290.0, 74.0], "bbox_xyxy_clipped": [1230.0, 930.0, 1520.0, 1004.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [1230.0, 858.0, 210.0, 64.0], "bbox_xyxy_clipped": [1230.0, 858.0, 1440.0, 922.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [1230.0, 550.0, 180.0, 34.0], "bbox_xyxy_clipped": [1230.0, 550.0, 1410.0, 584.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006345907625423638}, "Ove": {"reason": null, "status": "ok", "value": 0.2787287750517999}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5d4ae4aecf657b21effa9831", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d4ae4aecf657b21effa9831/pipeline/l0_result.json", "sha256": "f9add81a580e973bb4ef1715ffcfdf7a5275f404c3d1a35f32da7c9b1e7a4bc1", "size_bytes": 16933}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d4ae4aecf657b21effa9831/inputs/pfull/asset_manifest.json", "sha256": "88ce30b85cd9ced1f5763eb50ce4818441f048b3677e94763ccc6b5ba3c17a07", "size_bytes": 12496}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d4ae4aecf657b21effa9831/renders/r0_candidate_01.png", "sha256": "621cf5786df5f8594990ac03804ee4e49d10f0dbcc5ace9d2d25886fc6549846", "size_bytes": 531905}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d4ae4aecf657b21effa9831/inputs/r3/r3_asset_manifest.json", "sha256": "e7f57a419542ae81875013cca95185b4c242cfb34e348039bd5f8dfa59b382cc", "size_bytes": 10824}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "68d7ea198ea3a16ac68483b45f9898f30272b3ba26a34c0bc466e7ab6d2f8bb7", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [58.0, 1048.0, 515.0, 728.0], "bbox_xyxy_clipped": [58.0, 1048.0, 573.0, 1683.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [34.0, 946.0, 406.0, 648.0], "bbox_xyxy_clipped": [34.0, 946.0, 440.0, 1594.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [470.0, 1115.0, 245.0, 388.0], "bbox_xyxy_clipped": [470.0, 1115.0, 715.0, 1503.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [648.0, 168.0, 462.0, 85.0], "bbox_xyxy_clipped": [648.0, 168.0, 1110.0, 253.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [746.0, 312.0, 336.0, 89.0], "bbox_xyxy_clipped": [746.0, 312.0, 1082.0, 401.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [681.0, 454.0, 310.0, 82.0], "bbox_xyxy_clipped": [681.0, 454.0, 991.0, 536.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [704.0, 232.0, 371.0, 74.0], "bbox_xyxy_clipped": [704.0, 232.0, 1075.0, 306.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [733.0, 580.0, 301.0, 43.0], "bbox_xyxy_clipped": [733.0, 580.0, 1034.0, 623.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1015.0, 102.0, 126.0, 1230.0], "bbox_xyxy_clipped": [1015.0, 102.0, 1141.0, 1332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [872.0, 513.0, 214.0, 61.0], "bbox_xyxy_clipped": [872.0, 513.0, 1086.0, 574.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [815.0, 424.0, 302.0, 47.0], "bbox_xyxy_clipped": [815.0, 424.0, 1117.0, 471.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [891.0, 587.0, 152.0, 82.0], "bbox_xyxy_clipped": [891.0, 587.0, 1043.0, 669.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [939.0, 679.0, 220.0, 60.0], "bbox_xyxy_clipped": [939.0, 679.0, 1159.0, 739.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [784.0, 889.0, 399.0, 598.0], "bbox_xyxy_clipped": [784.0, 889.0, 1183.0, 1487.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [832.0, 1514.0, 286.0, 82.0], "bbox_xyxy_clipped": [832.0, 1514.0, 1118.0, 1596.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [459.0, 1299.0, 425.0, 283.0], "bbox_xyxy_clipped": [459.0, 1299.0, 884.0, 1582.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [648.0, 250.0, 154.0, 120.0], "bbox_xyxy_clipped": [648.0, 250.0, 802.0, 370.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [100.0, 289.0, 420.0, 420.0], "bbox_xyxy_clipped": [100.0, 289.0, 520.0, 709.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [900.0, 1181.0, 210.0, 588.0], "bbox_xyxy_clipped": [900.0, 1181.0, 1110.0, 1683.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006835089401418275}, "Ove": {"reason": null, "status": "ok", "value": 0.14224491825318789}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5d67ed46cf657b21ef7bdad9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d67ed46cf657b21ef7bdad9/pipeline/l0_result.json", "sha256": "b157809976867cc1a5c82d8aa2565620632e7420ea708f57a9f1cfac3dc4877b", "size_bytes": 16169}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d67ed46cf657b21ef7bdad9/inputs/pfull/asset_manifest.json", "sha256": "bc8bf0dde27bda7fc70f935782f88b71d29b3ce0b87b942cba275cc6b14b63b7", "size_bytes": 9923}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d67ed46cf657b21ef7bdad9/renders/r0_candidate_03.png", "sha256": "68d7ea198ea3a16ac68483b45f9898f30272b3ba26a34c0bc466e7ab6d2f8bb7", "size_bytes": 417704}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d67ed46cf657b21ef7bdad9/inputs/r3/r3_asset_manifest.json", "sha256": "0a754248a87697bd540f927fe7bee03dff6d3ba7a110689f184cb76b5a40ec86", "size_bytes": 8692}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a0632d2e2d7db9a3b60b0f127d0e8765f0a0a67216ad9a10ffcdd18aaf677a53", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [16.0, 24.0, 96.0, 96.0], "bbox_xyxy_clipped": [16.0, 24.0, 112.0, 120.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 18.0, 152.0, 169.0], "bbox_xyxy_clipped": [18.0, 18.0, 170.0, 187.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [48.0, 48.0, 46.0, 64.0], "bbox_xyxy_clipped": [48.0, 48.0, 94.0, 112.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [214.0, 54.0, 126.0, 67.0], "bbox_xyxy_clipped": [214.0, 54.0, 340.0, 121.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [214.0, 128.0, 126.0, 25.0], "bbox_xyxy_clipped": [214.0, 128.0, 340.0, 153.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [214.0, 163.0, 116.0, 24.0], "bbox_xyxy_clipped": [214.0, 163.0, 330.0, 187.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [74.0, 132.0, 30.0, 42.0], "bbox_xyxy_clipped": [74.0, 132.0, 104.0, 174.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [223.0, 436.0, 113.0, 42.0], "bbox_xyxy_clipped": [223.0, 436.0, 336.0, 478.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0011543079639168815}, "Ove": {"reason": null, "status": "ok", "value": 0.10397335881540855}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5d68dd6ce79a2a634ea111b8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d68dd6ce79a2a634ea111b8/pipeline/l0_result.json", "sha256": "5a90d40d0ba13fcdc77929db6075675720b111457afe17f616b32665848be219", "size_bytes": 7883}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d68dd6ce79a2a634ea111b8/inputs/pfull/asset_manifest.json", "sha256": "87a150e50b09bb8c8a6bce028d21afe8be924a8f7b75216666bd24b56d83e92b", "size_bytes": 4401}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d68dd6ce79a2a634ea111b8/renders/r0_candidate_02.png", "sha256": "a0632d2e2d7db9a3b60b0f127d0e8765f0a0a67216ad9a10ffcdd18aaf677a53", "size_bytes": 33987}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d68dd6ce79a2a634ea111b8/inputs/r3/r3_asset_manifest.json", "sha256": "6333cd0c0fd2a8d11698941449290392545bd71735a0e70294365b8927c759d3", "size_bytes": 3955}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c784711f9a057021db3ce847ebbe381d622c37dc719640610a55963521ffcb3f", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [294.0, 96.0, 637.0, 340.0], "bbox_xyxy_clipped": [294.0, 96.0, 931.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [319.0, 114.0, 286.0, 176.0], "bbox_xyxy_clipped": [319.0, 114.0, 605.0, 290.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [633.0, 110.0, 270.0, 166.0], "bbox_xyxy_clipped": [633.0, 110.0, 903.0, 276.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [289.0, 320.0, 330.0, 131.0], "bbox_xyxy_clipped": [289.0, 320.0, 619.0, 451.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [575.0, 315.0, 306.0, 230.0], "bbox_xyxy_clipped": [575.0, 315.0, 881.0, 545.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [232.0, 46.0, 220.0, 219.0], "bbox_xyxy_clipped": [232.0, 46.0, 452.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [902.0, 250.0, 184.0, 277.0], "bbox_xyxy_clipped": [902.0, 250.0, 1086.0, 527.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [230.0, 410.0, 260.0, 176.0], "bbox_xyxy_clipped": [230.0, 410.0, 490.0, 586.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [321.0, 92.0, 388.0, 259.0], "bbox_xyxy_clipped": [321.0, 92.0, 709.0, 351.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [345.0, 284.0, 150.0, 224.0], "bbox_xyxy_clipped": [345.0, 284.0, 495.0, 508.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [905.0, 228.0, 186.0, 95.0], "bbox_xyxy_clipped": [905.0, 228.0, 1091.0, 323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [900.0, 145.0, 218.0, 104.0], "bbox_xyxy_clipped": [900.0, 145.0, 1118.0, 249.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [905.0, 340.0, 286.0, 122.0], "bbox_xyxy_clipped": [905.0, 340.0, 1191.0, 462.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0024915222108868092}, "Ove": {"reason": null, "status": "ok", "value": 0.3175562417226878}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5d6903b8abc8ea6d1c0305fd", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6903b8abc8ea6d1c0305fd/pipeline/l0_result.json", "sha256": "5d8ff0d35783e65c8a218ab6e6b2e4f7063dbb08acef11f7b1531b4397870cfb", "size_bytes": 11123}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/pfull/asset_manifest.json", "sha256": "b26a6fae4266a4de1ba305461e056e8efb67f71d88df33ac269eb841e8d08427", "size_bytes": 6867}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6903b8abc8ea6d1c0305fd/renders/r0_candidate_02.png", "sha256": "c784711f9a057021db3ce847ebbe381d622c37dc719640610a55963521ffcb3f", "size_bytes": 223679}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6903b8abc8ea6d1c0305fd/inputs/r3/r3_asset_manifest.json", "sha256": "ec59336ee9aa65534e4c4c0fe3def12a0976e069b91007dcca644d3b2cef231a", "size_bytes": 5926}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5887bc4c068b9cecfd74347c3bcd692b4f0d3aa23f16f60ff31da8ae4c1a4f55", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "asset_size_bytes": 1172, "kind": "asset", "pfull_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "r3_asset_sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "c794e01b54b8c47dbc7c692d80e2a97a5614fa79af525e415f5524e7f55c1a20", "canvas": {"height": 288, "width": 432}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [18.0, 86.0, 173.0, 167.0], "bbox_xyxy_clipped": [18.0, 86.0, 191.0, 253.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [24.0, 94.0, 14.0, 140.0], "bbox_xyxy_clipped": [24.0, 94.0, 38.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [176.0, 94.0, 14.0, 140.0], "bbox_xyxy_clipped": [176.0, 94.0, 190.0, 234.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [86.0, 90.0, 155.0, 103.0], "bbox_xyxy_clipped": [86.0, 90.0, 241.0, 193.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [146.0, 22.0, 247.0, 34.0], "bbox_xyxy_clipped": [146.0, 22.0, 393.0, 56.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [206.0, 57.0, 55.0, 25.0], "bbox_xyxy_clipped": [206.0, 57.0, 261.0, 82.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [189.0, 88.0, 175.0, 107.0], "bbox_xyxy_clipped": [189.0, 88.0, 364.0, 195.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [29.0, 24.0, 42.0, 103.0], "bbox_xyxy_clipped": [29.0, 24.0, 71.0, 127.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.036978354484591164}, "Ove": {"reason": null, "status": "ok", "value": 0.10418296974286732}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "1b0df4abe14aa3752214a05725561259765380be09b0b18a036abe86a466163b", "status": "computed"}, "sample_id": "5d6909e8abc8ea6d1c0cda03", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/pipeline/l0_result.json", "sha256": "9afa543ae13a83dc6ba067e8e8d9376dac9fa23e04fcec437cbccdb83b46ad74", "size_bytes": 8851}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/asset_manifest.json", "sha256": "520645f9d76ba3cec26cfc450bf87aa26509ed5eb0194bcad1e55c2e1f9e70fd", "size_bytes": 4924}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/renders/r0_candidate_02.png", "sha256": "5887bc4c068b9cecfd74347c3bcd692b4f0d3aa23f16f60ff31da8ae4c1a4f55", "size_bytes": 58495}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/r3/r3_asset_manifest.json", "sha256": "0e8bb1c2f504524783861347a6d8d1525896a8cf2dc2b15c6e573c68c066d43e", "size_bytes": 4257}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d6909e8abc8ea6d1c0cda03/inputs/pfull/assets/asset_0000.png", "sha256": "2d9becf78707b058f6d43e354a898bfad209aea1aa5208663fa93e8b1254712c", "size_bytes": 1172}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "46598c40f6b99dce8ae3fa5d3e23251a8c3d2af52a8e98cf550cb8a4b9425c79", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b09f822db67351a607e1a2568b34f5af6bcf6bad75e6dedc22eae739f79797ae", "canvas": {"height": 700, "width": 1000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 19, "valid": 19}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [280.0, 105.0, 440.0, 294.0], "bbox_xyxy_clipped": [280.0, 105.0, 720.0, 399.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [120.0, 135.0, 210.0, 216.0], "bbox_xyxy_clipped": [120.0, 135.0, 330.0, 351.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [675.0, 125.0, 190.0, 195.0], "bbox_xyxy_clipped": [675.0, 125.0, 865.0, 320.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [365.0, 55.0, 320.0, 97.0], "bbox_xyxy_clipped": [365.0, 55.0, 685.0, 152.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [90.0, 545.0, 240.0, 45.0], "bbox_xyxy_clipped": [90.0, 545.0, 330.0, 590.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [345.0, 550.0, 164.0, 40.0], "bbox_xyxy_clipped": [345.0, 550.0, 509.0, 590.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [515.0, 540.0, 190.0, 73.0], "bbox_xyxy_clipped": [515.0, 540.0, 705.0, 613.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [608.0, 620.0, 320.0, 37.0], "bbox_xyxy_clipped": [608.0, 620.0, 928.0, 657.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [50.0, 250.0, 120.0, 102.0], "bbox_xyxy_clipped": [50.0, 250.0, 170.0, 352.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [820.0, 210.0, 150.0, 28.0], "bbox_xyxy_clipped": [820.0, 210.0, 970.0, 238.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [760.0, 360.0, 170.0, 71.0], "bbox_xyxy_clipped": [760.0, 360.0, 930.0, 431.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [40.0, 380.0, 210.0, 8.0], "bbox_xyxy_clipped": [40.0, 380.0, 250.0, 388.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [705.0, 70.0, 145.0, 61.0], "bbox_xyxy_clipped": [705.0, 70.0, 850.0, 131.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [110.0, 70.0, 250.0, 6.0], "bbox_xyxy_clipped": [110.0, 70.0, 360.0, 76.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [810.0, 520.0, 135.0, 109.0], "bbox_xyxy_clipped": [810.0, 520.0, 945.0, 629.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [40.0, 560.0, 140.0, 114.0], "bbox_xyxy_clipped": [40.0, 560.0, 180.0, 674.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [430.0, 20.0, 110.0, 89.0], "bbox_xyxy_clipped": [430.0, 20.0, 540.0, 109.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [900.0, 40.0, 60.0, 60.0], "bbox_xyxy_clipped": [900.0, 40.0, 960.0, 100.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [85.0, 35.0, 170.0, 60.0], "bbox_xyxy_clipped": [85.0, 35.0, 255.0, 95.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029853714993646405}, "Ove": {"reason": null, "status": "ok", "value": 0.041389045043262546}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "78da0650110ab3acbf1485b15606f6661d40f9887e5c3d0c8be66ab354397a84", "status": "computed"}, "sample_id": "5d9c8fa2abc8ea6d1cd0d3e7", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/pipeline/l0_result.json", "sha256": "8e993315e7cfcb30efe691367ac718adc68aeae0b7521b40bab7fbdda17b2e7d", "size_bytes": 14228}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/pfull/asset_manifest.json", "sha256": "f154384867d4b0a928fd49956b4492b79eeabc4c90828091221e4fbcffe129e1", "size_bytes": 9856}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/renders/r0_candidate_03.png", "sha256": "46598c40f6b99dce8ae3fa5d3e23251a8c3d2af52a8e98cf550cb8a4b9425c79", "size_bytes": 154773}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9c8fa2abc8ea6d1cd0d3e7/inputs/r3/r3_asset_manifest.json", "sha256": "0e5f0388e15404f9baf03093af81369192e7bfdf5e9c63b9e1e99f7bfc779623", "size_bytes": 8456}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "b03d13787d4b270c0dd75172b5c1bb107867c018980d5492cfef9657e7082014", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 3, "raw": 26, "valid": 23}, "elements": [{"asset_id": "asset_0024", "bbox_lwh_raw": [142.0, 202.0, 264.0, 528.0], "bbox_xyxy_clipped": [142.0, 202.0, 406.0, 730.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [189.0, 246.0, 185.0, 399.0], "bbox_xyxy_clipped": [189.0, 246.0, 374.0, 645.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [610.0, 214.0, 330.0, 41.0], "bbox_xyxy_clipped": [610.0, 214.0, 940.0, 255.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [610.0, 275.0, 300.0, 42.0], "bbox_xyxy_clipped": [610.0, 275.0, 910.0, 317.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [610.0, 344.0, 339.0, 100.0], "bbox_xyxy_clipped": [610.0, 344.0, 949.0, 444.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [688.0, 128.0, 286.0, 157.0], "bbox_xyxy_clipped": [688.0, 128.0, 974.0, 285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [610.0, 798.0, 320.0, 40.0], "bbox_xyxy_clipped": [610.0, 798.0, 930.0, 838.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [866.0, 116.0, 126.0, 30.0], "bbox_xyxy_clipped": [866.0, 116.0, 992.0, 146.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [996.0, 120.0, 52.0, 36.0], "bbox_xyxy_clipped": [996.0, 120.0, 1048.0, 156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [980.0, 76.0, 76.0, 6.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0001", "bbox_lwh_raw": [976.0, 102.0, 50.0, 99.0], "bbox_xyxy_clipped": [976.0, 102.0, 1026.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [965.0, 224.0, 48.0, 180.0], "bbox_xyxy_clipped": [965.0, 224.0, 1013.0, 404.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [960.0, 426.0, 43.0, 1054.0], "bbox_xyxy_clipped": [960.0, 426.0, 1003.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [950.0, 510.0, 37.0, 505.0], "bbox_xyxy_clipped": [950.0, 510.0, 987.0, 1015.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [915.0, 616.0, 35.0, 457.0], "bbox_xyxy_clipped": [915.0, 616.0, 950.0, 1073.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [890.0, 710.0, 31.0, 247.0], "bbox_xyxy_clipped": [890.0, 710.0, 921.0, 957.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [844.0, 770.0, 29.0, 349.0], "bbox_xyxy_clipped": [844.0, 770.0, 873.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [812.0, 824.0, 27.0, 241.0], "bbox_xyxy_clipped": [812.0, 824.0, 839.0, 1065.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [770.0, 858.0, 23.0, 130.0], "bbox_xyxy_clipped": [770.0, 858.0, 793.0, 988.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [730.0, 886.0, 19.0, 71.0], "bbox_xyxy_clipped": [730.0, 886.0, 749.0, 957.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [700.0, 912.0, 18.0, 24.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [656.0, 928.0, 16.0, 62.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [620.0, 744.0, 60.0, 993.0], "bbox_xyxy_clipped": [620.0, 744.0, 680.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [575.0, 820.0, 44.0, 506.0], "bbox_xyxy_clipped": [575.0, 820.0, 619.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [520.0, 860.0, 34.0, 316.0], "bbox_xyxy_clipped": [520.0, 860.0, 554.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [500.0, 900.0, 31.0, 112.0], "bbox_xyxy_clipped": [500.0, 900.0, 531.0, 1012.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006158440166579411}, "Ove": {"reason": null, "status": "ok", "value": 0.08411458197414293}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5d9cad82abc8ea6d1c23ebf1", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cad82abc8ea6d1c23ebf1/pipeline/l0_result.json", "sha256": "c7a6434ddc795f7ee6a13b066c514c44d253eeb39374664831fb0f379d97afa0", "size_bytes": 19486}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/pfull/asset_manifest.json", "sha256": "46add5029c11dd4da157c3e56628947a3b5901591cca22ba732f01e5cf39b896", "size_bytes": 13333}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cad82abc8ea6d1c23ebf1/renders/r0_candidate_03.png", "sha256": "b03d13787d4b270c0dd75172b5c1bb107867c018980d5492cfef9657e7082014", "size_bytes": 86823}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cad82abc8ea6d1c23ebf1/inputs/r3/r3_asset_manifest.json", "sha256": "737e0a9658b523e98d25c6dcf58288b0290a32889dcfd2d73cdc3f1831192761", "size_bytes": 11309}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f5776af1d31dd090ac57618b6f755280ebc2cebf0ba87595d0f872089be7de83", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 23, "valid": 23}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [650.0, 64.0, 290.0, 194.0], "bbox_xyxy_clipped": [650.0, 64.0, 940.0, 258.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [347.0, 0.0, 593.0, 133.0], "bbox_xyxy_clipped": [347.0, 0.0, 940.0, 133.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [362.0, 18.0, 540.0, 14.0], "bbox_xyxy_clipped": [362.0, 18.0, 902.0, 32.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [402.0, 42.0, 400.0, 89.0], "bbox_xyxy_clipped": [402.0, 42.0, 802.0, 131.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [510.0, 118.0, 300.0, 75.0], "bbox_xyxy_clipped": [510.0, 118.0, 810.0, 193.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [335.0, 154.0, 430.0, 130.0], "bbox_xyxy_clipped": [335.0, 154.0, 765.0, 284.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [385.0, 213.0, 390.0, 90.0], "bbox_xyxy_clipped": [385.0, 213.0, 775.0, 303.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [570.0, 294.0, 270.0, 18.0], "bbox_xyxy_clipped": [570.0, 294.0, 840.0, 312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [532.0, 323.0, 260.0, 15.0], "bbox_xyxy_clipped": [532.0, 323.0, 792.0, 338.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [343.0, 340.0, 411.0, 60.0], "bbox_xyxy_clipped": [343.0, 340.0, 754.0, 400.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [391.0, 392.0, 350.0, 29.0], "bbox_xyxy_clipped": [391.0, 392.0, 741.0, 421.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [425.0, 435.0, 330.0, 90.0], "bbox_xyxy_clipped": [425.0, 435.0, 755.0, 525.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [487.0, 520.0, 330.0, 73.0], "bbox_xyxy_clipped": [487.0, 520.0, 817.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [560.0, 602.0, 350.0, 29.0], "bbox_xyxy_clipped": [560.0, 602.0, 910.0, 631.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [398.0, 646.0, 382.0, 30.0], "bbox_xyxy_clipped": [398.0, 646.0, 780.0, 676.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [54.0, 68.0, 331.0, 179.0], "bbox_xyxy_clipped": [54.0, 68.0, 385.0, 247.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [44.0, 210.0, 424.0, 37.0], "bbox_xyxy_clipped": [44.0, 210.0, 468.0, 247.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [46.0, 603.0, 364.0, 33.0], "bbox_xyxy_clipped": [46.0, 603.0, 410.0, 636.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [74.0, 248.0, 251.0, 50.0], "bbox_xyxy_clipped": [74.0, 248.0, 325.0, 298.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [63.0, 23.0, 280.0, 66.0], "bbox_xyxy_clipped": [63.0, 23.0, 343.0, 89.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [648.0, 396.0, 228.0, 52.0], "bbox_xyxy_clipped": [648.0, 396.0, 876.0, 448.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [57.0, 520.0, 441.0, 46.0], "bbox_xyxy_clipped": [57.0, 520.0, 498.0, 566.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [57.0, 567.0, 300.0, 57.0], "bbox_xyxy_clipped": [57.0, 567.0, 357.0, 624.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0032370529332530077}, "Ove": {"reason": null, "status": "ok", "value": 0.12976807384911274}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5d9cadb1abc8ea6d1c246dc8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cadb1abc8ea6d1c246dc8/pipeline/l0_result.json", "sha256": "734c2f5d6fdb3897cb6421e9dbd37a9076b86dbd1d1d3c138801f73243db33e4", "size_bytes": 16069}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/pfull/asset_manifest.json", "sha256": "076f3e40002350ca31e296db77f64a125744c46d6b644e27b8bb671985983965", "size_bytes": 11889}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cadb1abc8ea6d1c246dc8/renders/r0_candidate_03.png", "sha256": "f5776af1d31dd090ac57618b6f755280ebc2cebf0ba87595d0f872089be7de83", "size_bytes": 137897}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5d9cadb1abc8ea6d1c246dc8/inputs/r3/r3_asset_manifest.json", "sha256": "01efbebcf20ef9f02a6c9d276e0bc219bb56ffcbdfa1e933f8b914840dba61d4", "size_bytes": 10223}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"metrics": {}, "reason": "A3 summary did not mark sample completed", "run_id": "a3-rel100-t3-01", "sample_id": "5da04604abc8ea6d1cbe2935", "source_artifacts": [], "source_status": "failed", "status": "source_skipped", "summary_entry": {"error_type": "A3L0PipelineError", "message": "CandidateShortfall: only 2/3 R0 candidates completed; Judge-Select requires exactly three complete renders", "sample_id": "5da04604abc8ea6d1cbe2935", "status": "failed"}} +{"b0_render_sha256": "81e55e0b2a02793577aad90a25f1935f115c176b8976b63cec26a20968a94ad3", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 26, "valid": 24}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [710.0, 180.0, 450.0, 674.0], "bbox_xyxy_clipped": [710.0, 180.0, 1160.0, 854.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [735.0, 160.0, 340.0, 40.0], "bbox_xyxy_clipped": [735.0, 160.0, 1075.0, 200.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [760.0, 215.0, 250.0, 20.0], "bbox_xyxy_clipped": [760.0, 215.0, 1010.0, 235.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [820.0, 250.0, 240.0, 16.0], "bbox_xyxy_clipped": [820.0, 250.0, 1060.0, 266.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [110.0, 205.0, 300.0, 65.0], "bbox_xyxy_clipped": [110.0, 205.0, 410.0, 270.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [110.0, 750.0, 250.0, 359.0], "bbox_xyxy_clipped": [110.0, 750.0, 360.0, 1109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [365.0, 750.0, 120.0, 390.0], "bbox_xyxy_clipped": [365.0, 750.0, 485.0, 1140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [495.0, 750.0, 125.0, 429.0], "bbox_xyxy_clipped": [495.0, 750.0, 620.0, 1179.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [110.0, 1360.0, 250.0, 32.0], "bbox_xyxy_clipped": [110.0, 1360.0, 360.0, 1392.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [780.0, 320.0, 255.0, 16.0], "bbox_xyxy_clipped": [780.0, 320.0, 1035.0, 336.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [770.0, 360.0, 300.0, 18.0], "bbox_xyxy_clipped": [770.0, 360.0, 1070.0, 378.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [760.0, 405.0, 280.0, 14.0], "bbox_xyxy_clipped": [760.0, 405.0, 1040.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [110.0, 120.0, 160.0, 76.0], "bbox_xyxy_clipped": [110.0, 120.0, 270.0, 196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [110.0, 1475.0, 310.0, 120.0], "bbox_xyxy_clipped": [110.0, 1475.0, 420.0, 1595.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [720.0, 455.0, 45.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0015", "bbox_lwh_raw": [270.0, 120.0, 110.0, 85.0], "bbox_xyxy_clipped": [270.0, 120.0, 380.0, 205.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [110.0, 1405.0, 110.0, 73.0], "bbox_xyxy_clipped": [110.0, 1405.0, 220.0, 1478.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [755.0, 505.0, 340.0, 8.0], "bbox_xyxy_clipped": [755.0, 505.0, 1095.0, 513.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [110.0, 275.0, 360.0, 58.0], "bbox_xyxy_clipped": [110.0, 275.0, 470.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [385.0, 130.0, 45.0, 47.0], "bbox_xyxy_clipped": [385.0, 130.0, 430.0, 177.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [425.0, 120.0, 95.0, 49.0], "bbox_xyxy_clipped": [425.0, 120.0, 520.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [790.0, 560.0, 320.0, 8.0], "bbox_xyxy_clipped": [790.0, 560.0, 1110.0, 568.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [810.0, 610.0, 300.0, 7.0], "bbox_xyxy_clipped": [810.0, 610.0, 1110.0, 617.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [760.0, 650.0, 340.0, 8.0], "bbox_xyxy_clipped": [760.0, 650.0, 1100.0, 658.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [790.0, 690.0, 280.0, 7.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0025", "bbox_lwh_raw": [820.0, 730.0, 255.0, 8.0], "bbox_xyxy_clipped": [820.0, 730.0, 1075.0, 738.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0018502221850920549}, "Ove": {"reason": null, "status": "ok", "value": 0.007178707771597769}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5da071b5abc8ea6d1c1f1d6f", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5da071b5abc8ea6d1c1f1d6f/pipeline/l0_result.json", "sha256": "8643de8d633a3b5d56099182cfaaff4177b67dbdc6ccfc07a5cb8cc8ca07f6aa", "size_bytes": 19821}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/pfull/asset_manifest.json", "sha256": "bb13b8226596e0123da45d98881fda332fbff4c35866539b58117830e1571d8a", "size_bytes": 13521}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5da071b5abc8ea6d1c1f1d6f/renders/r0_candidate_03.png", "sha256": "81e55e0b2a02793577aad90a25f1935f115c176b8976b63cec26a20968a94ad3", "size_bytes": 584059}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5da071b5abc8ea6d1c1f1d6f/inputs/r3/r3_asset_manifest.json", "sha256": "cc910955ddb12be3c88cffec58e3621e86391243cd2dda0be30054fe0038f3dc", "size_bytes": 11822}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "89201937ca41f6d0bde3dada20cbbef64f3be68c41b1405465420f997686231d", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 16, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 490.0, 430.0, 286.0], "bbox_xyxy_clipped": [52.0, 490.0, 482.0, 776.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [670.0, 92.0, 220.0, 445.0], "bbox_xyxy_clipped": [670.0, 92.0, 890.0, 537.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [882.0, 118.0, 178.0, 88.0], "bbox_xyxy_clipped": [882.0, 118.0, 1060.0, 206.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [866.0, 228.0, 156.0, 281.0], "bbox_xyxy_clipped": [866.0, 228.0, 1022.0, 509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [706.0, 530.0, 322.0, 69.0], "bbox_xyxy_clipped": [706.0, 530.0, 1028.0, 599.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [655.0, 88.0, 340.0, 118.0], "bbox_xyxy_clipped": [655.0, 88.0, 995.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [820.0, 196.0, 190.0, 44.0], "bbox_xyxy_clipped": [820.0, 196.0, 1010.0, 240.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [694.0, 368.0, 300.0, 44.0], "bbox_xyxy_clipped": [694.0, 368.0, 994.0, 412.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [694.0, 434.0, 220.0, 75.0], "bbox_xyxy_clipped": [694.0, 434.0, 914.0, 509.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [694.0, 526.0, 170.0, 70.0], "bbox_xyxy_clipped": [694.0, 526.0, 864.0, 596.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [760.0, 879.0, 232.0, 50.0], "bbox_xyxy_clipped": [760.0, 879.0, 992.0, 929.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [760.0, 944.0, 300.0, 120.0], "bbox_xyxy_clipped": [760.0, 944.0, 1060.0, 1064.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [688.0, 878.0, 44.0, 44.0], "bbox_xyxy_clipped": [688.0, 878.0, 732.0, 922.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [574.0, 320.0, 84.0, 122.0], "bbox_xyxy_clipped": [574.0, 320.0, 658.0, 442.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [610.0, 214.0, 78.0, 113.0], "bbox_xyxy_clipped": [610.0, 214.0, 688.0, 327.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [560.0, 620.0, 82.0, 118.0], "bbox_xyxy_clipped": [560.0, 620.0, 642.0, 738.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0037395346599302546}, "Ove": {"reason": null, "status": "ok", "value": 0.09770911673388853}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5dbbff2eabc8ea6d1c15c382", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dbbff2eabc8ea6d1c15c382/pipeline/l0_result.json", "sha256": "af6f8761c5da51e61697cf98bb19a4358fed20ccdcb40fd30434834fa5898ba1", "size_bytes": 12713}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/pfull/asset_manifest.json", "sha256": "b92d6404a77a3f95e8c803c5ce5f8c7654cc8ec2006c1efe180e8496730e50dd", "size_bytes": 8454}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dbbff2eabc8ea6d1c15c382/renders/r0_candidate_03.png", "sha256": "89201937ca41f6d0bde3dada20cbbef64f3be68c41b1405465420f997686231d", "size_bytes": 320258}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dbbff2eabc8ea6d1c15c382/inputs/r3/r3_asset_manifest.json", "sha256": "8b43de36125b134c2811d2809e06808f979bb1446a24d0172fb538deb304b582", "size_bytes": 7482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "5acb14677f9da4eb4d2210464035da9c735b114e3d8f918f629355b092bc5789", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 4, "raw": 20, "valid": 16}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [52.0, 74.0, 430.0, 678.0], "bbox_xyxy_clipped": [52.0, 74.0, 482.0, 752.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [699.0, 1044.0, 188.0, 65.0], "bbox_xyxy_clipped": [699.0, 1044.0, 887.0, 1109.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [70.0, 118.0, 300.0, 38.0], "bbox_xyxy_clipped": [70.0, 118.0, 370.0, 156.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [338.0, 92.0, 104.0, 135.0], "bbox_xyxy_clipped": [338.0, 92.0, 442.0, 227.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [586.0, 946.0, 179.0, 100.0], "bbox_xyxy_clipped": [586.0, 946.0, 765.0, 1046.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [96.0, 196.0, 220.0, 220.0], "bbox_xyxy_clipped": [96.0, 196.0, 316.0, 416.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [776.0, 1103.0, 51.0, 65.0], "bbox_xyxy_clipped": [776.0, 1103.0, 827.0, 1168.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [585.0, 1115.0, 349.0, 81.0], "bbox_xyxy_clipped": [585.0, 1115.0, 934.0, 1196.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [951.0, 1167.0, 42.0, 31.0], "bbox_xyxy_clipped": null, "class_code": 1, "class_source": "pfull.text-media", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [392.0, 216.0, 65.0, 149.0], "bbox_xyxy_clipped": [392.0, 216.0, 457.0, 365.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [770.0, 1209.0, 133.0, 70.0], "bbox_xyxy_clipped": [770.0, 1209.0, 903.0, 1279.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [910.0, 1211.0, 163.0, 74.0], "bbox_xyxy_clipped": [910.0, 1211.0, 1073.0, 1285.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [74.0, 396.0, 270.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0013", "bbox_lwh_raw": [86.0, 455.0, 256.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0014", "bbox_lwh_raw": [440.0, 287.0, 41.0, 167.0], "bbox_xyxy_clipped": [440.0, 287.0, 481.0, 454.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [683.0, 1334.0, 251.0, 57.0], "bbox_xyxy_clipped": [683.0, 1334.0, 934.0, 1391.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [690.0, 1398.0, 266.0, 39.0], "bbox_xyxy_clipped": [690.0, 1398.0, 956.0, 1437.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [682.0, 1455.0, 354.0, 175.0], "bbox_xyxy_clipped": [682.0, 1455.0, 1036.0, 1630.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [900.0, 1640.0, 217.0, 28.0], "bbox_xyxy_clipped": [900.0, 1640.0, 1117.0, 1668.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [115.0, 548.0, 388.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005344466557904551}, "Ove": {"reason": null, "status": "ok", "value": 0.03682502904357366}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5dc27c32abc8ea6d1cbf115a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dc27c32abc8ea6d1cbf115a/pipeline/l0_result.json", "sha256": "98ad895adad5dabddbbb309f85be1bc1f6cad0616f39d6e7f6e7e0dd2953bbe6", "size_bytes": 18762}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/pfull/asset_manifest.json", "sha256": "b46791a18b461b8d035a6e5717a8cf96a2c42b4364c75fe0695a8253c653622e", "size_bytes": 10489}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dc27c32abc8ea6d1cbf115a/renders/r0_candidate_01.png", "sha256": "5acb14677f9da4eb4d2210464035da9c735b114e3d8f918f629355b092bc5789", "size_bytes": 65009}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5dc27c32abc8ea6d1cbf115a/inputs/r3/r3_asset_manifest.json", "sha256": "89a9b3df27227aff5f724f02a239fd7f0f2032372cfc24c3af2ac53efea72168", "size_bytes": 9361}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9b7774892f74f6b5eb3dcc176b54e38ec87bce580dbabb9264dda3503530c0f1", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a46fee1b3e4652c001d9173dbbc10eddc8fe42cfee68dc92a1854630df8af82a", "canvas": {"height": 788, "width": 940}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [28.0, 70.0, 360.0, 302.0], "bbox_xyxy_clipped": [28.0, 70.0, 388.0, 372.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [35.0, 108.0, 420.0, 629.0], "bbox_xyxy_clipped": [35.0, 108.0, 455.0, 737.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [486.0, 110.0, 387.0, 48.0], "bbox_xyxy_clipped": [486.0, 110.0, 873.0, 158.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [514.0, 190.0, 320.0, 68.0], "bbox_xyxy_clipped": [514.0, 190.0, 834.0, 258.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [536.0, 154.0, 260.0, 62.0], "bbox_xyxy_clipped": [536.0, 154.0, 796.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [340.0, 300.0, 144.0, 144.0], "bbox_xyxy_clipped": [340.0, 300.0, 484.0, 444.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [698.0, 628.0, 174.0, 30.0], "bbox_xyxy_clipped": [698.0, 628.0, 872.0, 658.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [867.0, 626.0, 63.0, 57.0], "bbox_xyxy_clipped": [867.0, 626.0, 930.0, 683.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [678.0, 678.0, 210.0, 46.0], "bbox_xyxy_clipped": [678.0, 678.0, 888.0, 724.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004160352002289752}, "Occ": {"reason": null, "status": "ok", "value": 0.004187786134182309}, "Ove": {"reason": null, "status": "ok", "value": 0.07730493749754094}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "244ed59ef62405e9ecb3ab4febf9e7ec2acbb9d024ba516ebfe47b545d2eedcf", "status": "computed"}, "sample_id": "5df211c29fea0cc374abbbba", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df211c29fea0cc374abbbba/pipeline/l0_result.json", "sha256": "8a51d6e5126b3764314eeab693221ae9d23ea394446390ae5a9cfb0653a1b640", "size_bytes": 8268}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df211c29fea0cc374abbbba/inputs/pfull/asset_manifest.json", "sha256": "5e04c9c92d28e69cbed8cb09f4750354be5c9972eabcc6d8a826470ea302ff04", "size_bytes": 4948}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df211c29fea0cc374abbbba/renders/r0_candidate_01.png", "sha256": "9b7774892f74f6b5eb3dcc176b54e38ec87bce580dbabb9264dda3503530c0f1", "size_bytes": 362832}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df211c29fea0cc374abbbba/inputs/r3/r3_asset_manifest.json", "sha256": "9bda1ff4279f59ae9af18d3a0e99093f954072b4fc04dbc2e4fabc20d3839247", "size_bytes": 4481}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "673ce1e54ab73ed459b8301034e7e5d37073c7598f2029e759a80cc113febf60", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [357.0, 124.0, 487.0, 325.0], "bbox_xyxy_clipped": [357.0, 124.0, 844.0, 449.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [451.0, 254.0, 258.0, 50.0], "bbox_xyxy_clipped": [451.0, 254.0, 709.0, 304.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [715.0, 168.0, 165.0, 165.0], "bbox_xyxy_clipped": [715.0, 168.0, 880.0, 333.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [133.0, 58.0, 406.0, 66.0], "bbox_xyxy_clipped": [133.0, 58.0, 539.0, 124.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [918.0, 355.0, 128.0, 95.0], "bbox_xyxy_clipped": [918.0, 355.0, 1046.0, 450.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1046.0, 393.0, 78.0, 95.0], "bbox_xyxy_clipped": [1046.0, 393.0, 1124.0, 488.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1124.0, 371.0, 76.0, 37.0], "bbox_xyxy_clipped": [1124.0, 371.0, 1200.0, 408.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [134.0, 127.0, 302.0, 21.0], "bbox_xyxy_clipped": [134.0, 127.0, 436.0, 148.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [469.0, 576.0, 262.0, 34.0], "bbox_xyxy_clipped": [469.0, 576.0, 731.0, 610.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0016289436939788326}, "Occ": {"reason": null, "status": "ok", "value": 0.002073888879858754}, "Ove": {"reason": null, "status": "ok", "value": 0.02458899003275257}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5df216b89fea0cc374b8d341", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df216b89fea0cc374b8d341/pipeline/l0_result.json", "sha256": "0fa79248b387883d6757c05e927707b47008c349a23015a127ad4310fe0a9d6f", "size_bytes": 8772}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df216b89fea0cc374b8d341/inputs/pfull/asset_manifest.json", "sha256": "363674506ca1b2e1a82434a3dee1decd7c776fc31617196bb195baf9e2f652da", "size_bytes": 4925}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df216b89fea0cc374b8d341/renders/r0_candidate_03.png", "sha256": "673ce1e54ab73ed459b8301034e7e5d37073c7598f2029e759a80cc113febf60", "size_bytes": 269436}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df216b89fea0cc374b8d341/inputs/r3/r3_asset_manifest.json", "sha256": "6c428a50187f1bab2932c639002a0d987a215ff23b87aa4c26d2465f81513365", "size_bytes": 4507}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "9fcc8cbda489e8f3c9960664f2fc80a8d3b740c2481ad9da567c21af1d81f91d", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "9cb1a443207bce73c0f03469462c58ea7cbeec7f0dd14016fdf88f64b54d9162", "canvas": {"height": 250, "width": 300}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 6, "valid": 6}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [163.0, 109.0, 121.0, 36.0], "bbox_xyxy_clipped": [163.0, 109.0, 284.0, 145.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [133.0, 66.0, 167.0, 93.0], "bbox_xyxy_clipped": [133.0, 66.0, 300.0, 159.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [36.0, 42.0, 77.0, 62.0], "bbox_xyxy_clipped": [36.0, 42.0, 113.0, 104.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [32.0, 112.0, 138.0, 23.0], "bbox_xyxy_clipped": [32.0, 112.0, 170.0, 135.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [27.0, 170.0, 162.0, 13.0], "bbox_xyxy_clipped": [27.0, 170.0, 189.0, 183.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 141.0, 133.0, 23.0], "bbox_xyxy_clipped": [34.0, 141.0, 167.0, 164.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.004346567965993617}, "Occ": {"reason": null, "status": "ok", "value": 0.002646622114468172}, "Ove": {"reason": null, "status": "ok", "value": 0.064364674751471}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "381287d0ea82fb8f07717a21d2294273bfd9028437c93b531bab8c80933fe19f", "status": "computed"}, "sample_id": "5df3af489fea0cc3742457a9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df3af489fea0cc3742457a9/pipeline/l0_result.json", "sha256": "00edf6ff43d070bc5ac54d6002647c463ffe4820615a672801af58081085e01f", "size_bytes": 6786}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df3af489fea0cc3742457a9/inputs/pfull/asset_manifest.json", "sha256": "3f3253ac164843fddaee4c0758c62709bcea01136c9bb67e524d98f8037e2473", "size_bytes": 3391}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df3af489fea0cc3742457a9/renders/r0_candidate_02.png", "sha256": "9fcc8cbda489e8f3c9960664f2fc80a8d3b740c2481ad9da567c21af1d81f91d", "size_bytes": 40631}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df3af489fea0cc3742457a9/inputs/r3/r3_asset_manifest.json", "sha256": "4b5dcd2b5e5f4773f16b6e20c0526f2edf7629ee2d0dda097d0458be9599d5a0", "size_bytes": 3075}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "47df4c68cdff0603d82cc388d995b7361e8128d6f49411ba09bf18ef1717c42c", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "ab51b0b42ae2a84b232949f7afee644c4b75a7a2c9c659c51f1d78047c44ec84", "canvas": {"height": 720, "width": 1280}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [360.0, 88.0, 760.0, 427.0], "bbox_xyxy_clipped": [360.0, 88.0, 1120.0, 515.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [500.0, 104.0, 320.0, 487.0], "bbox_xyxy_clipped": [500.0, 104.0, 820.0, 591.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [702.0, 122.0, 288.0, 441.0], "bbox_xyxy_clipped": [702.0, 122.0, 990.0, 563.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [456.0, 258.0, 98.0, 105.0], "bbox_xyxy_clipped": [456.0, 258.0, 554.0, 363.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [530.0, 272.0, 84.0, 104.0], "bbox_xyxy_clipped": [530.0, 272.0, 614.0, 376.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [594.0, 287.0, 92.0, 113.0], "bbox_xyxy_clipped": [594.0, 287.0, 686.0, 400.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [78.0, 257.0, 450.0, 128.0], "bbox_xyxy_clipped": [78.0, 257.0, 528.0, 385.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [78.0, 216.0, 190.0, 33.0], "bbox_xyxy_clipped": [78.0, 216.0, 268.0, 249.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [281.0, 214.0, 95.0, 40.0], "bbox_xyxy_clipped": [281.0, 214.0, 376.0, 254.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [870.0, 140.0, 340.0, 509.0], "bbox_xyxy_clipped": [870.0, 140.0, 1210.0, 649.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029384731081539502}, "Ove": {"reason": null, "status": "ok", "value": 0.20577555335475592}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "aa43038f006ab14f17b3931b0fac4923d441eb8a3fda8cbc22eddf1fd886cb3a", "status": "computed"}, "sample_id": "5df7606b9fea0cc374d371db", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df7606b9fea0cc374d371db/pipeline/l0_result.json", "sha256": "15d1fe43715d1255999194554ba3f008868fb49c24755887d6764a983dab4729", "size_bytes": 10507}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df7606b9fea0cc374d371db/inputs/pfull/asset_manifest.json", "sha256": "aa0c3a2407c69d7fbe2397fc9df0387b64cc2f4a80077fcccfd440a7de0b168d", "size_bytes": 5423}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df7606b9fea0cc374d371db/renders/r0_candidate_02.png", "sha256": "47df4c68cdff0603d82cc388d995b7361e8128d6f49411ba09bf18ef1717c42c", "size_bytes": 288040}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5df7606b9fea0cc374d371db/inputs/r3/r3_asset_manifest.json", "sha256": "048f98802fa2ba67036a6ea1c90892084fa16c5d6957f63890da7182990f838f", "size_bytes": 4913}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8cef3a518117a0753586e17ea7d4d95b398ca5b8e656f3ae9aba5f78da3cc4bb", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 15, "valid": 14}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [30.0, 0.0, 380.0, 676.0], "bbox_xyxy_clipped": [30.0, 0.0, 410.0, 676.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [706.0, 92.0, 344.0, 646.0], "bbox_xyxy_clipped": [706.0, 92.0, 1050.0, 738.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [36.0, 126.0, 430.0, 203.0], "bbox_xyxy_clipped": [36.0, 126.0, 466.0, 329.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [85.0, 666.0, 110.0, 125.0], "bbox_xyxy_clipped": [85.0, 666.0, 195.0, 791.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [212.0, 671.0, 258.0, 73.0], "bbox_xyxy_clipped": [212.0, 671.0, 470.0, 744.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [212.0, 754.0, 350.0, 51.0], "bbox_xyxy_clipped": [212.0, 754.0, 562.0, 805.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [0.0, 0.0, 300.0, 225.0], "bbox_xyxy_clipped": [0.0, 0.0, 300.0, 225.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [0.0, 190.0, 410.0, 106.0], "bbox_xyxy_clipped": [0.0, 190.0, 410.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [36.0, 1190.0, 370.0, 59.0], "bbox_xyxy_clipped": [36.0, 1190.0, 406.0, 1249.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [36.0, 1258.0, 380.0, 61.0], "bbox_xyxy_clipped": [36.0, 1258.0, 416.0, 1319.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [36.0, 1728.0, 638.0, 70.0], "bbox_xyxy_clipped": [36.0, 1728.0, 674.0, 1798.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [36.0, 1806.0, 231.0, 54.0], "bbox_xyxy_clipped": [36.0, 1806.0, 267.0, 1860.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [176.0, 520.0, 88.0, 88.0], "bbox_xyxy_clipped": [176.0, 520.0, 264.0, 608.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [516.0, 420.0, 220.0, 220.0], "bbox_xyxy_clipped": [516.0, 420.0, 736.0, 640.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [52.0, 1575.0, 280.0, 5.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002659911650490591}, "Ove": {"reason": null, "status": "ok", "value": 0.10528515643407609}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e0213489fea0cc374175712", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0213489fea0cc374175712/pipeline/l0_result.json", "sha256": "135ac49783db9e8aeeeeb7a971f03bf8edc1a87948a22ed74e73fe0cbab84f80", "size_bytes": 11715}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0213489fea0cc374175712/inputs/pfull/asset_manifest.json", "sha256": "e7417dd87799cff084c88a59a137ddfa334a66ce57c3e1816d3ed1d7a611f8ec", "size_bytes": 7976}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0213489fea0cc374175712/renders/r0_candidate_02.png", "sha256": "8cef3a518117a0753586e17ea7d4d95b398ca5b8e656f3ae9aba5f78da3cc4bb", "size_bytes": 247593}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0213489fea0cc374175712/inputs/r3/r3_asset_manifest.json", "sha256": "833e5f47340fb22b712fc5d0a4985df640a69ef1e8967c46f25d81c819c4fa70", "size_bytes": 7055}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6dc1b5406258faba21397882520f3a71c273a88ca151f3f6c5e33c9bf7904ef4", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "187df92806f4f36eb3762df16a0b4e412894eae0f6dd6bcc7eb0c74c39ca06fb", "canvas": {"height": 504, "width": 360}, "element_counts": {"invalid_below_0_1pct": 9, "raw": 27, "valid": 18}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [22.0, 172.0, 316.0, 247.0], "bbox_xyxy_clipped": [22.0, 172.0, 338.0, 419.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [29.0, 181.0, 302.0, 9.0], "bbox_xyxy_clipped": [29.0, 181.0, 331.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [27.0, 401.0, 310.0, 243.0], "bbox_xyxy_clipped": [27.0, 401.0, 337.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [30.0, 396.0, 300.0, 14.0], "bbox_xyxy_clipped": [30.0, 396.0, 330.0, 410.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [29.0, 64.0, 125.0, 30.0], "bbox_xyxy_clipped": [29.0, 64.0, 154.0, 94.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [31.0, 96.0, 147.0, 20.0], "bbox_xyxy_clipped": [31.0, 96.0, 178.0, 116.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [29.0, 442.0, 126.0, 48.0], "bbox_xyxy_clipped": [29.0, 442.0, 155.0, 490.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [29.0, 489.0, 128.0, 47.0], "bbox_xyxy_clipped": [29.0, 489.0, 157.0, 504.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [30.0, 330.0, 91.0, 64.0], "bbox_xyxy_clipped": [30.0, 330.0, 121.0, 394.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [137.0, 62.0, 129.0, 27.0], "bbox_xyxy_clipped": [137.0, 62.0, 266.0, 89.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [30.0, 292.0, 81.0, 17.0], "bbox_xyxy_clipped": [30.0, 292.0, 111.0, 309.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [223.0, 330.0, 106.0, 19.0], "bbox_xyxy_clipped": [223.0, 330.0, 329.0, 349.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [223.0, 356.0, 112.0, 129.0], "bbox_xyxy_clipped": [223.0, 356.0, 335.0, 485.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [32.0, 350.0, 59.0, 86.0], "bbox_xyxy_clipped": [32.0, 350.0, 91.0, 436.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [108.0, 27.0, 132.0, 40.0], "bbox_xyxy_clipped": [108.0, 27.0, 240.0, 67.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [33.0, 24.0, 53.0, 46.0], "bbox_xyxy_clipped": [33.0, 24.0, 86.0, 70.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [62.0, 189.0, 241.0, 160.0], "bbox_xyxy_clipped": [62.0, 189.0, 303.0, 349.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [232.0, 209.0, 104.0, 69.0], "bbox_xyxy_clipped": [232.0, 209.0, 336.0, 278.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [43.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0019", "bbox_lwh_raw": [54.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0020", "bbox_lwh_raw": [65.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0021", "bbox_lwh_raw": [76.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0022", "bbox_lwh_raw": [87.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0023", "bbox_lwh_raw": [98.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0024", "bbox_lwh_raw": [109.0, 176.0, 8.0, 8.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0025", "bbox_lwh_raw": [283.0, 183.0, 1.0, 25.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0026", "bbox_lwh_raw": [300.0, 183.0, 1.0, 25.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.007258445027447229}, "Ove": {"reason": null, "status": "ok", "value": 0.1413607718112032}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7403fd0b9df16928f35b4ad0d334928c07cc66cede7421556094de9ba22c2488", "status": "computed"}, "sample_id": "5e0219159fea0cc37425a627", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0219159fea0cc37425a627/pipeline/l0_result.json", "sha256": "c1a126d0f5613120b78f1d3a164ec95276292ca63dc749ce1ea7de09f73312f6", "size_bytes": 19484}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0219159fea0cc37425a627/inputs/pfull/asset_manifest.json", "sha256": "fba7b87c610e81cff1a748e3a1ba02497497e0ac20cb3152c1ce955e21a0baaa", "size_bytes": 14038}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0219159fea0cc37425a627/renders/r0_candidate_03.png", "sha256": "6dc1b5406258faba21397882520f3a71c273a88ca151f3f6c5e33c9bf7904ef4", "size_bytes": 130961}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0219159fea0cc37425a627/inputs/r3/r3_asset_manifest.json", "sha256": "23538810aabf3c835c80f557abdcd1a6e989de77359c8854c843d96861df1fd0", "size_bytes": 12185}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "6b8336ccf8673b9aff35cf8454d90d2bfc127a4e58824f84da142bb223bb318e", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0004", "bbox_lwh_raw": [24.0, 82.0, 372.0, 108.0], "bbox_xyxy_clipped": [24.0, 82.0, 396.0, 190.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 176.0, 246.0, 120.0], "bbox_xyxy_clipped": [92.0, 176.0, 338.0, 296.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [74.0, 312.0, 92.0, 62.0], "bbox_xyxy_clipped": [74.0, 312.0, 166.0, 374.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [26.0, 374.0, 284.0, 63.0], "bbox_xyxy_clipped": [26.0, 374.0, 310.0, 437.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [24.0, 472.0, 214.0, 108.0], "bbox_xyxy_clipped": [24.0, 472.0, 238.0, 580.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [24.0, 1610.0, 236.0, 55.0], "bbox_xyxy_clipped": [24.0, 1610.0, 260.0, 1665.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [292.0, 244.0, 140.0, 130.0], "bbox_xyxy_clipped": [292.0, 244.0, 432.0, 374.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [132.0, 286.0, 206.0, 278.0], "bbox_xyxy_clipped": [132.0, 286.0, 338.0, 564.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [210.0, 236.0, 172.0, 139.0], "bbox_xyxy_clipped": [210.0, 236.0, 382.0, 375.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [104.0, 560.0, 196.0, 158.0], "bbox_xyxy_clipped": [104.0, 560.0, 300.0, 718.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [38.0, 724.0, 170.0, 178.0], "bbox_xyxy_clipped": [38.0, 724.0, 208.0, 902.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [104.0, 938.0, 198.0, 141.0], "bbox_xyxy_clipped": [104.0, 938.0, 302.0, 1079.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [20.0, 1124.0, 172.0, 158.0], "bbox_xyxy_clipped": [20.0, 1124.0, 192.0, 1282.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [462.0, 1020.0, 598.0, 423.0], "bbox_xyxy_clipped": [462.0, 1020.0, 1060.0, 1443.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [572.0, 1188.0, 420.0, 300.0], "bbox_xyxy_clipped": [572.0, 1188.0, 992.0, 1488.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.004177679017405044}, "Ove": {"reason": null, "status": "ok", "value": 0.11372579784537849}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e04ba7f9fea0cc3749733ea", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e04ba7f9fea0cc3749733ea/pipeline/l0_result.json", "sha256": "b31d12276c443c5ef0042cf7beb9ab27dc460cfedaa5207ede66da1ce0bd347d", "size_bytes": 12269}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e04ba7f9fea0cc3749733ea/inputs/pfull/asset_manifest.json", "sha256": "5546ad5698f89898b0b4a142a3397316e77b5a208aac0c3591c14e688fbd4012", "size_bytes": 7878}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e04ba7f9fea0cc3749733ea/renders/r0_candidate_03.png", "sha256": "6b8336ccf8673b9aff35cf8454d90d2bfc127a4e58824f84da142bb223bb318e", "size_bytes": 467165}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e04ba7f9fea0cc3749733ea/inputs/r3/r3_asset_manifest.json", "sha256": "e3e02a626b80976a6db65f1780dab42d49dec83fea4925d127db04feb1146280", "size_bytes": 6918}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "0b5704c079b459eb692f7be2e79dbd670c078e3f06cc039a92cdfb27df134d72", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1380.0, 140.0, 420.0, 236.0], "bbox_xyxy_clipped": [1380.0, 140.0, 1800.0, 376.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1468.0, 336.0, 330.0, 220.0], "bbox_xyxy_clipped": [1468.0, 336.0, 1798.0, 556.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1328.0, 500.0, 300.0, 325.0], "bbox_xyxy_clipped": [1328.0, 500.0, 1628.0, 825.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1548.0, 60.0, 260.0, 361.0], "bbox_xyxy_clipped": [1548.0, 60.0, 1808.0, 421.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1260.0, 112.0, 180.0, 357.0], "bbox_xyxy_clipped": [1260.0, 112.0, 1440.0, 469.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [140.0, 842.0, 360.0, 109.0], "bbox_xyxy_clipped": [140.0, 842.0, 500.0, 951.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [240.0, 742.0, 520.0, 71.0], "bbox_xyxy_clipped": [240.0, 742.0, 760.0, 813.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [160.0, 246.0, 560.0, 226.0], "bbox_xyxy_clipped": [160.0, 246.0, 720.0, 472.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [170.0, 612.0, 90.0, 59.0], "bbox_xyxy_clipped": [170.0, 612.0, 260.0, 671.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [176.0, 420.0, 420.0, 98.0], "bbox_xyxy_clipped": [176.0, 420.0, 596.0, 518.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [170.0, 558.0, 360.0, 85.0], "bbox_xyxy_clipped": [170.0, 558.0, 530.0, 643.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1210.0, 766.0, 680.0, 15.0], "bbox_xyxy_clipped": [1210.0, 766.0, 1890.0, 781.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025314564153998353}, "Ove": {"reason": null, "status": "ok", "value": 0.09192663566914167}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5e0621989fea0cc3748583f6", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0621989fea0cc3748583f6/pipeline/l0_result.json", "sha256": "d03732cdfe13ce82b24a191550d0f6a01095b25cd475f820a45164aeff23b301", "size_bytes": 12598}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0621989fea0cc3748583f6/inputs/pfull/asset_manifest.json", "sha256": "ac01a9186e4c96ddc1ab58b1abd27a9efa13fe2acd1c29afa5ed26165e3c2491", "size_bytes": 6444}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0621989fea0cc3748583f6/renders/r0_candidate_03.png", "sha256": "0b5704c079b459eb692f7be2e79dbd670c078e3f06cc039a92cdfb27df134d72", "size_bytes": 152737}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0621989fea0cc3748583f6/inputs/r3/r3_asset_manifest.json", "sha256": "3a9bf3f8faf9b2920c1950474de4560c2211725d6e782f741f578b7949396e7e", "size_bytes": 5775}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "e265a1a42a8178d20316a0d045de7acf2159a0f5513bd186ba03e23ec5f235ed", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 10, "valid": 10}, "elements": [{"asset_id": "asset_0008", "bbox_lwh_raw": [65.0, 84.0, 950.0, 729.0], "bbox_xyxy_clipped": [65.0, 84.0, 1015.0, 813.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [92.0, 110.0, 896.0, 688.0], "bbox_xyxy_clipped": [92.0, 110.0, 988.0, 798.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [238.0, 227.0, 603.0, 378.0], "bbox_xyxy_clipped": [238.0, 227.0, 841.0, 605.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [243.0, 129.0, 594.0, 86.0], "bbox_xyxy_clipped": [243.0, 129.0, 837.0, 215.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [278.0, 204.0, 525.0, 90.0], "bbox_xyxy_clipped": [278.0, 204.0, 803.0, 294.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [90.0, 847.0, 372.0, 76.0], "bbox_xyxy_clipped": [90.0, 847.0, 462.0, 923.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [92.0, 927.0, 360.0, 64.0], "bbox_xyxy_clipped": [92.0, 927.0, 452.0, 991.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [468.0, 861.0, 112.0, 124.0], "bbox_xyxy_clipped": [468.0, 861.0, 580.0, 985.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [706.0, 852.0, 289.0, 52.0], "bbox_xyxy_clipped": [706.0, 852.0, 995.0, 904.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [690.0, 914.0, 325.0, 39.0], "bbox_xyxy_clipped": [690.0, 914.0, 1015.0, 953.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003266716836096495}, "Ove": {"reason": null, "status": "ok", "value": 0.20994450203389764}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e0d99499fea0cc374a71bcc", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0d99499fea0cc374a71bcc/pipeline/l0_result.json", "sha256": "41dc68212a0f0cfbd9679d161b176185eba1402576f68efabf6e268bc3bb80c3", "size_bytes": 9350}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0d99499fea0cc374a71bcc/inputs/pfull/asset_manifest.json", "sha256": "ed93578a33a541229717e9f7c080241aa8fa4781a58adf7c1468e7822a1ba792", "size_bytes": 5429}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0d99499fea0cc374a71bcc/renders/r0_candidate_03.png", "sha256": "e265a1a42a8178d20316a0d045de7acf2159a0f5513bd186ba03e23ec5f235ed", "size_bytes": 321175}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e0d99499fea0cc374a71bcc/inputs/r3/r3_asset_manifest.json", "sha256": "16e279e8e4cbf397caa093d68a1bb00628448aa0eea780cd872733571f971db7", "size_bytes": 4941}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "7240d3ec026fc6e53d79299caf8be0e046f7195f68d54be3b8f4e43dda63c9d9", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [624.0, 120.0, 360.0, 345.0], "bbox_xyxy_clipped": [624.0, 120.0, 984.0, 465.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [620.0, 230.0, 360.0, 519.0], "bbox_xyxy_clipped": [620.0, 230.0, 980.0, 749.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [648.0, 270.0, 300.0, 432.0], "bbox_xyxy_clipped": [648.0, 270.0, 948.0, 702.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [698.0, 710.0, 280.0, 58.0], "bbox_xyxy_clipped": [698.0, 710.0, 978.0, 768.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [90.0, 355.0, 390.0, 187.0], "bbox_xyxy_clipped": [90.0, 355.0, 480.0, 542.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 545.0, 350.0, 154.0], "bbox_xyxy_clipped": [92.0, 545.0, 442.0, 699.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [90.0, 900.0, 230.0, 32.0], "bbox_xyxy_clipped": [90.0, 900.0, 320.0, 932.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0018446662809463497}, "Ove": {"reason": null, "status": "ok", "value": 0.2025626813593318}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e202d829fea0cc3744908a8", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e202d829fea0cc3744908a8/pipeline/l0_result.json", "sha256": "0cdf7d9414eb58fb406db53b9af5674dc5ecabe464bbba1d3bb0e75672f8e175", "size_bytes": 7364}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e202d829fea0cc3744908a8/inputs/pfull/asset_manifest.json", "sha256": "70ff65c1333df69cedcfe760ea138024324949d1a4046d7abc4eebba2e0d1c11", "size_bytes": 3899}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e202d829fea0cc3744908a8/renders/r0_candidate_02.png", "sha256": "7240d3ec026fc6e53d79299caf8be0e046f7195f68d54be3b8f4e43dda63c9d9", "size_bytes": 207610}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e202d829fea0cc3744908a8/inputs/r3/r3_asset_manifest.json", "sha256": "0e52ebb63bf2b65a54d1e7b0453800d9f998d3961e0f55132331160f9cdd7f32", "size_bytes": 3496}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8dbafa7c31f800df564776096a1999d1e136ff873cd6caed220f5e0308964300", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 13, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [55.0, 120.0, 430.0, 287.0], "bbox_xyxy_clipped": [55.0, 120.0, 485.0, 407.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [16.0, 250.0, 340.0, 367.0], "bbox_xyxy_clipped": [16.0, 250.0, 356.0, 617.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [56.0, 580.0, 250.0, 271.0], "bbox_xyxy_clipped": [56.0, 580.0, 306.0, 851.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [80.0, 960.0, 700.0, 109.0], "bbox_xyxy_clipped": [80.0, 960.0, 780.0, 1069.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [78.0, 1100.0, 620.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0011", "bbox_lwh_raw": [95.0, 1128.0, 580.0, 3.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0012", "bbox_lwh_raw": [130.0, 1160.0, 540.0, 20.0], "bbox_xyxy_clipped": [130.0, 1160.0, 670.0, 1180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [646.0, 190.0, 340.0, 109.0], "bbox_xyxy_clipped": [646.0, 190.0, 986.0, 299.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [700.0, 345.0, 250.0, 89.0], "bbox_xyxy_clipped": [700.0, 345.0, 950.0, 434.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [648.0, 510.0, 360.0, 29.0], "bbox_xyxy_clipped": [648.0, 510.0, 1008.0, 539.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [648.0, 680.0, 325.0, 107.0], "bbox_xyxy_clipped": [648.0, 680.0, 973.0, 787.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [648.0, 845.0, 335.0, 101.0], "bbox_xyxy_clipped": [648.0, 845.0, 983.0, 946.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [750.0, 1760.0, 240.0, 24.0], "bbox_xyxy_clipped": [750.0, 1760.0, 990.0, 1784.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0025623251552809472}, "Ove": {"reason": null, "status": "ok", "value": 0.02596882509977191}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e2031da9fea0cc37450dd01", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e2031da9fea0cc37450dd01/pipeline/l0_result.json", "sha256": "aa95d850189e38978e979cc63a54347a5a7ec7d2b4a443226efe497c108a0ba7", "size_bytes": 10823}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e2031da9fea0cc37450dd01/inputs/pfull/asset_manifest.json", "sha256": "acb78cb8b3d0121b3babc586a7a5a78ce5b7dc7f0c2b29096f01b3236e9b8c9f", "size_bytes": 6916}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e2031da9fea0cc37450dd01/renders/r0_candidate_02.png", "sha256": "8dbafa7c31f800df564776096a1999d1e136ff873cd6caed220f5e0308964300", "size_bytes": 363605}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e2031da9fea0cc37450dd01/inputs/r3/r3_asset_manifest.json", "sha256": "9610389072e7fd5cf44a0268cf9df3d8d7441ac1a4fe32a6927fb199dbdeb0b7", "size_bytes": 6174}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "954faac225841c9483cb99aa78fd9e57223778946ecbce7bd99e8cf1ced02d41", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 2, "raw": 11, "valid": 9}, "elements": [{"asset_id": "asset_0001", "bbox_lwh_raw": [15.0, 70.0, 520.0, 415.0], "bbox_xyxy_clipped": [15.0, 70.0, 535.0, 485.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [60.0, 520.0, 390.0, 530.0], "bbox_xyxy_clipped": [60.0, 520.0, 450.0, 1050.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [690.0, 120.0, 430.0, 163.0], "bbox_xyxy_clipped": [690.0, 120.0, 1120.0, 283.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [690.0, 60.0, 300.0, 164.0], "bbox_xyxy_clipped": [690.0, 60.0, 990.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [690.0, 285.0, 270.0, 83.0], "bbox_xyxy_clipped": [690.0, 285.0, 960.0, 368.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [690.0, 392.0, 430.0, 225.0], "bbox_xyxy_clipped": [690.0, 392.0, 1120.0, 617.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [690.0, 1570.0, 360.0, 37.0], "bbox_xyxy_clipped": [690.0, 1570.0, 1050.0, 1607.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [0.0, 0.0, 95.0, 440.0], "bbox_xyxy_clipped": [0.0, 0.0, 95.0, 440.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [86.0, 0.0, 54.0, 64.0], "bbox_xyxy_clipped": [86.0, 0.0, 140.0, 64.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 1470.0, 95.0, 9.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0009", "bbox_lwh_raw": [0.0, 1510.0, 95.0, 9.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.002819847959538574}, "Ove": {"reason": null, "status": "ok", "value": 0.05521105080396771}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5e28090f9fea0cc3748fc62a", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e28090f9fea0cc3748fc62a/pipeline/l0_result.json", "sha256": "a584ebce27541a6da307892f0cddd1151319cb2d723e266d9921d7cac99f9d89", "size_bytes": 9308}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e28090f9fea0cc3748fc62a/inputs/pfull/asset_manifest.json", "sha256": "c9a588a2c0cec0f7e594e30ec74d280f3af067e95bca4b35c2043a19508c472b", "size_bytes": 6047}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e28090f9fea0cc3748fc62a/renders/r0_candidate_01.png", "sha256": "954faac225841c9483cb99aa78fd9e57223778946ecbce7bd99e8cf1ced02d41", "size_bytes": 324852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e28090f9fea0cc3748fc62a/inputs/r3/r3_asset_manifest.json", "sha256": "2238316e5fa51e798adb0edb777c04f5fdaecba39f12e6d382f218858d30f15d", "size_bytes": 5419}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "a3f13c920fbb95ab96fbdf54cee3ea752b7647d4e33969f4e9ec57f15633573f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "3b41f2ec7aa4d5b8818ae47fa4f6584bb208c30cdf00562414a6317e4ee18070", "canvas": {"height": 612, "width": 792}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 12, "valid": 12}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [58.0, 52.0, 676.0, 978.0], "bbox_xyxy_clipped": [58.0, 52.0, 734.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [58.0, 52.0, 676.0, 2492.0], "bbox_xyxy_clipped": [58.0, 52.0, 734.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [58.0, 52.0, 676.0, 8552.0], "bbox_xyxy_clipped": [58.0, 52.0, 734.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [58.0, 52.0, 676.0, 40.0], "bbox_xyxy_clipped": [58.0, 52.0, 734.0, 92.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [157.0, 54.0, 478.0, 108.0], "bbox_xyxy_clipped": [157.0, 54.0, 635.0, 162.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [201.0, 168.0, 390.0, 64.0], "bbox_xyxy_clipped": [201.0, 168.0, 591.0, 232.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [192.0, 228.0, 409.0, 150.0], "bbox_xyxy_clipped": [192.0, 228.0, 601.0, 378.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [237.0, 512.0, 317.0, 40.0], "bbox_xyxy_clipped": [237.0, 512.0, 554.0, 552.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [136.0, 396.0, 520.0, 54.0], "bbox_xyxy_clipped": [136.0, 396.0, 656.0, 450.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [28.0, 414.0, 270.0, 524.0], "bbox_xyxy_clipped": [28.0, 414.0, 298.0, 612.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [76.0, 598.0, 640.0, 2.0], "bbox_xyxy_clipped": [76.0, 598.0, 716.0, 600.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [76.0, 548.0, 640.0, 6.0], "bbox_xyxy_clipped": [76.0, 548.0, 716.0, 554.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.006192135179616385}, "Ove": {"reason": null, "status": "ok", "value": 0.4659021135187203}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "01748acae88359682970cac43bc46e72928c52e46ec485fc11adbc6100db5f5e", "status": "computed"}, "sample_id": "5e6f770e4b3890eb07175aee", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e6f770e4b3890eb07175aee/pipeline/l0_result.json", "sha256": "cbcc6328a285dc2294be8a998ee95d8ce5aaff3057739af29669a12f4fb0e7bf", "size_bytes": 11372}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e6f770e4b3890eb07175aee/inputs/pfull/asset_manifest.json", "sha256": "1832a951b98f655eecc2fe7eb102d5aeea6e6555b33b5f46b879c92ccd056cbb", "size_bytes": 6487}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e6f770e4b3890eb07175aee/renders/r0_candidate_03.png", "sha256": "a3f13c920fbb95ab96fbdf54cee3ea752b7647d4e33969f4e9ec57f15633573f", "size_bytes": 155093}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e6f770e4b3890eb07175aee/inputs/r3/r3_asset_manifest.json", "sha256": "43614ecd88f013256401cd25fd8dddf3b2ca2fc94765d8e61fe050b208bbe3bb", "size_bytes": 5749}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "86df4178e66121c6059aed4b0eaf322b85cdf482b7679343577f5fdf893f7cb9", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [63.0, 73.0, 289.0, 262.0], "bbox_xyxy_clipped": [63.0, 73.0, 352.0, 335.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [318.0, 134.0, 247.0, 273.0], "bbox_xyxy_clipped": [318.0, 134.0, 565.0, 407.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [130.0, 451.0, 318.0, 137.0], "bbox_xyxy_clipped": [130.0, 451.0, 448.0, 588.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [63.0, 99.0, 360.0, 446.0], "bbox_xyxy_clipped": [63.0, 99.0, 423.0, 545.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [300.0, 191.0, 330.0, 361.0], "bbox_xyxy_clipped": [300.0, 191.0, 630.0, 552.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [582.0, 719.0, 346.0, 111.0], "bbox_xyxy_clipped": [582.0, 719.0, 928.0, 830.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [577.0, 840.0, 438.0, 95.0], "bbox_xyxy_clipped": [577.0, 840.0, 1015.0, 935.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [706.0, 949.0, 286.0, 73.0], "bbox_xyxy_clipped": [706.0, 949.0, 992.0, 1022.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00429774632928761}, "Ove": {"reason": null, "status": "ok", "value": 0.1852185021542471}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8762404b3890eb0782ad22", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8762404b3890eb0782ad22/pipeline/l0_result.json", "sha256": "7499ec1d57862b3953c7ecf252919a291477faf0fddd9f54aa92ef56fa948189", "size_bytes": 7764}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8762404b3890eb0782ad22/inputs/pfull/asset_manifest.json", "sha256": "9b00fbd5b12cdb53901d9029f22330eb0768bdcd972240665c2785afbaa2387d", "size_bytes": 4445}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8762404b3890eb0782ad22/renders/r0_candidate_01.png", "sha256": "86df4178e66121c6059aed4b0eaf322b85cdf482b7679343577f5fdf893f7cb9", "size_bytes": 130421}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8762404b3890eb0782ad22/inputs/r3/r3_asset_manifest.json", "sha256": "8f1d62c963d6cf0223bd9f892e6f7e584333e41a16835d6a46cdf5307a9c15ca", "size_bytes": 3950}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "bb3eb1029f71c6100b11e038a89aba609263fdc25e7f8260dd2cba696f8bfae8", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [670.0, 56.0, 365.0, 330.0], "bbox_xyxy_clipped": [670.0, 56.0, 1035.0, 386.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [742.0, 178.0, 300.0, 331.0], "bbox_xyxy_clipped": [742.0, 178.0, 1042.0, 509.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [625.0, 1112.0, 418.0, 179.0], "bbox_xyxy_clipped": [625.0, 1112.0, 1043.0, 1291.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [76.0, 162.0, 428.0, 114.0], "bbox_xyxy_clipped": [76.0, 162.0, 504.0, 276.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [86.0, 300.0, 362.0, 111.0], "bbox_xyxy_clipped": [86.0, 300.0, 448.0, 411.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [86.0, 414.0, 498.0, 100.0], "bbox_xyxy_clipped": [86.0, 414.0, 584.0, 514.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [63.0, 1030.0, 459.0, 567.0], "bbox_xyxy_clipped": [63.0, 1030.0, 522.0, 1597.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [550.0, 1120.0, 431.0, 472.0], "bbox_xyxy_clipped": [550.0, 1120.0, 981.0, 1592.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.005595875041400019}, "Ove": {"reason": null, "status": "ok", "value": 0.08297632206234934}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e8d96cb4b3890eb071c683d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8d96cb4b3890eb071c683d/pipeline/l0_result.json", "sha256": "8f88a9f9c068e67a32b21d6014f612139008edaebc5b6870eb5723a4b8ede761", "size_bytes": 7877}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8d96cb4b3890eb071c683d/inputs/pfull/asset_manifest.json", "sha256": "c08a3288695c1ca2e1bc34c5b0dc1f83a4efb8d105096cd5a9ee979c2b8f9224", "size_bytes": 4449}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8d96cb4b3890eb071c683d/renders/r0_candidate_03.png", "sha256": "bb3eb1029f71c6100b11e038a89aba609263fdc25e7f8260dd2cba696f8bfae8", "size_bytes": 193328}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8d96cb4b3890eb071c683d/inputs/r3/r3_asset_manifest.json", "sha256": "c7bb295af7b5929c376357a30c687abe81c4e4a3b7ba1283ab70b43691fee778", "size_bytes": 3943}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "91f897f2ff205b74e2322a79fe406d8937d8bd4056461ce9cd23f3f18255b15c", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6534083eb4a3054c92e509fc87a987a79155216c49f67d4d1f9fccae7a335933", "canvas": {"height": 1080, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 15, "valid": 15}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [76.0, 86.0, 364.0, 317.0], "bbox_xyxy_clipped": [76.0, 86.0, 440.0, 403.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [146.0, 128.0, 250.0, 216.0], "bbox_xyxy_clipped": [146.0, 128.0, 396.0, 344.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [265.0, 171.0, 176.0, 181.0], "bbox_xyxy_clipped": [265.0, 171.0, 441.0, 352.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [104.0, 84.0, 318.0, 311.0], "bbox_xyxy_clipped": [104.0, 84.0, 422.0, 395.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [381.0, 145.0, 210.0, 187.0], "bbox_xyxy_clipped": [381.0, 145.0, 591.0, 332.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [486.0, 208.0, 150.0, 150.0], "bbox_xyxy_clipped": [486.0, 208.0, 636.0, 358.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [604.0, 129.0, 175.0, 361.0], "bbox_xyxy_clipped": [604.0, 129.0, 779.0, 490.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [718.0, 236.0, 150.0, 200.0], "bbox_xyxy_clipped": [718.0, 236.0, 868.0, 436.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [804.0, 116.0, 190.0, 106.0], "bbox_xyxy_clipped": [804.0, 116.0, 994.0, 222.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [684.0, 436.0, 210.0, 229.0], "bbox_xyxy_clipped": [684.0, 436.0, 894.0, 665.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [514.0, 68.0, 250.0, 151.0], "bbox_xyxy_clipped": [514.0, 68.0, 764.0, 219.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [648.0, 724.0, 238.0, 124.0], "bbox_xyxy_clipped": [648.0, 724.0, 886.0, 848.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [644.0, 838.0, 278.0, 101.0], "bbox_xyxy_clipped": [644.0, 838.0, 922.0, 939.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [646.0, 912.0, 310.0, 55.0], "bbox_xyxy_clipped": [646.0, 912.0, 956.0, 967.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [746.0, 1002.0, 286.0, 34.0], "bbox_xyxy_clipped": [746.0, 1002.0, 1032.0, 1036.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.006034662060585178}, "Occ": {"reason": null, "status": "ok", "value": 0.003260280053871531}, "Ove": {"reason": null, "status": "ok", "value": 0.27536431425285524}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "f1d5d6f35f96d7b8db8cf92f95c34b5045d2d89f0da6d3e880bf89ad800e7e48", "status": "computed"}, "sample_id": "5e8ef9fb4b3890eb0760bade", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8ef9fb4b3890eb0760bade/pipeline/l0_result.json", "sha256": "565dfac8e86e09385b1622dd8ed32c0dcb52b4f8da5d2e1e63252db6323696fd", "size_bytes": 12820}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8ef9fb4b3890eb0760bade/inputs/pfull/asset_manifest.json", "sha256": "36609658016921188bfabb4517c28a2384444f2b787d0cb68646fa6ed0dea9dd", "size_bytes": 7875}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8ef9fb4b3890eb0760bade/renders/r0_candidate_01.png", "sha256": "91f897f2ff205b74e2322a79fe406d8937d8bd4056461ce9cd23f3f18255b15c", "size_bytes": 101721}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e8ef9fb4b3890eb0760bade/inputs/r3/r3_asset_manifest.json", "sha256": "96b6f584f37211b3ad4b4ac7c31a91186f7079573974738ebce9f846e01074d2", "size_bytes": 6789}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "4553df827df24bbcbce1a9df888d83215af0048d6bb021a485e90a66c7294a98", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "asset_size_bytes": 3291, "kind": "asset", "pfull_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "r3_asset_sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "12d1629a8b4ed95adbcbddf05c3c8b8fca07cab0f9ad5bec55b4f2c035b18c5b", "canvas": {"height": 512, "width": 1024}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0002", "bbox_lwh_raw": [58.0, 62.0, 170.0, 233.0], "bbox_xyxy_clipped": [58.0, 62.0, 228.0, 295.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [20.0, 72.0, 120.0, 54.0], "bbox_xyxy_clipped": [20.0, 72.0, 140.0, 126.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [238.0, 42.0, 406.0, 244.0], "bbox_xyxy_clipped": [238.0, 42.0, 644.0, 286.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [252.0, 54.0, 276.0, 41.0], "bbox_xyxy_clipped": [252.0, 54.0, 528.0, 95.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [286.0, 145.0, 198.0, 40.0], "bbox_xyxy_clipped": [286.0, 145.0, 484.0, 185.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [736.0, 34.0, 244.0, 29.0], "bbox_xyxy_clipped": [736.0, 34.0, 980.0, 63.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [316.0, 190.0, 620.0, 276.0], "bbox_xyxy_clipped": [316.0, 190.0, 936.0, 466.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.005943425887826177}, "Occ": {"reason": null, "status": "ok", "value": 0.09724081495665092}, "Ove": {"reason": null, "status": "ok", "value": 0.06176830755325023}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "5dd5d0915de07635d7a6ccb9968e083eb823f99b04cc92403f740ee66aed5181", "status": "computed"}, "sample_id": "5e90704d499b85dcc7d7114d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/pipeline/l0_result.json", "sha256": "e185016b334b41ee23a1544eca3b7b1432c8335b4898e256b9abba76a02cf39b", "size_bytes": 8327}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/asset_manifest.json", "sha256": "28e4c3fb7e56eba4607851d6f30d63da6ddd73a00a2832518b9b2e1839b1d485", "size_bytes": 4503}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/renders/r0_candidate_02.png", "sha256": "4553df827df24bbcbce1a9df888d83215af0048d6bb021a485e90a66c7294a98", "size_bytes": 87693}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/inputs/r3/r3_asset_manifest.json", "sha256": "5f8ed0a27c37d5f18ac4ea535f80b5d940169820abef83e19a7f3e9cb8084f0e", "size_bytes": 3999}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e90704d499b85dcc7d7114d/inputs/pfull/assets/asset_0000.png", "sha256": "1581bb4b46b58a74b3c4d8101ae5c22176211a5867711e44fc512fe6e3f0bc6b", "size_bytes": 3291}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "22d8d93745bdaf42a6b0dd170f3027ab499e3d707072d659ef45fa1e40bb5bb3", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 7, "valid": 7}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [40.0, 80.0, 520.0, 925.0], "bbox_xyxy_clipped": [40.0, 80.0, 560.0, 1005.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [70.0, 150.0, 460.0, 443.0], "bbox_xyxy_clipped": [70.0, 150.0, 530.0, 593.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [110.0, 690.0, 320.0, 73.0], "bbox_xyxy_clipped": [110.0, 690.0, 430.0, 763.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [55.0, 210.0, 460.0, 37.0], "bbox_xyxy_clipped": [55.0, 210.0, 515.0, 247.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [55.0, 265.0, 290.0, 35.0], "bbox_xyxy_clipped": [55.0, 265.0, 345.0, 300.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [55.0, 315.0, 210.0, 47.0], "bbox_xyxy_clipped": [55.0, 315.0, 265.0, 362.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [575.0, 980.0, 465.0, 520.0], "bbox_xyxy_clipped": [575.0, 980.0, 1040.0, 1500.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0023469522346365695}, "Ove": {"reason": null, "status": "ok", "value": 0.10310572594154939}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5e984f83499b85dcc792f6be", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e984f83499b85dcc792f6be/pipeline/l0_result.json", "sha256": "8cca1a878c783bc2bb249fbb0e6ace5704b1653c3a8f7ec4916a63a03e2f3e2a", "size_bytes": 7739}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e984f83499b85dcc792f6be/inputs/pfull/asset_manifest.json", "sha256": "257ab5c8b475b3a687c30fde70c9e35e063eef3e036a7369c790e1b8f5f70942", "size_bytes": 3898}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e984f83499b85dcc792f6be/renders/r0_candidate_03.png", "sha256": "22d8d93745bdaf42a6b0dd170f3027ab499e3d707072d659ef45fa1e40bb5bb3", "size_bytes": 299246}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5e984f83499b85dcc792f6be/inputs/r3/r3_asset_manifest.json", "sha256": "ae0912d17f95e798b318eed523ffa4f753638ab128983a6e4b862fbf938611dc", "size_bytes": 3482}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "064acb64024c55ce8f2c7f04c3451f291a95deb76c29d76af4b75c63bf5afa29", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "397a93037c529bac24439b29b652a05652b355403d4533d9237146b7b5cbc2b3", "canvas": {"height": 1920, "width": 1080}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0006", "bbox_lwh_raw": [28.0, 110.0, 360.0, 119.0], "bbox_xyxy_clipped": [28.0, 110.0, 388.0, 229.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [180.0, 205.0, 410.0, 90.0], "bbox_xyxy_clipped": [180.0, 205.0, 590.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [28.0, 310.0, 430.0, 69.0], "bbox_xyxy_clipped": [28.0, 310.0, 458.0, 379.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [600.0, 730.0, 420.0, 745.0], "bbox_xyxy_clipped": [600.0, 730.0, 1020.0, 1475.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [568.0, 640.0, 512.0, 254.0], "bbox_xyxy_clipped": [568.0, 640.0, 1080.0, 894.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [540.0, 900.0, 520.0, 181.0], "bbox_xyxy_clipped": [540.0, 900.0, 1060.0, 1081.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [650.0, 1090.0, 360.0, 142.0], "bbox_xyxy_clipped": [650.0, 1090.0, 1010.0, 1232.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [675.0, 1245.0, 340.0, 134.0], "bbox_xyxy_clipped": [675.0, 1245.0, 1015.0, 1379.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [632.0, 650.0, 420.0, 662.0], "bbox_xyxy_clipped": [632.0, 650.0, 1052.0, 1312.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0020405695406559296}, "Ove": {"reason": null, "status": "ok", "value": 0.25107259046878777}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "153c4a5d8fc03504eaff2e7127f114c0f89e439afc7945d1e0bb91512d2999da", "status": "computed"}, "sample_id": "5ea01126499b85dcc781e788", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea01126499b85dcc781e788/pipeline/l0_result.json", "sha256": "6f92864cb07a7f47c5b2fa3917faaa66957584c40a337d4d2c3fb262b75a02c1", "size_bytes": 9206}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea01126499b85dcc781e788/inputs/pfull/asset_manifest.json", "sha256": "48c62f8acabdaf74a52592ed87c96ad0369ded56c48e928d49c1100706d12215", "size_bytes": 4870}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea01126499b85dcc781e788/renders/r0_candidate_03.png", "sha256": "064acb64024c55ce8f2c7f04c3451f291a95deb76c29d76af4b75c63bf5afa29", "size_bytes": 268838}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea01126499b85dcc781e788/inputs/r3/r3_asset_manifest.json", "sha256": "d0b3f6d544205bc252f156f451ebf58928a9f8935cca3e2c5c25c27fbc1fae4c", "size_bytes": 4275}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "2b45648b884c1493da8a59ad1b8dea4a4c629aaa9259df628902e552dfe867a1", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "6f2c365cac9a21773b6992ae36d468208e974274e32265f89c4f81899a294866", "canvas": {"height": 1683, "width": 1190}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 9, "valid": 9}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [85.0, 86.0, 520.0, 735.0], "bbox_xyxy_clipped": [85.0, 86.0, 605.0, 821.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [103.0, 91.0, 500.0, 100.0], "bbox_xyxy_clipped": [103.0, 91.0, 603.0, 191.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [104.0, 211.0, 470.0, 534.0], "bbox_xyxy_clipped": [104.0, 211.0, 574.0, 745.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [150.0, 760.0, 118.0, 1199.0], "bbox_xyxy_clipped": [150.0, 760.0, 268.0, 1683.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [238.0, 560.0, 714.0, 494.0], "bbox_xyxy_clipped": [238.0, 560.0, 952.0, 1054.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [97.0, 138.0, 154.0, 80.0], "bbox_xyxy_clipped": [97.0, 138.0, 251.0, 218.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [100.0, 223.0, 366.0, 72.0], "bbox_xyxy_clipped": [100.0, 223.0, 466.0, 295.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [99.0, 292.0, 401.0, 41.0], "bbox_xyxy_clipped": [99.0, 292.0, 500.0, 333.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [482.0, 1420.0, 348.0, 170.0], "bbox_xyxy_clipped": [482.0, 1420.0, 830.0, 1590.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.003285960964552584}, "Occ": {"reason": null, "status": "ok", "value": 0.0042069950821587545}, "Ove": {"reason": null, "status": "ok", "value": 0.17481294182047674}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d56be0cc88cf26b4aafbf594ac96a5b948fa34d7d25e3ef020743ea85c047c03", "status": "computed"}, "sample_id": "5ea2d990499b85dcc7aaeb92", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea2d990499b85dcc7aaeb92/pipeline/l0_result.json", "sha256": "65f0a4515fef5fcb368fdb3a5352c8622faba0becccbe7f217143e31c58a8a6d", "size_bytes": 8293}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea2d990499b85dcc7aaeb92/inputs/pfull/asset_manifest.json", "sha256": "c729d5b329da17f0c542eaa128b36435f51409bc6f186a9c2246e5eb398a81f4", "size_bytes": 4869}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea2d990499b85dcc7aaeb92/renders/r0_candidate_03.png", "sha256": "2b45648b884c1493da8a59ad1b8dea4a4c629aaa9259df628902e552dfe867a1", "size_bytes": 501307}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea2d990499b85dcc7aaeb92/inputs/r3/r3_asset_manifest.json", "sha256": "170f8df0afedacbabbfea0a1516129c779f30a1333217813031134a37b4ee209", "size_bytes": 4293}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "860d56e9da9fb42068d07b4d873b9643ebc85a4105d4d8d449f2da9e5c3e14ea", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "b0f8c67796a668e20de5a0ff5ebf873170d5d839291c1d2c2cb8dfd0ed377357", "canvas": {"height": 628, "width": 1200}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [675.0, 110.0, 455.0, 452.0], "bbox_xyxy_clipped": [675.0, 110.0, 1130.0, 562.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [705.0, 135.0, 390.0, 388.0], "bbox_xyxy_clipped": [705.0, 135.0, 1095.0, 523.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [835.0, 90.0, 284.0, 360.0], "bbox_xyxy_clipped": [835.0, 90.0, 1119.0, 450.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [862.0, 305.0, 248.0, 205.0], "bbox_xyxy_clipped": [862.0, 305.0, 1110.0, 510.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [790.0, 250.0, 410.0, 451.0], "bbox_xyxy_clipped": [790.0, 250.0, 1200.0, 628.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [86.0, 112.0, 350.0, 127.0], "bbox_xyxy_clipped": [86.0, 112.0, 436.0, 239.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [92.0, 264.0, 190.0, 220.0], "bbox_xyxy_clipped": [92.0, 264.0, 282.0, 484.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [86.0, 510.0, 300.0, 118.0], "bbox_xyxy_clipped": [86.0, 510.0, 386.0, 628.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00550964510497951}, "Ove": {"reason": null, "status": "ok", "value": 0.4918599070092439}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e5f6eb3e8578875dd65b45b9fb49b329a0247d79f7da325e3a4e00823acc4e1b", "status": "computed"}, "sample_id": "5ea97187499b85dcc7c45e3d", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea97187499b85dcc7c45e3d/pipeline/l0_result.json", "sha256": "bdbcafcad37db719e8b0976f6f1d669a2c5e0d42951d8d63c576ce21c6e46862", "size_bytes": 7992}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea97187499b85dcc7c45e3d/inputs/pfull/asset_manifest.json", "sha256": "7aac29f32bf8a88b2f8fbec55ef45fb44ca46575dc48b752ce654da4bc2a6177", "size_bytes": 4372}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea97187499b85dcc7c45e3d/renders/r0_candidate_03.png", "sha256": "860d56e9da9fb42068d07b4d873b9643ebc85a4105d4d8d449f2da9e5c3e14ea", "size_bytes": 106378}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5ea97187499b85dcc7c45e3d/inputs/r3/r3_asset_manifest.json", "sha256": "9637e36439323cacde605334ea1cf62e12d98a1d0de207c35d06ea0aab3ec158", "size_bytes": 3889}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "ae7b03a9583f2d0091e287f8e32b06491ece1200c455fec563e33ae43f13782a", "b0_slot_id": "r0_candidate_02", "background": {"asset_id": "asset_0000", "asset_ref": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "asset_size_bytes": 1034, "kind": "asset", "pfull_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "r3_asset_sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "renderer_contract": "R3 background_asset_ref", "rgb": null}, "background_array_sha256": "f93f6737b4650292700cfa9ecbf89cec44d8f4f79fb354516ad6384874ccf4e5", "canvas": {"height": 216, "width": 576}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [28.0, 24.0, 153.0, 127.0], "bbox_xyxy_clipped": [28.0, 24.0, 181.0, 151.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [28.0, 72.0, 140.0, 28.0], "bbox_xyxy_clipped": [28.0, 72.0, 168.0, 100.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [28.0, 116.0, 116.0, 24.0], "bbox_xyxy_clipped": [28.0, 116.0, 144.0, 140.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [28.0, 140.0, 84.0, 29.0], "bbox_xyxy_clipped": [28.0, 140.0, 112.0, 169.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [28.0, 181.0, 118.0, 25.0], "bbox_xyxy_clipped": [28.0, 181.0, 146.0, 206.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [150.0, 176.0, 25.0, 25.0], "bbox_xyxy_clipped": [150.0, 176.0, 175.0, 201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [0.0, 0.0, 2.0, 216.0], "bbox_xyxy_clipped": [0.0, 0.0, 2.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [389.0, 12.0, 187.0, 205.0], "bbox_xyxy_clipped": [389.0, 12.0, 576.0, 216.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00362843595679662}, "Ove": {"reason": null, "status": "ok", "value": 0.04864193127303765}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "cbe08409065657f5bdac6c69ca8b81365dd6465f8f1e073d688bdd940e5f261e", "status": "computed"}, "sample_id": "5f114599499b85dcc796da51", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/pipeline/l0_result.json", "sha256": "7b06e238429a97736e275fdad5da2f3e5c1b04e9c4607bd54959962d4dd66a7d", "size_bytes": 8145}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/inputs/pfull/asset_manifest.json", "sha256": "0660e48d2863be45106ce5e6a1595e5d25403a9a283f6425772907f48c4de591", "size_bytes": 4952}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/renders/r0_candidate_02.png", "sha256": "ae7b03a9583f2d0091e287f8e32b06491ece1200c455fec563e33ae43f13782a", "size_bytes": 133414}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/inputs/r3/r3_asset_manifest.json", "sha256": "0dd7678b1573448002c973b088e70b8cc10157c022c03ea399819747f4523e13", "size_bytes": 4451}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f114599499b85dcc796da51/inputs/pfull/assets/asset_0000.png", "sha256": "5c6372f6fef53e8591587365a549a6149f5943c078c0700613c344c7b473414e", "size_bytes": 1034}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "20c17ae0dc5bb37ddcefb1b337b1b45735b8956b127a0f737ce548a2b82c824f", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "7620a7c3b9e96e49e41d2d7005e790c4aec88f0e514e706423acc725e9874b64", "canvas": {"height": 841, "width": 595}, "element_counts": {"invalid_below_0_1pct": 12, "raw": 37, "valid": 25}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [338.0, 492.0, 235.0, 445.0], "bbox_xyxy_clipped": [338.0, 492.0, 573.0, 841.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [44.0, 52.0, 129.0, 684.0], "bbox_xyxy_clipped": [44.0, 52.0, 173.0, 736.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [49.0, 95.0, 72.0, 67.0], "bbox_xyxy_clipped": [49.0, 95.0, 121.0, 162.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [50.0, 214.0, 75.0, 76.0], "bbox_xyxy_clipped": [50.0, 214.0, 125.0, 290.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [49.0, 173.0, 73.0, 67.0], "bbox_xyxy_clipped": [49.0, 173.0, 122.0, 240.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [123.0, 173.0, 38.0, 186.0], "bbox_xyxy_clipped": [123.0, 173.0, 161.0, 359.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [126.0, 214.0, 41.0, 168.0], "bbox_xyxy_clipped": [126.0, 214.0, 167.0, 382.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [124.0, 95.0, 25.0, 213.0], "bbox_xyxy_clipped": [124.0, 95.0, 149.0, 308.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [50.0, 337.0, 74.0, 74.0], "bbox_xyxy_clipped": [50.0, 337.0, 124.0, 411.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [50.0, 445.0, 73.0, 80.0], "bbox_xyxy_clipped": [50.0, 445.0, 123.0, 525.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [50.0, 566.0, 74.0, 119.0], "bbox_xyxy_clipped": [50.0, 566.0, 124.0, 685.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [123.0, 445.0, 38.0, 186.0], "bbox_xyxy_clipped": [123.0, 445.0, 161.0, 631.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [124.0, 337.0, 38.0, 183.0], "bbox_xyxy_clipped": [124.0, 337.0, 162.0, 520.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [125.0, 566.0, 26.0, 180.0], "bbox_xyxy_clipped": [125.0, 566.0, 151.0, 746.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [45.0, 52.0, 79.0, 16.0], "bbox_xyxy_clipped": [45.0, 52.0, 124.0, 68.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [45.0, 159.0, 50.0, 17.0], "bbox_xyxy_clipped": [45.0, 159.0, 95.0, 176.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [45.0, 200.0, 75.0, 16.0], "bbox_xyxy_clipped": [45.0, 200.0, 120.0, 216.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [45.0, 414.0, 62.0, 16.0], "bbox_xyxy_clipped": [45.0, 414.0, 107.0, 430.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [45.0, 98.0, 53.0, 17.0], "bbox_xyxy_clipped": [45.0, 98.0, 98.0, 115.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [45.0, 555.0, 79.0, 17.0], "bbox_xyxy_clipped": [45.0, 555.0, 124.0, 572.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [48.0, 30.0, 282.0, 35.0], "bbox_xyxy_clipped": [48.0, 30.0, 330.0, 65.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [48.0, 603.0, 122.0, 31.0], "bbox_xyxy_clipped": [48.0, 603.0, 170.0, 634.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [48.0, 641.0, 102.0, 26.0], "bbox_xyxy_clipped": [48.0, 641.0, 150.0, 667.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [48.0, 10.0, 101.0, 24.0], "bbox_xyxy_clipped": [48.0, 10.0, 149.0, 34.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [48.0, 140.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0025", "bbox_lwh_raw": [48.0, 236.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0026", "bbox_lwh_raw": [48.0, 311.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0027", "bbox_lwh_raw": [48.0, 394.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0028", "bbox_lwh_raw": [48.0, 483.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0029", "bbox_lwh_raw": [48.0, 557.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0030", "bbox_lwh_raw": [48.0, 631.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0031", "bbox_lwh_raw": [48.0, 706.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0032", "bbox_lwh_raw": [48.0, 746.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0033", "bbox_lwh_raw": [48.0, 786.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0034", "bbox_lwh_raw": [48.0, 814.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0035", "bbox_lwh_raw": [48.0, 834.0, 170.0, 1.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0036", "bbox_lwh_raw": [48.0, 12.0, 30.0, 22.0], "bbox_xyxy_clipped": [48.0, 12.0, 78.0, 34.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00801395896198887}, "Ove": {"reason": null, "status": "ok", "value": 0.18688369542340527}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "e04e4f941ab84a58a796f823faaafea8a212e66f55008e43b1dd3a23a0e2b8a8", "status": "computed"}, "sample_id": "5f3b84c8a637ee11e32ee4c9", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f3b84c8a637ee11e32ee4c9/pipeline/l0_result.json", "sha256": "56dc7c339533827754e71df079c2fba2dc2c309a2ac62088f54f15f13bb618de", "size_bytes": 24105}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/pfull/asset_manifest.json", "sha256": "ac7f466f4e4535041fb13e5d26107aa0ea7f95562ecc91f3853d845cba1ea0a5", "size_bytes": 18959}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f3b84c8a637ee11e32ee4c9/renders/r0_candidate_03.png", "sha256": "20c17ae0dc5bb37ddcefb1b337b1b45735b8956b127a0f737ce548a2b82c824f", "size_bytes": 246167}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f3b84c8a637ee11e32ee4c9/inputs/r3/r3_asset_manifest.json", "sha256": "886200be453804bf5b5fb756688ce3280ce8c7bddc0b00ec99a3b60b5e8e03a3", "size_bytes": 16316}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "d1f4db7073a53a26b3d8b622ff2973b1697a9f68d960d88ad385b6a516cad028", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 8, "valid": 8}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [1235.0, 110.0, 605.0, 459.0], "bbox_xyxy_clipped": [1235.0, 110.0, 1840.0, 569.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1475.0, 175.0, 285.0, 387.0], "bbox_xyxy_clipped": [1475.0, 175.0, 1760.0, 562.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [115.0, 110.0, 545.0, 247.0], "bbox_xyxy_clipped": [115.0, 110.0, 660.0, 357.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [126.0, 118.0, 536.0, 241.0], "bbox_xyxy_clipped": [126.0, 118.0, 662.0, 359.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [118.0, 365.0, 530.0, 41.0], "bbox_xyxy_clipped": [118.0, 365.0, 648.0, 406.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [118.0, 690.0, 470.0, 47.0], "bbox_xyxy_clipped": [118.0, 690.0, 588.0, 737.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [118.0, 752.0, 410.0, 48.0], "bbox_xyxy_clipped": [118.0, 752.0, 528.0, 800.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [118.0, 812.0, 365.0, 55.0], "bbox_xyxy_clipped": [118.0, 812.0, 483.0, 867.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.001957116300567222}, "Ove": {"reason": null, "status": "ok", "value": 0.16680870973173917}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5f4c9d6fa637ee11e34ab88b", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f4c9d6fa637ee11e34ab88b/pipeline/l0_result.json", "sha256": "eb505b14beab869448b8a9e8b640326e76dd0086313903c051030660d9b29052", "size_bytes": 8481}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/pfull/asset_manifest.json", "sha256": "b7b6f49636886b55e2d9eb63939ff908bcd62802e63a2aafa6a10509086130d1", "size_bytes": 4485}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f4c9d6fa637ee11e34ab88b/renders/r0_candidate_03.png", "sha256": "d1f4db7073a53a26b3d8b622ff2973b1697a9f68d960d88ad385b6a516cad028", "size_bytes": 244788}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f4c9d6fa637ee11e34ab88b/inputs/r3/r3_asset_manifest.json", "sha256": "0ff10a1004abde9197ca661eb0032ec45d7c3192fec6fd8a23daa5f1181d4194", "size_bytes": 4157}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "f8146c04b94ea221a4360e1d72c1300fc8056c54d349b0bb21d6d1c8c33584a8", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 22, "valid": 22}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [120.0, 110.0, 980.0, 653.0], "bbox_xyxy_clipped": [120.0, 110.0, 1100.0, 763.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1060.0, 120.0, 420.0, 690.0], "bbox_xyxy_clipped": [1060.0, 120.0, 1480.0, 810.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1180.0, 820.0, 390.0, 640.0], "bbox_xyxy_clipped": [1180.0, 820.0, 1570.0, 1460.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1550.0, 110.0, 360.0, 590.0], "bbox_xyxy_clipped": [1550.0, 110.0, 1910.0, 700.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [1910.0, 760.0, 320.0, 356.0], "bbox_xyxy_clipped": [1910.0, 760.0, 2230.0, 1116.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [2210.0, 130.0, 360.0, 114.0], "bbox_xyxy_clipped": [2210.0, 130.0, 2570.0, 244.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [2440.0, 760.0, 220.0, 689.0], "bbox_xyxy_clipped": [2440.0, 760.0, 2660.0, 1449.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [2630.0, 130.0, 250.0, 78.0], "bbox_xyxy_clipped": [2630.0, 130.0, 2880.0, 208.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [1860.0, 150.0, 520.0, 100.0], "bbox_xyxy_clipped": [1860.0, 150.0, 2380.0, 250.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [1860.0, 270.0, 1000.0, 90.0], "bbox_xyxy_clipped": [1860.0, 270.0, 2860.0, 360.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1860.0, 430.0, 330.0, 75.0], "bbox_xyxy_clipped": [1860.0, 430.0, 2190.0, 505.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [1860.0, 520.0, 480.0, 180.0], "bbox_xyxy_clipped": [1860.0, 520.0, 2340.0, 700.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1860.0, 780.0, 330.0, 75.0], "bbox_xyxy_clipped": [1860.0, 780.0, 2190.0, 855.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [1860.0, 870.0, 540.0, 175.0], "bbox_xyxy_clipped": [1860.0, 870.0, 2400.0, 1045.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1860.0, 1100.0, 300.0, 75.0], "bbox_xyxy_clipped": [1860.0, 1100.0, 2160.0, 1175.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [1860.0, 1190.0, 530.0, 175.0], "bbox_xyxy_clipped": [1860.0, 1190.0, 2390.0, 1365.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1240.0, 740.0, 620.0, 101.0], "bbox_xyxy_clipped": [1240.0, 740.0, 1860.0, 841.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [2230.0, 680.0, 640.0, 100.0], "bbox_xyxy_clipped": [2230.0, 680.0, 2870.0, 780.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [2230.0, 1290.0, 600.0, 108.0], "bbox_xyxy_clipped": [2230.0, 1290.0, 2830.0, 1398.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [160.0, 60.0, 980.0, 1033.0], "bbox_xyxy_clipped": [160.0, 60.0, 1140.0, 1093.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [2020.0, 420.0, 860.0, 906.0], "bbox_xyxy_clipped": [2020.0, 420.0, 2880.0, 1326.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1980.0, 1040.0, 820.0, 873.0], "bbox_xyxy_clipped": [1980.0, 1040.0, 2800.0, 1913.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.00198002088690755}, "Ove": {"reason": null, "status": "ok", "value": 0.13529050661937356}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f5b5a3da637ee11e3e5adbf", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f5b5a3da637ee11e3e5adbf/pipeline/l0_result.json", "sha256": "7b8e224e6d2e88c17a68e6fc45cf646d5e2bfbd64980d356050962cb349ad4a2", "size_bytes": 15746}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/pfull/asset_manifest.json", "sha256": "7e01584fd1afde8cc32ea137ce2448d3856a17762d4609293a99762f7820d81c", "size_bytes": 11698}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f5b5a3da637ee11e3e5adbf/renders/r0_candidate_01.png", "sha256": "f8146c04b94ea221a4360e1d72c1300fc8056c54d349b0bb21d6d1c8c33584a8", "size_bytes": 2110370}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f5b5a3da637ee11e3e5adbf/inputs/r3/r3_asset_manifest.json", "sha256": "b402fd348976e56be0a85b7d5a993ffc4fa4b13e81795daff953b4319b30f3c7", "size_bytes": 10407}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "c98c43fd3b63b04a24916ad0fee7ea49e2a22d864e4ed6bea3fea5745bb73528", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "fa8e3254ff7fb422cc1290d4e1e426288b1afc8241fdda97cb54842e6a57716f", "canvas": {"height": 2000, "width": 3000}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 32, "valid": 32}, "elements": [{"asset_id": "asset_0003", "bbox_lwh_raw": [120.0, 180.0, 980.0, 1021.0], "bbox_xyxy_clipped": [120.0, 180.0, 1100.0, 1201.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1660.0, 120.0, 520.0, 104.0], "bbox_xyxy_clipped": [1660.0, 120.0, 2180.0, 224.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1660.0, 230.0, 1040.0, 457.0], "bbox_xyxy_clipped": [1660.0, 230.0, 2700.0, 687.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1660.0, 700.0, 1234.0, 277.0], "bbox_xyxy_clipped": [1660.0, 700.0, 2894.0, 977.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1660.0, 995.0, 1300.0, 152.0], "bbox_xyxy_clipped": [1660.0, 995.0, 2960.0, 1147.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [2260.0, 60.0, 16.0, 1880.0], "bbox_xyxy_clipped": [2260.0, 60.0, 2276.0, 1940.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [120.0, 60.0, 2860.0, 130.0], "bbox_xyxy_clipped": [120.0, 60.0, 2980.0, 190.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [120.0, 1230.0, 980.0, 186.0], "bbox_xyxy_clipped": [120.0, 1230.0, 1100.0, 1416.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0014", "bbox_lwh_raw": [120.0, 1448.0, 190.0, 55.0], "bbox_xyxy_clipped": [120.0, 1448.0, 310.0, 1503.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0018", "bbox_lwh_raw": [120.0, 1550.0, 320.0, 64.0], "bbox_xyxy_clipped": [120.0, 1550.0, 440.0, 1614.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0016", "bbox_lwh_raw": [120.0, 1626.0, 1148.0, 83.0], "bbox_xyxy_clipped": [120.0, 1626.0, 1268.0, 1709.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0017", "bbox_lwh_raw": [120.0, 1720.0, 171.0, 50.0], "bbox_xyxy_clipped": [120.0, 1720.0, 291.0, 1770.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0024", "bbox_lwh_raw": [1860.0, 1260.0, 320.0, 63.0], "bbox_xyxy_clipped": [1860.0, 1260.0, 2180.0, 1323.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0013", "bbox_lwh_raw": [1860.0, 1338.0, 1070.0, 144.0], "bbox_xyxy_clipped": [1860.0, 1338.0, 2930.0, 1482.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0025", "bbox_lwh_raw": [1860.0, 1496.0, 171.0, 50.0], "bbox_xyxy_clipped": [1860.0, 1496.0, 2031.0, 1546.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0015", "bbox_lwh_raw": [2420.0, 1180.0, 320.0, 65.0], "bbox_xyxy_clipped": [2420.0, 1180.0, 2740.0, 1245.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0019", "bbox_lwh_raw": [2420.0, 1260.0, 360.0, 104.0], "bbox_xyxy_clipped": [2420.0, 1260.0, 2780.0, 1364.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0020", "bbox_lwh_raw": [2420.0, 1376.0, 170.0, 49.0], "bbox_xyxy_clipped": [2420.0, 1376.0, 2590.0, 1425.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0021", "bbox_lwh_raw": [2380.0, 1540.0, 330.0, 66.0], "bbox_xyxy_clipped": [2380.0, 1540.0, 2710.0, 1606.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0022", "bbox_lwh_raw": [2380.0, 1620.0, 400.0, 109.0], "bbox_xyxy_clipped": [2380.0, 1620.0, 2780.0, 1729.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0023", "bbox_lwh_raw": [2380.0, 1740.0, 171.0, 48.0], "bbox_xyxy_clipped": [2380.0, 1740.0, 2551.0, 1788.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [2520.0, 1860.0, 200.0, 59.0], "bbox_xyxy_clipped": [2520.0, 1860.0, 2720.0, 1919.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0026", "bbox_lwh_raw": [2340.0, 1855.0, 180.0, 55.0], "bbox_xyxy_clipped": [2340.0, 1855.0, 2520.0, 1910.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0027", "bbox_lwh_raw": [2520.0, 1450.0, 170.0, 49.0], "bbox_xyxy_clipped": [2520.0, 1450.0, 2690.0, 1499.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0028", "bbox_lwh_raw": [2160.0, 1470.0, 170.0, 49.0], "bbox_xyxy_clipped": [2160.0, 1470.0, 2330.0, 1519.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0029", "bbox_lwh_raw": [980.0, 1750.0, 170.0, 51.0], "bbox_xyxy_clipped": [980.0, 1750.0, 1150.0, 1801.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0030", "bbox_lwh_raw": [2460.0, 1450.0, 170.0, 49.0], "bbox_xyxy_clipped": [2460.0, 1450.0, 2630.0, 1499.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0031", "bbox_lwh_raw": [2580.0, 1740.0, 170.0, 49.0], "bbox_xyxy_clipped": [2580.0, 1740.0, 2750.0, 1789.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [1160.0, 1180.0, 520.0, 485.0], "bbox_xyxy_clipped": [1160.0, 1180.0, 1680.0, 1665.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [2460.0, 1180.0, 420.0, 347.0], "bbox_xyxy_clipped": [2460.0, 1180.0, 2880.0, 1527.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1840.0, 1160.0, 440.0, 384.0], "bbox_xyxy_clipped": [1840.0, 1160.0, 2280.0, 1544.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [2320.0, 1540.0, 470.0, 392.0], "bbox_xyxy_clipped": [2320.0, 1540.0, 2790.0, 1932.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0029513502112618276}, "Ove": {"reason": null, "status": "ok", "value": 0.08238937808275881}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "6177dc500f9e83bd84af5532590d48b77e8151e3dd916530db4dbf87df10b31c", "status": "computed"}, "sample_id": "5f644f40a637ee11e3669a1c", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f644f40a637ee11e3669a1c/pipeline/l0_result.json", "sha256": "153e876776d3657a52d6506c84d2058d48fb0eb9a005bd0b6d22e93aae847e09", "size_bytes": 25033}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f644f40a637ee11e3669a1c/inputs/pfull/asset_manifest.json", "sha256": "88bbc56206fd0b18526e6607d1f428fae0c928652214b505380eda9dad36ba04", "size_bytes": 17060}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f644f40a637ee11e3669a1c/renders/r0_candidate_01.png", "sha256": "c98c43fd3b63b04a24916ad0fee7ea49e2a22d864e4ed6bea3fea5745bb73528", "size_bytes": 1280520}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f644f40a637ee11e3669a1c/inputs/r3/r3_asset_manifest.json", "sha256": "1822a3ed214f8102dcb79e7a95b96a9450597e8e539c7e2ce6de1acf02354a97", "size_bytes": 15734}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "8ba0c00d839c5f55e7ed61048464c95ae42939055b17d5f58fa1181b3b989d02", "b0_slot_id": "r0_candidate_03", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "11217e9a8883c2f2e8529f1bb744f403fd69b979aa781cb901beeaeedf01a747", "canvas": {"height": 654, "width": 420}, "element_counts": {"invalid_below_0_1pct": 0, "raw": 13, "valid": 13}, "elements": [{"asset_id": "asset_0010", "bbox_lwh_raw": [28.0, 70.0, 131.0, 42.0], "bbox_xyxy_clipped": [28.0, 70.0, 159.0, 112.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0012", "bbox_lwh_raw": [150.0, 56.0, 144.0, 51.0], "bbox_xyxy_clipped": [150.0, 56.0, 294.0, 107.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [264.0, 72.0, 128.0, 53.0], "bbox_xyxy_clipped": [264.0, 72.0, 392.0, 125.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [22.0, 104.0, 228.0, 76.0], "bbox_xyxy_clipped": [22.0, 104.0, 250.0, 180.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [190.0, 112.0, 214.0, 69.0], "bbox_xyxy_clipped": [190.0, 112.0, 404.0, 181.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [52.0, 186.0, 207.0, 110.0], "bbox_xyxy_clipped": [52.0, 186.0, 259.0, 296.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0004", "bbox_lwh_raw": [294.0, 186.0, 95.0, 318.0], "bbox_xyxy_clipped": [294.0, 186.0, 389.0, 504.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [34.0, 287.0, 77.0, 196.0], "bbox_xyxy_clipped": [34.0, 287.0, 111.0, 483.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [120.0, 294.0, 215.0, 70.0], "bbox_xyxy_clipped": [120.0, 294.0, 335.0, 364.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [244.0, 290.0, 164.0, 108.0], "bbox_xyxy_clipped": [244.0, 290.0, 408.0, 398.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [22.0, 456.0, 62.0, 233.0], "bbox_xyxy_clipped": [22.0, 456.0, 84.0, 654.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [336.0, 432.0, 73.0, 190.0], "bbox_xyxy_clipped": [336.0, 432.0, 409.0, 622.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0000", "bbox_lwh_raw": [96.0, 250.0, 228.0, 342.0], "bbox_xyxy_clipped": [96.0, 250.0, 324.0, 592.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.0047375021661433675}, "Ove": {"reason": null, "status": "ok", "value": 0.12446516127897687}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "d09109066a15e44b18dd96cd5d5d3bf52cb21140804f0b9a19e9249c4795b48a", "status": "computed"}, "sample_id": "5f96aca7a637ee11e30bb517", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f96aca7a637ee11e30bb517/pipeline/l0_result.json", "sha256": "f3dbaee2ef85a1e4194a28699ec80461582c4197a22ae0f2d5de589dae559a0a", "size_bytes": 11623}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f96aca7a637ee11e30bb517/inputs/pfull/asset_manifest.json", "sha256": "10f8a29273b4026faa8e7b0b39749f61e93f59217034d8eb4dc5facad2c809d0", "size_bytes": 6785}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f96aca7a637ee11e30bb517/renders/r0_candidate_03.png", "sha256": "8ba0c00d839c5f55e7ed61048464c95ae42939055b17d5f58fa1181b3b989d02", "size_bytes": 117852}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5f96aca7a637ee11e30bb517/inputs/r3/r3_asset_manifest.json", "sha256": "43d6ff25a046f6641fd90cfa4fcf040b39ec781481a2337125bf911059178757", "size_bytes": 5899}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} +{"b0_render_sha256": "43fc354ae6920166be4119bbc14c9fdc37e8fd70c51061d6cda95862c63e9aed", "b0_slot_id": "r0_candidate_01", "background": {"asset_id": null, "asset_ref": null, "asset_sha256": null, "asset_size_bytes": null, "kind": "blank_canvas", "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", "rgb": [255, 255, 255]}, "background_array_sha256": "a6659c2977ff27e0ea947599f2c3c470553c679c59b384ccaba705114e51083b", "canvas": {"height": 1080, "width": 1920}, "element_counts": {"invalid_below_0_1pct": 1, "raw": 12, "valid": 11}, "elements": [{"asset_id": "asset_0000", "bbox_lwh_raw": [84.0, 60.0, 510.0, 1202.0], "bbox_xyxy_clipped": [84.0, 60.0, 594.0, 1080.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0001", "bbox_lwh_raw": [1450.0, 104.0, 56.0, 170.0], "bbox_xyxy_clipped": [1450.0, 104.0, 1506.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0002", "bbox_lwh_raw": [1514.0, 104.0, 56.0, 170.0], "bbox_xyxy_clipped": [1514.0, 104.0, 1570.0, 274.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0003", "bbox_lwh_raw": [1578.0, 104.0, 56.0, 32.0], "bbox_xyxy_clipped": null, "class_code": 2, "class_source": "pfull.placeable-raster", "valid": false}, {"asset_id": "asset_0004", "bbox_lwh_raw": [1642.0, 104.0, 53.0, 161.0], "bbox_xyxy_clipped": [1642.0, 104.0, 1695.0, 265.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0005", "bbox_lwh_raw": [1705.0, 104.0, 53.0, 156.0], "bbox_xyxy_clipped": [1705.0, 104.0, 1758.0, 260.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0006", "bbox_lwh_raw": [1769.0, 104.0, 56.0, 56.0], "bbox_xyxy_clipped": [1769.0, 104.0, 1825.0, 160.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0007", "bbox_lwh_raw": [1448.0, 522.0, 400.0, 44.0], "bbox_xyxy_clipped": [1448.0, 522.0, 1848.0, 566.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0008", "bbox_lwh_raw": [1530.0, 450.0, 8.0, 480.0], "bbox_xyxy_clipped": [1530.0, 450.0, 1538.0, 930.0], "class_code": 2, "class_source": "pfull.placeable-raster", "valid": true}, {"asset_id": "asset_0011", "bbox_lwh_raw": [1290.0, 318.0, 470.0, 265.0], "bbox_xyxy_clipped": [1290.0, 318.0, 1760.0, 583.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0010", "bbox_lwh_raw": [1294.0, 525.0, 430.0, 185.0], "bbox_xyxy_clipped": [1294.0, 525.0, 1724.0, 710.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}, {"asset_id": "asset_0009", "bbox_lwh_raw": [1296.0, 733.0, 206.0, 68.0], "bbox_xyxy_clipped": [1296.0, 733.0, 1502.0, 801.0], "class_code": 1, "class_source": "pfull.text-media", "valid": true}], "metrics": {"Ali": {"reason": null, "status": "ok", "value": 0.0}, "Occ": {"reason": null, "status": "ok", "value": 0.003625918133173071}, "Ove": {"reason": null, "status": "ok", "value": 0.03827779024000822}, "Rea": {"reason": null, "status": "ok", "value": 0.0}, "Und_l": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}, "Und_s": {"reason": "no reliable explicit cls=3 label", "status": "not_applicable", "value": null}}, "run_id": "a3-rel100-t3-01", "saliency": {"map_sha256": "7dc0f285c0e5df6150ecf9a1610a9cd3c9918965d09c62a841915f1df48d5707", "status": "computed"}, "sample_id": "5fbf5b4aa637ee11e3a82536", "source_artifacts": [{"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5fbf5b4aa637ee11e3a82536/pipeline/l0_result.json", "sha256": "2b2bb27e40e2542d3a4df9bb55c1ead430fff1d2afe749d92c6ae1dd7e164323", "size_bytes": 10454}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5fbf5b4aa637ee11e3a82536/inputs/pfull/asset_manifest.json", "sha256": "82dc6835a2d799cffbc905735133d7ab46dc9ee3e8d738fda4285be29d2c5bf3", "size_bytes": 6326}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5fbf5b4aa637ee11e3a82536/renders/r0_candidate_01.png", "sha256": "43fc354ae6920166be4119bbc14c9fdc37e8fd70c51061d6cda95862c63e9aed", "size_bytes": 516481}, {"path": "/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t3-01/samples/5fbf5b4aa637ee11e3a82536/inputs/r3/r3_asset_manifest.json", "sha256": "74f67075e0a45da005b0569b9d2b5a4e18381305b28e368a64e29a8272bdfb96", "size_bytes": 5491}], "status": "evaluated", "underlay_protocol": {"applicable": false, "label_source": "P-Full v1 has no legal underlay label", "raster_inference_forbidden": true, "valid_underlay_ids": []}} diff --git a/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/aggregate.json b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/aggregate.json new file mode 100644 index 000000000..5f3752bad --- /dev/null +++ b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/aggregate.json @@ -0,0 +1 @@ +{"bootstrap":{"confidence":0.95,"method":"percentile","note":"fresh np.random.default_rng(seed) per statistic","resamples":10000,"seed":20260712},"code_sha256":{"metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py":"a729cb96a923382d9df7dbd3b48c277c41db23fcaa883d16e6658a8a01e946c3","metagpt/ext/agentlayout/layout_tree_v3.py":"ecbf3e8c7a0f22c19ff3512b850337a9a4cb0db5aa5f57340598277362c5ed6d","metagpt/ext/agentlayout/tools/human_tree_metrics.py":"6672c822a2f2dbcd329573d8b51f430fc86d4839694ab1e8beba7a7a863cebf7"},"denominators":{"coverage_mismatch_ids":[],"n_certain_nodes_total":1284,"n_coverage_mismatch":0,"n_evaluated":99,"n_planner_failures":1,"n_sample_ids":100,"n_samples_with_uncertain_nodes":14,"n_uncertain_nodes_total":27,"planner_failure_ids":["5f644f40a637ee11e3669a1c"]},"evaluation_id":"a3-relation-n100-t2-tree-accuracy-v1","metrics":{"parent_child":{"macro":{"f1":{"ci95":{"confidence":0.95,"high":0.3819533508431979,"low":0.29796441442122035,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.33943209554495624,"n":99},"precision":{"ci95":{"confidence":0.95,"high":0.36054305351523314,"low":0.27997535258212897,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.319882255538675,"n":99},"recall":{"ci95":{"confidence":0.95,"high":0.4289282385010088,"low":0.3340444638748794,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.38102680870053757,"n":99}},"micro":{"f1_ci95":{"confidence":0.95,"high":0.3776332355168497,"low":0.2873960879946334,"method":"percentile","resamples":10000,"seed":20260712},"pooled":{"f1":0.3306636155606407,"n_predicted":943,"n_reference":805,"n_true_positive":289,"precision":0.3064687168610817,"recall":0.3590062111801242},"precision_ci95":{"confidence":0.95,"high":0.3534227694677387,"low":0.2639007708358155,"method":"percentile","resamples":10000,"seed":20260712},"recall_ci95":{"confidence":0.95,"high":0.40994822331868314,"low":0.31203884074728067,"method":"percentile","resamples":10000,"seed":20260712}}},"same_group":{"macro":{"f1":{"ci95":{"confidence":0.95,"high":0.6511580495676419,"low":0.5577961964085797,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.6043932799403757,"n":99},"precision":{"ci95":{"confidence":0.95,"high":0.8021759202332988,"low":0.695289484533655,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.7495036655763408,"n":99},"recall":{"ci95":{"confidence":0.95,"high":0.6336924050420016,"low":0.5215882585822856,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.5770431239692797,"n":99}},"micro":{"f1_ci95":{"confidence":0.95,"high":0.7383966299092487,"low":0.6081357611194388,"method":"percentile","resamples":10000,"seed":20260712},"pooled":{"f1":0.676382142030997,"n_predicted":1981,"n_reference":2342,"n_true_positive":1462,"precision":0.7380111055022716,"recall":0.6242527754056362},"precision_ci95":{"confidence":0.95,"high":0.81228177724995,"low":0.6608215353231999,"method":"percentile","resamples":10000,"seed":20260712},"recall_ci95":{"confidence":0.95,"high":0.7081720599006665,"low":0.5356443978579247,"method":"percentile","resamples":10000,"seed":20260712}}},"semantic_role_accuracy":{"macro":{"ci95":{"confidence":0.95,"high":0.0,"low":0.0,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.0,"n":99,"n_excluded_all_uncertain":0},"micro":{"ci95":{"confidence":0.95,"high":0.0,"low":0.0,"method":"percentile","resamples":10000,"seed":20260712},"n_nodes":1284,"pooled":0.0},"role":"lower_bound_only"},"semantic_type_accuracy":{"macro":{"ci95":{"confidence":0.95,"high":0.7762435233892803,"low":0.7113049918260367,"method":"percentile","resamples":10000,"seed":20260712},"mean":0.7437342727477925,"n":99,"n_excluded_all_uncertain":0},"micro":{"ci95":{"confidence":0.95,"high":0.7886199738739866,"low":0.7244785070872356,"method":"percentile","resamples":10000,"seed":20260712},"n_nodes":1284,"pooled":0.7577881619937694},"role":"primary"}},"oracle_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/relation100_oracle_trees","run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c","schema_version":"a3.tree-accuracy.v1"} diff --git a/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/evaluation_manifest.json b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/evaluation_manifest.json new file mode 100644 index 000000000..6f2a2d8e0 --- /dev/null +++ b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/evaluation_manifest.json @@ -0,0 +1 @@ +{"artifact_sha256":{"aggregate.json":"ffb9fcbe8c0eef8810d63b8e3cd7a8589adb4012e043c02bddcafe6e84dac499","per_sample.jsonl":"f60c4910ecd59ee78ba1f1f03898ea2afa549941252e7e5991a2f47914ab1c0a"},"bootstrap":{"confidence":0.95,"method":"percentile","note":"fresh np.random.default_rng(seed) per statistic","resamples":10000,"seed":20260712},"code_sha256":{"metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py":"a729cb96a923382d9df7dbd3b48c277c41db23fcaa883d16e6658a8a01e946c3","metagpt/ext/agentlayout/layout_tree_v3.py":"ecbf3e8c7a0f22c19ff3512b850337a9a4cb0db5aa5f57340598277362c5ed6d","metagpt/ext/agentlayout/tools/human_tree_metrics.py":"6672c822a2f2dbcd329573d8b51f430fc86d4839694ab1e8beba7a7a863cebf7"},"command_argv":["layout_agent/evaluate_a3_tree_accuracy.py","--run-dir","layout_agent/runs/a3/a3-rel100-t2-01","--oracle-dir","layout_agent/runs/a3/relation100_oracle_trees","--evaluation-id","a3-relation-n100-t2-tree-accuracy-v1","--output-root","layout_agent/evaluations/a3-tree-accuracy"],"created_at":"2026-07-12T09:44:03.843627+00:00","evaluation_id":"a3-relation-n100-t2-tree-accuracy-v1","input_tree_sha256":{"5888bb2995a7a863ddcc1f74":{"oracle":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","predicted":"ce2dc3f8a7eef46c3f739d6691658c0a66de503b5eb66cdc329972a6369ed77a"},"5888c54095a7a863ddcc2082":{"oracle":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","predicted":"340eced819eefe3cb15f4ee4f0b8e9084aaad7302f036bc34b14070d075fc4a5"},"5888dd7995a7a863ddcc2e86":{"oracle":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","predicted":"87e64495584908948b06df9d8a50289d3cfcc3b33609266dc82a84b4e8e9afd5"},"5889bc5995a7a863ddcc3b97":{"oracle":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","predicted":"04dd26bc3b6d812fc2f1a5cdb96581d0964a2c571966ef88687c62d2a2661542"},"589b457b95a7a863ddcc5331":{"oracle":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","predicted":"6a1d49e565840b5b9c944ec35b101153e3c52e6f5366c4426f2b249c290e2b52"},"58ab17ba95a7a863ddcc77bf":{"oracle":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","predicted":"e05978273a1a0918e6eceed47f7d9550dbf50451b62d486732eda22d984500ac"},"58ab189395a7a863ddcc7847":{"oracle":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","predicted":"6cc21f975b15b15fea6a8ed66d1eba678e4c724d80c390aae2d97e7cf8652fad"},"58cbc44595a7a863ddccc20b":{"oracle":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","predicted":"8fae37e8434b696ea98b7b8b0832bdb4bc7923a38ba21075c6635c72085b33ae"},"5909cfb695a7a863ddcd37cb":{"oracle":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","predicted":"f070f331f5011a24479cf433e59a92268dee528f73cb93ba22e9ce9b816b2d25"},"5914233f95a7a863ddcd777c":{"oracle":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","predicted":"86d06d712a3b9a1ea57b17f153b78f85bca9b770ba18fbfce73ae3befb2624e5"},"592d1a2b95a7a863ddcd97aa":{"oracle":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","predicted":"9b8d53bd1be3d8b36b183404c0d5d4ca87839b77fff6ed6ba8db6fe3f9ebfd6d"},"592fdd7e95a7a863ddcdbe67":{"oracle":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","predicted":"e74d3e5b77ea94701e53ba45bc3a68717f2440f52494023a102d31c3448ffbc5"},"5930177f95a7a863ddcdc313":{"oracle":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","predicted":"1a20c2a4041563e329fc0ccebd44758906c23e419a29b6838c637108a79fa69f"},"5931132c95a7a863ddcdc5d3":{"oracle":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","predicted":"010a752262ffadeba206f23b3f3ac5267d679d881218e8f7f1ccc2097eea2f18"},"59313e5495a7a863ddcdc9ac":{"oracle":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","predicted":"1213427ad63b5915884262858e08d6853977bc611e4725dc5e8d82f357fbef3e"},"5952704d95a7a863ddcdecb5":{"oracle":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","predicted":"b7d6a4d5930d40d01638ed67ac704f2e181bb23dcb16019fe8dc6fcca1cdfbcf"},"5952794195a7a863ddcdf36a":{"oracle":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","predicted":"32b0e9e1d8f72a97dcd4fdc84f0d9821278d161fe5166a995b5f7835af939627"},"5952934395a7a863ddcdff21":{"oracle":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","predicted":"8bad99031c92b1e30287089f3acc18a978ec7ef806d132952051cff1bffc459c"},"599ecb061350e83293007738":{"oracle":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","predicted":"6629bcf3b3a124d81dac63396d6df1f09f76cf0fd9828daff76190be80b5eea3"},"59b2809c1350e8329300dbe4":{"oracle":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","predicted":"8f9583c23b35aaf5c94ba8137303280046292f97be5299d43952f82317c4e515"},"59bb96701350e8329301120a":{"oracle":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","predicted":"6f2ca70ca21909b4ec2974413462d5541ea1a1128d25de7bd68c3a61f69cbabf"},"5a034425d8141396fe9898fa":{"oracle":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","predicted":"c679c71b2f54911c53758af3a531825a113e3b1f77a1aca049c33c7cf623d971"},"5a21848dd8141396fe9a33eb":{"oracle":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","predicted":"c466491bf2602108243547ef19032c9529fed3fcf962cc7f267a8a609b39f7d8"},"5a240260d8141396fe9a9de3":{"oracle":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","predicted":"df1bf5577e9a1c8967a03505b8d93e78e5884fffc79210a5931faa3b3ebdc82b"},"5a26bcecd8141396fe9ac474":{"oracle":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","predicted":"90ede71b813fe2ebac565be371e9b0dd5e4b9b108439dc52e67ccb720c7e11b6"},"5a9968cff07aee6977a29a68":{"oracle":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","predicted":"2f17be71c7407bcdb8916a20f868d80aaae1465be21285f8f9ff3cf5468acaf9"},"5aa915fef07aee69773a3ef4":{"oracle":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","predicted":"246163df423abecca784a9543ec81bfec962c42ce1863c1abdab79e11ff8f3ba"},"5b6aaf851cc8aa542986ad50":{"oracle":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","predicted":"5eb7c2d46fb85e4a50cd28214c2ab525352d3ddf84ff99b183bea6fc051b43ad"},"5b6ab3e01cc8aa542994ee9d":{"oracle":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","predicted":"87d023df110ebea748674c0f12511dd656da2ddd295adc783f0b0e7bfb8b1f5a"},"5b85707d1cc8aa542972823c":{"oracle":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","predicted":"bba879702d5b5fbebe1a14260e83262705005c475b704945bd83e4bae99a588e"},"5b9a550e18654940f754c07c":{"oracle":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","predicted":"2e9bc1908c60d70b477f8836cf59f077754adc8aa5c567b3ed3ee46f358afaf2"},"5b9bc6a018654940f781b996":{"oracle":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","predicted":"554b1a9a1ed7fe6171da8480424f266604cf082c600afee926e6386e5b813eda"},"5ba8b598ebe74117be0792c9":{"oracle":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","predicted":"512973f4688548461f2eff643dff24e439db92eb2f5345a9c0b99040b915e110"},"5bbc9b3a78e1194aa616041e":{"oracle":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","predicted":"c38cb38ac4879918f5aab22cc8c0741f141073697b0520db9834582915ed0af1"},"5bbcbdfd78e1194aa69fe067":{"oracle":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","predicted":"789107d3a3241b941654b71840d8905f607ea77cd5157a6b327195df19e0ce50"},"5bd05c0e78e1194aa6210e31":{"oracle":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","predicted":"9beb3727e2a60b1d146e08877a1c5e1fb2e31195bf4d5b1d27f8d6b1f5f414da"},"5bd9d0209259f9ba54b29c99":{"oracle":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","predicted":"e901f496008960dba0e5f5ab0ca8500749fdc067e45a470480386b2b780ecec7"},"5be174d215d5cddfd04fd1a2":{"oracle":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","predicted":"1c638834868fb317cbb11b61a6fb3ff3cefe81314ede3f60ca41c933e4230d7d"},"5be97b9241fdeab19f985504":{"oracle":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","predicted":"d8997fa7ea54e83c59da1dcea2d324b33ffa41b7fe9e5ea4ac63a4e42a5a14f6"},"5bf55e578caf671e1c2272f0":{"oracle":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","predicted":"b3a375e573cb8badb57282f9a9b39dea2b59ba7e9ed1480e5cffd0304959c881"},"5bf828a38caf671e1c2632e9":{"oracle":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","predicted":"46c259b9ff5a3ca8314a623f76e677e0b8d6297545168ed8a6ab140f36c3ad8e"},"5c263de4133a785392318ba9":{"oracle":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","predicted":"773c67b8355c27a841a8055132ba7ec78b68c9c7d568f6f4afa48f1f0906915c"},"5c41f55b048d064dbcc85b80":{"oracle":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","predicted":"3081a0525afed80c846b77de70e2c9c3e60316ccaa535f6642846cb3e4d129be"},"5c41f7a3048d064dbccfae94":{"oracle":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","predicted":"9cff8c93481574fa286708e384fff1e81e31c66fae19e11712ff5b37ebe17f9a"},"5c5af7a1048d064dbc1f0d67":{"oracle":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","predicted":"0a8595ebf7f68246cf26c6b4f26fa528b21db47f9ea76379a7c17d92b59f12b3"},"5c5b0913048d064dbc785e7c":{"oracle":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","predicted":"7f14db79821d77346759e67ff9c29f330ddcb586781eb5fc2ffef0eaaf294ee2"},"5c5b095c048d064dbc7a0ede":{"oracle":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","predicted":"9a0c3f214eaa6ea19343026eb8dd7051f4ab4f139447be9f0b681ded1f44badd"},"5c6c147785ea3c16f98dd907":{"oracle":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","predicted":"aa2b24bd105b45662e98393029d7501b1287d8e01855780b1823fdc7695bab76"},"5c77eda885ea3c16f9f29101":{"oracle":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","predicted":"1fd6b1e4c134f5622f7d051ba1b2421b9fcaed7fb705bcf32dc76474a48bd474"},"5ca5faf823c829c8218ffb10":{"oracle":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","predicted":"1db8f72c5cae50f7b335089661a07e55924eb287a0ed45bb39cf36f24035d286"},"5cb89d8aadbc796055f970af":{"oracle":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","predicted":"7c659e0f7508560404a2ba715402188bd531ab4005bacbf229d7060229bf032a"},"5cd67f1f7d4459dfe12714cf":{"oracle":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","predicted":"486fcffcb233a890d2416289de4536a43cba9a6fa09953c5bd10d733cbb92908"},"5cd6984b7d4459dfe140c0b4":{"oracle":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","predicted":"2e0ba50193e49526fbd9d343d8871481de1bb4a3fd726e084554169273da470e"},"5cde64e47d4459dfe1b81863":{"oracle":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","predicted":"6830c1a206390f19779bd51a7310a3c713e3ea2e2788ea7673b610928f2e0573"},"5ce3ba947d4459dfe1cebd75":{"oracle":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","predicted":"b3c8f8b695a9d90712571600559b4d41da1bd496c04ad79c2dc64d087be52719"},"5cfe2ad78cba87f943da4ec5":{"oracle":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","predicted":"76c0b35f0a62ded2c5a2bc717b9d67202430f30822c6c73eaad2fa1f8d4a6a35"},"5d08f3708cba87f943ec4e3f":{"oracle":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","predicted":"d56efafe1806e785848abb7cdf6dd09336ad063c6eaab951ad49049dc5ef7840"},"5d08f7a08cba87f943f48a6d":{"oracle":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","predicted":"5dab0459072bfc633bad55f016f26c32c061b2c05a139641458ffedd957ed2c0"},"5d0cf79f8cba87f943616ca6":{"oracle":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","predicted":"4120aa9bb0489090de9abea2313be502cf0e11574d17889e1c00e594ef5a30a2"},"5d234eaf8cba87f94322b763":{"oracle":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","predicted":"0c92402af8b5373f282e9756b2ea1252a1c13e0b4115888412ea511342b89c67"},"5d4ae4aecf657b21effa9831":{"oracle":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","predicted":"3c34812a34d7f0d90ba83ea41dcd6a3e105d47b563e0aed67efd1ff0bc9c1f64"},"5d67ed46cf657b21ef7bdad9":{"oracle":"1c9b7ef3618e955928bff40487a868bbf87111b338f6cc97d1067329e5355b13","predicted":"c8dbcc18867a68888b6cf2b021c608954578de6615e541471e33cd2af0c3cf8b"},"5d68dd6ce79a2a634ea111b8":{"oracle":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","predicted":"c360804c78fe4153e9571911c095ac43efae72b433e1e8fbc7f52c85ba581069"},"5d6903b8abc8ea6d1c0305fd":{"oracle":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","predicted":"ca57fdb483a657028b8191f1b9941a2384f9822f22a254c62aa126826e00b0bd"},"5d6909e8abc8ea6d1c0cda03":{"oracle":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","predicted":"c92c7fb2fb0dfa043857a3954b49f9f1b32ca0c1c2fbbdd236ed463fd89851cd"},"5d9c8fa2abc8ea6d1cd0d3e7":{"oracle":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","predicted":"5704f138b446b878316bc33ce8619bf19d6cebe36f0b701128a7b42d345f8a2e"},"5d9cad82abc8ea6d1c23ebf1":{"oracle":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","predicted":"8a57f38ec7ad4c0e0e80b52fee6143d8cbcb7e6f51d6ebcf9e5d25015003e3b9"},"5d9cadb1abc8ea6d1c246dc8":{"oracle":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","predicted":"2055959b46bf66dd017e0c8c2fb9f38d67f6d32e484f8c9f371a7fc74df96eb9"},"5da04604abc8ea6d1cbe2935":{"oracle":"9382a216b1c9e916bf00a3ee15dbd8b3abb97bdaa42f813bf3e6f9445a843854","predicted":"aad8969639c75c94524dca46c0083a222bb3b0687818576c37a6b6b57b2919d1"},"5da071b5abc8ea6d1c1f1d6f":{"oracle":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","predicted":"ff8d0f6b89bcf1b08715b70b821d250914ab2b482847988dd7b81a34173de24e"},"5dbbff2eabc8ea6d1c15c382":{"oracle":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","predicted":"d310bfae8a13e9448499b50e86d441f699441999a470891b6f631e8ea05031f3"},"5dc27c32abc8ea6d1cbf115a":{"oracle":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","predicted":"ac0f40f5f363319b526009df29935d804baf42c4200f460ac2b768a777fc07ba"},"5df211c29fea0cc374abbbba":{"oracle":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","predicted":"3b762c2641a43911c97c6173aedc039712c592a90e19feb9c430acd62cd8bc63"},"5df216b89fea0cc374b8d341":{"oracle":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","predicted":"294284a9ba08aea0a4e7924f5f84e2ccdf3993f3184f73dd4c8d01109d22cab2"},"5df3af489fea0cc3742457a9":{"oracle":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","predicted":"3d4a1d3d8669f969303baa350a74320fdecfc12eca94f94066fb92389e0f523a"},"5df7606b9fea0cc374d371db":{"oracle":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","predicted":"fbbb2094a7297306c01f6cf5a525c2454c47634aab9cceb3077f7a6d058752af"},"5e0213489fea0cc374175712":{"oracle":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","predicted":"7b1e16df9480eb400eead15eb2e3bd0c18295b61e22478d010a838d330b9542b"},"5e0219159fea0cc37425a627":{"oracle":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","predicted":"378faa3e9e26827dbc8d3236ff17eafc166885636759c2d72ab88f809ed3f52f"},"5e04ba7f9fea0cc3749733ea":{"oracle":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","predicted":"ff4001a0b01f3cb555385f6ace763911763aecf5ab4bcb9a7326d1e9aa014c70"},"5e0621989fea0cc3748583f6":{"oracle":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","predicted":"9be07423276c5af369e306c06db23fc4bf7b7e7046c32721719162da434af854"},"5e0d99499fea0cc374a71bcc":{"oracle":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","predicted":"0a4d216abb69c702e194e7d8e3f5b3c4c38fe883b54cedb25a8eb0732e89d306"},"5e202d829fea0cc3744908a8":{"oracle":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","predicted":"de3d50ce91cd0d82d41f36ff346abd2b13906d73cd5fc8b060da8b00b019df8b"},"5e2031da9fea0cc37450dd01":{"oracle":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","predicted":"6a22a06ea91f0e3168d2871b24370990565b734690381068fefa481b29badea4"},"5e28090f9fea0cc3748fc62a":{"oracle":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","predicted":"d0d622717ae86631c49b85e7d03f6ecb3a6fc8e6882bf071ebeb7d1325c10cf1"},"5e6f770e4b3890eb07175aee":{"oracle":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","predicted":"d0ea001f1428dd088abdf57d2b976c512a0f12ff81506a3142a6ec5d2b08ae9f"},"5e8762404b3890eb0782ad22":{"oracle":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","predicted":"9b42b8c66e84da6ade0b6c3ea10f88be2d16476737fe693de71fb6c2f8139aaf"},"5e8d96cb4b3890eb071c683d":{"oracle":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","predicted":"2e2248fd038b3cd773434648761661409e90abb6660e9a037cfd4715270f9c5a"},"5e8ef9fb4b3890eb0760bade":{"oracle":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","predicted":"67c67010d55e0e0dded18aa10b5f4e0d9f1b3e723cdbba858916e27791fc982b"},"5e90704d499b85dcc7d7114d":{"oracle":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","predicted":"188718b64b3afda95140d441e87a86c6e263701d01a85550fb64d3ae0a2764d1"},"5e984f83499b85dcc792f6be":{"oracle":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","predicted":"5f9c2585dcd9037a74aa4ef8312b2c6f17ce20e3499c986df88ec87f53755555"},"5ea01126499b85dcc781e788":{"oracle":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","predicted":"b2fc2f1e8083d2731571a9389b592d78fdadbd0e6ea6904f6cb7fd62939b7dd0"},"5ea2d990499b85dcc7aaeb92":{"oracle":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","predicted":"0c57b1c5a4aca58b8fcb10a0a7804fdc08b79afe71dcaaa47df7e253e6759094"},"5ea97187499b85dcc7c45e3d":{"oracle":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","predicted":"2e9a62f52efee326e225538de82b1000e3e3435eb15244cd30365a545c971ad1"},"5f114599499b85dcc796da51":{"oracle":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","predicted":"f0aa378b720e7877c64b21f27c47a6ac5abcf6b115a31bccdb0db6be56127da0"},"5f3b84c8a637ee11e32ee4c9":{"oracle":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","predicted":"bf665fc09f4bd092f672ebd83af5eb7f17596384b2b53bd379342f9f4534e4a9"},"5f4c9d6fa637ee11e34ab88b":{"oracle":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","predicted":"f18e0f1ccc5a5ff1bb539f356a989405122bc8e31f85bfa4c0b8be90c82c8e3a"},"5f5b5a3da637ee11e3e5adbf":{"oracle":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","predicted":"ee84bbf8db79c4b4ddf17395507a6c103938c19800778cef52e27a96ce309b18"},"5f644f40a637ee11e3669a1c":{"oracle":"ffe9ca6e9231370545e8ee64abdfc552fe45840ee8769d9d57b00f139c3eceeb"},"5f96aca7a637ee11e30bb517":{"oracle":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","predicted":"8d22fdb54226efa1d2abbbd4cd55e0581bd8740e15b3494bf470acf51177d007"},"5fbf5b4aa637ee11e3a82536":{"oracle":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","predicted":"587220ac3dc4dff4dc5515660cff4f9b31815da39bb79d71fa234b6dc2f03f4d"}},"oracle_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/relation100_oracle_trees","run_dir":"/home/hui0705/MetaGPT/layout_agent/runs/a3/a3-rel100-t2-01","sample_ids_sha256":"d524bef20e4b99a092e346c29d376255672ed8c2fcb3f5ebdcf794fdf7f0cc6c","schema_version":"a3.tree-accuracy.v1","write_once":true} diff --git a/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/per_sample.jsonl b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/per_sample.jsonl new file mode 100644 index 000000000..175a3c24d --- /dev/null +++ b/layout_agent/evaluations/a3-tree-accuracy/a3.tree-accuracy.v1/a3-relation-n100-t2-tree-accuracy-v1/per_sample.jsonl @@ -0,0 +1,100 @@ +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":18,"n_uncertain_nodes":0,"parent_child":{"f1":0.09090909090909091,"n_predicted":16,"n_reference":6,"n_true_positive":1,"precision":0.0625,"recall":0.16666666666666666},"same_group":{"f1":0.5454545454545455,"n_predicted":44,"n_reference":22,"n_true_positive":18,"precision":0.4090909090909091,"recall":0.8181818181818182},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"7e70d22bd84190abb7e28b495f5fe6875e97345554f803eec7459f8783d87c00","predicted_sha256":"ce2dc3f8a7eef46c3f739d6691658c0a66de503b5eb66cdc329972a6369ed77a","reason":null,"sample_id":"5888bb2995a7a863ddcc1f74","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.16666666666666666,"n_predicted":7,"n_reference":5,"n_true_positive":1,"precision":0.14285714285714285,"recall":0.2},"same_group":{"f1":0.1818181818181818,"n_predicted":2,"n_reference":9,"n_true_positive":1,"precision":0.5,"recall":0.1111111111111111},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5555555555555556,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"6f3369bdd49ee8f1562a7fa08b54621350c105087b356d6389a2809319a53674","predicted_sha256":"340eced819eefe3cb15f4ee4f0b8e9084aaad7302f036bc34b14070d075fc4a5","reason":null,"sample_id":"5888c54095a7a863ddcc2082","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":19,"n_uncertain_nodes":0,"parent_child":{"f1":0.10526315789473685,"n_predicted":15,"n_reference":4,"n_true_positive":1,"precision":0.06666666666666667,"recall":0.25},"same_group":{"f1":0.5454545454545455,"n_predicted":70,"n_reference":29,"n_true_positive":27,"precision":0.38571428571428573,"recall":0.9310344827586207},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8421052631578947,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"a697b890d079fe0fcf27007c25df616dbfc45010a66201c106ebb47c7dc8f831","predicted_sha256":"87e64495584908948b06df9d8a50289d3cfcc3b33609266dc82a84b4e8e9afd5","reason":null,"sample_id":"5888dd7995a7a863ddcc2e86","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.11764705882352941,"n_predicted":10,"n_reference":7,"n_true_positive":1,"precision":0.1,"recall":0.14285714285714285},"same_group":{"f1":0.7777777777777778,"n_predicted":7,"n_reference":11,"n_true_positive":7,"precision":1.0,"recall":0.6363636363636364},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"4207e92f9569487ba54406bb8dc0a549b8dbbecb0c80bd8d82dfafcf297e8e76","predicted_sha256":"04dd26bc3b6d812fc2f1a5cdb96581d0964a2c571966ef88687c62d2a2661542","reason":null,"sample_id":"5889bc5995a7a863ddcc3b97","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":16,"n_uncertain_nodes":0,"parent_child":{"f1":0.125,"n_predicted":14,"n_reference":2,"n_true_positive":1,"precision":0.07142857142857142,"recall":0.5},"same_group":{"f1":0.049999999999999996,"n_predicted":36,"n_reference":4,"n_true_positive":1,"precision":0.027777777777777776,"recall":0.25},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8125,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"0b5c22b27b688b6209e2dfd97e53c436e3ca38fbb4e0a9d51cc45fb389345f9a","predicted_sha256":"6a1d49e565840b5b9c944ec35b101153e3c52e6f5366c4426f2b249c290e2b52","reason":null,"sample_id":"589b457b95a7a863ddcc5331","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":16,"n_uncertain_nodes":0,"parent_child":{"f1":0.3703703703703704,"n_predicted":14,"n_reference":13,"n_true_positive":5,"precision":0.35714285714285715,"recall":0.38461538461538464},"same_group":{"f1":0.5454545454545454,"n_predicted":6,"n_reference":16,"n_true_positive":6,"precision":1.0,"recall":0.375},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.3125,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"2213a27be75df0e6cfa101b1d8b1e3610c2ec067e863f7bf8f411c34157459ef","predicted_sha256":"e05978273a1a0918e6eceed47f7d9550dbf50451b62d486732eda22d984500ac","reason":null,"sample_id":"58ab17ba95a7a863ddcc77bf","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":1,"excluded_reference_parent_child_edges":2,"excluded_reference_same_group_pairs":2,"n_certain_nodes":7,"n_uncertain_nodes":1,"parent_child":{"f1":0.5,"n_predicted":3,"n_reference":1,"n_true_positive":1,"precision":0.3333333333333333,"recall":1.0},"same_group":{"f1":0.3333333333333333,"n_predicted":4,"n_reference":2,"n_true_positive":1,"precision":0.25,"recall":0.5},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7142857142857143,"uncertain_node_ids":["asset_0004"],"uncertain_parent_child":{"f1":0.6666666666666666,"n_predicted":1,"n_reference":2,"n_true_positive":1,"precision":1.0,"recall":0.5},"uncertain_same_group":{"f1":0.6666666666666666,"n_predicted":1,"n_reference":2,"n_true_positive":1,"precision":1.0,"recall":0.5},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":0.0},"oracle_sha256":"3c2fc4dfddb6e430ac4b1f5e0535bed8ededa18530ecb6cf987592e8196e50a4","predicted_sha256":"6cc21f975b15b15fea6a8ed66d1eba678e4c724d80c390aae2d97e7cf8652fad","reason":null,"sample_id":"58ab189395a7a863ddcc7847","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":22,"n_uncertain_nodes":0,"parent_child":{"f1":0.30769230769230765,"n_predicted":18,"n_reference":8,"n_true_positive":4,"precision":0.2222222222222222,"recall":0.5},"same_group":{"f1":0.4390243902439025,"n_predicted":29,"n_reference":12,"n_true_positive":9,"precision":0.3103448275862069,"recall":0.75},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6818181818181818,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"909138e4368aafde32b6742e65a097167f54d88a474a512504ec5a69d338e02b","predicted_sha256":"8fae37e8434b696ea98b7b8b0832bdb4bc7923a38ba21075c6635c72085b33ae","reason":null,"sample_id":"58cbc44595a7a863ddccc20b","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":11,"n_uncertain_nodes":0,"parent_child":{"f1":0.39999999999999997,"n_predicted":8,"n_reference":7,"n_true_positive":3,"precision":0.375,"recall":0.42857142857142855},"same_group":{"f1":0.4210526315789474,"n_predicted":8,"n_reference":11,"n_true_positive":4,"precision":0.5,"recall":0.36363636363636365},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7272727272727273,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"df03140e6f8018a937e46b337b0c1c951765bf984673bbbb1764905a5f803ffe","predicted_sha256":"f070f331f5011a24479cf433e59a92268dee528f73cb93ba22e9ce9b816b2d25","reason":null,"sample_id":"5909cfb695a7a863ddcd37cb","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":3,"excluded_predicted_same_group_pairs":5,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":1,"n_certain_nodes":10,"n_uncertain_nodes":2,"parent_child":{"f1":0.16666666666666666,"n_predicted":7,"n_reference":5,"n_true_positive":1,"precision":0.14285714285714285,"recall":0.2},"same_group":{"f1":0.26666666666666666,"n_predicted":7,"n_reference":8,"n_true_positive":2,"precision":0.2857142857142857,"recall":0.25},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6,"uncertain_node_ids":["asset_0004","asset_0005"],"uncertain_parent_child":{"f1":0.5,"n_predicted":3,"n_reference":1,"n_true_positive":1,"precision":0.3333333333333333,"recall":1.0},"uncertain_same_group":{"f1":0.33333333333333337,"n_predicted":5,"n_reference":1,"n_true_positive":1,"precision":0.2,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"1b5ed6fbd7b215597ddd0133ce953328ddc91bedd9ab973c301ef0382731bdfb","predicted_sha256":"86d06d712a3b9a1ea57b17f153b78f85bca9b770ba18fbfce73ae3befb2624e5","reason":null,"sample_id":"5914233f95a7a863ddcd777c","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":22,"n_uncertain_nodes":0,"parent_child":{"f1":0.33333333333333337,"n_predicted":20,"n_reference":4,"n_true_positive":4,"precision":0.2,"recall":1.0},"same_group":{"f1":0.6451612903225806,"n_predicted":82,"n_reference":42,"n_true_positive":40,"precision":0.4878048780487805,"recall":0.9523809523809523},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.3181818181818182,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"5ca052f6a6be01c7d25039e8ef03e618a17d388a776d01436e88ab6176b2d2f6","predicted_sha256":"9b8d53bd1be3d8b36b183404c0d5d4ca87839b77fff6ed6ba8db6fe3f9ebfd6d","reason":null,"sample_id":"592d1a2b95a7a863ddcd97aa","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.18181818181818182,"n_predicted":7,"n_reference":4,"n_true_positive":1,"precision":0.14285714285714285,"recall":0.25},"same_group":{"f1":0.36363636363636365,"n_predicted":16,"n_reference":6,"n_true_positive":4,"precision":0.25,"recall":0.6666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8888888888888888,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"520b85727401ccd4baaeaa12c3b716e269128b1d0fdb89158ea13b5944b9ca42","predicted_sha256":"e74d3e5b77ea94701e53ba45bc3a68717f2440f52494023a102d31c3448ffbc5","reason":null,"sample_id":"592fdd7e95a7a863ddcdbe67","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.4615384615384615,"n_predicted":6,"n_reference":7,"n_true_positive":3,"precision":0.5,"recall":0.42857142857142855},"same_group":{"f1":0.5263157894736842,"n_predicted":10,"n_reference":9,"n_true_positive":5,"precision":0.5,"recall":0.5555555555555556},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"1d45429d96ffa8a9a3f9cd42a7133c071e53fa938a9d1502da1c49bfcd73fc66","predicted_sha256":"1a20c2a4041563e329fc0ccebd44758906c23e419a29b6838c637108a79fa69f","reason":null,"sample_id":"5930177f95a7a863ddcdc313","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":22,"n_uncertain_nodes":0,"parent_child":{"f1":0.20000000000000004,"n_predicted":20,"n_reference":20,"n_true_positive":4,"precision":0.2,"recall":0.2},"same_group":{"f1":0.3931623931623932,"n_predicted":39,"n_reference":78,"n_true_positive":23,"precision":0.5897435897435898,"recall":0.2948717948717949},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8636363636363636,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"a6c77e274c8397acb98e7ace400fe03c238221de0ffdb5f7faa10551f85c0631","predicted_sha256":"010a752262ffadeba206f23b3f3ac5267d679d881218e8f7f1ccc2097eea2f18","reason":null,"sample_id":"5931132c95a7a863ddcdc5d3","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":17,"n_uncertain_nodes":0,"parent_child":{"f1":0.2727272727272727,"n_predicted":12,"n_reference":10,"n_true_positive":3,"precision":0.25,"recall":0.3},"same_group":{"f1":0.3636363636363636,"n_predicted":19,"n_reference":25,"n_true_positive":8,"precision":0.42105263157894735,"recall":0.32},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7647058823529411,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"4d933e005e40162c46833b7fe6908204faa45514fe845383ed61f9acde437530","predicted_sha256":"1213427ad63b5915884262858e08d6853977bc611e4725dc5e8d82f357fbef3e","reason":null,"sample_id":"59313e5495a7a863ddcdc9ac","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":11,"n_uncertain_nodes":0,"parent_child":{"f1":0.4615384615384615,"n_predicted":6,"n_reference":7,"n_true_positive":3,"precision":0.5,"recall":0.42857142857142855},"same_group":{"f1":0.380952380952381,"n_predicted":8,"n_reference":13,"n_true_positive":4,"precision":0.5,"recall":0.3076923076923077},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6363636363636364,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"16ad03f5b1e5302e0eadf8f0cf723e4b7eab4fa22daac2cef1221a825dc91d11","predicted_sha256":"b7d6a4d5930d40d01638ed67ac704f2e181bb23dcb16019fe8dc6fcca1cdfbcf","reason":null,"sample_id":"5952704d95a7a863ddcdecb5","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":2,"excluded_predicted_same_group_pairs":5,"excluded_reference_parent_child_edges":2,"excluded_reference_same_group_pairs":3,"n_certain_nodes":12,"n_uncertain_nodes":2,"parent_child":{"f1":0.5,"n_predicted":6,"n_reference":6,"n_true_positive":3,"precision":0.5,"recall":0.5},"same_group":{"f1":0.625,"n_predicted":8,"n_reference":8,"n_true_positive":5,"precision":0.625,"recall":0.625},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":["asset_0002","asset_0005"],"uncertain_parent_child":{"f1":1.0,"n_predicted":2,"n_reference":2,"n_true_positive":2,"precision":1.0,"recall":1.0},"uncertain_same_group":{"f1":0.7499999999999999,"n_predicted":5,"n_reference":3,"n_true_positive":3,"precision":0.6,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"869d4fedde0e450cd1f02729b5b6850506e95ff9b184cc40203f7c6974fc8c37","predicted_sha256":"32b0e9e1d8f72a97dcd4fdc84f0d9821278d161fe5166a995b5f7835af939627","reason":null,"sample_id":"5952794195a7a863ddcdf36a","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.16666666666666666,"n_predicted":7,"n_reference":5,"n_true_positive":1,"precision":0.14285714285714285,"recall":0.2},"same_group":{"f1":0.6,"n_predicted":3,"n_reference":7,"n_true_positive":3,"precision":1.0,"recall":0.42857142857142855},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"1bc55fe5b80674294ee9aa8c24d990fa507e2fce47a815298562226454506c1f","predicted_sha256":"8bad99031c92b1e30287089f3acc18a978ec7ef806d132952051cff1bffc459c","reason":null,"sample_id":"5952934395a7a863ddcdff21","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":6,"n_uncertain_nodes":0,"parent_child":{"f1":0.22222222222222224,"n_predicted":4,"n_reference":5,"n_true_positive":1,"precision":0.25,"recall":0.2},"same_group":{"f1":0.0,"n_predicted":3,"n_reference":2,"n_true_positive":0,"precision":0.0,"recall":0.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.3333333333333333,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"8c5c0928f7690f10aac065950de09c7259c5b5df06fd4f635821c3e0cf8329e6","predicted_sha256":"6629bcf3b3a124d81dac63396d6df1f09f76cf0fd9828daff76190be80b5eea3","reason":null,"sample_id":"599ecb061350e83293007738","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":2,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":19,"n_uncertain_nodes":1,"parent_child":{"f1":0.0,"n_predicted":17,"n_reference":3,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.7647058823529411,"n_predicted":62,"n_reference":40,"n_true_positive":39,"precision":0.6290322580645161,"recall":0.975},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":["asset_0003"],"uncertain_parent_child":{"f1":0.0,"n_predicted":1,"n_reference":0,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":0.0,"n_predicted":2,"n_reference":0,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":0.0},"oracle_sha256":"6cee6bd2e9bc63da9cf77bcf4ebd8226d7c5b9835d8b5c2d4749fca0ed17d9ae","predicted_sha256":"8f9583c23b35aaf5c94ba8137303280046292f97be5299d43952f82317c4e515","reason":null,"sample_id":"59b2809c1350e8329300dbe4","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.2857142857142857,"n_predicted":9,"n_reference":5,"n_true_positive":2,"precision":0.2222222222222222,"recall":0.4},"same_group":{"f1":0.8421052631578948,"n_predicted":11,"n_reference":8,"n_true_positive":8,"precision":0.7272727272727273,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5833333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"b309be2e721e44b1c6c5d7edfaac1fa6e0e656243c394859b95eacce739f8fe4","predicted_sha256":"6f2ca70ca21909b4ec2974413462d5541ea1a1128d25de7bd68c3a61f69cbabf","reason":null,"sample_id":"59bb96701350e8329301120a","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":16,"n_uncertain_nodes":0,"parent_child":{"f1":0.761904761904762,"n_predicted":11,"n_reference":10,"n_true_positive":8,"precision":0.7272727272727273,"recall":0.8},"same_group":{"f1":0.9411764705882353,"n_predicted":18,"n_reference":16,"n_true_positive":16,"precision":0.8888888888888888,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9375,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"3a50d8ba498a630c518d20db098a83639a86a9ed2a31d9c21ce08b3a1ef6da98","predicted_sha256":"c679c71b2f54911c53758af3a531825a113e3b1f77a1aca049c33c7cf623d971","reason":null,"sample_id":"5a034425d8141396fe9898fa","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":24,"n_uncertain_nodes":0,"parent_child":{"f1":0.8695652173913043,"n_predicted":23,"n_reference":23,"n_true_positive":20,"precision":0.8695652173913043,"recall":0.8695652173913043},"same_group":{"f1":0.6551724137931034,"n_predicted":38,"n_reference":20,"n_true_positive":19,"precision":0.5,"recall":0.95},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"1db95ef17c2cdb96a6a14d83b83d4c235c0eb10d37b19bf41184262001c972d5","predicted_sha256":"c466491bf2602108243547ef19032c9529fed3fcf962cc7f267a8a609b39f7d8","reason":null,"sample_id":"5a21848dd8141396fe9a33eb","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":2,"excluded_predicted_same_group_pairs":1,"excluded_reference_parent_child_edges":2,"excluded_reference_same_group_pairs":3,"n_certain_nodes":7,"n_uncertain_nodes":2,"parent_child":{"f1":0.25,"n_predicted":5,"n_reference":3,"n_true_positive":1,"precision":0.2,"recall":0.3333333333333333},"same_group":{"f1":0.4,"n_predicted":1,"n_reference":4,"n_true_positive":1,"precision":1.0,"recall":0.25},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5714285714285714,"uncertain_node_ids":["asset_0002","asset_0003"],"uncertain_parent_child":{"f1":0.0,"n_predicted":2,"n_reference":2,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":0.5,"n_predicted":1,"n_reference":3,"n_true_positive":1,"precision":1.0,"recall":0.3333333333333333},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"5d4b5fc81e5812c9d643046a932c1d6475df6122989187107e4f30aa24ed449a","predicted_sha256":"df1bf5577e9a1c8967a03505b8d93e78e5884fffc79210a5931faa3b3ebdc82b","reason":null,"sample_id":"5a240260d8141396fe9a9de3","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.5,"n_predicted":6,"n_reference":6,"n_true_positive":3,"precision":0.5,"recall":0.5},"same_group":{"f1":0.5882352941176471,"n_predicted":5,"n_reference":12,"n_true_positive":5,"precision":1.0,"recall":0.4166666666666667},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8888888888888888,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"a5a4bbd0df78f58453945d290bed44ba44fef83da3ee1e5a6014c909bd3d664b","predicted_sha256":"90ede71b813fe2ebac565be371e9b0dd5e4b9b108439dc52e67ccb720c7e11b6","reason":null,"sample_id":"5a26bcecd8141396fe9ac474","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.5263157894736842,"n_predicted":10,"n_reference":9,"n_true_positive":5,"precision":0.5,"recall":0.5555555555555556},"same_group":{"f1":0.5599999999999999,"n_predicted":12,"n_reference":13,"n_true_positive":7,"precision":0.5833333333333334,"recall":0.5384615384615384},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5333333333333333,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"dc181e816c6ac4fb09d88f38f02ececd3aa3cc48e7a3c524bbccb0e09150f5ec","predicted_sha256":"2f17be71c7407bcdb8916a20f868d80aaae1465be21285f8f9ff3cf5468acaf9","reason":null,"sample_id":"5a9968cff07aee6977a29a68","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":21,"n_uncertain_nodes":0,"parent_child":{"f1":0.2631578947368421,"n_predicted":19,"n_reference":19,"n_true_positive":5,"precision":0.2631578947368421,"recall":0.2631578947368421},"same_group":{"f1":0.25196850393700787,"n_predicted":16,"n_reference":111,"n_true_positive":16,"precision":1.0,"recall":0.14414414414414414},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9047619047619048,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"930a359d9377b5ba66829308532fcc436abc9944f9a876ebf7a1814b1619c2e9","predicted_sha256":"246163df423abecca784a9543ec81bfec962c42ce1863c1abdab79e11ff8f3ba","reason":null,"sample_id":"5aa915fef07aee69773a3ef4","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.26666666666666666,"n_predicted":7,"n_reference":8,"n_true_positive":2,"precision":0.2857142857142857,"recall":0.25},"same_group":{"f1":0.56,"n_predicted":7,"n_reference":18,"n_true_positive":7,"precision":1.0,"recall":0.3888888888888889},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9fe880f3f62f2497851a0bf7e45bd8e0737d838979794a56911e6704dea1c67c","predicted_sha256":"5eb7c2d46fb85e4a50cd28214c2ab525352d3ddf84ff99b183bea6fc051b43ad","reason":null,"sample_id":"5b6aaf851cc8aa542986ad50","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":6,"n_uncertain_nodes":0,"parent_child":{"f1":0.5714285714285715,"n_predicted":4,"n_reference":3,"n_true_positive":2,"precision":0.5,"recall":0.6666666666666666},"same_group":{"f1":0.5714285714285715,"n_predicted":3,"n_reference":4,"n_true_positive":2,"precision":0.6666666666666666,"recall":0.5},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"26d213616b7682dd013cee69391c99dcf8d4b3dc7f69c6c758f20b98c6b54fc7","predicted_sha256":"87d023df110ebea748674c0f12511dd656da2ddd295adc783f0b0e7bfb8b1f5a","reason":null,"sample_id":"5b6ab3e01cc8aa542994ee9d","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":5,"n_reference":5,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.5714285714285715,"n_predicted":6,"n_reference":8,"n_true_positive":4,"precision":0.6666666666666666,"recall":0.5},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.625,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"e81be0918436e49bf39a2094df4210e6050eb3d9587171075f9fb3b2f64124cb","predicted_sha256":"bba879702d5b5fbebe1a14260e83262705005c475b704945bd83e4bae99a588e","reason":null,"sample_id":"5b85707d1cc8aa542972823c","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":2,"excluded_predicted_same_group_pairs":3,"excluded_reference_parent_child_edges":2,"excluded_reference_same_group_pairs":3,"n_certain_nodes":6,"n_uncertain_nodes":2,"parent_child":{"f1":0.6666666666666666,"n_predicted":3,"n_reference":3,"n_true_positive":2,"precision":0.6666666666666666,"recall":0.6666666666666666},"same_group":{"f1":0.6666666666666666,"n_predicted":6,"n_reference":3,"n_true_positive":3,"precision":0.5,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":["asset_0006","asset_0007"],"uncertain_parent_child":{"f1":1.0,"n_predicted":2,"n_reference":2,"n_true_positive":2,"precision":1.0,"recall":1.0},"uncertain_same_group":{"f1":1.0,"n_predicted":3,"n_reference":3,"n_true_positive":3,"precision":1.0,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"52528a4aa739d6e5ddf3b55d699eb14472955f22dfa0bd17414f67234e210cc5","predicted_sha256":"2e9bc1908c60d70b477f8836cf59f077754adc8aa5c567b3ed3ee46f358afaf2","reason":null,"sample_id":"5b9a550e18654940f754c07c","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":7,"n_uncertain_nodes":0,"parent_child":{"f1":0.4444444444444445,"n_predicted":5,"n_reference":4,"n_true_positive":2,"precision":0.4,"recall":0.5},"same_group":{"f1":0.6666666666666666,"n_predicted":2,"n_reference":4,"n_true_positive":2,"precision":1.0,"recall":0.5},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"06a0188417ccc48c120aa1d0bdc709fec97d2c9d649ccc7c2bfa0b3a3b4acdda","predicted_sha256":"554b1a9a1ed7fe6171da8480424f266604cf082c600afee926e6386e5b813eda","reason":null,"sample_id":"5b9bc6a018654940f781b996","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.23529411764705882,"n_predicted":9,"n_reference":8,"n_true_positive":2,"precision":0.2222222222222222,"recall":0.25},"same_group":{"f1":0.35294117647058826,"n_predicted":3,"n_reference":14,"n_true_positive":3,"precision":1.0,"recall":0.21428571428571427},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6923076923076923,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"312151eb79b8d083e35701de499438cb7177da310bd950303f3b7120966961ff","predicted_sha256":"512973f4688548461f2eff643dff24e439db92eb2f5345a9c0b99040b915e110","reason":null,"sample_id":"5ba8b598ebe74117be0792c9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.5,"n_predicted":6,"n_reference":6,"n_true_positive":3,"precision":0.5,"recall":0.5},"same_group":{"f1":0.6250000000000001,"n_predicted":7,"n_reference":9,"n_true_positive":5,"precision":0.7142857142857143,"recall":0.5555555555555556},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"8099b45dda875c8cc51a7b731c74378f9b775bade65e877805526d1920329626","predicted_sha256":"c38cb38ac4879918f5aab22cc8c0741f141073697b0520db9834582915ed0af1","reason":null,"sample_id":"5bbc9b3a78e1194aa616041e","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.6153846153846153,"n_predicted":7,"n_reference":6,"n_true_positive":4,"precision":0.5714285714285714,"recall":0.6666666666666666},"same_group":{"f1":1.0,"n_predicted":10,"n_reference":10,"n_true_positive":10,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"b56c473a8964437d6f7a231b2594b05047addc84b991217445d16ffdae05a627","predicted_sha256":"789107d3a3241b941654b71840d8905f607ea77cd5157a6b327195df19e0ce50","reason":null,"sample_id":"5bbcbdfd78e1194aa69fe067","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.25,"n_predicted":8,"n_reference":8,"n_true_positive":2,"precision":0.25,"recall":0.25},"same_group":{"f1":0.5,"n_predicted":7,"n_reference":21,"n_true_positive":7,"precision":1.0,"recall":0.3333333333333333},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"45348b6c1cdbca95e5ba7ccc9b8d6f1c4ccd5144e2ce56e210f2b2bae9ef2926","predicted_sha256":"9beb3727e2a60b1d146e08877a1c5e1fb2e31195bf4d5b1d27f8d6b1f5f414da","reason":null,"sample_id":"5bd05c0e78e1194aa6210e31","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":16,"n_uncertain_nodes":0,"parent_child":{"f1":0.5263157894736842,"n_predicted":9,"n_reference":10,"n_true_positive":5,"precision":0.5555555555555556,"recall":0.5},"same_group":{"f1":0.8275862068965518,"n_predicted":14,"n_reference":15,"n_true_positive":12,"precision":0.8571428571428571,"recall":0.8},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8125,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"671e269cfd4910b9aa5aaeb672a678e6d38a23d36dc132c75c837040ee619a7a","predicted_sha256":"e901f496008960dba0e5f5ab0ca8500749fdc067e45a470480386b2b780ecec7","reason":null,"sample_id":"5bd9d0209259f9ba54b29c99","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":6,"n_uncertain_nodes":0,"parent_child":{"f1":0.4,"n_predicted":3,"n_reference":2,"n_true_positive":1,"precision":0.3333333333333333,"recall":0.5},"same_group":{"f1":0.0,"n_predicted":1,"n_reference":2,"n_true_positive":0,"precision":0.0,"recall":0.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"7a270b84b256acc71ec75a58c16f6fc770b8f0125b77e74c7fba4da725f089d4","predicted_sha256":"1c638834868fb317cbb11b61a6fb3ff3cefe81314ede3f60ca41c933e4230d7d","reason":null,"sample_id":"5be174d215d5cddfd04fd1a2","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":7,"n_uncertain_nodes":0,"parent_child":{"f1":0.5714285714285715,"n_predicted":4,"n_reference":3,"n_true_positive":2,"precision":0.5,"recall":0.6666666666666666},"same_group":{"f1":0.8,"n_predicted":2,"n_reference":3,"n_true_positive":2,"precision":1.0,"recall":0.6666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8571428571428571,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"52200c84e265426f0c9c8635eac09d11712e000c0a06a959f6e7916efc458cb1","predicted_sha256":"d8997fa7ea54e83c59da1dcea2d324b33ffa41b7fe9e5ea4ac63a4e42a5a14f6","reason":null,"sample_id":"5be97b9241fdeab19f985504","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":4,"excluded_predicted_same_group_pairs":12,"excluded_reference_parent_child_edges":3,"excluded_reference_same_group_pairs":12,"n_certain_nodes":9,"n_uncertain_nodes":3,"parent_child":{"f1":0.16666666666666666,"n_predicted":6,"n_reference":6,"n_true_positive":1,"precision":0.16666666666666666,"recall":0.16666666666666666},"same_group":{"f1":0.6363636363636364,"n_predicted":9,"n_reference":13,"n_true_positive":7,"precision":0.7777777777777778,"recall":0.5384615384615384},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7777777777777778,"uncertain_node_ids":["asset_0005","asset_0006","asset_0007"],"uncertain_parent_child":{"f1":0.0,"n_predicted":4,"n_reference":3,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":1.0,"n_predicted":12,"n_reference":12,"n_true_positive":12,"precision":1.0,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"bf1de676ff8b3ba90da2fcaf0da968b82374bdbea05e976058c17231739051a5","predicted_sha256":"b3a375e573cb8badb57282f9a9b39dea2b59ba7e9ed1480e5cffd0304959c881","reason":null,"sample_id":"5bf55e578caf671e1c2272f0","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.3,"n_predicted":10,"n_reference":10,"n_true_positive":3,"precision":0.3,"recall":0.3},"same_group":{"f1":1.0,"n_predicted":39,"n_reference":39,"n_true_positive":39,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7692307692307693,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"28aba253e123407c9c9b3f9c12791fde113e58d35f2a09da9cae3778c5745edd","predicted_sha256":"46c259b9ff5a3ca8314a623f76e677e0b8d6297545168ed8a6ab140f36c3ad8e","reason":null,"sample_id":"5bf828a38caf671e1c2632e9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.1818181818181818,"n_predicted":6,"n_reference":5,"n_true_positive":1,"precision":0.16666666666666666,"recall":0.2},"same_group":{"f1":1.0,"n_predicted":6,"n_reference":6,"n_true_positive":6,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7777777777777778,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"befae7e8b2bc796cd8da33d31fa17d90c97c7225ddf01df23a1203f306073de6","predicted_sha256":"773c67b8355c27a841a8055132ba7ec78b68c9c7d568f6f4afa48f1f0906915c","reason":null,"sample_id":"5c263de4133a785392318ba9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":11,"n_uncertain_nodes":0,"parent_child":{"f1":0.26666666666666666,"n_predicted":7,"n_reference":8,"n_true_positive":2,"precision":0.2857142857142857,"recall":0.25},"same_group":{"f1":0.64,"n_predicted":11,"n_reference":14,"n_true_positive":8,"precision":0.7272727272727273,"recall":0.5714285714285714},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7272727272727273,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"7d2a249590169e97091a91516b73c9fc7d93914798ced3dfb5a887b5dd3625d2","predicted_sha256":"3081a0525afed80c846b77de70e2c9c3e60316ccaa535f6642846cb3e4d129be","reason":null,"sample_id":"5c41f55b048d064dbcc85b80","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.15384615384615383,"n_predicted":6,"n_reference":7,"n_true_positive":1,"precision":0.16666666666666666,"recall":0.14285714285714285},"same_group":{"f1":0.4800000000000001,"n_predicted":9,"n_reference":16,"n_true_positive":6,"precision":0.6666666666666666,"recall":0.375},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"870620294a035e3833a64a1503d932e21c9f09feb743d3467427bb4287aa2a63","predicted_sha256":"9cff8c93481574fa286708e384fff1e81e31c66fae19e11712ff5b37ebe17f9a","reason":null,"sample_id":"5c41f7a3048d064dbccfae94","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.20000000000000004,"n_predicted":5,"n_reference":5,"n_true_positive":1,"precision":0.2,"recall":0.2},"same_group":{"f1":0.5714285714285714,"n_predicted":5,"n_reference":9,"n_true_positive":4,"precision":0.8,"recall":0.4444444444444444},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.875,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"62f49e700e96826c04e97e3bc7866e8e3173154a698371fdc25a033e7741cc0f","predicted_sha256":"0a8595ebf7f68246cf26c6b4f26fa528b21db47f9ea76379a7c17d92b59f12b3","reason":null,"sample_id":"5c5af7a1048d064dbc1f0d67","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":17,"n_uncertain_nodes":0,"parent_child":{"f1":0.16,"n_predicted":14,"n_reference":11,"n_true_positive":2,"precision":0.14285714285714285,"recall":0.18181818181818182},"same_group":{"f1":0.7169811320754716,"n_predicted":29,"n_reference":24,"n_true_positive":19,"precision":0.6551724137931034,"recall":0.7916666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6470588235294118,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"6c6d7a8010afc6e2ef016798151f6043ff97e9a864d8c04c5514eebb72fd5327","predicted_sha256":"7f14db79821d77346759e67ff9c29f330ddcb586781eb5fc2ffef0eaaf294ee2","reason":null,"sample_id":"5c5b0913048d064dbc785e7c","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.2608695652173913,"n_predicted":12,"n_reference":11,"n_true_positive":3,"precision":0.25,"recall":0.2727272727272727},"same_group":{"f1":0.4,"n_predicted":12,"n_reference":48,"n_true_positive":12,"precision":1.0,"recall":0.25},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8666666666666667,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"6e62499cdf8bce6db765307d3c220126baeaefe57be05ec94161593856dea9ea","predicted_sha256":"9a0c3f214eaa6ea19343026eb8dd7051f4ab4f139447be9f0b681ded1f44badd","reason":null,"sample_id":"5c5b095c048d064dbc7a0ede","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":14,"n_uncertain_nodes":0,"parent_child":{"f1":0.2727272727272727,"n_predicted":11,"n_reference":11,"n_true_positive":3,"precision":0.2727272727272727,"recall":0.2727272727272727},"same_group":{"f1":0.7857142857142857,"n_predicted":28,"n_reference":28,"n_true_positive":22,"precision":0.7857142857142857,"recall":0.7857142857142857},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"2f0f3d506ceb7dad4ac770a8c9841552edb3993eb4e8e228610c5a2462a60fc6","predicted_sha256":"aa2b24bd105b45662e98393029d7501b1287d8e01855780b1823fdc7695bab76","reason":null,"sample_id":"5c6c147785ea3c16f98dd907","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.15384615384615385,"n_predicted":5,"n_reference":8,"n_true_positive":1,"precision":0.2,"recall":0.125},"same_group":{"f1":0.5517241379310345,"n_predicted":8,"n_reference":21,"n_true_positive":8,"precision":1.0,"recall":0.38095238095238093},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5833333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"23d69dd0867880aa8c731d720ea03b10fd08c2634c8656debd428e4c5b18a8e1","predicted_sha256":"1fd6b1e4c134f5622f7d051ba1b2421b9fcaed7fb705bcf32dc76474a48bd474","reason":null,"sample_id":"5c77eda885ea3c16f9f29101","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":3,"n_reference":8,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.918918918918919,"n_predicted":19,"n_reference":18,"n_true_positive":17,"precision":0.8947368421052632,"recall":0.9444444444444444},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9166666666666666,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"270c9dae7f9aae54fc520272f475c68bf924f6fc0cd7371db6ac5de10ff3bfdc","predicted_sha256":"1db8f72c5cae50f7b335089661a07e55924eb287a0ed45bb39cf36f24035d286","reason":null,"sample_id":"5ca5faf823c829c8218ffb10","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.5454545454545454,"n_predicted":12,"n_reference":10,"n_true_positive":6,"precision":0.5,"recall":0.6},"same_group":{"f1":0.48,"n_predicted":7,"n_reference":18,"n_true_positive":6,"precision":0.8571428571428571,"recall":0.3333333333333333},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5333333333333333,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"5142861ceab1577a62da09195e7b2ddfa5f4781de718198f4a3c2358e1ec656f","predicted_sha256":"7c659e0f7508560404a2ba715402188bd531ab4005bacbf229d7060229bf032a","reason":null,"sample_id":"5cb89d8aadbc796055f970af","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.35294117647058826,"n_predicted":9,"n_reference":8,"n_true_positive":3,"precision":0.3333333333333333,"recall":0.375},"same_group":{"f1":0.5555555555555556,"n_predicted":12,"n_reference":24,"n_true_positive":10,"precision":0.8333333333333334,"recall":0.4166666666666667},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9166666666666666,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"7ecc705e2f0dead61c30a355cd1379d6a5a8acc73f191a129d07b0a3bf1c8fdc","predicted_sha256":"486fcffcb233a890d2416289de4536a43cba9a6fa09953c5bd10d733cbb92908","reason":null,"sample_id":"5cd67f1f7d4459dfe12714cf","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.47058823529411764,"n_predicted":9,"n_reference":8,"n_true_positive":4,"precision":0.4444444444444444,"recall":0.5},"same_group":{"f1":0.9444444444444444,"n_predicted":19,"n_reference":17,"n_true_positive":17,"precision":0.8947368421052632,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7692307692307693,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"c9d0f2f0c0e215e9886d1d50c7b17962df3d4b0b2a711401011f6086a2a9c59e","predicted_sha256":"2e0ba50193e49526fbd9d343d8871481de1bb4a3fd726e084554169273da470e","reason":null,"sample_id":"5cd6984b7d4459dfe140c0b4","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.6666666666666665,"n_predicted":5,"n_reference":4,"n_true_positive":3,"precision":0.6,"recall":0.75},"same_group":{"f1":0.888888888888889,"n_predicted":4,"n_reference":5,"n_true_positive":4,"precision":1.0,"recall":0.8},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.4444444444444444,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"d502e4ed40afeb7ed8ae479505c1e9fcd2d1fef131de4c56264a09b89ae8d665","predicted_sha256":"6830c1a206390f19779bd51a7310a3c713e3ea2e2788ea7673b610928f2e0573","reason":null,"sample_id":"5cde64e47d4459dfe1b81863","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":11,"n_uncertain_nodes":0,"parent_child":{"f1":0.28571428571428575,"n_predicted":8,"n_reference":6,"n_true_positive":2,"precision":0.25,"recall":0.3333333333333333},"same_group":{"f1":0.5882352941176471,"n_predicted":5,"n_reference":12,"n_true_positive":5,"precision":1.0,"recall":0.4166666666666667},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7272727272727273,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"01251ae7014c4a1e64fc696f3ae8bdfe94a81758573315a3aee9dcdf4e1445fa","predicted_sha256":"b3c8f8b695a9d90712571600559b4d41da1bd496c04ad79c2dc64d087be52719","reason":null,"sample_id":"5ce3ba947d4459dfe1cebd75","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.5714285714285714,"n_predicted":7,"n_reference":7,"n_true_positive":4,"precision":0.5714285714285714,"recall":0.5714285714285714},"same_group":{"f1":0.4,"n_predicted":3,"n_reference":12,"n_true_positive":3,"precision":1.0,"recall":0.25},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5833333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"5f5a9a8628c55c77e0f35a32a0f7d7307599be57aebfc5d3d4a1e4a751c68320","predicted_sha256":"76c0b35f0a62ded2c5a2bc717b9d67202430f30822c6c73eaad2fa1f8d4a6a35","reason":null,"sample_id":"5cfe2ad78cba87f943da4ec5","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.1904761904761905,"n_predicted":10,"n_reference":11,"n_true_positive":2,"precision":0.2,"recall":0.18181818181818182},"same_group":{"f1":0.2702702702702703,"n_predicted":9,"n_reference":28,"n_true_positive":5,"precision":0.5555555555555556,"recall":0.17857142857142858},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6666666666666666,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9838583f17ee0e51bdb29317ff466b29caf1da2544eb1e70fc974138f3a07f14","predicted_sha256":"d56efafe1806e785848abb7cdf6dd09336ad063c6eaab951ad49049dc5ef7840","reason":null,"sample_id":"5d08f3708cba87f943ec4e3f","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":5,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":5,"n_certain_nodes":12,"n_uncertain_nodes":1,"parent_child":{"f1":0.8571428571428571,"n_predicted":7,"n_reference":7,"n_true_positive":6,"precision":0.8571428571428571,"recall":0.8571428571428571},"same_group":{"f1":1.0,"n_predicted":13,"n_reference":13,"n_true_positive":13,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":["asset_0002"],"uncertain_parent_child":{"f1":1.0,"n_predicted":1,"n_reference":1,"n_true_positive":1,"precision":1.0,"recall":1.0},"uncertain_same_group":{"f1":1.0,"n_predicted":5,"n_reference":5,"n_true_positive":5,"precision":1.0,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"913f74457d47c720748558c6c8c3ef8c0472d5f3b8054b637091917e1976933d","predicted_sha256":"5dab0459072bfc633bad55f016f26c32c061b2c05a139641458ffedd957ed2c0","reason":null,"sample_id":"5d08f7a08cba87f943f48a6d","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":18,"n_uncertain_nodes":0,"parent_child":{"f1":0.1935483870967742,"n_predicted":17,"n_reference":14,"n_true_positive":3,"precision":0.17647058823529413,"recall":0.21428571428571427},"same_group":{"f1":0.890909090909091,"n_predicted":51,"n_reference":59,"n_true_positive":49,"precision":0.9607843137254902,"recall":0.8305084745762712},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8333333333333334,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"8c1905cce82b509cc7420147e48dfb231f5e55c42ef67e8c505139b05577acc9","predicted_sha256":"4120aa9bb0489090de9abea2313be502cf0e11574d17889e1c00e594ef5a30a2","reason":null,"sample_id":"5d0cf79f8cba87f943616ca6","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":20,"n_uncertain_nodes":0,"parent_child":{"f1":0.5,"n_predicted":15,"n_reference":13,"n_true_positive":7,"precision":0.4666666666666667,"recall":0.5384615384615384},"same_group":{"f1":0.7073170731707317,"n_predicted":52,"n_reference":30,"n_true_positive":29,"precision":0.5576923076923077,"recall":0.9666666666666667},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.85,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"56246e93d4fb5146c438f96ef21e92288e84a8738f6a20ce0250468c90acafa2","predicted_sha256":"0c92402af8b5373f282e9756b2ea1252a1c13e0b4115888412ea511342b89c67","reason":null,"sample_id":"5d234eaf8cba87f94322b763","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":24,"n_uncertain_nodes":0,"parent_child":{"f1":0.2105263157894737,"n_predicted":18,"n_reference":20,"n_true_positive":4,"precision":0.2222222222222222,"recall":0.2},"same_group":{"f1":0.9920634920634921,"n_predicted":127,"n_reference":125,"n_true_positive":125,"precision":0.984251968503937,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.875,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"4941093791a5bd211fce41d53b00cc77691234d8a8c238d507c4fcde0616b07e","predicted_sha256":"3c34812a34d7f0d90ba83ea41dcd6a3e105d47b563e0aed67efd1ff0bc9c1f64","reason":null,"sample_id":"5d4ae4aecf657b21effa9831","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":19,"n_uncertain_nodes":0,"parent_child":{"f1":0.2857142857142857,"n_predicted":14,"n_reference":14,"n_true_positive":4,"precision":0.2857142857142857,"recall":0.2857142857142857},"same_group":{"f1":0.6511627906976744,"n_predicted":34,"n_reference":52,"n_true_positive":28,"precision":0.8235294117647058,"recall":0.5384615384615384},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8421052631578947,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"1c9b7ef3618e955928bff40487a868bbf87111b338f6cc97d1067329e5355b13","predicted_sha256":"c8dbcc18867a68888b6cf2b021c608954578de6615e541471e33cd2af0c3cf8b","reason":null,"sample_id":"5d67ed46cf657b21ef7bdad9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":5,"n_reference":4,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.7272727272727272,"n_predicted":5,"n_reference":6,"n_true_positive":4,"precision":0.8,"recall":0.6666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.875,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"38e49b7792c56212185db12a11463b537a3bfd23f5218d45339f39b7020f5ed3","predicted_sha256":"c360804c78fe4153e9571911c095ac43efae72b433e1e8fbc7f52c85ba581069","reason":null,"sample_id":"5d68dd6ce79a2a634ea111b8","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.2105263157894737,"n_predicted":9,"n_reference":10,"n_true_positive":2,"precision":0.2222222222222222,"recall":0.2},"same_group":{"f1":0.5777777777777777,"n_predicted":13,"n_reference":32,"n_true_positive":13,"precision":1.0,"recall":0.40625},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"92840098cffd2bb1fe49290e10c411ba3c91de1379ca569d54438514bda6c9b0","predicted_sha256":"ca57fdb483a657028b8191f1b9941a2384f9822f22a254c62aa126826e00b0bd","reason":null,"sample_id":"5d6903b8abc8ea6d1c0305fd","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.888888888888889,"n_predicted":5,"n_reference":4,"n_true_positive":4,"precision":0.8,"recall":1.0},"same_group":{"f1":0.8,"n_predicted":9,"n_reference":6,"n_true_positive":6,"precision":0.6666666666666666,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.875,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"07fc34402547e16f3797df02778c61c0f8e19541edba27ab7bb821893f4239f9","predicted_sha256":"c92c7fb2fb0dfa043857a3954b49f9f1b32ca0c1c2fbbdd236ed463fd89851cd","reason":null,"sample_id":"5d6909e8abc8ea6d1c0cda03","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":19,"n_uncertain_nodes":0,"parent_child":{"f1":0.0625,"n_predicted":18,"n_reference":14,"n_true_positive":1,"precision":0.05555555555555555,"recall":0.07142857142857142},"same_group":{"f1":0.6119402985074628,"n_predicted":53,"n_reference":81,"n_true_positive":41,"precision":0.7735849056603774,"recall":0.5061728395061729},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.631578947368421,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"ab8e4b30b9e1e90beb281b9eda205bcea4da453d6ff64f3699a27cda17f8d55c","predicted_sha256":"5704f138b446b878316bc33ce8619bf19d6cebe36f0b701128a7b42d345f8a2e","reason":null,"sample_id":"5d9c8fa2abc8ea6d1cd0d3e7","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":11,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":1,"n_certain_nodes":25,"n_uncertain_nodes":1,"parent_child":{"f1":0.2857142857142857,"n_predicted":21,"n_reference":21,"n_true_positive":6,"precision":0.2857142857142857,"recall":0.2857142857142857},"same_group":{"f1":0.6929824561403509,"n_predicted":83,"n_reference":145,"n_true_positive":79,"precision":0.9518072289156626,"recall":0.5448275862068965},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.84,"uncertain_node_ids":["asset_0025"],"uncertain_parent_child":{"f1":0.0,"n_predicted":1,"n_reference":1,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":0.0,"n_predicted":11,"n_reference":1,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":0.0},"oracle_sha256":"6b1631724d65ae51aea7482280a9ac1f52aacc0a374670c3831bc3b95bc1c824","predicted_sha256":"8a57f38ec7ad4c0e0e80b52fee6143d8cbcb7e6f51d6ebcf9e5d25015003e3b9","reason":null,"sample_id":"5d9cad82abc8ea6d1c23ebf1","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":23,"n_uncertain_nodes":0,"parent_child":{"f1":0.05405405405405406,"n_predicted":19,"n_reference":18,"n_true_positive":1,"precision":0.05263157894736842,"recall":0.05555555555555555},"same_group":{"f1":0.9818181818181818,"n_predicted":110,"n_reference":110,"n_true_positive":108,"precision":0.9818181818181818,"recall":0.9818181818181818},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8695652173913043,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"2681e40a553a60911dc32b3e64cde135333dd7b5c0a4e30b893133b1a01ba73b","predicted_sha256":"2055959b46bf66dd017e0c8c2fb9f38d67f6d32e484f8c9f371a7fc74df96eb9","reason":null,"sample_id":"5d9cadb1abc8ea6d1c246dc8","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.30769230769230765,"n_predicted":7,"n_reference":6,"n_true_positive":2,"precision":0.2857142857142857,"recall":0.3333333333333333},"same_group":{"f1":0.7692307692307693,"n_predicted":5,"n_reference":8,"n_true_positive":5,"precision":1.0,"recall":0.625},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9382a216b1c9e916bf00a3ee15dbd8b3abb97bdaa42f813bf3e6f9445a843854","predicted_sha256":"aad8969639c75c94524dca46c0083a222bb3b0687818576c37a6b6b57b2919d1","reason":null,"sample_id":"5da04604abc8ea6d1cbe2935","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":26,"n_uncertain_nodes":0,"parent_child":{"f1":0.37209302325581395,"n_predicted":22,"n_reference":21,"n_true_positive":8,"precision":0.36363636363636365,"recall":0.38095238095238093},"same_group":{"f1":0.8792270531400965,"n_predicted":110,"n_reference":97,"n_true_positive":91,"precision":0.8272727272727273,"recall":0.9381443298969072},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7692307692307693,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"0bdeb80feec1f27a5ab06ed7f635c62befcd6053c1310b479550c5f9b7281730","predicted_sha256":"ff8d0f6b89bcf1b08715b70b821d250914ab2b482847988dd7b81a34173de24e","reason":null,"sample_id":"5da071b5abc8ea6d1c1f1d6f","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":16,"n_uncertain_nodes":0,"parent_child":{"f1":0.17391304347826086,"n_predicted":12,"n_reference":11,"n_true_positive":2,"precision":0.16666666666666666,"recall":0.18181818181818182},"same_group":{"f1":0.5833333333333334,"n_predicted":20,"n_reference":28,"n_true_positive":14,"precision":0.7,"recall":0.5},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6875,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"bffe583eaf88501cc9a8a51a2843febb169ca602ab375ff06348a06c48ac8882","predicted_sha256":"d310bfae8a13e9448499b50e86d441f699441999a470891b6f631e8ea05031f3","reason":null,"sample_id":"5dbbff2eabc8ea6d1c15c382","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":20,"n_uncertain_nodes":0,"parent_child":{"f1":0.25,"n_predicted":16,"n_reference":16,"n_true_positive":4,"precision":0.25,"recall":0.25},"same_group":{"f1":0.9148936170212767,"n_predicted":45,"n_reference":49,"n_true_positive":43,"precision":0.9555555555555556,"recall":0.8775510204081632},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"a2e098d4e50ef2f608efd973e622ec734883b0d2730c85f2b622798cc0613889","predicted_sha256":"ac0f40f5f363319b526009df29935d804baf42c4200f460ac2b768a777fc07ba","reason":null,"sample_id":"5dc27c32abc8ea6d1cbf115a","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.6666666666666665,"n_predicted":5,"n_reference":4,"n_true_positive":3,"precision":0.6,"recall":0.75},"same_group":{"f1":0.5714285714285714,"n_predicted":9,"n_reference":5,"n_true_positive":4,"precision":0.4444444444444444,"recall":0.8},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8888888888888888,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"f7b5f33940dd23e62bf0a874ef91f5eb754f7344c6b0814b2fdb6876a32e32d1","predicted_sha256":"3b762c2641a43911c97c6173aedc039712c592a90e19feb9c430acd62cd8bc63","reason":null,"sample_id":"5df211c29fea0cc374abbbba","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.3333333333333333,"n_predicted":7,"n_reference":5,"n_true_positive":2,"precision":0.2857142857142857,"recall":0.4},"same_group":{"f1":0.5333333333333333,"n_predicted":4,"n_reference":11,"n_true_positive":4,"precision":1.0,"recall":0.36363636363636365},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.4444444444444444,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"2fa28da2a72b736bd03086048877ec274ee837f77ead8ef1403247659511c7e9","predicted_sha256":"294284a9ba08aea0a4e7924f5f84e2ccdf3993f3184f73dd4c8d01109d22cab2","reason":null,"sample_id":"5df216b89fea0cc374b8d341","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":2,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":3,"n_certain_nodes":5,"n_uncertain_nodes":1,"parent_child":{"f1":0.3333333333333333,"n_predicted":4,"n_reference":2,"n_true_positive":1,"precision":0.25,"recall":0.5},"same_group":{"f1":0.5,"n_predicted":1,"n_reference":3,"n_true_positive":1,"precision":1.0,"recall":0.3333333333333333},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6,"uncertain_node_ids":["asset_0005"],"uncertain_parent_child":{"f1":1.0,"n_predicted":1,"n_reference":1,"n_true_positive":1,"precision":1.0,"recall":1.0},"uncertain_same_group":{"f1":0.8,"n_predicted":2,"n_reference":3,"n_true_positive":2,"precision":1.0,"recall":0.6666666666666666},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":0.0},"oracle_sha256":"89259d7a56b79d19bca637b12bae1ad612d73e559f9919b65f0d28a6563d2d2a","predicted_sha256":"3d4a1d3d8669f969303baa350a74320fdecfc12eca94f94066fb92389e0f523a","reason":null,"sample_id":"5df3af489fea0cc3742457a9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.8333333333333334,"n_predicted":6,"n_reference":6,"n_true_positive":5,"precision":0.8333333333333334,"recall":0.8333333333333334},"same_group":{"f1":0.8750000000000001,"n_predicted":7,"n_reference":9,"n_true_positive":7,"precision":1.0,"recall":0.7777777777777778},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"65b537d08d26df9945d2b51e039d7c22902a2b96681ce568332871fd4a0639b0","predicted_sha256":"fbbb2094a7297306c01f6cf5a525c2454c47634aab9cceb3077f7a6d058752af","reason":null,"sample_id":"5df7606b9fea0cc374d371db","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":5,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":5,"n_certain_nodes":14,"n_uncertain_nodes":1,"parent_child":{"f1":0.4210526315789474,"n_predicted":11,"n_reference":8,"n_true_positive":4,"precision":0.36363636363636365,"recall":0.5},"same_group":{"f1":0.5365853658536585,"n_predicted":26,"n_reference":15,"n_true_positive":11,"precision":0.4230769230769231,"recall":0.7333333333333333},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7142857142857143,"uncertain_node_ids":["asset_0013"],"uncertain_parent_child":{"f1":0.0,"n_predicted":1,"n_reference":1,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":0.8000000000000002,"n_predicted":5,"n_reference":5,"n_true_positive":4,"precision":0.8,"recall":0.8},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"6674e2d3788e217d7b5644ba8b6ae524f7a5d645ab4ffee61c5dbb8c58d41733","predicted_sha256":"7b1e16df9480eb400eead15eb2e3bd0c18295b61e22478d010a838d330b9542b","reason":null,"sample_id":"5e0213489fea0cc374175712","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":7,"excluded_predicted_same_group_pairs":63,"excluded_reference_parent_child_edges":7,"excluded_reference_same_group_pairs":63,"n_certain_nodes":20,"n_uncertain_nodes":7,"parent_child":{"f1":0.46153846153846156,"n_predicted":13,"n_reference":13,"n_true_positive":6,"precision":0.46153846153846156,"recall":0.46153846153846156},"same_group":{"f1":0.9583333333333334,"n_predicted":23,"n_reference":25,"n_true_positive":23,"precision":1.0,"recall":0.92},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9,"uncertain_node_ids":["asset_0018","asset_0019","asset_0020","asset_0021","asset_0022","asset_0023","asset_0024"],"uncertain_parent_child":{"f1":0.0,"n_predicted":7,"n_reference":7,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":1.0,"n_predicted":63,"n_reference":63,"n_true_positive":63,"precision":1.0,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"80a33aa4d7dc0b8ee5f63fb2f74687c2c3a2a175b56de43706a79f08201458c6","predicted_sha256":"378faa3e9e26827dbc8d3236ff17eafc166885636759c2d72ab88f809ed3f52f","reason":null,"sample_id":"5e0219159fea0cc37425a627","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.1904761904761905,"n_predicted":11,"n_reference":10,"n_true_positive":2,"precision":0.18181818181818182,"recall":0.2},"same_group":{"f1":0.7999999999999999,"n_predicted":25,"n_reference":20,"n_true_positive":18,"precision":0.72,"recall":0.9},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8666666666666667,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"b2440da8f86db34dfa34640d891a53483cda5e31f3d16a220c9f86aebdc2dbc1","predicted_sha256":"ff4001a0b01f3cb555385f6ace763911763aecf5ab4bcb9a7326d1e9aa014c70","reason":null,"sample_id":"5e04ba7f9fea0cc3749733ea","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.5555555555555556,"n_predicted":10,"n_reference":8,"n_true_positive":5,"precision":0.5,"recall":0.625},"same_group":{"f1":0.25,"n_predicted":6,"n_reference":18,"n_true_positive":3,"precision":0.5,"recall":0.16666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"58b8abf24e051193e5b4922f32d7add84a08124adb65346ab20b47b568b650fd","predicted_sha256":"9be07423276c5af369e306c06db23fc4bf7b7e7046c32721719162da434af854","reason":null,"sample_id":"5e0621989fea0cc3748583f6","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":10,"n_uncertain_nodes":0,"parent_child":{"f1":0.6,"n_predicted":5,"n_reference":5,"n_true_positive":3,"precision":0.6,"recall":0.6},"same_group":{"f1":0.8,"n_predicted":4,"n_reference":6,"n_true_positive":4,"precision":1.0,"recall":0.6666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"cfc65393acb7ae9a7376a9beed9ddbe233011315315d6b8c85e34b1d1b92bb35","predicted_sha256":"0a4d216abb69c702e194e7d8e3f5b3c4c38fe883b54cedb25a8eb0732e89d306","reason":null,"sample_id":"5e0d99499fea0cc374a71bcc","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":1,"excluded_predicted_same_group_pairs":2,"excluded_reference_parent_child_edges":1,"excluded_reference_same_group_pairs":2,"n_certain_nodes":6,"n_uncertain_nodes":1,"parent_child":{"f1":0.4,"n_predicted":3,"n_reference":2,"n_true_positive":1,"precision":0.3333333333333333,"recall":0.5},"same_group":{"f1":1.0,"n_predicted":2,"n_reference":2,"n_true_positive":2,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6666666666666666,"uncertain_node_ids":["asset_0002"],"uncertain_parent_child":{"f1":0.0,"n_predicted":1,"n_reference":1,"n_true_positive":0,"precision":0.0,"recall":0.0},"uncertain_same_group":{"f1":1.0,"n_predicted":2,"n_reference":2,"n_true_positive":2,"precision":1.0,"recall":1.0},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"0c81e1edb4d396a854774bb669b7c71687089ca21a1f750fac87e3bfcee71f0e","predicted_sha256":"de3d50ce91cd0d82d41f36ff346abd2b13906d73cd5fc8b060da8b00b019df8b","reason":null,"sample_id":"5e202d829fea0cc3744908a8","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.23529411764705882,"n_predicted":9,"n_reference":8,"n_true_positive":2,"precision":0.2222222222222222,"recall":0.25},"same_group":{"f1":0.7333333333333334,"n_predicted":11,"n_reference":19,"n_true_positive":11,"precision":1.0,"recall":0.5789473684210527},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.6923076923076923,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"333bfb3320d9932cb58b65245da2e096ccfca1e9f14f97da186c256e13cd19e8","predicted_sha256":"6a22a06ea91f0e3168d2871b24370990565b734690381068fefa481b29badea4","reason":null,"sample_id":"5e2031da9fea0cc37450dd01","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":11,"n_uncertain_nodes":0,"parent_child":{"f1":0.26666666666666666,"n_predicted":8,"n_reference":7,"n_true_positive":2,"precision":0.25,"recall":0.2857142857142857},"same_group":{"f1":0.34782608695652173,"n_predicted":10,"n_reference":13,"n_true_positive":4,"precision":0.4,"recall":0.3076923076923077},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7272727272727273,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"40a43ffbbcbeb35d48390978e46ade53f03c63bdbaf81dcb6c8e8e1ce21c971d","predicted_sha256":"d0d622717ae86631c49b85e7d03f6ecb3a6fc8e6882bf071ebeb7d1325c10cf1","reason":null,"sample_id":"5e28090f9fea0cc3748fc62a","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":12,"n_uncertain_nodes":0,"parent_child":{"f1":0.4210526315789474,"n_predicted":10,"n_reference":9,"n_true_positive":4,"precision":0.4,"recall":0.4444444444444444},"same_group":{"f1":0.48484848484848486,"n_predicted":8,"n_reference":25,"n_true_positive":8,"precision":1.0,"recall":0.32},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9166666666666666,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9b166da5521879bf7eb6e25bd5eefeb55f924a734b58413b748c79658e6425aa","predicted_sha256":"d0ea001f1428dd088abdf57d2b976c512a0f12ff81506a3142a6ec5d2b08ae9f","reason":null,"sample_id":"5e6f770e4b3890eb07175aee","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.25,"n_predicted":4,"n_reference":4,"n_true_positive":1,"precision":0.25,"recall":0.25},"same_group":{"f1":0.5,"n_predicted":3,"n_reference":5,"n_true_positive":2,"precision":0.6666666666666666,"recall":0.4},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","predicted_sha256":"9b42b8c66e84da6ade0b6c3ea10f88be2d16476737fe693de71fb6c2f8139aaf","reason":null,"sample_id":"5e8762404b3890eb0782ad22","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.6,"n_predicted":6,"n_reference":4,"n_true_positive":3,"precision":0.5,"recall":0.75},"same_group":{"f1":0.5,"n_predicted":3,"n_reference":5,"n_true_positive":2,"precision":0.6666666666666666,"recall":0.4},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.25,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"75deb3548564a2d82426e8ccc6241086a67f888f795c15190520c5a5435241b2","predicted_sha256":"2e2248fd038b3cd773434648761661409e90abb6660e9a037cfd4715270f9c5a","reason":null,"sample_id":"5e8d96cb4b3890eb071c683d","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":15,"n_uncertain_nodes":0,"parent_child":{"f1":0.5833333333333334,"n_predicted":12,"n_reference":12,"n_true_positive":7,"precision":0.5833333333333334,"recall":0.5833333333333334},"same_group":{"f1":0.6136363636363636,"n_predicted":30,"n_reference":58,"n_true_positive":27,"precision":0.9,"recall":0.46551724137931033},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.9333333333333333,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9e52c1f7368c7bd8632e2a9bd1798b398cba2c27e5c0d4a63d89b413edad8551","predicted_sha256":"67c67010d55e0e0dded18aa10b5f4e0d9f1b3e723cdbba858916e27791fc982b","reason":null,"sample_id":"5e8ef9fb4b3890eb0760bade","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":7,"n_uncertain_nodes":0,"parent_child":{"f1":0.25,"n_predicted":5,"n_reference":3,"n_true_positive":1,"precision":0.2,"recall":0.3333333333333333},"same_group":{"f1":1.0,"n_predicted":4,"n_reference":4,"n_true_positive":4,"precision":1.0,"recall":1.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5714285714285714,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"93953332a9a9680a90b4f6098c1174f6f6ea2f7e2ad21180f4c0b15ff537bcca","predicted_sha256":"188718b64b3afda95140d441e87a86c6e263701d01a85550fb64d3ae0a2764d1","reason":null,"sample_id":"5e90704d499b85dcc7d7114d","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":7,"n_uncertain_nodes":0,"parent_child":{"f1":0.5,"n_predicted":4,"n_reference":4,"n_true_positive":2,"precision":0.5,"recall":0.5},"same_group":{"f1":0.4444444444444444,"n_predicted":3,"n_reference":6,"n_true_positive":2,"precision":0.6666666666666666,"recall":0.3333333333333333},"semantic_role_accuracy":0.0,"semantic_type_accuracy":1.0,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"686e7cc40949ad8fd37dbfa4dfbe0f2a510365e0da0098e24fcb1017292a4b2b","predicted_sha256":"5f9c2585dcd9037a74aa4ef8312b2c6f17ce20e3499c986df88ec87f53755555","reason":null,"sample_id":"5e984f83499b85dcc792f6be","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.4,"n_predicted":4,"n_reference":6,"n_true_positive":2,"precision":0.5,"recall":0.3333333333333333},"same_group":{"f1":0.375,"n_predicted":3,"n_reference":13,"n_true_positive":3,"precision":1.0,"recall":0.23076923076923078},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7777777777777778,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"ae2766cee27f70e2a39232703282fa7962e1f7a31659518d733f78e8a3ec0f82","predicted_sha256":"b2fc2f1e8083d2731571a9389b592d78fdadbd0e6ea6904f6cb7fd62939b7dd0","reason":null,"sample_id":"5ea01126499b85dcc781e788","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":9,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":6,"n_reference":5,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.5555555555555556,"n_predicted":9,"n_reference":9,"n_true_positive":5,"precision":0.5555555555555556,"recall":0.5555555555555556},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7777777777777778,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"5e39ecb7183cf3e2f23706a740b4bc5e391c0b06a0f822e28fcde20b6ae058d5","predicted_sha256":"0c57b1c5a4aca58b8fcb10a0a7804fdc08b79afe71dcaaa47df7e253e6759094","reason":null,"sample_id":"5ea2d990499b85dcc7aaeb92","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":5,"n_reference":6,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.0,"n_predicted":0,"n_reference":13,"n_true_positive":0,"precision":0.0,"recall":0.0},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"389c94d5defa0787150a595f7e0a763728df3d751a937a87ad98d007c459fac9","predicted_sha256":"2e9a62f52efee326e225538de82b1000e3e3435eb15244cd30365a545c971ad1","reason":null,"sample_id":"5ea97187499b85dcc7c45e3d","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.0,"n_predicted":5,"n_reference":5,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.4210526315789474,"n_predicted":4,"n_reference":15,"n_true_positive":4,"precision":1.0,"recall":0.26666666666666666},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.75,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"e8a3d2792f29454f17cab8dc1cddfa1ff29c015f535cd9baf6025e9d9c216fc0","predicted_sha256":"f0aa378b720e7877c64b21f27c47a6ac5abcf6b115a31bccdb0db6be56127da0","reason":null,"sample_id":"5f114599499b85dcc796da51","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":37,"n_uncertain_nodes":0,"parent_child":{"f1":0.2962962962962963,"n_predicted":27,"n_reference":27,"n_true_positive":8,"precision":0.2962962962962963,"recall":0.2962962962962963},"same_group":{"f1":0.6334841628959276,"n_predicted":127,"n_reference":94,"n_true_positive":70,"precision":0.5511811023622047,"recall":0.7446808510638298},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7837837837837838,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"0871eca1ed27bdc15b32169d27b3b30b25b2278d7947863329da8201db7fb8e9","predicted_sha256":"bf665fc09f4bd092f672ebd83af5eb7f17596384b2b53bd379342f9f4534e4a9","reason":null,"sample_id":"5f3b84c8a637ee11e32ee4c9","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":8,"n_uncertain_nodes":0,"parent_child":{"f1":0.7272727272727272,"n_predicted":6,"n_reference":5,"n_true_positive":4,"precision":0.6666666666666666,"recall":0.8},"same_group":{"f1":0.36363636363636365,"n_predicted":4,"n_reference":7,"n_true_positive":2,"precision":0.5,"recall":0.2857142857142857},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.5,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"615f323e09e06ba4ca427739937557616d2f9817ffebcce4846ddc5333702d25","predicted_sha256":"f18e0f1ccc5a5ff1bb539f356a989405122bc8e31f85bfa4c0b8be90c82c8e3a","reason":null,"sample_id":"5f4c9d6fa637ee11e34ab88b","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":22,"n_uncertain_nodes":0,"parent_child":{"f1":0.48648648648648646,"n_predicted":20,"n_reference":17,"n_true_positive":9,"precision":0.45,"recall":0.5294117647058824},"same_group":{"f1":0.7466666666666666,"n_predicted":28,"n_reference":47,"n_true_positive":28,"precision":1.0,"recall":0.5957446808510638},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8181818181818182,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"2a37e0eb2891de05b2a44e9c3f70e4f0faa493045653b11b3125a10d48fbe85a","predicted_sha256":"ee84bbf8db79c4b4ddf17395507a6c103938c19800778cef52e27a96ce309b18","reason":null,"sample_id":"5f5b5a3da637ee11e3e5adbf","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":null,"oracle_sha256":"ffe9ca6e9231370545e8ee64abdfc552fe45840ee8769d9d57b00f139c3eceeb","predicted_sha256":null,"reason":"no predicted layout_tree.json on disk (Planner failed)","sample_id":"5f644f40a637ee11e3669a1c","schema_version":"a3.tree-accuracy.v1","status":"planner_failure"} +{"metrics":{"excluded_predicted_parent_child_edges":0,"excluded_predicted_same_group_pairs":0,"excluded_reference_parent_child_edges":0,"excluded_reference_same_group_pairs":0,"n_certain_nodes":13,"n_uncertain_nodes":0,"parent_child":{"f1":0.28571428571428564,"n_predicted":11,"n_reference":10,"n_true_positive":3,"precision":0.2727272727272727,"recall":0.3},"same_group":{"f1":0.7000000000000001,"n_predicted":21,"n_reference":39,"n_true_positive":21,"precision":1.0,"recall":0.5384615384615384},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.8461538461538461,"uncertain_node_ids":[],"uncertain_parent_child":null,"uncertain_same_group":null,"uncertain_semantic_role_accuracy":null,"uncertain_semantic_type_accuracy":null},"oracle_sha256":"9e250c13a66cdb1d37fdf8911440a6c01f03dbb9ef627b2b24af34a0ca58b47b","predicted_sha256":"8d22fdb54226efa1d2abbbd4cd55e0581bd8740e15b3494bf470acf51177d007","reason":null,"sample_id":"5f96aca7a637ee11e30bb517","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} +{"metrics":{"excluded_predicted_parent_child_edges":2,"excluded_predicted_same_group_pairs":3,"excluded_reference_parent_child_edges":6,"excluded_reference_same_group_pairs":11,"n_certain_nodes":10,"n_uncertain_nodes":2,"parent_child":{"f1":0.0,"n_predicted":6,"n_reference":3,"n_true_positive":0,"precision":0.0,"recall":0.0},"same_group":{"f1":0.8333333333333333,"n_predicted":10,"n_reference":14,"n_true_positive":10,"precision":1.0,"recall":0.7142857142857143},"semantic_role_accuracy":0.0,"semantic_type_accuracy":0.7,"uncertain_node_ids":["asset_0001","asset_0002"],"uncertain_parent_child":{"f1":0.5,"n_predicted":2,"n_reference":6,"n_true_positive":2,"precision":1.0,"recall":0.3333333333333333},"uncertain_same_group":{"f1":0.42857142857142855,"n_predicted":3,"n_reference":11,"n_true_positive":3,"precision":1.0,"recall":0.2727272727272727},"uncertain_semantic_role_accuracy":0.0,"uncertain_semantic_type_accuracy":1.0},"oracle_sha256":"a7dcb181a261796599709cae8a1e5fad3116899a1a601d198c37b86599261d1e","predicted_sha256":"587220ac3dc4dff4dc5515660cff4f9b31815da39bb79d71fa234b6dc2f03f4d","reason":null,"sample_id":"5fbf5b4aa637ee11e3a82536","schema_version":"a3.tree-accuracy.v1","status":"evaluated"} diff --git a/layout_agent/external_baselines/elem2design/common_protocol.py b/layout_agent/external_baselines/elem2design/common_protocol.py new file mode 100644 index 000000000..fa1e48bc2 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/common_protocol.py @@ -0,0 +1,196 @@ +"""Dependency-free protocol logic shared by the Elem2Design baseline scripts. + +Everything here is pure Python so it can be unit-tested in the repo's normal +test environment without the heavyweight e2d inference environment. + +Fairness contract (see layout_agent/experiment_plan.md): +* the baseline may see R3 bitmaps, text contents, canvas size, official + predicted roles, and its own intermediate renders — nothing else; +* GT geometry, GT roles, A3 trees/candidates/renders, and P-Full native + pixel dimensions must never enter the model input. +""" +from __future__ import annotations + +import json +import random +import re +from typing import Any, Dict, List, Sequence, Tuple + +PROTOCOL_VERSION = "a3.external-baseline-run.v1" +BASELINE_SEED = 42 +N_LAYERS = 5 +LAYER_NAMES = ["background", "underlay", "logo/image", "text", "embellishment"] + +# Keys that must never appear as dict keys anywhere inside test.json +# (canvas_width/canvas_height live only in the human preamble text). +FORBIDDEN_KEYS = frozenset( + { + "left", "top", "x", "y", "bbox", "angle", "z_index", + "native_width", "native_height", "font_size", + } +) +# "width"/"height" are forbidden as element keys but legal as canvas keys. +FORBIDDEN_UNLESS_CANVAS = frozenset({"width", "height"}) +CANVAS_KEYS = frozenset({"canvas_width", "canvas_height"}) + + +def deterministic_layer_order( + asset_ids: Sequence[str], + roles_by_asset: Dict[str, int], + sample_id: str, + seed: int = BASELINE_SEED, +) -> List[str]: + """Per-sample deterministic shuffle followed by a stable sort on layer. + + The official pipeline shuffles with one global RNG over the whole split + and then role-sorts; with a different sample subset that exact stream is + unreproducible, so we document a per-sample RNG keyed on (seed, sample_id) + instead. Stable sort preserves the shuffled order within each layer, + matching the official shuffle→sort composition. + """ + rng = random.Random(f"{seed}:{sample_id}") + shuffled = list(asset_ids) + rng.shuffle(shuffled) + return sorted(shuffled, key=lambda asset_id: roles_by_asset[asset_id]) + + +def build_index_map(ordered_asset_ids: Sequence[str]) -> Dict[str, Any]: + """Model element index <-> asset id bookkeeping for one sample.""" + return { + "index_to_asset": list(ordered_asset_ids), + "asset_to_index": {a: i for i, a in enumerate(ordered_asset_ids)}, + } + + +def scan_forbidden_keys(node: Any, path: str = "$") -> List[str]: + """Recursively find forbidden dict keys inside a JSON-like structure.""" + violations: List[str] = [] + if isinstance(node, dict): + for key, value in node.items(): + if key in FORBIDDEN_KEYS or ( + key in FORBIDDEN_UNLESS_CANVAS and key not in CANVAS_KEYS + ): + violations.append(f"{path}.{key}") + violations.extend(scan_forbidden_keys(value, f"{path}.{key}")) + elif isinstance(node, list): + for i, item in enumerate(node): + violations.extend(scan_forbidden_keys(item, f"{path}[{i}]")) + return violations + + +def assert_placeholder_gpt_turns(conversations: Sequence[Dict[str, str]]) -> None: + """Every gpt turn in test.json must be the '{}' placeholder, never GT.""" + gpt_turns = [c for c in conversations if c.get("from") == "gpt"] + if len(gpt_turns) != N_LAYERS: + raise ValueError(f"expected {N_LAYERS} gpt turns, got {len(gpt_turns)}") + for turn in gpt_turns: + if turn.get("value") != "{}": + raise ValueError("gpt turn is not the '{}' placeholder — GT leakage risk") + + +_TURN_SPLIT = re.compile(r"\s*\$\$\$\$\$\s*") +_ELEMENT_RE = re.compile(r"\{.*?\}", re.DOTALL) + + +def split_prediction_turns(prediction: str) -> List[str]: + """Split the official ' ##### $$$$$ ' concatenation into turns.""" + turns = [t for t in _TURN_SPLIT.split(prediction) if t.strip()] + return [t.split("#####", 1)[-1].strip() for t in turns] + + +def parse_elements(turn_text: str) -> List[Dict[str, Any]]: + """Extract element dicts from one turn's raw model output. + + Non-JSON fragments are skipped (official parser behaviour); the empty + layer marker '{}' yields no elements. + """ + elements: List[Dict[str, Any]] = [] + for fragment in _ELEMENT_RE.findall(turn_text): + if fragment == "{}": + continue + try: + data = json.loads(fragment) + except json.JSONDecodeError: + continue + if isinstance(data, dict) and data: + elements.append(data) + return elements + + +def _finite_positive(value: Any) -> bool: + return isinstance(value, (int, float)) and value == value and abs(value) != float("inf") and value > 0 + + +def _finite(value: Any) -> bool: + return isinstance(value, (int, float)) and value == value and abs(value) != float("inf") + + +def convert_sample( + turns: Sequence[Sequence[Dict[str, Any]]], + index_to_asset: Sequence[str], + texts_by_asset: Dict[str, str], +) -> Tuple[List[Dict[str, Any]], List[str]]: + """Convert per-layer parsed elements into A3 candidate elements. + + Returns (elements, errors). Any error makes the sample a failure — + callers must not silently drop elements. Geometry passes through with + finite/positive checks and pixel rounding only; no clipping, no repair. + """ + errors: List[str] = [] + seen: Dict[str, int] = {} + elements: List[Dict[str, Any]] = [] + for layer_index, layer_elements in enumerate(turns): + for order, element in enumerate(layer_elements): + index = element.get("index") + if not isinstance(index, int) or not (0 <= index < len(index_to_asset)): + errors.append(f"layer{layer_index}: bad element index {index!r}") + continue + asset_id = index_to_asset[index] + if asset_id in seen: + errors.append(f"duplicate prediction for {asset_id}") + continue + seen[asset_id] = layer_index + geometry = {} + ok = True + for key in ("left", "top", "width", "height"): + value = element.get(key) + valid = _finite_positive(value) if key in ("width", "height") else _finite(value) + if not valid or not isinstance(value, (int, float)): + errors.append(f"{asset_id}: invalid {key}={value!r}") + ok = False + else: + geometry[key] = int(round(float(value))) + if not ok: + continue + if geometry["width"] <= 0 or geometry["height"] <= 0: + errors.append(f"{asset_id}: non-positive size after rounding") + continue + angle = element.get("angle") + converted: Dict[str, Any] = { + "id": asset_id, + **geometry, + "angle": float(angle) if isinstance(angle, (int, float)) and _finite(angle) else 0.0, + "z_index": layer_index * 1000 + order, + } + if texts_by_asset.get(asset_id): + font_size = element.get("font_size") + if isinstance(font_size, (int, float)) and _finite_positive(font_size): + converted["font_size"] = int(round(float(font_size))) + if isinstance(element.get("font"), str) and element["font"]: + converted["font_family"] = element["font"] + color = element.get("color") + if ( + isinstance(color, list) and len(color) == 3 + and all(isinstance(c, (int, float)) and _finite(c) and 0 <= c <= 255 for c in color) + ): + converted["color"] = "#{:02x}{:02x}{:02x}".format( + *(int(round(float(c))) for c in color) + ) + if isinstance(element.get("text_align"), str) and element["text_align"]: + converted["text_align"] = element["text_align"] + elements.append(converted) + + missing = [a for a in index_to_asset if a not in seen] + if missing: + errors.append(f"missing predictions for: {','.join(sorted(missing))}") + return elements, errors diff --git a/layout_agent/external_baselines/elem2design/compare_external_baseline.py b/layout_agent/external_baselines/elem2design/compare_external_baseline.py new file mode 100644 index 000000000..fcbfaf466 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/compare_external_baseline.py @@ -0,0 +1,248 @@ +#!/usr/bin/env python +"""Paired comparison: frozen A3-T2 vs the Elem2Design external baseline (meta env). + +Zero-cost, read-only. A3-T2 per-sample SGC/TLC/PCA come from the same +deterministic recomputation as the Relation reanalysis +(`a3_relation_stats.load_arm_per_sample`); its Ali/Ove come from the frozen +final candidates with the same shared ``sega_metrics`` path used for the +baseline. Each metric pairs only samples that completed in both arms; both +failure rates are reported independently. + +Statistics per metric: wins/losses/ties (A3-T2 minus baseline), exact +two-sided sign test, paired mean difference with sample-level percentile +bootstrap 95% CI (seed 20260712, 10,000 resamples). Holm correction is +applied within the primary family {SGC,TLC,PCA} and separately within the +geometry family {Ali,Ove} (Rea/Occ deferred with the render+saliency +pipeline, so the geometry family has 2 tests, not 4 — recorded explicitly). +Ali/Ove are lower-is-better; sign conventions are stated in the outputs. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parents[3] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_relation_stats import ( # noqa: E402 + compare_arms, + holm_adjust, + load_arm_per_sample, +) +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import ( # noqa: E402 + BOOTSTRAP_RESAMPLES, + BOOTSTRAP_SEED, + write_bytes_once, +) +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + CLS_IMAGE_LOGO, + CLS_TEXT, + drop_invalid_elements, + metric_alignment, + metric_overlay, + to_xyxy, +) +from metagpt.ext.agentlayout.run_manifest import ( # noqa: E402 + canonical_json_bytes, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.schema import Candidate # noqa: E402 + +SCHEMA_VERSION = "a3.external-baseline-compare.v1" +PRIMARY = ("sgc", "tlc", "pca") +GEOMETRY = ("ali", "ove") + + +def a3_rows_with_geometry(a3_run_dir: Path, oracle_dir: Path) -> list: + rows, _ = load_arm_per_sample(run_dir=a3_run_dir, oracle_dir=oracle_dir, arm="A3-T2") + for row in rows: + if row["status"] != "completed": + row["ali"] = row["ove"] = None + continue + sample_dir = a3_run_dir / "samples" / row["sample_id"] + l0 = json.loads((sample_dir / "pipeline" / "l0_result.json").read_text()) + slot = next(s for s in l0["bundle"]["slots"] if s["slot_id"] == l0["b0_slot_id"]) + candidate = Candidate.model_validate(slot["candidate"]) + pfull = json.loads( + (sample_dir / "inputs" / "pfull" / "asset_manifest.json").read_text() + ) + texts = { + a["asset_id"]: (a.get("content") or "") + if a.get("content") not in (None, "None") else "" + for a in pfull["assets"] + } + layout = [ + ( + CLS_TEXT if texts.get(el.id) else CLS_IMAGE_LOGO, + to_xyxy(el.left, el.top, el.width, el.height), + ) + for el in candidate.elements + ] + layout = drop_invalid_elements( + layout, pfull["canvas_width"], pfull["canvas_height"] + ) + row["ali"] = metric_alignment( + [layout], pfull["canvas_width"], pfull["canvas_height"] + ) + row["ove"] = metric_overlay([layout]) + return rows + + +def external_rows(eval_dir: Path) -> list: + rows = [json.loads(line) for line in (eval_dir / "per_sample.jsonl").read_text().splitlines()] + for row in rows: + row["arm"] = "elem2design" + return rows + + +def _fmt_p(p): + if p is None: + return "--" + return f"{p:.1e}" if p < 1e-4 else f"{p:.4f}" + + +def _fmt_ci(ci): + return "--" if ci is None else f"[{ci['low']:+.4f}, {ci['high']:+.4f}]" + + +def render_markdown(aggregate: dict) -> str: + lines = [ + "# A3-T2 vs Elem2Design (Relation N=100, matched inputs)", + "", + f"Direction: diff = A3-T2 − Elem2Design. SGC/TLC/PCA higher is better; " + f"Ali/Ove lower is better. Holm within families (primary 3 tests, geometry " + f"2 tests; Rea/Occ deferred). Bootstrap seed {BOOTSTRAP_SEED}, " + f"{BOOTSTRAP_RESAMPLES:,} resamples.", + "", + f"Arm completion: A3-T2 {aggregate['arms']['A3-T2']['n_completed']}/" + f"{aggregate['arms']['A3-T2']['n_total']}; Elem2Design " + f"{aggregate['arms']['elem2design']['n_completed']}/" + f"{aggregate['arms']['elem2design']['n_total']}.", + "", + "| Metric | A3-T2 mean (n) | E2D mean (n) | Paired N | W/L/T | Mean diff | 95% CI | p raw | p Holm |", + "| --- | ---: | ---: | ---: | --- | ---: | --- | ---: | ---: |", + ] + for entry in aggregate["comparisons"]: + m = entry["metric"] + a3m, e2m = aggregate["arm_metric_means"]["A3-T2"][m], aggregate["arm_metric_means"]["elem2design"][m] + lines.append( + "| " + " | ".join([ + m.upper() + (" ↓" if m in GEOMETRY else ""), + f"{a3m['mean']:.4f} ({a3m['n']})" if a3m["mean"] is not None else "--", + f"{e2m['mean']:.4f} ({e2m['n']})" if e2m["mean"] is not None else "--", + str(entry["paired_n"]), + f"{entry['wins']}/{entry['losses']}/{entry['ties']}", + f"{entry['mean_diff']:+.4f}" if entry["mean_diff"] is not None else "--", + _fmt_ci(entry["mean_diff_ci95"]), + _fmt_p(entry["sign_test_p_raw"]), + _fmt_p(entry["sign_test_p_holm"]), + ]) + " |" + ) + lines += ["", "Failures are excluded pairwise only; both arms' failure counts are " + "reported above and in aggregate.json. Non-significant results mean no " + "difference was detected, not equivalence."] + return "\n".join(lines) + "\n" + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--external-eval-dir", required=True, type=Path) + parser.add_argument("--a3-run-dir", required=True, type=Path) + parser.add_argument("--oracle-dir", required=True, type=Path) + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + args = parser.parse_args() + + a3_rows = a3_rows_with_geometry(args.a3_run_dir.resolve(), args.oracle_dir.resolve()) + e2d_rows = external_rows(args.external_eval_dir.resolve()) + + comparisons = [] + for metric in PRIMARY + GEOMETRY: + entry = compare_arms(a3_rows, e2d_rows, metric) + entry["comparison"] = "A3-T2_vs_elem2design" + entry["direction"] = "A3-T2 - elem2design" + entry["family"] = "primary" if metric in PRIMARY else "geometry" + comparisons.append(entry) + for family in ("primary", "geometry"): + family_entries = [e for e in comparisons if e["family"] == family] + adjusted = holm_adjust([e["sign_test_p_raw"] for e in family_entries]) + for entry, holm in zip(family_entries, adjusted): + entry["sign_test_p_holm"] = holm + + def arm_summary(rows): + completed = [r for r in rows if r["status"] == "completed"] + return { + "n_total": len(rows), + "n_completed": len(completed), + "n_failed": len(rows) - len(completed), + "failed_samples": [ + {"sample_id": r["sample_id"], + "reason": r.get("reason") or r.get("error_type")} + for r in rows if r["status"] != "completed" + ], + } + + def arm_means(rows): + completed = [r for r in rows if r["status"] == "completed"] + out = {} + for metric in PRIMARY + GEOMETRY: + values = [r[metric] for r in completed if r.get(metric) is not None] + out[metric] = { + "mean": sum(values) / len(values) if values else None, + "n": len(values), + } + return out + + aggregate = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "arms": {"A3-T2": arm_summary(a3_rows), "elem2design": arm_summary(e2d_rows)}, + "arm_metric_means": {"A3-T2": arm_means(a3_rows), "elem2design": arm_means(e2d_rows)}, + "comparisons": comparisons, + "bootstrap": {"seed": BOOTSTRAP_SEED, "resamples": BOOTSTRAP_RESAMPLES, + "method": "percentile"}, + "notes": [ + "diff = A3-T2 - elem2design; ali/ove lower is better", + "Holm within families: primary={sgc,tlc,pca}, geometry={ali,ove}", + "rea/occ deferred (render+saliency pipeline), not reported as 0", + "results are Relation N=100 only; do not generalize", + ], + } + + out = args.output_root / SCHEMA_VERSION / args.evaluation_id + per_sample_rows = [dict(r, arm="A3-T2") for r in a3_rows] + e2d_rows + per_sample_bytes = b"".join(canonical_json_bytes(r) for r in per_sample_rows) + aggregate_bytes = canonical_json_bytes(aggregate) + markdown_bytes = render_markdown(aggregate).encode() + manifest = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "created_at": utc_now(), + "external_eval_dir": str(args.external_eval_dir.resolve()), + "a3_run_dir": str(args.a3_run_dir.resolve()), + "external_per_sample_sha256": sha256_file(args.external_eval_dir / "per_sample.jsonl"), + "code_sha256": {"compare_external_baseline.py": sha256_file(Path(__file__))}, + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + "results.md": sha256_bytes(markdown_bytes), + }, + "write_once": True, + } + write_bytes_once(out / "aggregate.json", aggregate_bytes) + write_bytes_once(out / "per_sample.jsonl", per_sample_bytes) + write_bytes_once(out / "results.md", markdown_bytes) + write_json_once(out / "evaluation_manifest.json", manifest) + print(render_markdown(aggregate)) + print(f"bundle -> {out}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/convert_outputs.py b/layout_agent/external_baselines/elem2design/convert_outputs.py new file mode 100644 index 000000000..aebaf96c1 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/convert_outputs.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python +"""Convert raw Elem2Design predictions into per-sample A3-style candidates. + +Pure JSON transformation (no model, no torch): reads the shard JSONL files +plus ``id_maps.json``, maps official element ``index`` back to A3 +``asset_id``, validates geometry fail-closed, and writes one +``samples//candidate.json`` (or ``error.json``) per sample plus a +``run_summary.json``. Runs in any Python 3.9+ environment. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +SCRIPT_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(SCRIPT_DIR)) + +from common_protocol import ( # noqa: E402 + PROTOCOL_VERSION, + convert_sample, + parse_elements, + split_prediction_turns, +) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--run-dir", required=True, type=Path) + args = parser.parse_args() + run_dir = args.run_dir + + id_maps = json.loads((run_dir / "id_maps.json").read_text()) + sample_ids = json.loads((run_dir / "sample_ids.json").read_text()) + + records = {} + for shard in sorted(run_dir.glob("raw_predictions_shard*.jsonl")): + for line in shard.read_text().splitlines(): + record = json.loads(line) + records[record["id"]] = record + + samples_dir = run_dir / "samples" + summary = {"schema_version": PROTOCOL_VERSION, "samples": [], "completed": 0, "failed": 0} + for sample_id in sample_ids: + sample_dir = samples_dir / sample_id + sample_dir.mkdir(parents=True, exist_ok=True) + entry = {"sample_id": sample_id} + + def fail(reason: str, errors=None) -> None: + entry.update(status="failed", reason=reason) + (sample_dir / "error.json").write_text( + json.dumps({"reason": reason, "errors": errors or []}, ensure_ascii=False) + ) + + record = records.get(sample_id) + mapping = id_maps.get(sample_id) + if mapping is None: + fail("prepare_failure: sample absent from id_maps.json") + elif record is None: + fail("inference_missing: no raw prediction record") + else: + turns_text = split_prediction_turns(record["predictions"]) + turns = [parse_elements(t) for t in turns_text] + elements, errors = convert_sample( + turns, mapping["index_map"]["index_to_asset"], mapping["texts"] + ) + if errors: + fail("conversion_errors", errors) + else: + candidate = { + "candidate_id": "elem2design", + "elements": elements, + } + (sample_dir / "candidate.json").write_text( + json.dumps(candidate, ensure_ascii=False) + ) + entry.update( + status="completed", + n_elements=len(elements), + turn_errors=len(record.get("turn_errors", {})), + elapsed_s=record.get("elapsed_s"), + ) + summary["samples"].append(entry) + summary["completed" if entry.get("status") == "completed" else "failed"] += 1 + + (run_dir / "run_summary.json").write_text(json.dumps(summary, ensure_ascii=False, indent=1)) + print(f"completed {summary['completed']}/{len(sample_ids)}, failed {summary['failed']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/evaluate_external_baseline.py b/layout_agent/external_baselines/elem2design/evaluate_external_baseline.py new file mode 100644 index 000000000..38e9099aa --- /dev/null +++ b/layout_agent/external_baselines/elem2design/evaluate_external_baseline.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +"""Evaluate the Elem2Design external baseline against the human oracle (meta env). + +Zero-cost, read-only over the converted baseline run bundle: computes the +primary human-reference metrics (SGC/TLC/PCA via the shared +``evaluate_layout_realization``) plus the geometry axes Ali/Ove (shared +``sega_metrics``, PKU ``drop_invalid`` applied) for every sample, and +publishes a write-once bundle. Rea/Occ need the render+saliency pipeline and +are explicitly deferred (recorded in the manifest, never reported as 0). + +Failed samples stay explicit rows; nothing is silently dropped. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parents[3] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import write_bytes_once # noqa: E402 +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + CLS_IMAGE_LOGO, + CLS_TEXT, + drop_invalid_elements, + metric_alignment, + metric_overlay, + to_xyxy, +) +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree # noqa: E402 +from metagpt.ext.agentlayout.run_manifest import ( # noqa: E402 + canonical_json_bytes, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.schema import Candidate # noqa: E402 +from metagpt.ext.agentlayout.tools.human_tree_metrics import ( # noqa: E402 + evaluate_layout_realization, +) + +SCHEMA_VERSION = "a3.external-baseline-eval.v1" + + +def geometry_axes(candidate: Candidate, texts: dict, canvas_w: float, canvas_h: float) -> dict: + layout = [ + ( + CLS_TEXT if texts.get(el.id) else CLS_IMAGE_LOGO, + to_xyxy(el.left, el.top, el.width, el.height), + ) + for el in candidate.elements + ] + layout = drop_invalid_elements(layout, canvas_w, canvas_h) + return { + "ali": metric_alignment([layout], canvas_w, canvas_h), + "ove": metric_overlay([layout]), + } + + +def evaluate_run(run_dir: Path, oracle_dir: Path, method: str) -> dict: + sample_ids = json.loads((run_dir / "sample_ids.json").read_text()) + id_maps = json.loads((run_dir / "id_maps.json").read_text()) + rows, n_completed = [], 0 + for sample_id in sample_ids: + row = {"schema_version": SCHEMA_VERSION, "sample_id": sample_id, "method": method} + candidate_path = run_dir / "samples" / sample_id / "candidate.json" + if not candidate_path.exists(): + error_path = run_dir / "samples" / sample_id / "error.json" + reason = "unknown" + if error_path.exists(): + reason = json.loads(error_path.read_text()).get("reason", "unknown") + row.update(status="failed", reason=reason, sgc=None, tlc=None, pca=None, + ali=None, ove=None, skip_reasons=[]) + rows.append(row) + continue + n_completed += 1 + candidate = Candidate.model_validate_json(candidate_path.read_text()) + canvas = id_maps[sample_id]["canvas"] + texts = id_maps[sample_id]["texts"] + oracle = A3LayoutTree.model_validate_json((oracle_dir / f"{sample_id}.json").read_text()) + metrics = evaluate_layout_realization( + tree=oracle, + candidate=candidate, + canvas_width=canvas["canvas_width"], + canvas_height=canvas["canvas_height"], + sample_id=sample_id, + method=method, + ) + row.update( + status="completed", + reason=None, + sgc=metrics.sgc, + tlc=metrics.tlc, + pca=metrics.pca, + skip_reasons=metrics.skip_reasons, + candidate_sha256=sha256_file(candidate_path), + **geometry_axes(candidate, texts, canvas["canvas_width"], canvas["canvas_height"]), + ) + rows.append(row) + return {"rows": rows, "n_total": len(sample_ids), "n_completed": n_completed} + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--run-dir", required=True, type=Path) + parser.add_argument("--oracle-dir", required=True, type=Path) + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + parser.add_argument("--method", default="elem2design") + args = parser.parse_args() + + result = evaluate_run(args.run_dir.resolve(), args.oracle_dir.resolve(), args.method) + rows = result["rows"] + completed = [r for r in rows if r["status"] == "completed"] + + def mean_of(key: str): + values = [r[key] for r in completed if r[key] is not None] + return (sum(values) / len(values), len(values)) if values else (None, 0) + + aggregate = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "method": args.method, + "run_dir": str(args.run_dir.resolve()), + "oracle_dir": str(args.oracle_dir.resolve()), + "n_total": result["n_total"], + "n_completed": result["n_completed"], + "n_failed": result["n_total"] - result["n_completed"], + "failed_samples": [ + {"sample_id": r["sample_id"], "reason": r["reason"]} + for r in rows if r["status"] == "failed" + ], + "metric_means": { + key: {"mean": mean, "n": n} + for key in ("sgc", "tlc", "pca", "ali", "ove") + for mean, n in [mean_of(key)] + }, + "deferred_metrics": { + "rea": "requires render+saliency pipeline; deferred, not zero", + "occ": "requires render+saliency pipeline; deferred, not zero", + }, + } + + out = args.output_root / SCHEMA_VERSION / args.evaluation_id + per_sample_bytes = b"".join(canonical_json_bytes(r) for r in rows) + aggregate_bytes = canonical_json_bytes(aggregate) + manifest = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "created_at": utc_now(), + "input_hashes": { + "run_summary.json": sha256_file(args.run_dir / "run_summary.json"), + "id_maps.json": sha256_file(args.run_dir / "id_maps.json"), + "sample_ids.json": sha256_file(args.run_dir / "sample_ids.json"), + }, + "code_sha256": { + "evaluate_external_baseline.py": sha256_file(Path(__file__)), + "human_tree_metrics.py": sha256_file( + REPO_ROOT / "metagpt/ext/agentlayout/tools/human_tree_metrics.py" + ), + "sega_metrics.py": sha256_file( + REPO_ROOT / "metagpt/ext/agentlayout/evaluation/sega_metrics.py" + ), + }, + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + }, + "write_once": True, + } + write_bytes_once(out / "aggregate.json", aggregate_bytes) + write_bytes_once(out / "per_sample.jsonl", per_sample_bytes) + write_json_once(out / "evaluation_manifest.json", manifest) + print(json.dumps(aggregate["metric_means"], indent=1)) + print(f"completed {aggregate['n_completed']}/{aggregate['n_total']} -> {out}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/gate1_load_test.py b/layout_agent/external_baselines/elem2design/gate1_load_test.py new file mode 100644 index 000000000..d17239952 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/gate1_load_test.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +"""Gate 1: load-and-generate smoke test for Elem2Design on Pascal (e2d env). + +Loads the pinned LoRA checkpoint in 4-bit (fp16 compute, no merge), prints +device placement and VRAM, and runs one short seeded generation with a dummy +image to prove the full LLaVA path works on this GPU. No dataset access. +""" +from __future__ import annotations + +import json +import sys +import time +from pathlib import Path + +import torch + +SCRIPT_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(SCRIPT_DIR)) + +from infer_patched import load_model # noqa: E402 + + +def main() -> int: + model_path = sys.argv[1] + started = time.time() + tokenizer, model, image_processor, _ = load_model(model_path, load_4bit=True, device_map="auto") + tokenizer.pad_token_id = tokenizer.unk_token_id or 0 + model.config.use_cache = True + model.eval() + load_s = time.time() - started + device = next(model.parameters()).device + print(f"loaded in {load_s:.1f}s; lm device={device}; " + f"vram={torch.cuda.max_memory_allocated() / 2**20:.0f}MB") + + from llava.mm_utils import tokenizer_image_token # noqa: E402 + + prompt = ( + "A poster of canvas width 600px, canvas height 1200px. element 0: . " + "Now predict the background elements: element 0: ASSISTANT:" + ) + input_ids = tokenizer_image_token(prompt, tokenizer, return_tensors="pt").unsqueeze(0).to(device) + crop = image_processor.crop_size + dummy = torch.zeros(2, 3, crop["height"], crop["width"]).to(device, dtype=torch.float16) + torch.manual_seed(42) + started = time.time() + with torch.inference_mode(): + output_ids = model.generate( + input_ids, + images=[dummy], + do_sample=True, + temperature=0.7, + top_p=0.95, + pad_token_id=tokenizer.eos_token_id, + max_new_tokens=64, + ) + gen_s = time.time() - started + text = tokenizer.batch_decode(output_ids, skip_special_tokens=True)[0] + n_new = output_ids.shape[1] + print(f"generated {n_new} tokens in {gen_s:.1f}s ({n_new / gen_s:.2f} tok/s)") + print("sample output:", json.dumps(text[:300])) + print(f"peak vram: {torch.cuda.max_memory_allocated() / 2**20:.0f}MB") + print("GATE1 PASS") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/infer_patched.py b/layout_agent/external_baselines/elem2design/infer_patched.py new file mode 100644 index 000000000..cf190d413 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/infer_patched.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python +"""Minimally patched Elem2Design inference for the A3 external baseline. + +Patches over the official ``llava/infer/infer.py`` (all documented): + +1. ``--load-4bit`` uses the official ``load_pretrained_model(load_4bit=True)`` + (fp16 compute dtype — required on Pascal GPUs, which lack bf16); peft + 0.19 merges the LoRA delta into the NF4 weights via dequant/requant. +2. No ``model.to("cuda")`` in 4-bit mode (would break the quantized device + map); tensors go to the model's real input device. +3. ``model.config.use_cache = True`` for generation (the checkpoint ships + with the training value ``False``, which makes decoding quadratic). +4. ``--seed`` reseeds torch per (sample, turn) for reproducible sampling. +5. ``--resume``: one JSONL line per finished sample, fsync'd; already-done + sample IDs are skipped on restart. No per-sample retry: a failed turn + records the exception and the sample continues to fail explicitly. +6. ``max_new_tokens`` replaces the official ``max_length=5000`` so >25-element + prompts are not silently truncated to empty generations. + +Run inside the `e2d` conda environment from the elem2design repo root. +""" +from __future__ import annotations + +import argparse +import json +import os +import time +import traceback +from pathlib import Path + +import torch + +from llava.infer.infer import EvalArguments, LazySupervisedDataset # noqa: E402 +from crello.util import render # noqa: E402 + + +def load_model(model_path: str, load_4bit: bool, device_map: str): + """Official loader; peft >= 0.7 merges LoRA into bnb 4-bit layers directly. + + The official builder passes both ``load_in_4bit`` and + ``quantization_config``, which transformers 4.44.2 rejects, so we route + the identical official BitsAndBytesConfig through ``**kwargs`` instead of + setting ``load_4bit=True``. + """ + import llava.model.builder as builder + + kwargs = {} + if load_4bit: + from transformers import BitsAndBytesConfig + from transformers.models.llama import modeling_llama + + # Pascal fp16 ALU throughput is 1/64 of fp32; allow overriding the + # bnb compute dtype (numerics change is on par with the already + # accepted 4-bit rounding). Default stays the official float16. + compute_dtype = getattr(torch, os.environ.get("E2D_BNB_COMPUTE_DTYPE", "float16")) + kwargs["quantization_config"] = BitsAndBytesConfig( + load_in_4bit=True, + bnb_4bit_compute_dtype=compute_dtype, + bnb_4bit_use_double_quant=True, + bnb_4bit_quant_type="nf4", + # Keep the multimodal modules (loaded later from mm_projector.bin) + # and the output head in fp16 — quantizing them breaks the + # post-load state_dict copy (packed-shape mismatch). + llm_int8_skip_modules=["mm_projector", "vision_tower", "lm_head"], + ) + # transformers 4.44.2 tries to normal_-init missing-weight modules even + # when their params are already bnb-quantized uint8, which crashes. + # Quantized params never need init, so guard on floating dtype. + original_init = modeling_llama.LlamaPreTrainedModel._init_weights + + def _quant_safe_init(self, module): + weight = getattr(module, "weight", None) + if weight is not None and not torch.is_floating_point(weight): + return + original_init(self, module) + + modeling_llama.LlamaPreTrainedModel._init_weights = _quant_safe_init + return builder.load_pretrained_model( + model_path, _model_base(model_path), device_map=device_map, **kwargs + ) + + +def _model_base(model_path: str) -> str: + with open(os.path.join(model_path, "adapter_config.json")) as handle: + return json.load(handle)["base_model_name_or_path"] + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--model-path", required=True) + parser.add_argument("--data-path", required=True, type=Path) + parser.add_argument("--output-dir", required=True, type=Path) + parser.add_argument("--image-folder", default="/") + parser.add_argument("--load-4bit", action="store_true") + parser.add_argument("--device-map", default="auto") + parser.add_argument("--seed", type=int, default=42) + parser.add_argument("--resume", action="store_true") + parser.add_argument("--temperature", type=float, default=0.7) + parser.add_argument("--top-p", type=float, default=0.95) + parser.add_argument("--max-new-tokens", type=int, default=3072) + parser.add_argument("--shard-index", type=int, default=0) + parser.add_argument("--shard-count", type=int, default=1) + args = parser.parse_args() + + args.output_dir.mkdir(parents=True, exist_ok=True) + out_jsonl = args.output_dir / f"raw_predictions_shard{args.shard_index:02d}.jsonl" + done_ids = set() + if args.resume: + # Scan every shard file so resharding never repeats a finished sample. + for shard_file in args.output_dir.glob("raw_predictions_shard*.jsonl"): + for line in shard_file.read_text().splitlines(): + try: + done_ids.add(json.loads(line)["id"]) + except (json.JSONDecodeError, KeyError): + pass + + tokenizer, model, image_processor, _ = load_model( + args.model_path, args.load_4bit, args.device_map + ) + tokenizer.pad_token_id = tokenizer.unk_token_id or 0 + model.config.use_cache = True + model.eval() + device = next(model.parameters()).device + + eval_args = EvalArguments( + model_name_or_path=args.model_path, + data_path=str(args.data_path), + image_folder=args.image_folder, + output_dir=str(args.output_dir), + temperature=args.temperature, + top_p=args.top_p, + ) + eval_args.image_processor = image_processor + dataset = LazySupervisedDataset( + tokenizer=tokenizer, data_path=str(args.data_path), data_args=eval_args + ) + + image_save_path = args.output_dir / "render" + image_save_path.mkdir(exist_ok=True) + handle = out_jsonl.open("a") + + for idx in range(len(dataset)): + if idx % args.shard_count != args.shard_index: + continue + sample, processed_images, layer_image_list = dataset[idx] + sample_id = sample["id"] + if sample_id in done_ids: + continue + started = time.time() + record = { + "id": sample_id, + "shard": args.shard_index, + "seed": args.seed, + "predictions": "", + "turn_errors": {}, + "canvas_width": sample["canvas_width"], + "canvas_height": sample["canvas_height"], + } + gpt_dict: dict = {} + new_images: dict = {} + prediction = "" + with torch.inference_mode(): + for turn_id in range(5): + gpt_dict[turn_id] = None + sample, processed_images, _ = dataset.__getitem__( + idx, + end_layer_index=turn_id, + gpt_dict=gpt_dict, + images=processed_images, + new_images=new_images, + ) + input_ids = sample["input_ids"].unsqueeze(0).to(device) + images = [sample["image"].to(device, dtype=torch.float16)] + attention_mask = input_ids.ne(tokenizer.pad_token_id).to(device) + torch.manual_seed(args.seed * 1000 + idx * 10 + turn_id) + try: + output_ids = model.generate( + input_ids, + images=images, + attention_mask=attention_mask, + do_sample=True, + temperature=args.temperature, + top_p=args.top_p, + num_return_sequences=1, + pad_token_id=tokenizer.eos_token_id, + max_new_tokens=args.max_new_tokens, + ) + output = tokenizer.batch_decode(output_ids, skip_special_tokens=True)[0].strip() + prediction += " ##### " + output + " $$$$$ " + gpt_dict[turn_id] = output + except Exception as error: # noqa: BLE001 — explicit failure record + gpt_dict[turn_id] = "{}" + prediction += " ##### {} $$$$$ " + record["turn_errors"][str(turn_id)] = ( + f"{type(error).__name__}: {error}\n{traceback.format_exc()[-1500:]}" + ) + + try: + render_image = render( + prediction, + args.image_folder, + sample["render_image"], + sample["render_text"], + sample["canvas_width"], + sample["canvas_height"], + ) + except Exception: # noqa: BLE001 — official white-canvas fallback + from PIL import Image + + render_image = Image.new( + "RGB", (sample["canvas_width"], sample["canvas_height"]), color="white" + ) + render_file = image_save_path / f"{sample_id}_{turn_id}.png" + render_image.save(render_file) + if turn_id < 4: + new_images = {layer_image_list[turn_id]: str(render_file)} + + record["predictions"] = prediction + record["elapsed_s"] = round(time.time() - started, 2) + if torch.cuda.is_available(): + record["peak_vram_mb"] = int(torch.cuda.max_memory_allocated() / 2**20) + handle.write(json.dumps(record, ensure_ascii=False) + "\n") + handle.flush() + os.fsync(handle.fileno()) + errs = len(record["turn_errors"]) + print(f"[shard {args.shard_index}] {sample_id} done in {record['elapsed_s']}s" + + (f" ({errs} turn errors)" if errs else ""), flush=True) + + handle.close() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/prepare_inputs.py b/layout_agent/external_baselines/elem2design/prepare_inputs.py new file mode 100644 index 000000000..1d3dfc64b --- /dev/null +++ b/layout_agent/external_baselines/elem2design/prepare_inputs.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python +"""Build Elem2Design test.json from frozen A3 P-Full/R3 inputs (e2d env). + +Only R3 bitmaps, text contents, canvas size, and the official predicted +roles enter the model input. GT geometry/roles and A3 artifacts never do; +a recursive forbidden-key scan and R3 hash checks enforce this fail-closed. + +Run inside the `e2d` conda environment (needs the official `common.context` +module from `pip install -e dataset/src`). +""" +from __future__ import annotations + +import argparse +import hashlib +import json +import pickle +import sys +from pathlib import Path + +SCRIPT_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(SCRIPT_DIR)) + +from common_protocol import ( # noqa: E402 + BASELINE_SEED, + N_LAYERS, + PROTOCOL_VERSION, + assert_placeholder_gpt_turns, + build_index_map, + deterministic_layer_order, + scan_forbidden_keys, +) + +from common.context import ContextHandler # noqa: E402 (official, e2d env) + +CONTEXT_CONFIG = {"format": "default", "template": "index-content", "image_token": ""} + + +def sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1 << 20), b""): + digest.update(chunk) + return digest.hexdigest() + + +def build_sample(sample_id: str, source_run: Path, roles: dict) -> dict: + pfull = json.loads( + (source_run / "samples" / sample_id / "inputs" / "pfull" / "asset_manifest.json").read_text() + ) + r3 = json.loads( + (source_run / "samples" / sample_id / "inputs" / "r3" / "r3_asset_manifest.json").read_text() + ) + r3_by_id = {a["asset_id"]: a for a in r3["assets"]} + role_list = roles[sample_id] + + asset_ids, texts, images, roles_by_asset = [], {}, {}, {} + input_hashes = {} + for asset in pfull["assets"]: + asset_id = asset["asset_id"] + source_index = int(asset["source_index"]) + if source_index >= len(role_list): + raise ValueError(f"{sample_id}: source_index {source_index} outside role list") + r3_asset = r3_by_id[asset_id] + bitmap = Path(r3_asset["asset_ref"]) + if not bitmap.is_file(): + raise FileNotFoundError(f"{sample_id}: missing R3 bitmap {bitmap}") + actual = sha256_file(bitmap) + if actual != r3_asset["sha256"]: + raise ValueError(f"{sample_id}: R3 hash mismatch for {asset_id}") + input_hashes[asset_id] = actual + asset_ids.append(asset_id) + is_text = asset["media_type"] == "text" or (asset.get("content") not in (None, "", "None")) + texts[asset_id] = (asset.get("content") or "") if is_text else "" + images[asset_id] = str(bitmap) + roles_by_asset[asset_id] = int(role_list[source_index]) + + ordered = deterministic_layer_order(asset_ids, roles_by_asset, sample_id) + index_map = build_index_map(ordered) + ordered_texts = [texts[a] for a in ordered] + ordered_images = [images[a] for a in ordered] + ordered_roles = [roles_by_asset[a] for a in ordered] + + handler = ContextHandler(config=CONTEXT_CONFIG, images=ordered_images, texts=ordered_texts) + context, image_path = handler.construct_context() + + per_layer_counts = [ordered_roles.count(layer) for layer in range(N_LAYERS)] + context_by_layer = [] + cnt = 0 + for layer, num in enumerate(per_layer_counts): + layer_context, layer_images = handler.construct_context( + start_index=cnt, end_index=cnt + num, index_offset=cnt + ) + context_by_layer.append(layer_context) + image_path.extend(layer_images) + if layer < N_LAYERS - 1: + image_path.append(f"{sample_id}/layer_{layer}.png") + cnt += num + + canvas_w, canvas_h = int(pfull["canvas_width"]), int(pfull["canvas_height"]) + preamble = f"A poster of canvas width {canvas_w}px, canvas height {canvas_h}px. " + conversations = [ + { + "from": "human", + "value": preamble + context + + " Please predict step by step according to the semantics of the elements." + + " After each prediction, there will be an intermediate rendering result" + + " as a reference to better make the next prediction.\n\n\n" + + f"Now predict the background elements: {context_by_layer[0]}", + }, + {"from": "gpt", "value": "{}"}, + ] + for layer, name in zip(range(1, N_LAYERS), ["underlay", "logo/image", "text", "embellishment"]): + conversations.append( + { + "from": "human", + "value": f"current canvas state: . Now predict the {name} elements: {context_by_layer[layer]}", + } + ) + conversations.append({"from": "gpt", "value": "{}"}) + assert_placeholder_gpt_turns(conversations) + + annotation = { + "id": sample_id, + "image": image_path, + "conversations": conversations, + "render_image": ordered_images, + "render_text": ordered_texts, + } + violations = scan_forbidden_keys(annotation) + if violations: + raise ValueError(f"{sample_id}: forbidden keys in test.json: {violations}") + return { + "annotation": annotation, + "index_map": index_map, + "roles": {a: roles_by_asset[a] for a in ordered}, + "texts": texts, + "input_hashes": input_hashes, + "canvas": {"canvas_width": canvas_w, "canvas_height": canvas_h}, + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--sample-ids", required=True, type=Path) + parser.add_argument("--source-run", required=True, type=Path) + parser.add_argument("--role-pkl", required=True, type=Path) + parser.add_argument("--output-root", required=True, type=Path) + args = parser.parse_args() + + sample_ids = json.loads(args.sample_ids.read_text()) + with args.role_pkl.open("rb") as handle: + roles = pickle.load(handle) + + out = args.output_root + out.mkdir(parents=True, exist_ok=True) + for name in ("test.json", "input_manifest.json", "id_maps.json", "sample_ids.json"): + if (out / name).exists(): + raise FileExistsError(f"refusing to overwrite {out / name}") + + annotations, id_maps, manifest_samples, prepare_failures = [], {}, {}, {} + for sample_id in sample_ids: + try: + built = build_sample(sample_id, args.source_run.resolve(), roles) + except (ValueError, FileNotFoundError, KeyError) as error: + prepare_failures[sample_id] = str(error) + continue + annotations.append(built["annotation"]) + id_maps[sample_id] = { + "index_map": built["index_map"], + "roles": built["roles"], + "texts": built["texts"], + "canvas": built["canvas"], + } + manifest_samples[sample_id] = { + "n_elements": len(built["index_map"]["index_to_asset"]), + "input_hashes": built["input_hashes"], + } + + (out / "test.json").write_text(json.dumps(annotations, ensure_ascii=False)) + (out / "id_maps.json").write_text(json.dumps(id_maps, ensure_ascii=False)) + (out / "sample_ids.json").write_text(json.dumps(sample_ids)) + manifest = { + "schema_version": PROTOCOL_VERSION, + "baseline": "elem2design", + "seed": BASELINE_SEED, + "source_run": str(args.source_run.resolve()), + "role_pkl_sha256": sha256_file(args.role_pkl), + "sample_ids_sha256": sha256_file(args.sample_ids), + "n_samples": len(sample_ids), + "n_prepared": len(annotations), + "prepare_failures": prepare_failures, + "samples": manifest_samples, + "protocol_notes": [ + "per-sample deterministic shuffle keyed on (seed, sample_id), then stable role sort", + "gpt turns are '{}' placeholders; no GT geometry/roles anywhere in test.json", + "image_folder must be '/' — all image paths are absolute", + ], + } + (out / "input_manifest.json").write_text(json.dumps(manifest, ensure_ascii=False, indent=1)) + print(f"prepared {len(annotations)}/{len(sample_ids)} samples -> {out}") + if prepare_failures: + print(f"prepare failures: {prepare_failures}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/sensitivity_single_candidate.py b/layout_agent/external_baselines/elem2design/sensitivity_single_candidate.py new file mode 100644 index 000000000..b7fbf4fb4 --- /dev/null +++ b/layout_agent/external_baselines/elem2design/sensitivity_single_candidate.py @@ -0,0 +1,223 @@ +#!/usr/bin/env python +"""Selection-asymmetry sensitivity: A3-T2 without candidate selection vs E2D. + +The formal comparison uses A3's judge-selected B0 (best of three candidates) +against Elem2Design's single generation. This zero-cost reanalysis removes +the selection advantage two ways, from the same frozen T2 bundles: + +* ``first`` — literally the first candidate slot (one draw, no selection); +* ``mean3`` — per-sample mean over all three candidate slots (the expected + value of a single draw). + +Each variant is paired against the published E2D per-sample rows with the +same sign test / Holm / bootstrap machinery as the formal comparison. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parents[3] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.evaluation.a3_relation_stats import ( # noqa: E402 + compare_arms, + holm_adjust, +) +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import ( # noqa: E402 + BOOTSTRAP_RESAMPLES, + BOOTSTRAP_SEED, + write_bytes_once, +) +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + CLS_IMAGE_LOGO, + CLS_TEXT, + drop_invalid_elements, + metric_alignment, + metric_overlay, + to_xyxy, +) +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree # noqa: E402 +from metagpt.ext.agentlayout.run_manifest import ( # noqa: E402 + canonical_json_bytes, + load_sample_ids, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.schema import Candidate # noqa: E402 +from metagpt.ext.agentlayout.tools.human_tree_metrics import ( # noqa: E402 + evaluate_layout_realization, +) + +SCHEMA_VERSION = "a3.external-baseline-sensitivity.v1" +METRICS = ("sgc", "tlc", "pca", "ali", "ove") +PRIMARY = ("sgc", "tlc", "pca") + + +def candidate_metrics(candidate, texts, canvas_w, canvas_h, oracle, sample_id, method): + realized = evaluate_layout_realization( + tree=oracle, candidate=candidate, canvas_width=canvas_w, + canvas_height=canvas_h, sample_id=sample_id, method=method, + ) + layout = [ + (CLS_TEXT if texts.get(el.id) else CLS_IMAGE_LOGO, + to_xyxy(el.left, el.top, el.width, el.height)) + for el in candidate.elements + ] + layout = drop_invalid_elements(layout, canvas_w, canvas_h) + return { + "sgc": realized.sgc, + "tlc": realized.tlc, + "pca": realized.pca, + "ali": metric_alignment([layout], canvas_w, canvas_h), + "ove": metric_overlay([layout]), + } + + +def build_variant_rows(a3_run_dir: Path, oracle_dir: Path): + sample_ids = load_sample_ids(a3_run_dir / "sample_ids.json") + summary = json.loads((a3_run_dir / "a3_run_summary.json").read_text()) + failed = {s["sample_id"] for s in summary["samples"] if s["status"] != "completed"} + first_rows, mean_rows = [], [] + for sample_id in sample_ids: + base = {"schema_version": SCHEMA_VERSION, "sample_id": sample_id} + if sample_id in failed: + row = dict(base, status="generation_failure", + **{m: None for m in METRICS}) + first_rows.append(dict(row, arm="A3-T2-first")) + mean_rows.append(dict(row, arm="A3-T2-mean3")) + continue + sample_dir = a3_run_dir / "samples" / sample_id + l0 = json.loads((sample_dir / "pipeline" / "l0_result.json").read_text()) + pfull = json.loads( + (sample_dir / "inputs" / "pfull" / "asset_manifest.json").read_text() + ) + texts = { + a["asset_id"]: (a.get("content") or "") + if a.get("content") not in (None, "None") else "" + for a in pfull["assets"] + } + oracle = A3LayoutTree.model_validate_json( + (oracle_dir / f"{sample_id}.json").read_text() + ) + slots = sorted(l0["bundle"]["slots"], key=lambda s: s["slot_id"]) + per_slot = [] + for slot in slots: + candidate = Candidate.model_validate(slot["candidate"]) + per_slot.append(candidate_metrics( + candidate, texts, pfull["canvas_width"], pfull["canvas_height"], + oracle, sample_id, f"A3-T2:{slot['slot_id']}", + )) + first_rows.append(dict(base, arm="A3-T2-first", status="completed", + slot_id=slots[0]["slot_id"], **per_slot[0])) + mean_metrics = {} + for metric in METRICS: + values = [s[metric] for s in per_slot if s[metric] is not None] + mean_metrics[metric] = sum(values) / len(values) if values else None + mean_rows.append(dict(base, arm="A3-T2-mean3", status="completed", + n_slots=len(per_slot), **mean_metrics)) + return first_rows, mean_rows + + +def paired_block(variant_rows, e2d_rows, variant_name): + comparisons = [] + for metric in METRICS: + entry = compare_arms(variant_rows, e2d_rows, metric) + entry["comparison"] = f"{variant_name}_vs_elem2design" + entry["family"] = "primary" if metric in PRIMARY else "geometry" + comparisons.append(entry) + for family in ("primary", "geometry"): + members = [e for e in comparisons if e["family"] == family] + for entry, holm in zip(members, holm_adjust([e["sign_test_p_raw"] for e in members])): + entry["sign_test_p_holm"] = holm + return comparisons + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--external-eval-dir", required=True, type=Path) + parser.add_argument("--a3-run-dir", required=True, type=Path) + parser.add_argument("--oracle-dir", required=True, type=Path) + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + args = parser.parse_args() + + e2d_rows = [ + json.loads(line) + for line in (args.external_eval_dir / "per_sample.jsonl").read_text().splitlines() + ] + first_rows, mean_rows = build_variant_rows( + args.a3_run_dir.resolve(), args.oracle_dir.resolve() + ) + + def arm_means(rows): + completed = [r for r in rows if r["status"] == "completed"] + return { + m: { + "mean": (lambda v: sum(v) / len(v) if v else None)( + [r[m] for r in completed if r.get(m) is not None] + ), + "n": len([r for r in completed if r.get(m) is not None]), + } + for m in METRICS + } + + aggregate = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "note": ( + "selection-asymmetry sensitivity: A3-T2 without judge selection " + "(first candidate / mean over 3 candidates) vs Elem2Design" + ), + "arm_metric_means": { + "A3-T2-first": arm_means(first_rows), + "A3-T2-mean3": arm_means(mean_rows), + }, + "comparisons": { + "first_vs_e2d": paired_block(first_rows, e2d_rows, "A3-T2-first"), + "mean3_vs_e2d": paired_block(mean_rows, e2d_rows, "A3-T2-mean3"), + }, + "bootstrap": {"seed": BOOTSTRAP_SEED, "resamples": BOOTSTRAP_RESAMPLES}, + } + + out = args.output_root / SCHEMA_VERSION / args.evaluation_id + per_sample_bytes = b"".join( + canonical_json_bytes(r) for r in first_rows + mean_rows + ) + aggregate_bytes = canonical_json_bytes(aggregate) + manifest = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "created_at": utc_now(), + "external_per_sample_sha256": sha256_file(args.external_eval_dir / "per_sample.jsonl"), + "code_sha256": {"sensitivity_single_candidate.py": sha256_file(Path(__file__))}, + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + }, + "write_once": True, + } + write_bytes_once(out / "aggregate.json", aggregate_bytes) + write_bytes_once(out / "per_sample.jsonl", per_sample_bytes) + write_json_once(out / "evaluation_manifest.json", manifest) + + for name, block in aggregate["comparisons"].items(): + print(f"== {name} ==") + for e in block: + p = e["sign_test_p_holm"] + print(f" {e['metric'].upper():4s} paired={e['paired_n']} " + f"W/L/T={e['wins']}/{e['losses']}/{e['ties']} " + f"diff={e['mean_diff']:+.4f} " + f"CI=[{e['mean_diff_ci95']['low']:+.4f},{e['mean_diff_ci95']['high']:+.4f}] " + f"holm_p={p:.2e}" if e["mean_diff"] is not None else " (no pairs)") + print(f"bundle -> {out}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/external_baselines/elem2design/supplement_rea_occ.py b/layout_agent/external_baselines/elem2design/supplement_rea_occ.py new file mode 100644 index 000000000..0acd3dd3f --- /dev/null +++ b/layout_agent/external_baselines/elem2design/supplement_rea_occ.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python +"""Close the deferred Rea/Occ axes for the Elem2Design comparison (meta env). + +PKU-convention Rea/Occ are functions of the *background image* plus element +boxes — never of the rendered candidate — and both arms share the exact same +per-sample backgrounds. So no candidate rendering is needed: + +* A3-T2 per-sample Rea/Occ come verbatim from the frozen formal bundle + (``a3-relation-n100-t0-t2-t3-sega-v1``), including its background + descriptors; +* E2D values are computed here on the identical background / BASNet+ISNet + saliency stack with E2D's boxes (same ``drop_invalid`` preprocessing). + +The output also recomputes Holm over the now-complete geometry family +{Ali, Ove, Rea, Occ} (4 tests), superseding the interim 2-test Holm in the +main compare bundle for the geometry family. Zero paid API. +""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[3] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from PIL import Image # noqa: E402 + +from metagpt.ext.agentlayout.evaluation.a3_relation_stats import ( # noqa: E402 + compare_arms, + holm_adjust, +) +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import ( # noqa: E402 + BOOTSTRAP_RESAMPLES, + BOOTSTRAP_SEED, + write_bytes_once, +) +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + CLS_IMAGE_LOGO, + CLS_TEXT, + drop_invalid_elements, + metric_occlusion, + metric_readability, + to_xyxy, +) +from metagpt.ext.agentlayout.run_manifest import ( # noqa: E402 + canonical_json_bytes, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.schema import Candidate # noqa: E402 + +SCHEMA_VERSION = "a3.external-baseline-supplement.v1" + + +def load_background(row: dict, t2_run_dir: Path) -> np.ndarray: + canvas = row["canvas"] + width, height = int(canvas["width"]), int(canvas["height"]) + background = row["background"] + if background["kind"] == "blank_canvas": + return np.full((height, width, 3), tuple(background["rgb"]), dtype=np.uint8) + r3_manifest = json.loads( + (t2_run_dir / "samples" / row["sample_id"] / "inputs" / "r3" + / "r3_asset_manifest.json").read_text() + ) + asset = next( + a for a in r3_manifest["assets"] if a["asset_id"] == background["asset_id"] + ) + path = Path(asset["asset_ref"]) + if sha256_file(path) != background["asset_sha256"]: + raise ValueError(f"{row['sample_id']}: background hash changed since freeze") + with Image.open(path) as image: + rgb = image.convert("RGB") + if rgb.size != (width, height): + rgb = rgb.resize((width, height), Image.LANCZOS) + return np.asarray(rgb, dtype=np.uint8) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--external-run-dir", required=True, type=Path) + parser.add_argument("--frozen-sega-bundle", required=True, type=Path) + parser.add_argument("--t2-run-dir", required=True, type=Path) + parser.add_argument("--compare-bundle", required=True, type=Path, + help="main compare bundle (for Ali/Ove raw p, Holm(4) refresh)") + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + args = parser.parse_args() + + from metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet import ( # noqa: E402 + basnet_isnet_saliency, + ) + + t2_rows = { + r["sample_id"]: r + for r in ( + json.loads(line) + for line in (args.frozen_sega_bundle / "per_sample.jsonl").read_text().splitlines() + ) + if "t2" in r.get("run_id", "") and r["status"] == "evaluated" + } + id_maps = json.loads((args.external_run_dir / "id_maps.json").read_text()) + sample_ids = json.loads((args.external_run_dir / "sample_ids.json").read_text()) + + a3_arm, e2d_arm = [], [] + for sample_id in sample_ids: + frozen = t2_rows.get(sample_id) + a3_arm.append({ + "sample_id": sample_id, "arm": "A3-T2", + "status": "completed" if frozen else "generation_failure", + "rea": frozen["metrics"]["Rea"]["value"] if frozen else None, + "occ": frozen["metrics"]["Occ"]["value"] if frozen else None, + }) + candidate_path = args.external_run_dir / "samples" / sample_id / "candidate.json" + row = {"schema_version": SCHEMA_VERSION, "sample_id": sample_id, + "arm": "elem2design"} + if not candidate_path.exists() or frozen is None: + row.update(status="failed" if not candidate_path.exists() else "completed", + rea=None, occ=None) + e2d_arm.append(row) + continue + candidate = Candidate.model_validate_json(candidate_path.read_text()) + texts = id_maps[sample_id]["texts"] + canvas = frozen["canvas"] + width, height = int(canvas["width"]), int(canvas["height"]) + layout = [ + (CLS_TEXT if texts.get(el.id) else CLS_IMAGE_LOGO, + to_xyxy(el.left, el.top, el.width, el.height)) + for el in candidate.elements + ] + layout = drop_invalid_elements(layout, width, height) + background = load_background(frozen, args.t2_run_dir.resolve()) + saliency = basnet_isnet_saliency(background) + row.update( + status="completed", + rea=metric_readability([layout], [background], width, height), + occ=metric_occlusion([layout], [saliency], width, height), + background_kind=frozen["background"]["kind"], + ) + e2d_arm.append(row) + print(f"{sample_id} rea={row['rea']:.6f} occ={row['occ']:.6f}", flush=True) + + comparisons = [] + for metric in ("rea", "occ"): + entry = compare_arms(a3_arm, e2d_arm, metric) + entry["comparison"] = "A3-T2_vs_elem2design" + entry["direction"] = "A3-T2 - elem2design (lower is better)" + comparisons.append(entry) + + main_compare = json.loads((args.compare_bundle / "aggregate.json").read_text()) + geometry_raw = { + e["metric"]: e["sign_test_p_raw"] + for e in main_compare["comparisons"] if e["metric"] in ("ali", "ove") + } + family = [ + {"metric": "ali", "sign_test_p_raw": geometry_raw["ali"]}, + {"metric": "ove", "sign_test_p_raw": geometry_raw["ove"]}, + *[{"metric": e["metric"], "sign_test_p_raw": e["sign_test_p_raw"]} + for e in comparisons], + ] + for member, holm in zip(family, holm_adjust([m["sign_test_p_raw"] for m in family])): + member["sign_test_p_holm4"] = holm + for entry in comparisons: + entry["sign_test_p_holm4"] = next( + m["sign_test_p_holm4"] for m in family if m["metric"] == entry["metric"] + ) + + def arm_means(rows): + completed = [r for r in rows if r["status"] == "completed"] + return { + m: {"mean": (lambda v: sum(v) / len(v) if v else None)( + [r[m] for r in completed if r.get(m) is not None]), + "n": len([r for r in completed if r.get(m) is not None])} + for m in ("rea", "occ") + } + + aggregate = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "note": ( + "Rea/Occ supplement on identical per-sample backgrounds and the " + "frozen BASNet+ISNet stack; A3-T2 values verbatim from the frozen " + "formal bundle. geometry_family_holm4 supersedes the interim " + "2-test Holm for the geometry family." + ), + "arm_metric_means": {"A3-T2": arm_means(a3_arm), "elem2design": arm_means(e2d_arm)}, + "comparisons": comparisons, + "geometry_family_holm4": family, + "bootstrap": {"seed": BOOTSTRAP_SEED, "resamples": BOOTSTRAP_RESAMPLES}, + } + + out = args.output_root / SCHEMA_VERSION / args.evaluation_id + per_sample_bytes = b"".join(canonical_json_bytes(r) for r in a3_arm + e2d_arm) + aggregate_bytes = canonical_json_bytes(aggregate) + manifest = { + "schema_version": SCHEMA_VERSION, + "evaluation_id": args.evaluation_id, + "created_at": utc_now(), + "frozen_sega_per_sample_sha256": sha256_file( + args.frozen_sega_bundle / "per_sample.jsonl" + ), + "compare_aggregate_sha256": sha256_file(args.compare_bundle / "aggregate.json"), + "code_sha256": {"supplement_rea_occ.py": sha256_file(Path(__file__))}, + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + }, + "write_once": True, + } + write_bytes_once(out / "aggregate.json", aggregate_bytes) + write_bytes_once(out / "per_sample.jsonl", per_sample_bytes) + write_json_once(out / "evaluation_manifest.json", manifest) + print(json.dumps({"comparisons": comparisons, "geometry_family_holm4": family}, + indent=1, default=str)) + print(f"bundle -> {out}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/judge_a3_cole.py b/layout_agent/judge_a3_cole.py new file mode 100644 index 000000000..c82de8eac --- /dev/null +++ b/layout_agent/judge_a3_cole.py @@ -0,0 +1,375 @@ +"""Formal paid COLE judge for the A3 Relation N=100 arms (authorized 2026-07-12). + +Scores every image once (absolute, blind by construction) with the pinned +gpt-5.4-mini snapshot, then computes matched-pair statistics against the +designer ground truth and between arms. + +Inputs are resolved from the verified formal SEGA sidecar +(a3-relation-n100-t0-t2-t3-sega-v1): each evaluated row's ``b0_slot_id`` and +``b0_render_sha256`` pin the exact render; GT comes from the Crello cache. +The COLE prompt and parser are imported verbatim from +``layout_agent/output/step21_phaseb_eval.py``; only the model is overridden. + +Budget contract (from the approved proposal): 397 scoring calls nominal, +a hard global cap of 420 API calls including retries and the one +parameter-compat probe, and an abort if failures exceed 5% of the first 40 +completed calls. + +Usage: + python layout_agent/judge_a3_cole.py --preflight # zero-cost checks only + python layout_agent/judge_a3_cole.py # paid run +""" +from __future__ import annotations + +import argparse +import asyncio +import base64 +import hashlib +import json +import math +import os +import random +import statistics +import sys +import time +from pathlib import Path +from typing import Dict, List, Optional, Sequence, Tuple + +REPO = Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "layout_agent" / "output")) +import step21_phaseb_eval as s21 # noqa: E402 (COLE prompt + parser, verbatim) + +MODEL = "gpt-5.4-mini-2026-03-17" +SIDECAR = REPO / ( + "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/" + "a3-relation-n100-t0-t2-t3-sega-v1" +) +RUNS_ROOT = REPO / "layout_agent/runs/a3" +GT_ROOT = REPO / "layout_agent/output" +OUT_ROOT = REPO / "layout_agent/evaluations/a3-cole/a3.cole-judge.v1" +EVALUATION_ID = "a3-relation-n100-cole-v1" + +HARD_CALL_CAP = 420 +CONCURRENCY = 8 +PARSE_FAIL_WINDOW = 40 +PARSE_FAIL_MAX_RATE = 0.05 +ARM_SHORT = {"a3-rel100-t0-01": "t0", "a3-rel100-t2-01": "t2", "a3-rel100-t3-01": "t3"} +COMPARISONS = ( + ("t0", "gt"), ("t2", "gt"), ("t3", "gt"), + ("t2", "t0"), ("t3", "t0"), ("t3", "t2"), +) +BOOTSTRAP_N = 10_000 +BOOTSTRAP_SEED = 20260712 + + +# -------------------------------------------------------------------------- +# task resolution from the verified sidecar +# -------------------------------------------------------------------------- +def _load_tasks() -> Tuple[List[dict], List[str]]: + """Return (tasks, matched_ids). Each task pins one image by path+sha.""" + manifest = json.loads((SIDECAR / "evaluation_manifest.json").read_text()) + matched_ids = manifest["matched_samples"]["ordered_sample_ids"] + tasks: List[dict] = [] + for line in (SIDECAR / "per_sample.jsonl").read_text().splitlines(): + rec = json.loads(line) + if rec["status"] != "evaluated": + continue + path = ( + RUNS_ROOT / rec["run_id"] / "samples" / rec["sample_id"] + / "renders" / f"{rec['b0_slot_id']}.png" + ) + tasks.append({ + "arm": ARM_SHORT[rec["run_id"]], + "sample_id": rec["sample_id"], + "path": path, + "sha256": rec["b0_render_sha256"], + "mime": "image/png", + }) + for sid in matched_ids: + tasks.append({ + "arm": "gt", + "sample_id": sid, + "path": GT_ROOT / f"crello_{sid}" / "ground_truth_preview.jpg", + "sha256": None, + "mime": "image/jpeg", + }) + return tasks, matched_ids + + +def _preflight(tasks: Sequence[dict]) -> None: + """Zero-cost: every image must exist; pinned renders must match their sha.""" + problems = [] + for t in tasks: + if not t["path"].exists(): + problems.append(f"missing: {t['path']}") + continue + if t["sha256"]: + actual = hashlib.sha256(t["path"].read_bytes()).hexdigest() + if actual != t["sha256"]: + problems.append(f"sha mismatch: {t['path']}") + if problems: + for p in problems: + print(f"[preflight FAIL] {p}") + sys.exit(1) + n_arm = sum(1 for t in tasks if t["arm"] != "gt") + n_gt = sum(1 for t in tasks if t["arm"] == "gt") + print(f"[preflight OK] {n_arm} pinned arm renders + {n_gt} GT previews; " + f"nominal calls={len(tasks)} <= cap {HARD_CALL_CAP}") + + +# -------------------------------------------------------------------------- +# paid calls +# -------------------------------------------------------------------------- +class Budget: + """Global hard cap over every API attempt, probe included.""" + + def __init__(self, cap: int): + self.cap = cap + self.used = 0 + + def take(self) -> bool: + if self.used >= self.cap: + return False + self.used += 1 + return True + + +class ParamVariant: + """gpt-5.x snapshots may reject temperature/max_tokens; probe once.""" + + def __init__(self): + self.kwargs: Optional[dict] = None + + async def resolve(self, client, budget: Budget) -> dict: + if self.kwargs is not None: + return self.kwargs + legacy = {"temperature": 0.0, "max_tokens": 600} + modern = {"max_completion_tokens": 600} + if not budget.take(): + raise RuntimeError("call cap exhausted before probe") + try: + await client.chat.completions.create( + model=MODEL, + messages=[{"role": "user", "content": "Reply with the word ok."}], + **legacy, + ) + self.kwargs = legacy + except Exception as err: + msg = str(err).lower() + if "temperature" in msg or "max_tokens" in msg or "unsupported" in msg: + self.kwargs = modern + else: + raise + print(f"[probe] param variant = {self.kwargs}") + return self.kwargs + + +def _row(task: dict) -> dict: + return {"arm": task["arm"], "sample_id": task["sample_id"], + "path": str(task["path"].relative_to(REPO)), + "render_sha256": task["sha256"]} + + +async def _score_task(client, task: dict, kwargs: dict, budget: Budget) -> dict: + b64 = None + last = "no attempt" + for attempt in range(2): + if not budget.take(): + return {**_row(task), "status": "call_cap_reached"} + if b64 is None: + b64 = base64.b64encode(task["path"].read_bytes()).decode() + try: + resp = await client.chat.completions.create( + model=MODEL, + messages=[{ + "role": "user", + "content": [ + {"type": "text", "text": s21.COLE_PROMPT}, + {"type": "image_url", "image_url": { + "url": f"data:{task['mime']};base64,{b64}"}}, + ], + }], + **kwargs, + ) + text = (resp.choices[0].message.content or "").strip() + parsed = s21._parse_cole_json(text) + if parsed is not None: + smean4 = statistics.mean(parsed[k] for k in s21.REPORT_AXES) + return {**_row(task), "status": "ok", "scores": parsed, + "smean4": smean4} + last = f"unparseable: {text[:160]!r}" + except Exception as err: # noqa: BLE001 + last = f"{type(err).__name__}: {err}" + if attempt == 0: + await asyncio.sleep(1.5) + return {**_row(task), "status": "failed", "error": last} + + +# -------------------------------------------------------------------------- +# statistics +# -------------------------------------------------------------------------- +def _sign_test_p(wins: int, losses: int) -> Optional[float]: + n = wins + losses + if n == 0: + return None + k = min(wins, losses) + total = sum(math.comb(n, i) for i in range(k + 1)) * 2 + return min(1.0, total / (2 ** n)) + + +def _bootstrap_ci(deltas: Sequence[float]) -> Optional[dict]: + if not deltas: + return None + rng = random.Random(BOOTSTRAP_SEED) + n = len(deltas) + means = sorted( + statistics.mean(deltas[rng.randrange(n)] for _ in range(n)) + for _ in range(BOOTSTRAP_N) + ) + return { + "mean_delta": statistics.mean(deltas), + "ci95_low": means[int(0.025 * BOOTSTRAP_N)], + "ci95_high": means[int(0.975 * BOOTSTRAP_N)], + } + + +def _paired_stats(rows: List[dict]) -> dict: + by_arm: Dict[str, Dict[str, dict]] = {} + for r in rows: + if r["status"] == "ok": + by_arm.setdefault(r["arm"], {})[r["sample_id"]] = r + out = {} + for a, b in COMPARISONS: + common = sorted(set(by_arm.get(a, {})) & set(by_arm.get(b, {}))) + deltas = [by_arm[a][s]["smean4"] - by_arm[b][s]["smean4"] for s in common] + wins = sum(1 for d in deltas if d > 0) + losses = sum(1 for d in deltas if d < 0) + per_axis = {} + for axis in s21.REPORT_AXES: + aw = sum(1 for s in common + if by_arm[a][s]["scores"][axis] > by_arm[b][s]["scores"][axis]) + al = sum(1 for s in common + if by_arm[a][s]["scores"][axis] < by_arm[b][s]["scores"][axis]) + per_axis[axis] = {"wins": aw, "losses": al, + "ties": len(common) - aw - al, + "sign_p": _sign_test_p(aw, al)} + out[f"{a}_vs_{b}"] = { + "n_pairs": len(common), + "smean4": {"wins": wins, "losses": losses, + "ties": len(common) - wins - losses, + "sign_p": _sign_test_p(wins, losses), + "bootstrap": _bootstrap_ci(deltas)}, + "per_axis": per_axis, + } + return out + + +def _arm_means(rows: List[dict]) -> dict: + out = {} + for arm in ("t0", "t2", "t3", "gt"): + ok = [r for r in rows if r["arm"] == arm and r["status"] == "ok"] + if not ok: + out[arm] = {"n": 0} + continue + out[arm] = { + "n": len(ok), + "smean4": statistics.mean(r["smean4"] for r in ok), + **{axis: statistics.mean(r["scores"][axis] for r in ok) + for axis in ("SDL", "SQL", "STV", "SGI", "SIO")}, + } + gt = out.get("gt", {}) + for arm in ("t0", "t2", "t3"): + if out[arm].get("n") and gt.get("n"): + out[arm]["pct_of_gt_smean4"] = 100.0 * out[arm]["smean4"] / gt["smean4"] + return out + + +# -------------------------------------------------------------------------- +# main +# -------------------------------------------------------------------------- +async def _run_paid(tasks: List[dict]) -> Tuple[List[dict], Budget]: + client = s21._load_openai_client() + budget = Budget(HARD_CALL_CAP) + variant = ParamVariant() + kwargs = await variant.resolve(client, budget) + sem = asyncio.Semaphore(CONCURRENCY) + done: List[dict] = [] + abort = asyncio.Event() + + async def worker(task: dict) -> dict: + async with sem: + if abort.is_set(): + return {**_row(task), "status": "aborted"} + row = await _score_task(client, task, kwargs, budget) + done.append(row) + n = len(done) + if n % 25 == 0 or n == len(tasks): + ok = sum(1 for r in done if r["status"] == "ok") + print(f"[progress] {n}/{len(tasks)} scored, ok={ok}, " + f"calls={budget.used}/{HARD_CALL_CAP}", flush=True) + if n == PARSE_FAIL_WINDOW: + fails = sum(1 for r in done if r["status"] != "ok") + if fails / n > PARSE_FAIL_MAX_RATE: + print(f"[ABORT] {fails}/{n} failures in first window") + abort.set() + return row + + rows = await asyncio.gather(*(worker(t) for t in tasks)) + return list(rows), budget + + +def _publish(rows: List[dict], budget: Budget, wall_s: float, + matched_ids: List[str]) -> Path: + final_dir = OUT_ROOT / EVALUATION_ID + if final_dir.exists(): + sys.exit(f"refusing to overwrite existing {final_dir}") + staging = OUT_ROOT / f".staging-{EVALUATION_ID}" + staging.mkdir(parents=True, exist_ok=False) + per_sample = "\n".join(json.dumps(r, sort_keys=True) for r in rows) + "\n" + (staging / "per_sample.jsonl").write_text(per_sample) + aggregate = { + "schema_version": "a3.cole-judge.v1", + "evaluation_id": EVALUATION_ID, + "judge_model": MODEL, + "prompt_sha256": hashlib.sha256(s21.COLE_PROMPT.encode()).hexdigest(), + "source_sidecar": "a3-relation-n100-t0-t2-t3-sega-v1", + "matched_ids_count": len(matched_ids), + "api_calls_used": budget.used, + "call_cap": HARD_CALL_CAP, + "wall_seconds": round(wall_s, 2), + "status_counts": { + s: sum(1 for r in rows if r["status"] == s) + for s in sorted({r["status"] for r in rows}) + }, + "arm_means": _arm_means(rows), + "paired": _paired_stats(rows), + } + (staging / "aggregate.json").write_text( + json.dumps(aggregate, indent=2, sort_keys=True, allow_nan=False) + "\n") + os.rename(staging, final_dir) + return final_dir + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("--preflight", action="store_true", + help="zero-cost checks only; no API call") + args = ap.parse_args() + tasks, matched_ids = _load_tasks() + _preflight(tasks) + if args.preflight: + return 0 + t0 = time.time() + rows, budget = asyncio.run(_run_paid(tasks)) + wall = time.time() - t0 + final_dir = _publish(rows, budget, wall, matched_ids) + agg = json.loads((final_dir / "aggregate.json").read_text()) + print(json.dumps({"published": str(final_dir.relative_to(REPO)), + "calls": budget.used, "wall_s": round(wall, 1), + "status_counts": agg["status_counts"], + "arm_means": agg["arm_means"]}, indent=2)) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/layout_agent/judge_a3_general_cole.py b/layout_agent/judge_a3_general_cole.py new file mode 100644 index 000000000..7412e3944 --- /dev/null +++ b/layout_agent/judge_a3_general_cole.py @@ -0,0 +1,932 @@ +"""Paid blind COLE judge for A3 Crello-General N=100 versus designer GT. + +The runner consumes only the pinned B0 renders from the formal General SEGA +sidecar and the same sample IDs' Crello ground-truth previews. It is +write-once, performs a full hash preflight both before and after API calls, and +requires an explicit ``--allow-api-calls`` flag. + +Authorized 2026-07-12 contract: evaluation ``a3-general-n100-cole-v1``; +judge ``gpt-5.4-mini-2026-03-17``; 220 calls including probe/retries; +3,000,000 input tokens; 150,000 output tokens; US$4. +""" +from __future__ import annotations + +import argparse +import asyncio +import base64 +import fcntl +import hashlib +import io +import json +import math +import os +import statistics +import sys +import threading +import time +from contextlib import contextmanager +from dataclasses import dataclass +from pathlib import Path +from typing import Dict, Iterator, List, Optional, Sequence, Tuple + +from PIL import Image + +REPO = Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "layout_agent")) +import judge_a3_cole as relation_judge # noqa: E402 + +s21 = relation_judge.s21 + +MODEL = "gpt-5.4-mini-2026-03-17" +RUN_ID = "a3-general-n100-t2-l0-01" +SOURCE_SIDECAR_ID = "a3-general-n100-sega-v1" +SIDECAR = REPO / ( + "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/" + + SOURCE_SIDECAR_ID +) +RUNS_ROOT = REPO / "layout_agent/runs/a3" +GT_ROOT = REPO / "layout_agent/output" +OUT_ROOT = REPO / "layout_agent/evaluations/a3-cole/a3.cole-judge.v1" +EVALUATION_ID = "a3-general-n100-cole-v1" +PAID_RUN_LOCK = OUT_ROOT / f".{EVALUATION_ID}.paid-run.lock" + +HARD_CALL_CAP = 220 +INPUT_TOKEN_CAP = 3_000_000 +OUTPUT_TOKEN_CAP = 150_000 +USD_CAP = 4.0 +# The first authorized launch was interrupted while its compatibility probe +# was waiting inside a network-isolated sandbox. Count it conservatively even +# though no response/usage telemetry was received, so a resumed run cannot +# exceed the user's aggregate authorization. +PRIOR_INTERRUPTED_CALLS = 1 +PRIOR_INPUT_TOKEN_RESERVE = 1_000 +PRIOR_OUTPUT_TOKEN_RESERVE = 600 +INPUT_USD_PER_M = 0.75 +OUTPUT_USD_PER_M = 4.50 +MAX_COMPLETION_TOKENS = 600 +CONCURRENCY = 8 +PARSE_FAIL_WINDOW = 40 +PARSE_FAIL_MAX_RATE = 0.05 +EXPECTED_INPUT_SNAPSHOT_SHA256 = ( + "aa7c5b236bc8655bf182cfe8fc898266fbb8e136b30c3f8ae2e7e89bbcb5fa72" +) + +# OpenAI vision inputs are transported as base64 data URLs but accounted as +# image tokens rather than tokenized base64 text. For high-detail accounting, +# normalize within 2048px and, when still larger, to a 768px short edge, then +# count 512px tiles. The 1,024-token base and per-tile bounds are deliberately +# much larger than the published high-detail accounting constants. The exact +# non-image request JSON is separately bounded at one token per UTF-8 byte plus +# 1,024 framing tokens. This stays conservative without pretending every +# transport byte is a text token (which would make the authorized 3M cap +# impossible for the already-pinned 31.7MB input set). +VISION_MAX_EDGE = 2048 +VISION_SHORT_EDGE = 768 +VISION_TILE_SIZE = 512 +VISION_BASE_TOKEN_BOUND = 1_024 +VISION_TILE_TOKEN_BOUND = 1_024 +REQUEST_TEXT_TOKEN_MARGIN = 1_024 +PINNED_BYTES_KEY = "_verified_input_bytes" +PINNED_SIZE_KEY = "_verified_image_size" + +_SAFE_PROVIDER_ERROR_TYPES = { + "APIConnectionError": "provider_connection_error", + "APIError": "provider_api_error", + "APITimeoutError": "provider_timeout", + "AuthenticationError": "provider_authentication_error", + "BadRequestError": "provider_bad_request", + "ConnectionError": "provider_connection_error", + "InternalServerError": "provider_internal_error", + "PermissionDeniedError": "provider_permission_error", + "RateLimitError": "provider_rate_limit", + "TimeoutError": "provider_timeout", +} +_UNSUPPORTED_PARAMETER_NAMES = {"temperature", "max_tokens"} +_UNSUPPORTED_PARAMETER_CODES = {"unsupported_parameter"} + + +class PaidRunLockError(RuntimeError): + """Raised when another paid instance already owns the stable lock.""" + + +@contextmanager +def _paid_run_lock() -> Iterator[None]: + """Acquire the stable paid-run lock without waiting and never unlink it.""" + + PAID_RUN_LOCK.parent.mkdir(parents=True, exist_ok=True) + flags = os.O_CREAT | os.O_RDWR | getattr(os, "O_CLOEXEC", 0) + flags |= getattr(os, "O_NOFOLLOW", 0) + try: + descriptor = os.open(PAID_RUN_LOCK, flags, 0o600) + except OSError: + raise PaidRunLockError("paid_run_lock_open_failed") from None + try: + os.fchmod(descriptor, 0o600) + try: + fcntl.flock(descriptor, fcntl.LOCK_EX | fcntl.LOCK_NB) + except BlockingIOError: + raise PaidRunLockError("paid_run_lock_contended") from None + yield + finally: + try: + fcntl.flock(descriptor, fcntl.LOCK_UN) + finally: + os.close(descriptor) + + +def _sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as stream: + for chunk in iter(lambda: stream.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _sha256_bytes(value: bytes) -> str: + return hashlib.sha256(value).hexdigest() + + +def _pin_verified_inputs(tasks: Sequence[dict]) -> None: + """Verify each path once and retain those exact bytes for paid requests.""" + + for task in tasks: + path = task["path"] + if not path.is_file(): + raise RuntimeError(f"missing judge input: {path}") + value = path.read_bytes() + if _sha256_bytes(value) != task["sha256"]: + raise RuntimeError(f"judge input SHA-256 mismatch: {path}") + try: + with Image.open(io.BytesIO(value)) as image: + size = image.size + image.verify() + except Exception: + raise RuntimeError(f"invalid judge input image: {path}") from None + if size[0] <= 0 or size[1] <= 0: + raise RuntimeError(f"invalid judge input dimensions: {path}") + task[PINNED_BYTES_KEY] = value + task[PINNED_SIZE_KEY] = size + + +def _verify_inputs_unchanged(tasks: Sequence[dict]) -> None: + """Postflight check that disk still equals the exact preflight bytes.""" + + for task in tasks: + pinned = task.get(PINNED_BYTES_KEY) + if not isinstance(pinned, bytes): + raise RuntimeError("judge input was not pinned during preflight") + path = task["path"] + try: + current = path.read_bytes() + except OSError: + raise RuntimeError(f"judge input disappeared during run: {path}") from None + if current != pinned or _sha256_bytes(current) != task["sha256"]: + raise RuntimeError(f"judge input changed during paid execution: {path}") + + +def _normalized_vision_tiles(size: Tuple[int, int]) -> int: + """Return a conservative high-detail 512px tile count.""" + + width, height = size + scale = min(1.0, VISION_MAX_EDGE / max(width, height)) + width = max(1, math.ceil(width * scale)) + height = max(1, math.ceil(height * scale)) + if min(width, height) > VISION_SHORT_EDGE: + scale = VISION_SHORT_EDGE / min(width, height) + width = max(1, math.ceil(width * scale)) + height = max(1, math.ceil(height * scale)) + return math.ceil(width / VISION_TILE_SIZE) * math.ceil( + height / VISION_TILE_SIZE + ) + + +def _without_image_payload(value): + """Copy request data while replacing only base64 image payload bytes.""" + + if isinstance(value, list): + return [_without_image_payload(item) for item in value] + if isinstance(value, dict): + return {key: _without_image_payload(item) for key, item in value.items()} + if isinstance(value, str) and value.startswith("data:") and ";base64," in value: + prefix, _separator, _payload = value.partition(",") + return f"{prefix}," + return value + + +def _request_input_token_bound( + messages: Sequence[dict], + kwargs: dict, + image_size: Optional[Tuple[int, int]] = None, +) -> int: + """Bound input tokens from exact non-image JSON and verified image size.""" + + request = { + "model": MODEL, + "messages": _without_image_payload(list(messages)), + **kwargs, + } + text_bytes = len( + json.dumps( + request, + ensure_ascii=False, + sort_keys=True, + separators=(",", ":"), + ).encode("utf-8") + ) + image_bound = 0 + if image_size is not None: + image_bound = VISION_BASE_TOKEN_BOUND + ( + VISION_TILE_TOKEN_BOUND * _normalized_vision_tiles(image_size) + ) + return text_bytes + REQUEST_TEXT_TOKEN_MARGIN + image_bound + + +def _structured_error_value(error: Exception, field: str): + """Read structured provider metadata without ever stringifying it.""" + + try: + direct = getattr(error, field, None) + body = getattr(error, "body", None) + except Exception: + return None + if direct is not None: + return direct + if isinstance(body, dict): + value = body.get(field) + nested = body.get("error") + if value is None and isinstance(nested, dict): + value = nested.get(field) + return value + return None + + +def _is_unsupported_parameter(error: Exception) -> bool: + param = _structured_error_value(error, "param") + code = _structured_error_value(error, "code") + return ( + isinstance(param, str) + and isinstance(code, str) + and param in _UNSUPPORTED_PARAMETER_NAMES + and code in _UNSUPPORTED_PARAMETER_CODES + ) + + +def _safe_provider_error_code(error: Exception) -> str: + if _is_unsupported_parameter(error): + return "provider_unsupported_parameter" + return _SAFE_PROVIDER_ERROR_TYPES.get(type(error).__name__, "provider_error") + + +def _load_tasks() -> Tuple[List[dict], List[str], str]: + manifest = json.loads((SIDECAR / "evaluation_manifest.json").read_text()) + matched_ids = manifest["matched_samples"]["ordered_sample_ids"] + if len(matched_ids) != 100 or len(set(matched_ids)) != 100: + raise RuntimeError("formal sidecar must contain exactly 100 unique IDs") + + records = [ + json.loads(line) + for line in (SIDECAR / "per_sample.jsonl").read_text().splitlines() + if line.strip() + ] + evaluated = [record for record in records if record["status"] == "evaluated"] + if len(evaluated) != 100 or any(r["run_id"] != RUN_ID for r in evaluated): + raise RuntimeError("formal sidecar must contain 100 evaluated General rows") + if [r["sample_id"] for r in evaluated] != matched_ids: + raise RuntimeError("formal sidecar row order differs from matched ID snapshot") + + tasks: List[dict] = [] + b0_hashes: List[str] = [] + for record in evaluated: + path = ( + RUNS_ROOT + / RUN_ID + / "samples" + / record["sample_id"] + / "renders" + / f"{record['b0_slot_id']}.png" + ) + b0_hashes.append(record["b0_render_sha256"]) + tasks.append( + { + "arm": "general", + "sample_id": record["sample_id"], + "path": path, + "sha256": record["b0_render_sha256"], + "mime": "image/png", + } + ) + + gt_hashes: List[str] = [] + for sample_id in matched_ids: + path = GT_ROOT / f"crello_{sample_id}" / "ground_truth_preview.jpg" + if not path.is_file(): + raise RuntimeError(f"missing GT preview: {path}") + digest = _sha256(path) + gt_hashes.append(digest) + tasks.append( + { + "arm": "gt", + "sample_id": sample_id, + "path": path, + "sha256": digest, + "mime": "image/jpeg", + } + ) + + payload = "\n".join(matched_ids + b0_hashes + gt_hashes).encode() + return tasks, matched_ids, hashlib.sha256(payload).hexdigest() + + +def _target_paths() -> Tuple[Path, Path]: + final = OUT_ROOT / EVALUATION_ID + return final, OUT_ROOT / f".staging-{EVALUATION_ID}" + + +def _preflight(tasks: Sequence[dict], snapshot_sha256: str) -> None: + if len(tasks) != 200: + raise RuntimeError(f"expected 200 blind scoring tasks, got {len(tasks)}") + final, staging = _target_paths() + if final.exists() or staging.exists(): + raise RuntimeError(f"write-once target already exists: {final} or {staging}") + _pin_verified_inputs(tasks) + if snapshot_sha256 != EXPECTED_INPUT_SNAPSHOT_SHA256: + raise RuntimeError( + f"input snapshot changed: {snapshot_sha256} != " + f"{EXPECTED_INPUT_SNAPSHOT_SHA256}" + ) + print( + "[preflight OK] 100 pinned General B0 + 100 pinned GT; " + f"snapshot={snapshot_sha256}; resumed nominal new calls=201, " + f"aggregate including prior interrupted probe=202 <= cap {HARD_CALL_CAP}", + flush=True, + ) + + +@dataclass(frozen=True) +class Reservation: + reservation_id: int + calls: int + input_tokens: int + output_tokens: int + estimated_usd: float + + +class Budget: + """Atomically reserve every cap before dispatch, then settle fail-closed.""" + + def __init__( + self, + *, + call_cap: int = HARD_CALL_CAP, + input_token_cap: int = INPUT_TOKEN_CAP, + output_token_cap: int = OUTPUT_TOKEN_CAP, + usd_cap: float = USD_CAP, + prior_calls: int = PRIOR_INTERRUPTED_CALLS, + prior_input_tokens: int = PRIOR_INPUT_TOKEN_RESERVE, + prior_output_tokens: int = PRIOR_OUTPUT_TOKEN_RESERVE, + ) -> None: + self.call_cap = call_cap + self.input_token_cap = input_token_cap + self.output_token_cap = output_token_cap + self.usd_cap = usd_cap + self.prior_calls = prior_calls + self.prior_input_tokens = prior_input_tokens + self.prior_output_tokens = prior_output_tokens + self.calls = prior_calls + self.input_tokens = prior_input_tokens + self.output_tokens = prior_output_tokens + self.usage_reported_calls = 0 + self._reserved_calls = 0 + self._reserved_input_tokens = 0 + self._reserved_output_tokens = 0 + self._next_reservation_id = 1 + self._active: Dict[int, Reservation] = {} + self._lock = threading.RLock() + + @staticmethod + def _usd(input_tokens: int, output_tokens: int) -> float: + return ( + input_tokens * INPUT_USD_PER_M + + output_tokens * OUTPUT_USD_PER_M + ) / 1_000_000 + + @property + def estimated_usd(self) -> float: + with self._lock: + return self._usd(self.input_tokens, self.output_tokens) + + def reserve( + self, input_tokens: int, output_tokens: int = MAX_COMPLETION_TOKENS + ) -> Optional[Reservation]: + """Reserve one attempt atomically, or return None before dispatch.""" + + if input_tokens < 0 or output_tokens < 0: + raise ValueError("reservation bounds must be non-negative") + with self._lock: + projected_calls = self.calls + self._reserved_calls + 1 + projected_input = ( + self.input_tokens + self._reserved_input_tokens + input_tokens + ) + projected_output = ( + self.output_tokens + self._reserved_output_tokens + output_tokens + ) + if ( + projected_calls > self.call_cap + or projected_input > self.input_token_cap + or projected_output > self.output_token_cap + or self._usd(projected_input, projected_output) > self.usd_cap + ): + return None + reservation = Reservation( + reservation_id=self._next_reservation_id, + calls=1, + input_tokens=input_tokens, + output_tokens=output_tokens, + estimated_usd=self._usd(input_tokens, output_tokens), + ) + self._next_reservation_id += 1 + self._active[reservation.reservation_id] = reservation + self._reserved_calls += reservation.calls + self._reserved_input_tokens += reservation.input_tokens + self._reserved_output_tokens += reservation.output_tokens + return reservation + + def _settle( + self, + reservation: Reservation, + *, + input_tokens: int, + output_tokens: int, + usage_reported: bool, + ) -> dict: + with self._lock: + active = self._active.pop(reservation.reservation_id, None) + if active != reservation: + raise RuntimeError("invalid_or_already_settled_reservation") + self._reserved_calls -= reservation.calls + self._reserved_input_tokens -= reservation.input_tokens + self._reserved_output_tokens -= reservation.output_tokens + self.calls += reservation.calls + self.input_tokens += input_tokens + self.output_tokens += output_tokens + if usage_reported: + self.usage_reported_calls += 1 + bound_exceeded = ( + input_tokens > reservation.input_tokens + or output_tokens > reservation.output_tokens + ) + return { + "input_tokens": input_tokens, + "output_tokens": output_tokens, + "usage_reported": usage_reported, + "conservative": not usage_reported, + "reservation_bound_exceeded": bound_exceeded, + } + + @staticmethod + def _usage_value(usage, primary: str, fallback: str) -> Optional[int]: + try: + value = getattr(usage, primary, None) + if value is None: + value = getattr(usage, fallback, None) + except Exception: + return None + if isinstance(value, bool) or not isinstance(value, int): + return None + return value if value >= 0 else None + + def settle_response(self, reservation: Reservation, response) -> dict: + try: + usage = getattr(response, "usage", None) + except Exception: + usage = None + if usage is None: + return self.settle_failure(reservation) + input_tokens = self._usage_value(usage, "prompt_tokens", "input_tokens") + output_tokens = self._usage_value( + usage, "completion_tokens", "output_tokens" + ) + if input_tokens is None or output_tokens is None: + return self.settle_failure(reservation) + return self._settle( + reservation, + input_tokens=input_tokens, + output_tokens=output_tokens, + usage_reported=True, + ) + + def settle_failure(self, reservation: Reservation) -> dict: + """Convert an uncertain in-flight reservation to a conservative charge.""" + + return self._settle( + reservation, + input_tokens=reservation.input_tokens, + output_tokens=reservation.output_tokens, + usage_reported=False, + ) + + def exceeded(self) -> bool: + with self._lock: + projected_input = self.input_tokens + self._reserved_input_tokens + projected_output = self.output_tokens + self._reserved_output_tokens + return ( + self.calls + self._reserved_calls > self.call_cap + or projected_input > self.input_token_cap + or projected_output > self.output_token_cap + or self._usd(projected_input, projected_output) > self.usd_cap + ) + + def has_active_reservations(self) -> bool: + with self._lock: + return bool(self._active) + + def as_dict(self) -> dict: + with self._lock: + reserved_usd = self._usd( + self._reserved_input_tokens, self._reserved_output_tokens + ) + return { + "calls": self.calls, + "input_tokens": self.input_tokens, + "output_tokens": self.output_tokens, + "usage_reported_calls": self.usage_reported_calls, + "estimated_usd": round( + self._usd(self.input_tokens, self.output_tokens), 6 + ), + "reserved_calls": self._reserved_calls, + "reserved_input_tokens": self._reserved_input_tokens, + "reserved_output_tokens": self._reserved_output_tokens, + "reserved_estimated_usd": round(reserved_usd, 6), + "prior_interrupted_calls": self.prior_calls, + "prior_input_token_reserve": self.prior_input_tokens, + "prior_output_token_reserve": self.prior_output_tokens, + } + + +async def _resolve_params(client, budget: Budget) -> dict: + legacy = {"temperature": 0.0, "max_tokens": MAX_COMPLETION_TOKENS} + modern = {"max_completion_tokens": MAX_COMPLETION_TOKENS} + messages = [{"role": "user", "content": "Reply with the word ok."}] + reservation = budget.reserve( + _request_input_token_bound(messages, legacy), MAX_COMPLETION_TOKENS + ) + if reservation is None: + raise RuntimeError("authorization cap exhausted before parameter probe") + try: + response = await client.chat.completions.create( + model=MODEL, + messages=messages, + **legacy, + ) + except asyncio.CancelledError: + budget.settle_failure(reservation) + raise + except Exception as error: + budget.settle_failure(reservation) + if _is_unsupported_parameter(error): + print("[probe] param variant=modern", flush=True) + return modern + code = _safe_provider_error_code(error) + raise RuntimeError(f"parameter_probe_failed:{code}") from None + usage = budget.settle_response(reservation, response) + if not usage["usage_reported"]: + raise RuntimeError("parameter_probe_failed:provider_usage_missing") + if usage["reservation_bound_exceeded"] or budget.exceeded(): + raise RuntimeError("parameter_probe_failed:authorization_cap_exceeded") + print("[probe] param variant=legacy", flush=True) + return legacy + + +def _score_messages(task: dict) -> List[dict]: + pinned = task.get(PINNED_BYTES_KEY) + if not isinstance(pinned, bytes): + raise RuntimeError("judge input was not pinned during preflight") + encoded = base64.b64encode(pinned).decode("ascii") + return [ + { + "role": "user", + "content": [ + {"type": "text", "text": s21.COLE_PROMPT}, + { + "type": "image_url", + "image_url": { + "url": f"data:{task['mime']};base64,{encoded}", + "detail": "high", + }, + }, + ], + } + ] + + +def _base_row(task: dict) -> dict: + return { + "arm": task["arm"], + "sample_id": task["sample_id"], + "path": str(task["path"].relative_to(REPO)), + "render_sha256": task["sha256"], + } + + +async def _score_task(client, task: dict, kwargs: dict, budget: Budget) -> dict: + messages = _score_messages(task) + image_size = task.get(PINNED_SIZE_KEY) + if not ( + isinstance(image_size, tuple) + and len(image_size) == 2 + and all(isinstance(value, int) for value in image_size) + ): + raise RuntimeError("judge input dimensions were not pinned during preflight") + input_bound = _request_input_token_bound(messages, kwargs, image_size) + last_error_code = "no_attempt" + for attempt in range(2): + reservation = budget.reserve(input_bound, MAX_COMPLETION_TOKENS) + if reservation is None: + return {**_base_row(task), "status": "authorization_cap_reached"} + try: + response = await client.chat.completions.create( + model=MODEL, + messages=messages, + **kwargs, + ) + except asyncio.CancelledError: + budget.settle_failure(reservation) + raise + except Exception as error: # noqa: BLE001 + usage = budget.settle_failure(reservation) + last_error_code = _safe_provider_error_code(error) + else: + usage = budget.settle_response(reservation, response) + if not usage["usage_reported"]: + last_error_code = "provider_usage_missing" + elif usage["reservation_bound_exceeded"] or budget.exceeded(): + return { + **_base_row(task), + "status": "authorization_cap_exceeded", + "usage": usage, + } + else: + try: + text = (response.choices[0].message.content or "").strip() + parsed = s21._parse_cole_json(text) + except Exception: # response contents must never enter errors + parsed = None + if parsed is not None: + return { + **_base_row(task), + "status": "ok", + "scores": parsed, + "smean4": statistics.mean( + parsed[key] for key in s21.REPORT_AXES + ), + "usage": usage, + } + last_error_code = "response_unparseable" + if attempt == 0: + await asyncio.sleep(1.5) + return { + **_base_row(task), + "status": "failed", + "error_code": last_error_code, + } + + +async def _run_paid(tasks: List[dict]) -> Tuple[List[dict], Budget, bool]: + try: + client = s21._load_openai_client() + except Exception as error: + code = _safe_provider_error_code(error) + raise RuntimeError(f"provider_client_load_failed:{code}") from None + budget = Budget() + kwargs = await _resolve_params(client, budget) + semaphore = asyncio.Semaphore(CONCURRENCY) + completed: List[dict] = [] + abort = asyncio.Event() + + async def worker(task: dict) -> dict: + async with semaphore: + if abort.is_set(): + return {**_base_row(task), "status": "aborted"} + row = await _score_task(client, task, kwargs, budget) + completed.append(row) + done_n = len(completed) + if row["status"].startswith("authorization_cap"): + abort.set() + if done_n == PARSE_FAIL_WINDOW: + failures = sum(r["status"] != "ok" for r in completed) + if failures / done_n > PARSE_FAIL_MAX_RATE: + print( + f"[ABORT] first-window failures={failures}/{done_n}", + flush=True, + ) + abort.set() + if done_n % 25 == 0 or done_n == len(tasks): + ok_n = sum(r["status"] == "ok" for r in completed) + print( + f"[progress] {done_n}/{len(tasks)} scored, ok={ok_n}, " + f"budget={budget.as_dict()}", + flush=True, + ) + return row + + rows = list(await asyncio.gather(*(worker(task) for task in tasks))) + if budget.has_active_reservations(): + raise RuntimeError("active_budget_reservations_after_gather") + return rows, budget, abort.is_set() + + +def _arm_means(rows: Sequence[dict]) -> dict: + output: Dict[str, dict] = {} + for arm in ("general", "gt"): + ok = [row for row in rows if row["arm"] == arm and row["status"] == "ok"] + if not ok: + output[arm] = {"n": 0} + continue + output[arm] = { + "n": len(ok), + "smean4": statistics.mean(row["smean4"] for row in ok), + **{ + axis: statistics.mean(row["scores"][axis] for row in ok) + for axis in ("SDL", "SQL", "STV", "SGI", "SIO") + }, + } + if output["general"].get("n") and output["gt"].get("n"): + output["general"]["pct_of_gt_smean4"] = ( + 100.0 * output["general"]["smean4"] / output["gt"]["smean4"] + ) + return output + + +def _validate_complete_rows(rows: Sequence[dict], matched_ids: Sequence[str]) -> None: + """Require the exact 100 General + 100 GT ordered publication contract.""" + + if len(matched_ids) != 100 or len(set(matched_ids)) != 100: + raise RuntimeError("publication requires exactly 100 unique matched IDs") + if len(rows) != 200: + raise RuntimeError("publication requires exactly 200 scoring rows") + if any(row.get("status") != "ok" for row in rows): + raise RuntimeError("publication requires all 200 scoring rows to be ok") + try: + actual_pairs = [(row["arm"], row["sample_id"]) for row in rows] + except (KeyError, TypeError): + raise RuntimeError("publication rows lack required identity fields") from None + expected_pairs = [ + *(("general", sample_id) for sample_id in matched_ids), + *(("gt", sample_id) for sample_id in matched_ids), + ] + if len(set(actual_pairs)) != 200: + raise RuntimeError("publication requires unique arm/sample pairs") + if actual_pairs != expected_pairs: + raise RuntimeError("publication arm/sample IDs or order differ from snapshot") + + +def _paired(rows: Sequence[dict]) -> dict: + by_arm: Dict[str, Dict[str, dict]] = {} + for row in rows: + if row["status"] == "ok": + by_arm.setdefault(row["arm"], {})[row["sample_id"]] = row + common = sorted(set(by_arm.get("general", {})) & set(by_arm.get("gt", {}))) + deltas = [ + by_arm["general"][sample_id]["smean4"] + - by_arm["gt"][sample_id]["smean4"] + for sample_id in common + ] + wins = sum(delta > 0 for delta in deltas) + losses = sum(delta < 0 for delta in deltas) + per_axis = {} + for axis in s21.REPORT_AXES: + axis_wins = sum( + by_arm["general"][sid]["scores"][axis] + > by_arm["gt"][sid]["scores"][axis] + for sid in common + ) + axis_losses = sum( + by_arm["general"][sid]["scores"][axis] + < by_arm["gt"][sid]["scores"][axis] + for sid in common + ) + per_axis[axis] = { + "wins": axis_wins, + "losses": axis_losses, + "ties": len(common) - axis_wins - axis_losses, + "sign_p": relation_judge._sign_test_p(axis_wins, axis_losses), + } + return { + "general_vs_gt": { + "n_pairs": len(common), + "smean4": { + "wins": wins, + "losses": losses, + "ties": len(common) - wins - losses, + "sign_p": relation_judge._sign_test_p(wins, losses), + "bootstrap": relation_judge._bootstrap_ci(deltas), + }, + "per_axis": per_axis, + } + } + + +def _publish( + rows: List[dict], + budget: Budget, + wall_seconds: float, + matched_ids: List[str], + snapshot_sha256: str, +) -> Path: + _validate_complete_rows(rows, matched_ids) + if budget.exceeded() or budget.has_active_reservations(): + raise RuntimeError("publication requires a settled in-cap budget") + final, staging = _target_paths() + if final.exists() or staging.exists(): + raise RuntimeError("write-once target appeared before publication") + OUT_ROOT.mkdir(parents=True, exist_ok=True) + staging.mkdir(parents=False, exist_ok=False) + try: + (staging / "per_sample.jsonl").write_text( + "\n".join(json.dumps(row, sort_keys=True) for row in rows) + "\n" + ) + aggregate = { + "schema_version": "a3.cole-judge.v1", + "evaluation_id": EVALUATION_ID, + "judge_model": MODEL, + "prompt_sha256": hashlib.sha256(s21.COLE_PROMPT.encode()).hexdigest(), + "source_sidecar": SOURCE_SIDECAR_ID, + "input_snapshot_sha256": snapshot_sha256, + "matched_ids_count": len(matched_ids), + "authorization": { + "call_cap": HARD_CALL_CAP, + "input_token_cap": INPUT_TOKEN_CAP, + "output_token_cap": OUTPUT_TOKEN_CAP, + "usd_cap": USD_CAP, + }, + "usage": budget.as_dict(), + "wall_seconds": round(wall_seconds, 2), + "status_counts": { + status: sum(row["status"] == status for row in rows) + for status in sorted({row["status"] for row in rows}) + }, + "arm_means": _arm_means(rows), + "paired": _paired(rows), + } + (staging / "aggregate.json").write_text( + json.dumps(aggregate, indent=2, sort_keys=True, allow_nan=False) + "\n" + ) + os.rename(staging, final) + except Exception: + if staging.exists(): + for child in staging.iterdir(): + child.unlink() + staging.rmdir() + raise + return final + + +def main() -> int: + parser = argparse.ArgumentParser() + mode = parser.add_mutually_exclusive_group(required=True) + mode.add_argument("--preflight", action="store_true", help="zero-cost only") + mode.add_argument("--allow-api-calls", action="store_true") + args = parser.parse_args() + + if args.preflight: + tasks, _matched_ids, snapshot_sha256 = _load_tasks() + _preflight(tasks, snapshot_sha256) + return 0 + + with _paid_run_lock(): + tasks, matched_ids, snapshot_sha256 = _load_tasks() + _preflight(tasks, snapshot_sha256) + started = time.time() + rows, budget, aborted = asyncio.run(_run_paid(tasks)) + wall_seconds = time.time() - started + if aborted or budget.exceeded() or budget.has_active_reservations(): + raise RuntimeError( + f"paid judge aborted without publication; budget={budget.as_dict()}" + ) + _validate_complete_rows(rows, matched_ids) + _verify_inputs_unchanged(tasks) + tasks_after, ids_after, snapshot_after = _load_tasks() + _preflight(tasks_after, snapshot_after) + if ids_after != matched_ids or snapshot_after != snapshot_sha256: + raise RuntimeError("judge inputs changed during paid execution") + final = _publish( + rows, budget, wall_seconds, matched_ids, snapshot_sha256 + ) + aggregate = json.loads((final / "aggregate.json").read_text()) + print( + json.dumps( + { + "published": str(final.relative_to(REPO)), + "wall_seconds": round(wall_seconds, 1), + "status_counts": aggregate["status_counts"], + "usage": aggregate["usage"], + "arm_means": aggregate["arm_means"], + }, + indent=2, + ) + ) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/layout_agent/live_runs_table.md b/layout_agent/live_runs_table.md deleted file mode 100644 index 600acaced..000000000 --- a/layout_agent/live_runs_table.md +++ /dev/null @@ -1,144 +0,0 @@ -# Live LLM Runs — Result Table(paper-ready) - -整理 2026-05-09 起至 2026-05-15 共 **9 場 live LLM 跑 + 1 場 re-run** 的成本、分數軌跡與失敗模式,提供論文 results 與 limitations 章節原始資料。 - -> **⚠️ 2026-05-18 誠實修正(讀本表前必看)**:本表多列「Best score / mean best X vs Crello GT 68 = +N」是 **pipeline 自家 Aesthetic Judge 單邊評 AgentLayout candidate**、再與另一 corner-case 量到的「設計師 GT≈68」相比——**非配對、Judge 校準不同,是測量假象,不可解讀為「AgentLayout 勝設計師」**。2026-05-18 step 11 的正規 **pairwise head-to-head Win Rate**(交換圖序 ×2、N=3)顯示:A realistic 設計師完勝 **3:0**(分差 27-37)、B layout-only 即使隔離渲染仍 **2:1** 設計師勝。即「Best score」欄僅供同 pipeline 內部 trend 比較,**不是 vs-designer 的有效對照**;vs-designer 結論以 `step11_winrate.png` / `step11_winrate_results.json` 為準。 - ---- - -## 1. 一覽表 - -| # | 日期 | Driver / 對應 step | Brief(fixture) | Canvas | Cost (USD) | Verdicts | Best score | Score 軌跡 | Termination | 主要結論 / failure mode | -| --- | ---------- | ------------------------------------ | --------------------------------------------------------------- | ----------- | ---------- | -------- | ---------- | ------------------ | --------------- | -------------------------------------------------------------------------------------------------------- | -| 1 | 2026-05-09 | `run_role_team_live.py` / step 0 | 3-element synthetic poster (`Spring Sale`) | 800×1200 | ~0.30 | 3 | 75 | 75 → 72 → 72 | reject | 第一次 routing 通過;Aesthetic Judge feedback 太模糊,Generator 不收斂 | -| 2 | 2026-05-14 | step 4 (Judge metric whitelist) | 同 #1 | 800×1200 | ~0.30 | (≤2) | 72 | 72 → QC fail | RuntimeError | Judge 不再 emit `right`/`bottom`;但 area-math leak 仍致 QC 全 fail | -| 3 | 2026-05-14 | step 5 (area-math leak fix) | 同 #1 | 800×1200 | 0.31 | 3 | 72 | 72 → 72 → 72 | reject | QC RuntimeError 完全消除、3 完整 iter graceful 退場;分數 plateau,bottleneck 轉移至非 prompt 層 | -| 4 | 2026-05-14 | step 6 (canvas-coverage rule) | 同 #1 | 800×1200 | 0.30 | 3 | 72 | 72 → 70 → 69 | reject | bottom rule 遵守、top rule 違反;確認「3 element 在 800×1200 上本來就無法 balanced」結構性根因 | -| 5 | 2026-05-14 | step 7 (Analyst background_color) | 同 #1(Analyst emit `#E8F1F8` cool bucket) | 800×1200 | 0.28 | 3 | 72 | 72 → 68 → 68 | reject | Analyst 真的 emit canvas-aware hex;分數 = Crello designer-GT baseline 68 | -| 6 | 2026-05-14 | step 8 (contrast-aware text, REVERT) | 同 #1 | 800×1200 | 0.34 | 3 + ½ | 72 | 72 → 70 → 70 → 💥 | RuntimeError | Analyst retry 後 Generator round 15/15 fail QC;揭露「prompt attention budget」現象,step 8 commit 撤回 | -| 7 | 2026-05-14 | step 9 (Crello sparsity, QC alias) | Crello `5c6c0cba` hiring poster (5 elements, 1 bg + 4 text) | 1080×1920 | 0.49 | 3 + ½ | 72 | 72 → 72 → 70 → 💥 | RuntimeError | **平均 best 71.3 vs baseline 68 = +3.3**;sparsity hypothesis 正向證據(N=1);揭露 QC alias bug 並修補 | -| 8 | 2026-05-15 | step 9b N=3 (no fix yet) | Crello `5954bda9` "dog pet citation" (4 effective elements) | 1200×600 | 0.12 | 0 | — | 0/15 hard fail | RuntimeError | Generator+QC robustness ceiling;no_overlap micro-overlap 把 LLM rounding 全判違規 | -| 9 | 2026-05-15 | step 9b N=3 (no fix yet) | Crello `5d972ca9` Russian "Travelling Tips" (4 effective elements) | 537×240 | 0.13 | 0 | — | 0/15 hard fail | RuntimeError | 同 #8;tight canvas + position_preference + no_overlap 多元素組合不可解 | -| 8r | 2026-05-16 | step 10 re-run (5% tolerance only) | 同 #8 | 1200×600 | 0.12 | 0 | — | 0/15 hard fail | RuntimeError | step 10 解了 no_overlap,但 fail mode 漂到 `position_preference` band;揭發 step 10c 動機 | -| 8rc | 2026-05-16 | step 10c (band 10% tolerance) | 同 #8 | 1200×600 | 0.43 | 3 | 70 | 70 → 68 → 70 | reject | **跑完整 reject loop**;5-element 4-effective brief mean best 69.3 vs GT 68 → sparsity N=2 validated | -| 9rd | 2026-05-18 | step 10d (10+10c on small canvas) | 同 #9 | 537×240 | 0.55 | 3 + ½ | 72 | 70 → 70 → 72 → 💥 | RuntimeError | **step 10+10c 解開 small-canvas hard crash**;跑完整 reject loop(V3 best 72 req=20 hier=18 bal=17 coh=17);mean best 70.67 vs GT 68 → robustness 修補在第二 aspect ratio generalize、sparsity N=3;殘留 💥 為已知 step 10b post-Analyst-retry crash 非 tolerance 問題 | -| 12c | 2026-05-19 | step 12b(z_order hint 正規化,**content-aware ON**) | Crello `5efdd2dd` "Citation about Diversity of Skin Color"(3 elements,真實背景圖) | 1008×1296 | 0.27 | 3 | 72 | 72 → 72 → 72 | reject | **🌟 首個真正 content-aware live**:BackgroundAnalyzer 全 3 round 注入真實 3 safe zones(非 stub);z_order `hint:above_background` QC 正規化解開 0/15 crash(並修掉 PROMPT_TEMPLATE `.format()` `{}` KeyError);mean best 72,子分數 req=20 hier=18 **bal=17 coh=17**——content-aware **未突破 plateau**,與 step 11「bal/coh≈17 結構性 scope-bound」結論一致;**#1–#9 全為 pre-content-aware,本列起為 content-aware baseline** | - -註: -- 「Verdicts」= Aesthetic Judge 完整 emit 的次數;「3 + ½」= 3 場完整 verdict 後 Analyst retry 觸發、Generator round crash -- 「Termination = RuntimeError」= `LayoutGeneratorRole` raise `RuntimeError("0/K candidates passed QC after N top-up rounds")` -- 「Best score」是同場最佳 candidate 的 Aesthetic Judge total(滿分 100) -- Score 軌跡的箭頭 → 為 verdict-by-verdict best;💥 表示之後 Generator round crash - ---- - -## 1b. SOTA-positioning Win Rate — step 13 pilot(2026-05-19) - -AesthetiQ(CVPR 2025, arXiv 2503.00591)在 Crello **test**(1,971)報 pairwise MLLM -win-rate vs GT:**AesthetiQ-8B 17.19%**、prior SOTA LayoutNUWA 5.58%(judge=VILA-7B)。 -`step13_sota_winrate.py` 用 **seed=42** 從 Crello test 抽 **N=20**(structural filter: -2–5 elem、≥1 img、≥1 text;first 400 中 39 合格)跑完整 reject loop,protocol 同 -step11(pairwise、order-swap ×2、majority),judge=pipeline LLM(gpt-4o)。約 60 min、 -pipeline+judge 合計 ~$5–6。 - -| 指標 | 數值 | 說明 | -| --- | --- | --- | -| completion rate | **20/20 = 100%** | step 10–12b robustness 修補在隨機 Crello test(filtered)generalize — 真正正向結果 | -| Win rate A(vs 設計師真實成品 JPG) | **0%** | 對人類完稿全輸 → graphic-design-generation gap,呼應 step 11 / plateau scope-bound | -| Win rate B(同 renderer,AesthetiQ-aligned,純排版幾何) | **80%** | 抽掉渲染只比 bbox 幾何時具競爭力 | - -**誠實定調(不可宣稱勝 SOTA):** -- GT 重建保真度經 $0 離線檢查 = **97.1%**(68/70 設計師元素,僅 2/20 各掉 1)→ B 高分**不是** GT 缺元素的測量假象(原假設被資料推翻)。 -- B=80% **仍不可與 AesthetiQ 17.19% 並列當勝績**,三個 caveat:(1) judge=gpt-4o≠VILA-7B(win-rate judge-dependent);(2) **最強 confound:generator 與 judge 同為 gpt-4o(self-preference),AesthetiQ 刻意用獨立 judge 避此**;(3) filtered subset、N=20,AesthetiQ 用全 1,971 不過濾。 -- 可寫進論文的:**A=0% + B=80% 的對比**定位了能力邊界——排版幾何非弱點(B),弱點在渲染/裝飾(A),而後者是 by-design 不做、已記錄的 limitation。AesthetiQ 維持 **qualitative / indicative** 定位,不進勝負對照表。 -- **Future work(明確)**:用獨立(非 gpt-4o)judge 重判已存的 `step13_*` pair,消 self-preference confound,才有資格做數值對照。 - ---- - -## 2. 分數結構洞察(從 #3 起穩定可比) - -從 step 5 起 QC crash 完全消除,可以穩定觀察 Aesthetic Judge 4 子分數的相對軌跡: - -| Sub-score | 滿分 | #3 best | #4 best | #5 best | #7 best | -| ------------------ | ---- | ------- | ------- | ------- | ------- | -| requirement | 25 | 20 | 18 | 18 | 20 | -| visual_hierarchy | 25 | 18 | 17 | 17 | 18 | -| layout_balance | 25 | 17 | 17 | 17 | 17 | -| visual_coherence | 25 | 17 | 17 | 16 | 17 | -| **total** | 100 | **72** | **69** | **68** | **72** | - -兩段 plateau: -1. 從 #3 → #5 的「~4 點 sparsity-driven」段落:3 element 不夠撐起 800×1200 海報,bal/coh 永遠 17 -2. 從 #5 → #7 的「sparsity 段落突破」:5 element 把 req +2 / hier +1 拉回,但 bal/coh 仍 17 — **plateau 第二段(bal/coh=17 上限),step 11 將攻擊** - ---- - -## 3. Cost 細目(依 step 修補回推、$/run) - -| Step | 對應 # | Cost (USD) | 備註 | -| ---------- | --------------- | ----------- | ------------------------------------------------------------- | -| step 2/3 | postfix log | 0.18 | structured suggestions 落地 + threshold 80→75 | -| step 4 | #2 | 0.30 | Judge metric whitelist | -| step 5 | #3 (areafix) | 0.31 | area-math leak fix;首次無 crash 跑完 | -| step 6 | #4 (coverage) | 0.30 | canvas coverage rule | -| step 7 | #5 | 0.28 | Analyst background_color | -| step 8 | #6 | 0.34 + REV | contrast hypothesis 失敗、commit 撤回 | -| step 9 | #7 | 0.49 | Crello 5-element + QC alias bugfix | -| step 9b | #8 | 0.12 | 1200×600 hard fail | -| step 9b | #9 | 0.13 | 537×240 hard fail | -| step 10 | #8r | 0.12 | 5% no_overlap tolerance;解 no_overlap 但 fail mode 漂移 | -| step 10c | #8rc | 0.43 | 10% position-band tolerance;首次跑完 1200×600 reject loop | -| step 10d | #9rd | 0.55 | 537×240 small canvas 重跑;step 10+10c 解開 hard crash | -| **累計** | | **~3.55** | 9 場 + 3 re-run;含一次失敗實驗(step 8) | - ---- - -## 4. Failure mode 統計 - -| Failure mode | 出現於 | Resolution | -| ------------------------------------- | ------------ | ------------------------------------------------------------------------- | -| Aesthetic Judge feedback 模糊 | #1 | step 2 structured suggestions schema + step 3 threshold calibration | -| Judge emit `metric=right/bottom` | #2 | step 4 PROMPT_TEMPLATE metric whitelist | -| QC `size_preference` area-math leak | #2 (殘留) | step 5 PROMPT 加 width × height ≥ 0.10×canvas_area | -| Plateau 第一段(spec sparsity) | #3, #4, #5 | step 9 用 5-element brief 從 68 → 71.3 | -| Plateau 第二段(bal/coh=16-17 上限) | #3 起 | **scope-bound limitation(step 11 結案)** — Generator schema 無裝飾元素表達力;by design 不做 graphic-design synthesis,非 bug、不解;#7/#8rc/#9rd 跨 aspect ratio 一致 | -| Post-Analyst-retry Generator crash | #6, #7, #9rd | **未解** — step 10b 候選;#9rd 確認 3 verdict 後仍於 rebuild round crash | -| QC `no_overlap` strict-tolerance fail | #8, #9 | step 10 改 5% area-ratio tolerance(#8r + #9rd 確認 no_overlap 不再 fail) | -| QC `position_preference` band 邊界硬 | #8r | step 10c 改 10% per-edge tolerance(#8rc 1200×600 + #9rd 537×240 皆跑完) | -| QC alias `center_top` ≠ `top_center` | #7(首次發現)| step 9 副產品:8 alias + 17 regression test | - ---- - -## 5. Paper 寫作指引 - -- **Results 章節**:表 1 + 表 2 直接套用,配 #1/#3/#7 的 PNG 三張對比圖(baseline → mid → 5-element) -- **Limitations 章節**: - - N=1 sparsity validation(#7)— 誠實表達「on the single Crello sample our pipeline could fully evaluate」 - - Generator+QC robustness ceiling on tight canvas(#8/#9)— 已被 step 10 部分緩解但 5% 是 engineering compromise - - Plateau 第二段 bal/coh=17(未解)— 推測來自 renderer 沒生 decorative shape / `default_white_background` 仍是 stub -- **Lessons learned**: - - Prompt attention budget 真實存在(#6)— 多 14 行無關 ATTENTION 排擠 size_preference 注意力 - - Cheap-validate 再 live-burn — step 8 沒先 offline reproducer 就燒 $0.34 - - Multi-sample validation 揭露 single-sample 看不到的 robustness 限制(#8/#9 vs #7) - ---- - -## 6. 重跑與資料來源檔 - -| # | 主要 log / artifact | -| ----- | ------------------------------------------------------------------------------------------------------------------ | -| 1 | (早期未獨立保存 log,trace.json 在 `output/role_live_trace.json` 結構保留) | -| 2 | (無獨立 log;postfix log 涵蓋 step 2/3 跑) | -| 3 | `output/role_live_2026-05-14_areafix.log` + `output/role_live_last_reject.png` | -| 4 | `output/role_live_2026-05-14_coverage.log` | -| 5–6 | (與 #4 共用;step 8 commit 撤回後 log 仍保留,可從 git reflog 撈) | -| 7 | `output/role_live_crello_*.{json,png}` (`5c6c0cba` 後綴) | -| 8 | `output/role_live_crello_*.{json,png}` (預設 `5954bda9` 早期 sample;driver 後升級 `--sample-id`) | -| 9 | `output/role_live_crello_5d972ca9abc8ea6d1c54e002_*.{json,png}` | -| 12c | `output/live_step12b_5efdd2dd.log` + `output/role_live_crello_5efdd2dd499b85dcc75ba0bc_{trace,spec}.json` + `_last_reject.png`;離線根因 `output/debug_step12_failmode.py` | -| 8r | (driver 末次跑後同檔覆蓋;下次重跑可加 `_step10` 後綴避免覆蓋) | -| 全部 commit 紀錄 | `git log --oneline -- metagpt/ext/agentlayout/`(dcf6c75f → 229b8e86 共約 8 個 step commit) | - ---- - -**最後更新:2026-05-19(加入 §1b step13 SOTA-positioning Win Rate pilot:completion 100% / A 0% / B 80%,誠實定調不宣稱勝 AesthetiQ;#12c 首個 content-aware live;#1–#9 pre-content-aware)** diff --git a/layout_agent/next_step.md b/layout_agent/next_step.md new file mode 100644 index 000000000..f31ca96d9 --- /dev/null +++ b/layout_agent/next_step.md @@ -0,0 +1,25 @@ +# 目前狀態(2026-07-25 更新) + +上一份 handoff `CODEX_HANDOFF.md` 的任務(Elem2Design external baseline) +已全部完成並結案,該檔已於 repo 清理時刪除;如需回看內容: + +```bash +git show 60b893792^:layout_agent/CODEX_HANDOFF.md +``` + +## 近期完成 + +- Full-Crello batch-001:98/100 完成(+2 skip),結果在 `runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1/` +- Elem2Design baseline:見 `ELEM2DESIGN_BASELINE_RESULTS.md`、`evaluations/a3-external/`(勿重跑) +- 根目錄 `README.md` 已改寫為 AgentLayout 專案總覽(commit `65556ab1d`) +- 2026-07-25 repo 清理:刪除舊 pipeline 產物約 9GB(full_result per-sample trace、 + 舊 demo、pku_run、sega_pre、step 中間 archive、渲染 log、過時文件; + tracked 檔刪除見 commit `60b893792`)。彙整數據保留於 + `full_result/_aggregate/` 與 `full_result/INDEX.md`。 + +## 下一步候選 + +- 下一批 Full-Crello batch 需使用者新付費授權(resume 機制已就緒: + `--resume-ledger` / `--skip-sample`) +- 論文寫作素材:`output2/step98_a3_walkthrough/`(兩份 A3 walkthrough)、 + `result.md`、`CURRENT_EXPERIMENT_RESULTS.md` diff --git a/layout_agent/output2/provenance.py b/layout_agent/output2/provenance.py new file mode 100644 index 000000000..7b986523b --- /dev/null +++ b/layout_agent/output2/provenance.py @@ -0,0 +1,136 @@ +"""Run provenance capture -- answer "which code and which model produced this?" + +Step 89 was run against an uncommitted working tree and its artifacts recorded +neither a commit nor an LLM model. The only record that it used gpt-4o (rather +than the o4-mini that ~/.metagpt/config2.yaml carried from 2026-07-09 onward) +lives in prose. That is not something a reviewer can verify. + +Every driver under output2/ should call :func:`capture` and persist the result +next to its outputs. + +What gets captured +------------------ + git.head -- commit sha the run started from + git.dirty -- True if tracked files differ from HEAD + git.diff_sha256 -- hash of `git diff HEAD` (identifies the exact + uncommitted state; 'clean' when there is no diff) + git.untracked -- untracked paths under the watched roots + llm.model -- pipeline model from ~/.metagpt/config2.yaml + llm.judge_model -- evaluator model, when the driver pins one + flags -- every AGENTLAYOUT_* env var actually set + python -- interpreter version + +``dirty`` + ``diff_sha256`` together mean a dirty run stays identifiable: +re-apply that diff to ``head`` and you have the exact source. Strictly better +than the Step 89 situation, where neither existed. + +No timestamp field on purpose: file mtime already carries it, and a clock value +would make two identical runs produce different bytes. + +Usage:: + + from provenance import capture, write, summary_line + prov = capture(judge_model="gpt-4o") + print(summary_line(prov)) + write(out_dir / "provenance.json", prov) +""" +from __future__ import annotations + +import hashlib +import json +import os +import platform +import subprocess +from pathlib import Path +from typing import Dict, List, Optional + +REPO_ROOT = Path(__file__).resolve().parents[2] +CONFIG2 = Path.home() / ".metagpt" / "config2.yaml" +WATCHED = ("metagpt/ext/agentlayout", "layout_agent/output2") + + +def _git(*args: str) -> Optional[str]: + """Run a git command; None if git is unavailable or the command fails.""" + try: + out = subprocess.run( + ["git", *args], cwd=REPO_ROOT, capture_output=True, text=True, timeout=30 + ) + except (OSError, subprocess.SubprocessError): + return None + return out.stdout if out.returncode == 0 else None + + +def _git_block() -> Dict[str, object]: + head = _git("rev-parse", "HEAD") + if head is None: + return {"available": False} + + diff = _git("diff", "HEAD") or "" + untracked: List[str] = [] + for root in WATCHED: + listing = _git("ls-files", "--others", "--exclude-standard", "--", root) + if listing: + untracked.extend(listing.split()) + + return { + "available": True, + "head": head.strip(), + "branch": (_git("rev-parse", "--abbrev-ref", "HEAD") or "").strip() or None, + "dirty": bool(diff.strip()), + "diff_sha256": hashlib.sha256(diff.encode()).hexdigest() if diff.strip() else "clean", + "untracked": sorted(untracked), + } + + +def _llm_block(judge_model: Optional[str]) -> Dict[str, object]: + """Pipeline model from config2.yaml, parsed without importing metagpt so + provenance capture never fails on a config the runtime would reject.""" + model = None + if CONFIG2.exists(): + try: + import yaml + + model = (yaml.safe_load(CONFIG2.read_text()) or {}).get("llm", {}).get("model") + except Exception as err: # noqa: BLE001 -- provenance must never crash a run + model = f"" + return {"config_path": str(CONFIG2), "model": model, "judge_model": judge_model} + + +def capture(judge_model: Optional[str] = None) -> Dict[str, object]: + """Snapshot the run environment. Never raises. + + ``judge_model`` is for drivers that pin an evaluator independent of the + pipeline model (e.g. step92 pins gpt-4o while config2 says o4-mini). + """ + return { + "git": _git_block(), + "llm": _llm_block(judge_model), + "flags": {k: v for k, v in sorted(os.environ.items()) + if k.startswith("AGENTLAYOUT_")}, + "python": platform.python_version(), + } + + +def write(path: Path, prov: Dict[str, object]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(prov, indent=2, ensure_ascii=False)) + + +def summary_line(prov: Dict[str, object]) -> str: + """One line for stdout, so a dirty run is visible while it happens.""" + g = prov.get("git", {}) + if not g.get("available"): + return "[provenance] git unavailable" + state = "DIRTY" if g.get("dirty") else "clean" + n_untracked = len(g.get("untracked", [])) + llm = prov.get("llm", {}) + judge = llm.get("judge_model") + model = f"model={llm.get('model')}" + (f" judge={judge}" if judge else "") + extra = f", {n_untracked} untracked" if n_untracked else "" + return f"[provenance] {str(g.get('head', '?'))[:8]} ({state}{extra}) {model}" + + +if __name__ == "__main__": + _p = capture() + print(summary_line(_p)) + print(json.dumps(_p, indent=2, ensure_ascii=False)) diff --git a/layout_agent/output2/step76_ab_live.py b/layout_agent/output2/step76_ab_live.py new file mode 100644 index 000000000..7735e7be1 --- /dev/null +++ b/layout_agent/output2/step76_ab_live.py @@ -0,0 +1,284 @@ +"""Step 76 A/B live -- raw-asset inputs vs SEGA-style preprocessed inputs. + +Both arms run the SAME "先想再畫" LayoutPipeline on the N=20 eval set +(layout_agent/demo_ids.json); the only variable is the input form: + + Arm A (baseline): messy Crello asset list (build_pipeline_inputs, as in + every run up to Step 75). + Arm B (SEGA): bg_composite.png as the background plate, text-only + asset list, underlay_regions fed forward via + pipe.run(underlay_regions=...). + +Each arm's accepted render is judged BLIND against the designer GT preview: +two images attached in a deterministic-random order (md5 of sample id + arm), +no identity labels in the prompt (Step 51: labelled pairwise is biased). + +Outputs (user request 2026-07-02: new results live under output2/): + layout_agent/output2/step76_ab//final_a.png / final_b.png + layout_agent/output2/step76_ab//verdict_a.json / verdict_b.json + layout_agent/output2/step76_ab//row.json + layout_agent/output2/step76_ab/_summary.json + +Run (consumes real LLM tokens, ~19 samples x 2 arms): + conda activate meta + python layout_agent/output2/step76_ab_live.py [--limit N] +""" +from __future__ import annotations + +import argparse +import asyncio +import base64 +import hashlib +import io +import json +import sys +from pathlib import Path +from typing import List, Optional + +from PIL import Image + +HERE = Path(__file__).resolve().parent # layout_agent/output2 +REPO_ROOT = HERE.parents[1] +OUTPUT1 = HERE.parent / "output" # legacy data lives here +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output.run_role_team_live_crello import ( # noqa: E402 + build_pipeline_inputs, + load_crello_sample, +) +from metagpt.ext.agentlayout.actions.analyze_brief import AssetInput # noqa: E402 +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.schema import UnderlayRegion # noqa: E402 +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 +from metagpt.logs import logger # noqa: E402 + +# Run 2 (Step 76c): text-area prior added + selection-effect fix -- results go +# to a fresh folder so run 1 (step76_ab/) stays intact for comparison. +AB_ROOT = HERE / "step76_ab_run2" +SEGA_PRE = OUTPUT1 / "sega_pre" +DEMO_IDS = json.loads((HERE.parent / "demo_ids.json").read_text())["ids"] +MAX_JUDGE_RETRIES = 3 +JUDGE_IMG_MAX_SIDE = 768 + +BLIND_PAIRWISE_PROMPT = """You are an expert graphic design judge. Two finished poster designs for the +SAME brief are attached, in random order. Theme of the brief: '{title}'. +Neither image is labelled -- judge purely on what you see. + +For EACH axis pick exactly one of "1" (first image wins), "2" (second image +wins) or "tie": + design_layout, content_relevance, typography_color, graphics_images, + innovation_originality + +Then pick overall_winner the same way and give a one-line reason. + +Output JSON only, no commentary, no markdown fences: +{{"design_layout": "...", "content_relevance": "...", "typography_color": "...", + "graphics_images": "...", "innovation_originality": "...", + "overall_winner": "...", "reason": "..."}}""" + + +def _b64_png(path: Path) -> str: + """Load any raster file, downscale to JUDGE_IMG_MAX_SIDE, emit base64 PNG.""" + img = Image.open(path).convert("RGB") + img.thumbnail((JUDGE_IMG_MAX_SIDE, JUDGE_IMG_MAX_SIDE), Image.LANCZOS) + buf = io.BytesIO() + img.save(buf, format="PNG") + return base64.b64encode(buf.getvalue()).decode() + + +def _candidate_first(sample_id: str, arm: str) -> bool: + """Deterministic-random blind order (reproducible across reruns).""" + return int(hashlib.md5(f"{sample_id}:{arm}".encode()).hexdigest(), 16) % 2 == 0 + + +def _parse_verdict(text: str) -> Optional[dict]: + text = (text or "").strip() + if "```" in text: + start = text.find("{") + end = text.rfind("}") + if start == -1 or end <= start: + return None + text = text[start : end + 1] + try: + data = json.loads(text) + except json.JSONDecodeError: + return None + keys = { + "design_layout", "content_relevance", "typography_color", + "graphics_images", "innovation_originality", "overall_winner", + } + if not keys.issubset(data): + return None + if any(data[k] not in ("1", "2", "tie") for k in keys): + return None + return data + + +async def _blind_pairwise(llm: LLM, sample_id: str, arm: str, title: str, + candidate_png: Path, gt_path: Path) -> Optional[dict]: + """Judge candidate vs GT blind; return verdict remapped to cand/gt/tie.""" + cand_first = _candidate_first(sample_id, arm) + imgs = [_b64_png(candidate_png), _b64_png(gt_path)] + if not cand_first: + imgs.reverse() + prompt = BLIND_PAIRWISE_PROMPT.format(title=title) + + for attempt in range(1, MAX_JUDGE_RETRIES + 1): + rsp = await llm.aask(prompt, images=imgs) + verdict = _parse_verdict(rsp) + if verdict is not None: + cand_label = "1" if cand_first else "2" + gt_label = "2" if cand_first else "1" + remap = {cand_label: "cand", gt_label: "gt", "tie": "tie"} + out = {k: remap[v] for k, v in verdict.items() if k != "reason"} + out["reason"] = verdict.get("reason", "") + out["candidate_was_first"] = cand_first + return out + logger.warning(f"blind judge parse fail {sample_id}/{arm} attempt {attempt}") + return None + + +def _build_sega_inputs(pre: dict) -> tuple: + """Arm B brief + assets: half-finished poster + text snippets only.""" + cw, ch = pre["canvas_width"], pre["canvas_height"] + bg_ref = pre["background_path"] + user_brief = ( + f"Create a {cw}x{ch} marketing graphic for the theme '{pre['title']}'. " + f"Canvas size is exactly {cw} pixels wide by {ch} pixels tall. " + "The image asset provided below is a HALF-FINISHED poster: background, " + "photos and decorative panels are already in their final positions. " + f"Set canvas.background_asset_ref to exactly '{bg_ref}' and do NOT add " + "any image elements. Your job is ONLY to place the provided text " + "snippets on top of it. The visible heading text MUST come from the " + "text snippets in the asset list, NOT from this theme description." + ) + asset_list = [AssetInput(content=t) for t in pre["text_contents"]] + regions = [UnderlayRegion(**r) for r in pre["underlay_regions"]] + return user_brief, asset_list, regions + + +async def _run_arm(sample_id: str, arm: str, out_dir: Path, llm: LLM) -> dict: + """Run one pipeline arm end-to-end; returns the result row fragment.""" + crello_dir = OUTPUT1 / f"crello_{sample_id}" + gt_path = crello_dir / "ground_truth_preview.jpg" + meta = json.loads((crello_dir / "meta.json").read_text()) + + if arm == "A": + _, descriptors = load_crello_sample(crello_dir) + user_brief, asset_list = build_pipeline_inputs(meta, descriptors) + regions: List[UnderlayRegion] = [] + else: + pre = json.loads((SEGA_PRE / sample_id / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_sega_inputs(pre) + + pipe = LayoutPipeline(config=PipelineConfig(max_total_rounds=3)) + candidate = spec = None + row = {"arm": arm} + try: + result = await pipe.run( + user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions or None, + ) + candidate, spec = result.accepted_candidate, result.spec + row.update( + status="accepted", + internal_accepted=True, + rounds=len(result.trace), + trace=[t.model_dump() for t in result.trace], + ) + except PipelineError as err: + # Step 76b selection-effect fix: an exhausted run still carries the + # last round's judge-preferred candidate -- render and blind-judge it + # so blind statistics cover ALL samples, not just internal accepts. + if err.best_candidate is not None and err.spec is not None: + candidate, spec = err.best_candidate, err.spec + row.update(status="exhausted_judged", internal_accepted=False, + error=str(err)) + else: + return {"arm": arm, "status": "pipeline_error", "error": str(err)} + + png = out_dir / f"final_{arm.lower()}.png" + render_to_file(candidate, spec, png) + + if gt_path.exists(): + verdict = await _blind_pairwise( + llm, sample_id, arm, meta.get("title", ""), png, gt_path + ) + row["verdict"] = verdict + (out_dir / f"verdict_{arm.lower()}.json").write_text( + json.dumps(verdict, indent=2, ensure_ascii=False) + ) + return row + + +async def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--limit", type=int, default=None, help="run first N samples only") + args = parser.parse_args() + + ids = [i for i in DEMO_IDS if (OUTPUT1 / f"crello_{i}" / "meta.json").exists() + and (SEGA_PRE / i / "sega_input.json").exists()] + if args.limit: + ids = ids[: args.limit] + + AB_ROOT.mkdir(parents=True, exist_ok=True) + llm = LLM() + rows = [] + for n, sid in enumerate(ids, 1): + print(f"\n=== [{n}/{len(ids)}] {sid} ===", flush=True) + out_dir = AB_ROOT / sid + out_dir.mkdir(parents=True, exist_ok=True) + row = {"id": sid} + for arm in ("A", "B"): + try: + row[arm] = await _run_arm(sid, arm, out_dir, llm) + except Exception as err: # noqa: BLE001 + row[arm] = {"arm": arm, "status": "crash", + "error": f"{type(err).__name__}: {err}"} + verdict = row[arm].get("verdict") + overall = verdict.get("overall_winner") if isinstance(verdict, dict) else None + print(f" arm {arm}: {row[arm].get('status')} overall={overall}", flush=True) + (out_dir / "row.json").write_text(json.dumps(row, indent=2, ensure_ascii=False)) + rows.append(row) + _write_summary(rows) # incremental: crash-safe progress + _write_summary(rows) + print("\nDONE. Summary at", AB_ROOT / "_summary.json", flush=True) + return 0 + + +def _write_summary(rows: List[dict]) -> None: + def _tally(arm: str) -> dict: + t = {"accepted": 0, "exhausted_judged": 0, "pipeline_error": 0, "crash": 0, + # Step 76b: `overall`/`design_layout` cover ALL judged rows + # (selection-free); the *_accepted_only pair reproduces the old + # conditioned statistic for comparison against the first run. + "overall": {"cand": 0, "gt": 0, "tie": 0}, + "design_layout": {"cand": 0, "gt": 0, "tie": 0}, + "overall_accepted_only": {"cand": 0, "gt": 0, "tie": 0}, + "design_layout_accepted_only": {"cand": 0, "gt": 0, "tie": 0}} + for r in rows: + a = r.get(arm, {}) + status = a.get("status") + if status in t: + t[status] += 1 + v = a.get("verdict") + if isinstance(v, dict): + for axis, key in (("overall_winner", "overall"), + ("design_layout", "design_layout")): + t[key][v[axis]] += 1 + if a.get("internal_accepted"): + t[f"{key}_accepted_only"][v[axis]] += 1 + return t + + summary = {"n": len(rows), "arm_A": _tally("A"), "arm_B": _tally("B"), "rows": rows} + (AB_ROOT / "_summary.json").write_text(json.dumps(summary, indent=2, ensure_ascii=False)) + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step77_loop_ablation.py b/layout_agent/output2/step77_loop_ablation.py new file mode 100644 index 000000000..cf2c124d6 --- /dev/null +++ b/layout_agent/output2/step77_loop_ablation.py @@ -0,0 +1,191 @@ +"""Step 77d -- visual-loop ablation on the SEGA arm (loop-off vs loop-on). + +Same N=19 eval set, arm B inputs only (bg_composite + text-only + underlay +feed-forward + Step 77 text_assignments). Each sample runs the pipeline TWICE: + + off: AGENTLAYOUT_VISUAL_LOOP unset -> judge feedback as in Step 76c + on: AGENTLAYOUT_VISUAL_LOOP=1 -> judge also emits closed-catalogue + visual_observations; the pipeline + records per-round COMPLIANCE + +Both variants get a blind pairwise verdict vs the designer GT (identical +attachment order per sample, so the on/off comparison is order-matched). +Selection-effect-free: exhausted runs are rendered and judged too (Step 76b). + +Outputs: + layout_agent/output2/step77_loop_ablation//{off,on}/final_b.png + layout_agent/output2/step77_loop_ablation//row.json + layout_agent/output2/step77_loop_ablation/_summary.json + +Run (consumes real LLM tokens, 19 samples x 2 variants): + conda activate meta + python layout_agent/output2/step77_loop_ablation.py [--limit N] +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from pathlib import Path +from typing import List, Optional + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output2.step76_ab_live import ( # noqa: E402 + OUTPUT1, + SEGA_PRE, + DEMO_IDS, + _blind_pairwise, + _build_sega_inputs, +) +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 + +# Default output folder; Step 78 reruns pass --out step78_decoupled so each +# loop design's results stay separate. +ABL_ROOT = HERE / "step77_loop_ablation" +FLAG = "AGENTLAYOUT_VISUAL_LOOP" + + +async def _run_variant(sample_id: str, variant: str, out_dir: Path, llm: LLM) -> dict: + """One pipeline run on arm-B inputs; variant toggles the visual loop.""" + if variant == "on": + os.environ[FLAG] = "1" + else: + os.environ.pop(FLAG, None) + + crello_dir = OUTPUT1 / f"crello_{sample_id}" + meta = json.loads((crello_dir / "meta.json").read_text()) + pre = json.loads((SEGA_PRE / sample_id / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_sega_inputs(pre) + + pipe = LayoutPipeline(config=PipelineConfig(max_total_rounds=3)) + candidate = spec = None + trace: Optional[list] = None + row = {"variant": variant} + try: + result = await pipe.run( + user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions or None, + ) + candidate, spec, trace = result.accepted_candidate, result.spec, result.trace + row.update(status="accepted", internal_accepted=True) + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + return {"variant": variant, "status": "pipeline_error", "error": str(err)} + candidate, spec, trace = err.best_candidate, err.spec, err.trace + row.update(status="exhausted_judged", internal_accepted=False, error=str(err)) + + row["trace"] = [t.model_dump() for t in (trace or [])] + # Aggregate the Step 77 compliance rows for this run. + comp_rows = [t.compliance for t in (trace or []) if t.compliance is not None] + row["n_observation_rounds"] = len(comp_rows) + verifiable = sum(c["n_verifiable"] for c in comp_rows) + satisfied = sum(c["n_satisfied"] for c in comp_rows) + row["compliance"] = { + "n_verifiable": verifiable, + "n_satisfied": satisfied, + "rate": (satisfied / verifiable) if verifiable else None, + } + + variant_dir = out_dir / variant + variant_dir.mkdir(parents=True, exist_ok=True) + png = variant_dir / "final_b.png" + render_to_file(candidate, spec, png) + + gt_path = crello_dir / "ground_truth_preview.jpg" + if gt_path.exists(): + # arm label fixed to "B" so on/off share the same blind attachment + # order per sample -- the comparison is order-matched. + row["verdict"] = await _blind_pairwise( + llm, sample_id, "B", meta.get("title", ""), png, gt_path + ) + return row + + +def _tally(rows: List[dict], variant: str) -> dict: + t = {"accepted": 0, "exhausted_judged": 0, "pipeline_error": 0, "crash": 0, + "overall": {"cand": 0, "gt": 0, "tie": 0}, + "design_layout": {"cand": 0, "gt": 0, "tie": 0}, + "n_observation_rounds": 0, "n_verifiable": 0, "n_satisfied": 0} + for r in rows: + v = r.get(variant, {}) + status = v.get("status") + if status in t: + t[status] += 1 + verdict = v.get("verdict") + if isinstance(verdict, dict): + t["overall"][verdict["overall_winner"]] += 1 + t["design_layout"][verdict["design_layout"]] += 1 + comp = v.get("compliance") or {} + t["n_observation_rounds"] += v.get("n_observation_rounds", 0) + t["n_verifiable"] += comp.get("n_verifiable", 0) + t["n_satisfied"] += comp.get("n_satisfied", 0) + t["compliance_rate"] = ( + t["n_satisfied"] / t["n_verifiable"] if t["n_verifiable"] else None + ) + return t + + +def _write_summary(rows: List[dict]) -> None: + summary = {"n": len(rows), "off": _tally(rows, "off"), "on": _tally(rows, "on"), + "rows": rows} + (ABL_ROOT / "_summary.json").write_text( + json.dumps(summary, indent=2, ensure_ascii=False) + ) + + +async def main() -> int: + global ABL_ROOT + parser = argparse.ArgumentParser() + parser.add_argument("--limit", type=int, default=None) + parser.add_argument("--out", type=str, default=None, + help="output folder name under output2/ (e.g. step78_decoupled)") + args = parser.parse_args() + if args.out: + ABL_ROOT = HERE / args.out + + ids = [i for i in DEMO_IDS if (OUTPUT1 / f"crello_{i}" / "meta.json").exists() + and (SEGA_PRE / i / "sega_input.json").exists()] + if args.limit: + ids = ids[: args.limit] + + ABL_ROOT.mkdir(parents=True, exist_ok=True) + llm = LLM() + rows = [] + for n, sid in enumerate(ids, 1): + print(f"\n=== [{n}/{len(ids)}] {sid} ===", flush=True) + out_dir = ABL_ROOT / sid + out_dir.mkdir(parents=True, exist_ok=True) + row = {"id": sid} + for variant in ("off", "on"): + try: + row[variant] = await _run_variant(sid, variant, out_dir, llm) + except Exception as err: # noqa: BLE001 + row[variant] = {"variant": variant, "status": "crash", + "error": f"{type(err).__name__}: {err}"} + v = row[variant] + verdict = v.get("verdict") or {} + print(f" {variant}: {v.get('status')} overall={verdict.get('overall_winner')} " + f"obs_rounds={v.get('n_observation_rounds')} " + f"compliance={((v.get('compliance') or {}).get('rate'))}", flush=True) + (out_dir / "row.json").write_text(json.dumps(row, indent=2, ensure_ascii=False)) + rows.append(row) + _write_summary(rows) + _write_summary(rows) + print("\nDONE. Summary at", ABL_ROOT / "_summary.json", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step79_smoke.py b/layout_agent/output2/step79_smoke.py new file mode 100644 index 000000000..007b8b683 --- /dev/null +++ b/layout_agent/output2/step79_smoke.py @@ -0,0 +1,144 @@ +"""Step 79 smoke -- first live run on CORRECTED panel-type data (small batch). + +Only the samples that actually have underlay regions (9 of 19) -- the Step 79 +frame/solid fix affects exactly these. Winner config: SEGA arm, visual loop +OFF, text prior + assignments on. + +Per-sample artifacts for eyeballing: + layout_agent/output2/step79_smoke//final_b.png -- candidate render + layout_agent/output2/step79_smoke//compare.png -- [candidate | GT] + layout_agent/output2/step79_smoke//candidate.json -- winning bboxes + layout_agent/output2/step79_smoke/_summary.json + +Run (consumes real LLM tokens, ~9 pipeline runs + 9 blind verdicts): + conda activate meta + python layout_agent/output2/step79_smoke.py +""" +from __future__ import annotations + +import asyncio +import json +import os +import sys +from pathlib import Path +from typing import List + +from PIL import Image + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output2.step76_ab_live import ( # noqa: E402 + OUTPUT1, + SEGA_PRE, + DEMO_IDS, + _blind_pairwise, + _build_sega_inputs, +) +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 + +SMOKE_ROOT = HERE / "step79_smoke" + + +def _compare_image(final_png: Path, gt_path: Path, out_path: Path) -> None: + """[candidate | GT] side-by-side, heights matched.""" + cand = Image.open(final_png).convert("RGB") + panes = [cand] + if gt_path.exists(): + gt = Image.open(gt_path).convert("RGB") + gt = gt.resize((int(gt.width * cand.height / gt.height), cand.height)) + panes.append(gt) + gap = 12 + total_w = sum(p.width for p in panes) + gap * (len(panes) - 1) + sheet = Image.new("RGB", (total_w, cand.height), (220, 220, 220)) + x = 0 + for p in panes: + sheet.paste(p, (x, 0)) + x += p.width + gap + sheet.save(out_path, format="PNG") + + +async def main() -> int: + os.environ.pop("AGENTLAYOUT_VISUAL_LOOP", None) # winner config: loop OFF + + ids = [] + for sid in DEMO_IDS: + p = SEGA_PRE / sid / "sega_input.json" + if p.exists() and json.loads(p.read_text())["underlay_regions"]: + ids.append(sid) + + SMOKE_ROOT.mkdir(parents=True, exist_ok=True) + llm = LLM() + rows: List[dict] = [] + for n, sid in enumerate(ids, 1): + print(f"\n=== [{n}/{len(ids)}] {sid} ===", flush=True) + out_dir = SMOKE_ROOT / sid + out_dir.mkdir(parents=True, exist_ok=True) + crello_dir = OUTPUT1 / f"crello_{sid}" + meta = json.loads((crello_dir / "meta.json").read_text()) + pre = json.loads((SEGA_PRE / sid / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_sega_inputs(pre) + + row = {"id": sid, + "panel_types": [r.panel_type for r in regions]} + pipe = LayoutPipeline(config=PipelineConfig(max_total_rounds=3)) + try: + result = await pipe.run(user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions) + candidate, spec = result.accepted_candidate, result.spec + row.update(status="accepted", internal_accepted=True, + rounds=len(result.trace)) + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + row.update(status="pipeline_error", error=str(err)) + rows.append(row) + print(f" {row['status']}", flush=True) + continue + candidate, spec = err.best_candidate, err.spec + row.update(status="exhausted_judged", internal_accepted=False) + + png = out_dir / "final_b.png" + render_to_file(candidate, spec, png) + # Persist the winning layout bboxes -- the forensic gap noted in 76b. + (out_dir / "candidate.json").write_text(candidate.model_dump_json(indent=2)) + gt_path = crello_dir / "ground_truth_preview.jpg" + _compare_image(png, gt_path, out_dir / "compare.png") + + if gt_path.exists(): + row["verdict"] = await _blind_pairwise( + llm, sid, "B", meta.get("title", ""), png, gt_path + ) + rows.append(row) + (out_dir / "row.json").write_text(json.dumps(row, indent=2, ensure_ascii=False)) + verdict = row.get("verdict") or {} + print(f" {row['status']} overall={verdict.get('overall_winner')} " + f"design={verdict.get('design_layout')}", flush=True) + + summary = { + "n": len(rows), + "accepted": sum(1 for r in rows if r.get("status") == "accepted"), + "overall": {k: sum(1 for r in rows + if (r.get("verdict") or {}).get("overall_winner") == k) + for k in ("cand", "gt", "tie")}, + "design_layout": {k: sum(1 for r in rows + if (r.get("verdict") or {}).get("design_layout") == k) + for k in ("cand", "gt", "tie")}, + "rows": rows, + } + (SMOKE_ROOT / "_summary.json").write_text( + json.dumps(summary, indent=2, ensure_ascii=False)) + + print("\nDONE. Eyeball the compare.png files in", SMOKE_ROOT, flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step80_smoke.py b/layout_agent/output2/step80_smoke.py new file mode 100644 index 000000000..5ccb15bd5 --- /dev/null +++ b/layout_agent/output2/step80_smoke.py @@ -0,0 +1,159 @@ +"""Step 80 smoke -- text-as-image mode on the panel samples. + +Same 9 samples / winner config as step79_smoke, ONE change: text elements +enter the pipeline as pre-rendered bitmaps (designer typography verbatim) +with their content strings attached, instead of raw strings the system must +typeset itself. Expected effects: typography quality = GT, size timidity +gone (natural size), render-parity gap (Step 54: 61-68% of blind gap) +eliminated for text. + +Run (consumes real LLM tokens): + conda activate meta + python layout_agent/output2/step80_smoke.py +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from pathlib import Path +from typing import List, Tuple + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output2.step76_ab_live import ( # noqa: E402 + OUTPUT1, + SEGA_PRE, + DEMO_IDS, + _blind_pairwise, +) +from layout_agent.output2.step79_smoke import _compare_image # noqa: E402 +from metagpt.ext.agentlayout.actions.analyze_brief import AssetInput # noqa: E402 +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.schema import UnderlayRegion # noqa: E402 +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 + +SMOKE_ROOT = HERE / "step80_smoke" + + +def _build_text_image_inputs(pre: dict) -> Tuple[str, List[AssetInput], List[UnderlayRegion]]: + """Mode C: half-finished poster + pre-rendered text bitmaps.""" + cw, ch = pre["canvas_width"], pre["canvas_height"] + bg_ref = pre["background_path"] + user_brief = ( + f"Create a {cw}x{ch} marketing graphic for the theme '{pre['title']}'. " + f"Canvas size is exactly {cw} pixels wide by {ch} pixels tall. " + "The image asset provided below is a HALF-FINISHED poster: background, " + "photos and decorative panels are already in their final positions. " + f"Set canvas.background_asset_ref to exactly '{bg_ref}'. " + "Every OTHER image asset ends with '_text.png': each is a PRE-RENDERED " + "TEXT layer (designer typography, transparent background) whose text " + "content is provided alongside it. Your job is ONLY to place these " + "text layers on the poster. Do NOT create plain text elements and do " + "NOT add any other imagery." + ) + asset_list: List[AssetInput] = [] + # bg is referenced via the brief directive (same as mode B); asset_list + # carries only the placeable text bitmaps. + for ta in pre["text_assets"]: + asset_list.append(AssetInput(asset_ref=ta["asset_ref"], content=ta["content"])) + regions = [UnderlayRegion(**r) for r in pre["underlay_regions"]] + return user_brief, asset_list, regions + + +async def main() -> int: + global SMOKE_ROOT + parser = argparse.ArgumentParser() + parser.add_argument("--out", type=str, default=None, + help="output folder name under output2/ (e.g. step81_smoke)") + args = parser.parse_args() + if args.out: + SMOKE_ROOT = HERE / args.out + + os.environ.pop("AGENTLAYOUT_VISUAL_LOOP", None) # winner config: loop OFF + + ids = [] + for sid in DEMO_IDS: + p = SEGA_PRE / sid / "sega_input.json" + if not p.exists(): + continue + pre = json.loads(p.read_text()) + if pre["underlay_regions"] and pre["text_assets"]: + ids.append(sid) + + print(f"runnable panel samples with text assets: {len(ids)}") + SMOKE_ROOT.mkdir(parents=True, exist_ok=True) + llm = LLM() + rows: List[dict] = [] + for n, sid in enumerate(ids, 1): + print(f"\n=== [{n}/{len(ids)}] {sid} ===", flush=True) + out_dir = SMOKE_ROOT / sid + out_dir.mkdir(parents=True, exist_ok=True) + crello_dir = OUTPUT1 / f"crello_{sid}" + meta = json.loads((crello_dir / "meta.json").read_text()) + pre = json.loads((SEGA_PRE / sid / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_text_image_inputs(pre) + + row = {"id": sid, "n_text_assets": len(pre["text_assets"])} + pipe = LayoutPipeline(config=PipelineConfig(max_total_rounds=3)) + try: + result = await pipe.run(user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions) + candidate, spec = result.accepted_candidate, result.spec + row.update(status="accepted", internal_accepted=True, + rounds=len(result.trace)) + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + row.update(status="pipeline_error", error=str(err)) + rows.append(row) + print(f" {row['status']}", flush=True) + continue + candidate, spec = err.best_candidate, err.spec + row.update(status="exhausted_judged", internal_accepted=False) + + png = out_dir / "final_b.png" + render_to_file(candidate, spec, png) + (out_dir / "candidate.json").write_text(candidate.model_dump_json(indent=2)) + gt_path = crello_dir / "ground_truth_preview.jpg" + _compare_image(png, gt_path, out_dir / "compare.png") + + if gt_path.exists(): + row["verdict"] = await _blind_pairwise( + llm, sid, "B", meta.get("title", ""), png, gt_path + ) + rows.append(row) + (out_dir / "row.json").write_text(json.dumps(row, indent=2, ensure_ascii=False)) + verdict = row.get("verdict") or {} + print(f" {row['status']} overall={verdict.get('overall_winner')} " + f"design={verdict.get('design_layout')}", flush=True) + + summary = { + "n": len(rows), + "accepted": sum(1 for r in rows if r.get("status") == "accepted"), + "overall": {k: sum(1 for r in rows + if (r.get("verdict") or {}).get("overall_winner") == k) + for k in ("cand", "gt", "tie")}, + "design_layout": {k: sum(1 for r in rows + if (r.get("verdict") or {}).get("design_layout") == k) + for k in ("cand", "gt", "tie")}, + "rows": rows, + } + (SMOKE_ROOT / "_summary.json").write_text( + json.dumps(summary, indent=2, ensure_ascii=False)) + + print("\nDONE. Eyeball the compare.png files in", SMOKE_ROOT, flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step80_snapshot_text_assets.py b/layout_agent/output2/step80_snapshot_text_assets.py new file mode 100644 index 000000000..8b8c13e7e --- /dev/null +++ b/layout_agent/output2/step80_snapshot_text_assets.py @@ -0,0 +1,101 @@ +"""Step 80 -- add pre-rendered TEXT element images to the demo-id cache. + +The Crello dataset ships a rendered RGBA image for EVERY element, text +included (designer typography verbatim). The original cache pass only saved +non-text assets; this script incrementally adds, for each demo sample: + + crello_/asset_{idx:02d}_text.png (resized to the element's natural + canvas size from meta.json) + +and sets ``asset_ref`` on the matching meta.json text element. Nothing else +in meta.json is touched (the Step 28 classifier fields survive). + +Run (network: streams the HF test split until all targets found): + conda activate meta + python layout_agent/output2/step80_snapshot_text_assets.py +""" +from __future__ import annotations + +import json +import sys +import time +from pathlib import Path + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +OUTPUT1 = HERE.parent / "output" +DEMO_IDS = set(json.loads((HERE.parent / "demo_ids.json").read_text())["ids"]) + + +def main() -> int: + import argparse + + from datasets import load_dataset + + parser = argparse.ArgumentParser() + parser.add_argument("--ids", type=str, default=None, + help="path to a {'ids': [...]} JSON (default: demo_ids.json)") + args = parser.parse_args() + id_pool = ( + set(json.loads(Path(args.ids).read_text())["ids"]) if args.ids else DEMO_IDS + ) + + targets = { + sid for sid in id_pool + if (OUTPUT1 / f"crello_{sid}" / "meta.json").exists() + # skip samples already snapshotted (incremental reruns stay cheap) + and not any( + e.get("kind") == "text" and e.get("asset_ref") + for e in json.loads((OUTPUT1 / f"crello_{sid}" / "meta.json").read_text())["elements"] + ) + } + print(f"targets: {len(targets)} cached demo samples") + + ds = load_dataset("cyberagent/crello", split="test", streaming=True) + done, patched_elements, mismatches = set(), 0, 0 + t0 = time.time() + for i, sample in enumerate(ds): + sid = sample["id"] + if sid not in targets or sid in done: + if len(done) == len(targets): + break + continue + sample_dir = OUTPUT1 / f"crello_{sid}" + meta = json.loads((sample_dir / "meta.json").read_text()) + images = sample["image"] + types = sample["type"] + for elem in meta["elements"]: + idx = elem["idx"] + if elem.get("kind") != "text": + continue + if idx >= len(images) or types[idx] != 1: + mismatches += 1 + print(f" [WARN] {sid} idx={idx}: dataset/meta type mismatch; skipped") + continue + w = max(1, int(round(float(elem["width"])))) + h = max(1, int(round(float(elem["height"])))) + out_png = sample_dir / f"asset_{idx:02d}_text.png" + img = images[idx].convert("RGBA").resize((w, h)) + img.save(out_png, format="PNG") + elem["asset_ref"] = str(out_png) + patched_elements += 1 + (sample_dir / "meta.json").write_text(json.dumps(meta, ensure_ascii=False)) + done.add(sid) + print(f" [{len(done)}/{len(targets)}] {sid} " + f"(scanned={i + 1}, elapsed={time.time() - t0:.0f}s)") + if len(done) == len(targets): + break + + print(f"\nDONE: {len(done)}/{len(targets)} samples, " + f"{patched_elements} text images saved, {mismatches} mismatches.") + missing = targets - done + if missing: + print("MISSING (not in test split scan):", sorted(missing)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/output2/step82_trace.py b/layout_agent/output2/step82_trace.py new file mode 100644 index 000000000..9df48aed5 --- /dev/null +++ b/layout_agent/output2/step82_trace.py @@ -0,0 +1,158 @@ +"""Step 82 -- single-sample round-by-round render trace. + +User request: run ONE sample and save the render of the first attempt AND +every subsequent loop round, to see how the layout evolves inside the +pipeline. Uses the Step 82 round_callback hook. + +Config: text-as-image mode + hierarchy prior (current best), visual loop OFF, +sample 590afa87 (the forest poster the user has been eyeballing) unless +--sample is given. + +Outputs (layout_agent/output2/step82_trace//): + round{r}_cand{i}.png -- every QC-kept candidate of round r + round{r}_cand{i}_BEST.png -- the one the internal judge picked + round{r}_judgement.json -- decision + per-candidate scores + final.png -- the run's final output + progress.png -- one sheet: rounds left-to-right + GT +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from pathlib import Path +from typing import List + +from PIL import Image, ImageDraw + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output2.step76_ab_live import OUTPUT1, SEGA_PRE # noqa: E402 +from layout_agent.output2.step80_smoke import _build_text_image_inputs # noqa: E402 +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 + +TRACE_ROOT = HERE / "step82_trace" +DEFAULT_SAMPLE = "590afa8795a7a863ddcd6e10" +THUMB_H = 420 + + +def _sheet(out_dir: Path, gt_path: Path) -> None: + """Stack per-round strips + GT into one labelled progress sheet.""" + rounds: List[List[Path]] = [] + r = 0 + while True: + pngs = sorted(out_dir.glob(f"round{r}_cand*.png")) + if not pngs: + break + rounds.append(pngs) + r += 1 + panes: List[Image.Image] = [] + labels: List[str] = [] + for r, pngs in enumerate(rounds): + for p in pngs: + img = Image.open(p).convert("RGB") + img = img.resize((int(img.width * THUMB_H / img.height), THUMB_H)) + panes.append(img) + labels.append(f"R{r}" + (" BEST" if "_BEST" in p.name else "")) + if gt_path.exists(): + gt = Image.open(gt_path).convert("RGB") + gt = gt.resize((int(gt.width * THUMB_H / gt.height), THUMB_H)) + panes.append(gt) + labels.append("GT") + if not panes: + return + gap, band = 10, 26 + total_w = sum(p.width for p in panes) + gap * (len(panes) - 1) + sheet = Image.new("RGB", (total_w, THUMB_H + band), (245, 245, 245)) + draw = ImageDraw.Draw(sheet) + x = 0 + for img, label in zip(panes, labels): + sheet.paste(img, (x, band)) + draw.text((x + 4, 5), label, fill=(180, 30, 30) if "BEST" in label or label == "GT" + else (60, 60, 60)) + x += img.width + gap + sheet.save(out_dir / "progress.png", format="PNG") + + +async def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--sample", type=str, default=DEFAULT_SAMPLE) + parser.add_argument("--n-concepts", type=int, default=None, + help="override concept count (1 = single-candidate deep review)") + parser.add_argument("--rounds", type=int, default=3) + parser.add_argument("--out", type=str, default=None, + help="output folder name under output2/ (default step82_trace)") + parser.add_argument("--visual-loop", action="store_true", + help="enable the Step 85 rubric observer + issue ledger") + args = parser.parse_args() + sid = args.sample + trace_root = HERE / args.out if args.out else TRACE_ROOT + + if args.visual_loop: + os.environ["AGENTLAYOUT_VISUAL_LOOP"] = "1" + else: + os.environ.pop("AGENTLAYOUT_VISUAL_LOOP", None) + out_dir = trace_root / sid + out_dir.mkdir(parents=True, exist_ok=True) + crello_dir = OUTPUT1 / f"crello_{sid}" + pre = json.loads((SEGA_PRE / sid / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_text_image_inputs(pre) + + def on_round(round_idx, kept, judgement, spec): + for i, cand in enumerate(kept): + best = cand.candidate_id == judgement.best_candidate_id + name = f"round{round_idx}_cand{i}{'_BEST' if best else ''}.png" + render_to_file(cand, spec, out_dir / name) + (out_dir / f"round{round_idx}_judgement.json").write_text(json.dumps({ + "decision": judgement.decision.value, + "best": judgement.best_candidate_id, + "evaluations": [ + {"id": ev.candidate_id, "total": ev.total, + "scores": ev.scores.model_dump(), + "weaknesses": ev.weaknesses} + for ev in judgement.evaluations + ], + # Step 87 visibility fix: the per-element inspector output (ledger + # view actually fed to the mapper) -- THIS carries the concrete + # per-element verdicts + target bboxes; the `weaknesses` prose + # above is the verdict call's summary and is not load-bearing. + "common_issues": judgement.feedback.common_issues, + "visual_observations_ledger_view": [ + o.model_dump() for o in judgement.feedback.visual_observations + ], + }, indent=2, ensure_ascii=False)) + print(f" round {round_idx}: {judgement.decision.value} " + f"kept={len(kept)} best={judgement.best_candidate_id}", flush=True) + + pipe = LayoutPipeline(config=PipelineConfig( + max_total_rounds=args.rounds, n_concepts=args.n_concepts)) + status = "accepted" + try: + result = await pipe.run(user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions, round_callback=on_round) + candidate, spec = result.accepted_candidate, result.spec + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + print("pipeline_error:", err) + return 1 + candidate, spec = err.best_candidate, err.spec + status = "exhausted" + + render_to_file(candidate, spec, out_dir / "final.png") + _sheet(out_dir, crello_dir / "ground_truth_preview.jpg") + print(f"\nDONE ({status}). Artifacts in {out_dir}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step89_metrics.py b/layout_agent/output2/step89_metrics.py new file mode 100644 index 000000000..c18c1f2e2 --- /dev/null +++ b/layout_agent/output2/step89_metrics.py @@ -0,0 +1,140 @@ +"""Step 89 post-hoc -- SEGA geometric metrics for the N=100 two-arm run. + +Computes the paper's rule-based axes (same implementation as steps 20/22: +``metagpt.ext.agentlayout.evaluation.sega_metrics``) for THREE sources on +identical backgrounds: + + gt -- designer text layout (from meta.json, kind=text bboxes) + arm_a -- baseline config final candidates + arm_b -- deep-review config final candidates + +Axes: Ali (lower better), Ove (lower), Rea (lower), Occ (lower). Und_l/Und_s +are 0 by construction in text-as-image SEGA mode (no placeable underlays -- +both sides) and are replaced by the protocol-appropriate substitute +``text_on_panel`` (fraction of text elements >= 50% inside a baked panel). + +Run (offline, no LLM): + conda activate meta + python layout_agent/output2/step89_metrics.py +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np +from PIL import Image + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +OUTPUT1 = HERE.parent / "output" +for p in (str(REPO_ROOT), str(OUTPUT1)): + if p not in sys.path: + sys.path.insert(0, p) + +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + CLS_TEXT, + metric_alignment, + metric_occlusion, + metric_overlay, + metric_readability, + to_xyxy, +) +import step20_sega_eval as s20 # noqa: E402 (saliency helper reuse) + +N100 = HERE / "step89_n100" +SEGA_PRE = OUTPUT1 / "sega_pre" + + +def _gt_layout(meta): + out = [] + for e in meta["elements"]: + if e.get("kind") == "text" and (e.get("content") or "").strip(): + out.append((CLS_TEXT, to_xyxy(float(e["left"]), float(e["top"]), + float(e["width"]), float(e["height"])))) + return out + + +def _cand_layout(cand): + return [(CLS_TEXT, to_xyxy(el["left"], el["top"], el["width"], el["height"])) + for el in cand["elements"]] + + +def _on_panel_rate(layout, regions): + if not layout or not regions: + return None + hits = 0 + for _, (x1, y1, x2, y2) in layout: + area = max(1.0, (x2 - x1) * (y2 - y1)) + best = 0.0 + for r in regions: + rl, rt, rr, rb = r["bbox"] + ix = max(0.0, min(x2, rr) - max(x1, rl)) + iy = max(0.0, min(y2, rb) - max(y1, rt)) + best = max(best, ix * iy / area) + if best >= 0.5: + hits += 1 + return hits / len(layout) + + +def main() -> int: + acc = {src: {"Ali": [], "Ove": [], "Rea": [], "Occ": [], "panel": []} + for src in ("gt", "arm_a", "arm_b")} + n_done = 0 + for d in sorted(N100.iterdir()): + if not d.is_dir(): + continue + sid = d.name + pre_p = SEGA_PRE / sid / "sega_input.json" + meta_p = OUTPUT1 / f"crello_{sid}" / "meta.json" + if not pre_p.exists() or not meta_p.exists(): + continue + pre = json.loads(pre_p.read_text()) + meta = json.loads(meta_p.read_text()) + cw, ch = float(pre["canvas_width"]), float(pre["canvas_height"]) + bg = np.asarray( + Image.open(pre["background_path"]).convert("RGB").resize( + (int(cw), int(ch))), + dtype=np.uint8, + ) + sal = s20._saliency_from_bg(bg) + regions = pre["underlay_regions"] + + layouts = {"gt": _gt_layout(meta)} + for arm in ("a", "b"): + cp = d / arm / "candidate.json" + if cp.exists(): + layouts[f"arm_{arm}"] = _cand_layout(json.loads(cp.read_text())) + + for src, layout in layouts.items(): + if not layout: + continue + acc[src]["Ali"].append(metric_alignment([layout], cw, ch)) + acc[src]["Ove"].append(metric_overlay([layout])) + acc[src]["Rea"].append(metric_readability([layout], [bg], cw, ch)) + acc[src]["Occ"].append(metric_occlusion([layout], [sal], cw, ch)) + rate = _on_panel_rate(layout, regions) + if rate is not None: + acc[src]["panel"].append(rate) + n_done += 1 + + result = {"n_samples": n_done} + print(f"n_samples={n_done}") + print(f"{'':8s}{'Ali↓':>10s}{'Ove↓':>10s}{'Rea↓':>10s}{'Occ↓':>10s}{'text_on_panel↑':>16s}") + for src in ("gt", "arm_a", "arm_b"): + row = {} + for k, vals in acc[src].items(): + row[k] = (sum(vals) / len(vals)) if vals else None + result[src] = {**row, "n": len(acc[src]["Ali"])} + print(f"{src:8s}" + f"{row['Ali']:>10.5f}{row['Ove']:>10.5f}{row['Rea']:>10.5f}" + f"{row['Occ']:>10.5f}" + f"{(row['panel'] if row['panel'] is not None else float('nan')):>16.3f}" + f" (n={len(acc[src]['Ali'])})") + (N100 / "metrics.json").write_text(json.dumps(result, indent=2)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/output2/step89_n100/RUN_METADATA.json b/layout_agent/output2/step89_n100/RUN_METADATA.json new file mode 100644 index 000000000..7aec9a193 --- /dev/null +++ b/layout_agent/output2/step89_n100/RUN_METADATA.json @@ -0,0 +1,111 @@ +{ + "run_id": "step89_n100", + "title": "Step 89 -- N=100 two-arm experiment (baseline vs deep-review stack)", + "status": "frozen", + "why_it_matters": "Source of the paper's A axis (metrics.json), C axis (blind pairwise in _summary.json), the Step 90 semantic-group metrics, the Step 92 COLE H2H, and the Step 93 per-round curve. Every main-table number traces here.", + + "capture": { + "method": "reconstructed", + "reason": "The run predates provenance capture (added 2026-07-09, commit 9884f3c4). No field below was recorded by the run itself; each carries its own evidence.", + "reconstructed_on": "2026-07-09" + }, + + "when": { + "started_approx": "2026-07-03T07:11:36+08:00", + "finished_approx": "2026-07-03T14:08:58+08:00", + "evidence": "Start = mtime of the driver as it stood at reconstruction time; finish = mtime of _summary.json. NOTE: the driver has since been modified (see code_state.driver_drift), so its mtime no longer reads 07-03." + }, + + "code_state": { + "pipeline_commit": "63dc93d43e5329d189c72c3f0f64032057ace75c", + "pipeline_commit_subject": "feat(agentlayout): step 76-89 -- SEGA preprocessing + text-as-image + deep-review stack", + "claim": "The contents of metagpt/ext/agentlayout at commit 63dc93d4 are identical to the source that executed this run.", + "evidence": [ + "The run executed against an uncommitted working tree; git log has no commit between 2026-06-25 and 2026-07-08.", + "Commit 63dc93d4 (2026-07-09) captured that working tree unchanged.", + "Verified: no .py under metagpt/ext/agentlayout has an mtime later than the run start (2026-07-03T07:11:36+08:00), with the one exception below." + ], + "exception": { + "file": "metagpt/ext/agentlayout/tools/semantic_group_metrics.py", + "mtime": "2026-07-08T14:56:34+08:00", + "impact": "none", + "why": "Step 90 post-hoc metric. Verified by grep that no module under metagpt/ext/agentlayout imports it, so it is not on this run's execution path." + }, + "driver_drift": { + "file": "layout_agent/output2/step89_n100_ab.py", + "changed_after_run": true, + "changed_in_commit": "9884f3c4daffb618fee54a515140dbbe4fea45f9", + "change": "Provenance wiring only: an import of provenance.capture, and a 'provenance' key added to _write_summary's dict. No change to arm configuration, pipeline invocation, judging, or scoring.", + "consequence": "Re-running the driver at HEAD reproduces the experiment and records provenance natively. The arm definitions below are unchanged from the run." + } + }, + + "models": { + "pipeline_llm": "gpt-4o", + "pipeline_llm_evidence": "~/.metagpt/config2.yaml carried gpt-4o until 2026-07-09, when it was switched to o4-mini for the Step 91 cost experiment (IMPLEMENTATION_LOG Step 91). No model is recorded in this run's artifacts; the config history is the only evidence, and it is prose, not machine-checkable.", + "judge_llm": "gpt-4o", + "judge_llm_evidence": "Blind pairwise ran through metagpt.llm.LLM, i.e. the same config2.yaml model as the pipeline.", + "confidence": "High for gpt-4o, but not independently verifiable from artifacts -- exactly the hole this file exists to stop recurring." + }, + + "arms": { + "a": { + "label": "baseline", + "n_concepts": 3, + "n_concepts_source": "ComposeConcept default (PipelineConfig.n_concepts=None)", + "max_total_rounds": 3, + "visual_loop": false + }, + "b": { + "label": "deep-review stack (Steps 83-89)", + "n_concepts": 1, + "max_total_rounds": 5, + "visual_loop": true + }, + "definition_source": "layout_agent/output2/step89_n100_ab.py, ARMS dict" + }, + + "feature_flags": { + "AGENTLAYOUT_VISUAL_LOOP": "1 for arm B, unset for arm A (driver writes os.environ directly)", + "AGENTLAYOUT_F2_SALIENCY": "unset => OFF", + "note": "feature_flags.py defaults every flag to OFF when its env var is unset; the driver touches only the visual-loop flag." + }, + + "data": { + "sample_ids": "layout_agent/output2/eval100_ids.json", + "n_samples": 100, + "ids_sha256_prefix": "2c045eb834b8d618", + "ids_sha256_note": "sha256 of json.dumps(ids) with default separators; recompute the same way to compare.", + "inputs": "SEGA-preprocessed text-as-image (bg_composite + designer-rendered text RGBA); underlay regions fed forward", + "designer_gt_render": "layout_agent/output/crello_/ground_truth_preview.jpg" + }, + + "protocol": { + "input": "text-as-image (Steps 76-81)", + "renderer": "R3", + "judging": "Order-matched blind pairwise vs designer GT; exhausted-but-judged samples included (selection-effect immune)." + }, + + "headline_results": { + "arm_a_blind_overall": {"cand": 12, "tie": 7, "gt": 81}, + "arm_b_blind_overall": {"cand": 9, "tie": 5, "gt": 84}, + "n_completed": 100, + "known_failures": "Arm B: 1 pipeline error + 1 crash => 2 samples have no b/final.png (judge parse noise)." + }, + + "cost_usd": null, + "cost_note": "Not recorded. Token accounting was zeroed by a streaming+vision incompatibility discovered later (IMPLEMENTATION_LOG Step 91).", + + "artifacts": [ + "layout_agent/output2/step89_n100/_summary.json", + "layout_agent/output2/step89_n100/metrics.json", + "layout_agent/output2/step89_n100//{a,b}/{final.png,candidate.json,spec.json,rounds/}" + ], + + "reproduce": [ + "git checkout 63dc93d4 # or HEAD, whose only driver delta is provenance wiring", + "set llm.model: gpt-4o in ~/.metagpt/config2.yaml", + "conda run -n meta python layout_agent/output2/step89_n100_ab.py", + "NOTE: LLM sampling is non-deterministic. No seed was fixed and no multi-seed variance was measured, so exact counts will not reproduce." + ] +} diff --git a/layout_agent/output2/step89_n100_ab.py b/layout_agent/output2/step89_n100_ab.py new file mode 100644 index 000000000..8cd7af83b --- /dev/null +++ b/layout_agent/output2/step89_n100_ab.py @@ -0,0 +1,213 @@ +"""Step 89 -- N=100 two-arm comparison: deep-review stack vs pre-83 baseline. + +Same text-as-image inputs (Step 80) + priors + assignments on BOTH arms; the +arms isolate the Steps 83-89 contribution: + + Arm A (baseline): 3 concepts, rounds<=3, visual loop OFF + (the step80/81 configuration) + Arm B (deep): 1 concept, rounds<=5, visual loop ON + (anchored judge + per-element review + ledger + + override + regression watch + KEEP constraints) + +Blind pairwise vs designer GT per arm, attachment order fixed per sample +(order-matched across arms). Selection-effect-free (exhausted runs are +rendered and judged too). RESUMABLE: samples with an existing row.json are +skipped, so a crashed/killed run continues where it stopped. + +Run (LLM cost ~US$50-100, ~6-8 h): + conda activate meta + python layout_agent/output2/step89_n100_ab.py [--limit N] +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +from pathlib import Path +from typing import List + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from layout_agent.output2.provenance import capture as _prov_capture # noqa: E402 +from layout_agent.output2.step76_ab_live import OUTPUT1, SEGA_PRE, _blind_pairwise # noqa: E402 +from layout_agent.output2.step80_smoke import _build_text_image_inputs # noqa: E402 +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 + +N100_ROOT = HERE / "step89_n100" +IDS_FILE = HERE / "eval100_ids.json" +FLAG = "AGENTLAYOUT_VISUAL_LOOP" + +ARMS = { + "a": {"loop": False, "config": dict(max_total_rounds=3)}, + "b": {"loop": True, "config": dict(max_total_rounds=5, n_concepts=1)}, +} + + +async def _run_arm(sample_id: str, arm: str, out_dir: Path, llm: LLM) -> dict: + spec_cfg = ARMS[arm] + if spec_cfg["loop"]: + os.environ[FLAG] = "1" + else: + os.environ.pop(FLAG, None) + + crello_dir = OUTPUT1 / f"crello_{sample_id}" + meta = json.loads((crello_dir / "meta.json").read_text()) + pre = json.loads((SEGA_PRE / sample_id / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_text_image_inputs(pre) + + row = {"arm": arm} + arm_dir = out_dir / arm + (arm_dir / "rounds").mkdir(parents=True, exist_ok=True) + + def _on_round(round_idx, kept, judgement, cb_spec): + """Per-round snapshot -- fuels the '每輪進步多少' post-hoc curves: + judge scores + best candidate bboxes per round, both arms.""" + best = next((c for c in kept + if c.candidate_id == judgement.best_candidate_id), None) + best_ev = next((e for e in judgement.evaluations + if e.candidate_id == judgement.best_candidate_id), None) + (arm_dir / "rounds" / f"round{round_idx}.json").write_text(json.dumps({ + "round": round_idx, + "decision": judgement.decision.value, + "total": best_ev.total if best_ev else None, + "scores": best_ev.scores.model_dump() if best_ev else None, + "best_elements": [e.model_dump() for e in best.elements] if best else None, + "ledger_open": len(judgement.feedback.visual_observations), + }, ensure_ascii=False)) + + pipe = LayoutPipeline(config=PipelineConfig(**spec_cfg["config"])) + try: + result = await pipe.run(user_brief=user_brief, asset_list=asset_list, + underlay_regions=regions or None, + round_callback=_on_round) + candidate, spec, trace = result.accepted_candidate, result.spec, result.trace + row.update(status="accepted", internal_accepted=True) + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + row.update(status="pipeline_error", error=str(err)) + return row + candidate, spec, trace = err.best_candidate, err.spec, err.trace + row.update(status="exhausted_judged", internal_accepted=False) + + row["rounds"] = len(trace or []) + comp = [t.compliance for t in (trace or []) if t.compliance is not None] + row["compliance"] = { + "n_verifiable": sum(c["n_verifiable"] for c in comp), + "n_satisfied": sum(c["n_satisfied"] for c in comp), + } + + png = arm_dir / "final.png" + render_to_file(candidate, spec, png) + (arm_dir / "candidate.json").write_text(candidate.model_dump_json()) + # Spec is required to rebuild Layouts for the post-hoc SEGA geometric + # metrics (Ali/Ove/Und/Rea/Occ) -- user requirement: metrics on BOTH arms. + (arm_dir / "spec.json").write_text(spec.model_dump_json()) + + gt_path = crello_dir / "ground_truth_preview.jpg" + if gt_path.exists(): + # arm label fixed to "B" so both arms share the per-sample blind + # attachment order (order-matched comparison). + row["verdict"] = await _blind_pairwise( + llm, sample_id, "B", meta.get("title", ""), png, gt_path + ) + return row + + +def _tally(rows: List[dict], arm: str) -> dict: + t = {"accepted": 0, "exhausted_judged": 0, "pipeline_error": 0, "crash": 0, + "overall": {"cand": 0, "gt": 0, "tie": 0}, + "design_layout": {"cand": 0, "gt": 0, "tie": 0}, + "typography_color": {"cand": 0, "gt": 0, "tie": 0}, + "overall_accepted_only": {"cand": 0, "gt": 0, "tie": 0}, + "rounds_total": 0, "n_verifiable": 0, "n_satisfied": 0} + for r in rows: + a = r.get(arm, {}) + status = a.get("status") + if status in t: + t[status] += 1 + t["rounds_total"] += a.get("rounds", 0) + comp = a.get("compliance") or {} + t["n_verifiable"] += comp.get("n_verifiable", 0) + t["n_satisfied"] += comp.get("n_satisfied", 0) + v = a.get("verdict") + if isinstance(v, dict): + t["overall"][v["overall_winner"]] += 1 + t["design_layout"][v["design_layout"]] += 1 + t["typography_color"][v["typography_color"]] += 1 + if a.get("internal_accepted"): + t["overall_accepted_only"][v["overall_winner"]] += 1 + t["compliance_rate"] = ( + t["n_satisfied"] / t["n_verifiable"] if t["n_verifiable"] else None + ) + return t + + +def _write_summary(rows: List[dict]) -> None: + # provenance: the original 2026-07-03 run recorded neither commit nor model, + # so its source had to be reconstructed from mtimes afterwards. Never again. + summary = {"n": len(rows), "provenance": _prov_capture(), + "arm_a": _tally(rows, "a"), "arm_b": _tally(rows, "b"), + "rows": rows} + (N100_ROOT / "_summary.json").write_text( + json.dumps(summary, indent=2, ensure_ascii=False)) + + +async def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--limit", type=int, default=None) + args = parser.parse_args() + + all_ids = json.loads(IDS_FILE.read_text())["ids"] + ids = [] + for sid in all_ids: + p = SEGA_PRE / sid / "sega_input.json" + if p.exists() and json.loads(p.read_text())["text_assets"]: + ids.append(sid) + if args.limit: + ids = ids[: args.limit] + print(f"runnable: {len(ids)}/{len(all_ids)}", flush=True) + + N100_ROOT.mkdir(parents=True, exist_ok=True) + llm = LLM() + rows: List[dict] = [] + # Resume: reload rows for already-finished samples. + for n, sid in enumerate(ids, 1): + out_dir = N100_ROOT / sid + row_file = out_dir / "row.json" + if row_file.exists(): + rows.append(json.loads(row_file.read_text())) + continue + print(f"\n=== [{n}/{len(ids)}] {sid} ===", flush=True) + out_dir.mkdir(parents=True, exist_ok=True) + row = {"id": sid} + for arm in ("a", "b"): + try: + row[arm] = await _run_arm(sid, arm, out_dir, llm) + except Exception as err: # noqa: BLE001 + row[arm] = {"arm": arm, "status": "crash", + "error": f"{type(err).__name__}: {err}"} + v = row[arm].get("verdict") or {} + print(f" {arm}: {row[arm].get('status')} " + f"overall={v.get('overall_winner')} design={v.get('design_layout')}", + flush=True) + row_file.write_text(json.dumps(row, indent=2, ensure_ascii=False)) + rows.append(row) + _write_summary(rows) + _write_summary(rows) + print("\nDONE. Summary at", N100_ROOT / "_summary.json", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step90_semantic_metrics.py b/layout_agent/output2/step90_semantic_metrics.py new file mode 100644 index 000000000..9300e0325 --- /dev/null +++ b/layout_agent/output2/step90_semantic_metrics.py @@ -0,0 +1,300 @@ +"""Step 90 -- first SGC / TLC / PCA numbers on the N=100 cached samples. + +Scores three methods against the SAME per-sample semantic tree +(fairness contract from layout_agent/new_experiment.md): + + agent_a : step89 arm-A final layouts (the paper's main arm) + agent_b : step89 arm-B final layouts + gt : designer ground truth (Crello text layers) + +Tree source is pluggable. Default: PlanAssets (LLM) on the arm-A spec, +cached to trees/{sample_id}.json so re-runs are free; pass --tree-dir to +swap in e.g. human-annotated trees later. + +Id alignment: the tree uses arm-A element ids. Arm-A analyst re-orders text +elements by role (title first), so ORDER-based matching against GT z-order +would silently mismatch -- instead every step89 text element carries +``asset_ref = .../asset_{gt_idx}_text.png``, giving an exact +tree_id <-> gt_idx correspondence. Arm B (independent Analyst run, different +id assignment) is bridged the same way: b_id -> gt_idx -> a_id. Samples where +the idx sets do not line up are recorded and skipped, never forced. + +Run: + conda activate meta + python layout_agent/output2/step90_semantic_metrics.py [--limit N] [--tree-dir DIR] +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import re +import sys +from pathlib import Path +from typing import Dict, List, Optional, Tuple + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.actions.plan_assets import PlanAssets # noqa: E402 +from metagpt.ext.agentlayout.schema import DesignSpec, LayoutTree # noqa: E402 +from metagpt.ext.agentlayout.tools.semantic_group_metrics import ( # noqa: E402 + SampleMetrics, + aggregate, + aggregate_markdown, + evaluate_sample, + qualitative_picks, +) + +N100_ROOT = HERE / "step89_n100" +CRELLO_ROOT = REPO_ROOT / "layout_agent" / "output" +OUT_ROOT = HERE / "step90_semantic_metrics" +TREE_DIR_DEFAULT = OUT_ROOT / "trees" + +TREE_GEN_CONCURRENCY = 8 + +_ASSET_IDX_RE = re.compile(r"asset_(\d+)_text\.png$") + + +# ------------------------------------------------------------------ +# Loading helpers +# ------------------------------------------------------------------ + + +def _sample_ids() -> List[str]: + return sorted(p.name for p in N100_ROOT.iterdir() if (p / "a" / "spec.json").exists()) + + +def _load_spec(sample_id: str, arm: str) -> DesignSpec: + raw = json.loads((N100_ROOT / sample_id / arm / "spec.json").read_text()) + return DesignSpec.model_validate(raw) + + +def _spec_idx_map(spec: DesignSpec) -> Optional[Dict[str, int]]: + """element id -> GT layer idx, via the text-snapshot asset_ref. None if any + foreground element lacks a parseable ref (alignment impossible).""" + mapping: Dict[str, int] = {} + for el in spec.foreground_elements(): + m = _ASSET_IDX_RE.search(el.asset_ref or "") + if not m: + return None + mapping[el.id] = int(m.group(1)) + return mapping + + +def _candidate_boxes(sample_id: str, arm: str) -> Dict[str, Tuple[float, float, float, float]]: + raw = json.loads((N100_ROOT / sample_id / arm / "candidate.json").read_text()) + return { + e["id"]: (e["left"], e["top"], e["width"], e["height"]) for e in raw["elements"] + } + + +def _gt_meta(sample_id: str) -> dict: + return json.loads((CRELLO_ROOT / f"crello_{sample_id}" / "meta.json").read_text()) + + +# ------------------------------------------------------------------ +# Phase 1: trees (pluggable; default = PlanAssets on the arm-A spec) +# ------------------------------------------------------------------ + + +async def _gen_trees(sample_ids: List[str], tree_dir: Path) -> None: + tree_dir.mkdir(parents=True, exist_ok=True) + todo = [s for s in sample_ids if not (tree_dir / f"{s}.json").exists()] + if not todo: + print(f"[trees] all {len(sample_ids)} cached in {tree_dir}") + return + print(f"[trees] generating {len(todo)} trees via PlanAssets ...") + plan = PlanAssets() + sem = asyncio.Semaphore(TREE_GEN_CONCURRENCY) + + async def _one(sid: str) -> None: + async with sem: + spec = _load_spec(sid, "a") + try: + tree = await plan.run(spec=spec) + except Exception as err: # noqa: BLE001 -- recorded, sample later skipped + print(f"[trees] {sid} FAILED: {err}") + return + (tree_dir / f"{sid}.json").write_text(tree.model_dump_json()) + print(f"[trees] {sid} ok ({len(tree.root.children)} groups)") + + await asyncio.gather(*(_one(s) for s in todo)) + + +def _load_tree(sample_id: str, tree_dir: Path) -> Optional[LayoutTree]: + path = tree_dir / f"{sample_id}.json" + if not path.exists(): + return None + return LayoutTree.model_validate(json.loads(path.read_text())) + + +# ------------------------------------------------------------------ +# Phase 2: evaluate the three methods on the shared tree +# ------------------------------------------------------------------ + + +def _skipped(sample_id: str, method: str, reason: str) -> SampleMetrics: + return SampleMetrics(sample_id=sample_id, method=method, skip_reasons=[reason]) + + +def _eval_sample(sample_id: str, tree_dir: Path) -> List[SampleMetrics]: + tree = _load_tree(sample_id, tree_dir) + if tree is None: + return [_skipped(sample_id, m, "no_tree") for m in ("agent_a", "agent_b", "gt")] + + spec_a = _load_spec(sample_id, "a") + canvas_w, canvas_h = spec_a.canvas.width, spec_a.canvas.height + a_idx = _spec_idx_map(spec_a) + rows: List[SampleMetrics] = [] + + # -- agent_a: candidate ids ARE the tree ids. + rows.append( + evaluate_sample( + tree=tree, + pixel_boxes=_candidate_boxes(sample_id, "a"), + canvas_width=canvas_w, + canvas_height=canvas_h, + sample_id=sample_id, + method="agent_a", + ) + ) + + # -- agent_b: independent Analyst run -> bridge b_id -> gt_idx -> a_id. + b_row: Optional[SampleMetrics] = None + if a_idx is None: + b_row = _skipped(sample_id, "agent_b", "id_alignment:a_spec_missing_asset_ref") + else: + try: + spec_b = _load_spec(sample_id, "b") + b_idx = _spec_idx_map(spec_b) + except FileNotFoundError: + b_idx = None + if b_idx is None: + b_row = _skipped(sample_id, "agent_b", "id_alignment:b_spec_missing_asset_ref") + elif sorted(b_idx.values()) != sorted(a_idx.values()): + b_row = _skipped(sample_id, "agent_b", "id_alignment:idx_set_mismatch") + else: + idx_to_a = {v: k for k, v in a_idx.items()} + b_boxes_raw = _candidate_boxes(sample_id, "b") + b_boxes = { + idx_to_a[gt_idx]: b_boxes_raw[b_id] + for b_id, gt_idx in b_idx.items() + if b_id in b_boxes_raw + } + b_row = evaluate_sample( + tree=tree, + pixel_boxes=b_boxes, + canvas_width=canvas_w, + canvas_height=canvas_h, + sample_id=sample_id, + method="agent_b", + ) + rows.append(b_row) + + # -- gt: Crello text layers, matched by exact gt_idx. + if a_idx is None: + rows.append(_skipped(sample_id, "gt", "id_alignment:a_spec_missing_asset_ref")) + else: + meta = _gt_meta(sample_id) + gt_boxes = { + e["idx"]: (e["left"], e["top"], e["width"], e["height"]) + for e in meta["elements"] + if e.get("kind") == "text" + } + mapped = { + a_id: gt_boxes[gt_idx] for a_id, gt_idx in a_idx.items() if gt_idx in gt_boxes + } + if len(mapped) != len(a_idx): + rows.append(_skipped(sample_id, "gt", "id_alignment:gt_text_layer_missing")) + else: + rows.append( + evaluate_sample( + tree=tree, + pixel_boxes=mapped, + canvas_width=meta["canvas_width"], + canvas_height=meta["canvas_height"], + sample_id=sample_id, + method="gt", + ) + ) + return rows + + +# ------------------------------------------------------------------ +# Reports +# ------------------------------------------------------------------ + + +def _write_reports(samples: List[SampleMetrics]) -> None: + OUT_ROOT.mkdir(parents=True, exist_ok=True) + (OUT_ROOT / "per_sample.json").write_text( + json.dumps([s.model_dump() for s in samples], indent=2, ensure_ascii=False) + ) + + rows = aggregate(samples) + order = {"agent_a": 0, "agent_b": 1, "gt": 2} + rows.sort(key=lambda r: order.get(r.method, 9)) + + by_method: Dict[str, List[SampleMetrics]] = {} + for s in samples: + by_method.setdefault(s.method, []).append(s) + + md = ["# Step 90 — SGC / TLC / PCA(N=100,同一棵 Asset Planner tree)", ""] + md.append(aggregate_markdown(rows)) + md += ["", "## 質性案例挑選清單(agent_a SGC − baseline SGC 最大前 10)", ""] + picks_out: Dict[str, List] = {} + for baseline in ("gt", "agent_b"): + picks = qualitative_picks(by_method.get("agent_a", []), by_method.get(baseline, [])) + picks_out[baseline] = picks + md.append(f"### vs {baseline}") + md.append("") + for sid, delta in picks: + md.append(f"- `{sid}` Δsgc = {delta:+.3f}") + md.append("") + (OUT_ROOT / "aggregate.md").write_text("\n".join(md)) + (OUT_ROOT / "qualitative_picks.json").write_text( + json.dumps(picks_out, indent=2, ensure_ascii=False) + ) + print("\n" + "\n".join(md)) + + +# ------------------------------------------------------------------ +# Main +# ------------------------------------------------------------------ + + +async def main() -> None: + ap = argparse.ArgumentParser() + ap.add_argument("--limit", type=int, default=None, help="first N samples only") + ap.add_argument( + "--tree-dir", + type=Path, + default=TREE_DIR_DEFAULT, + help="directory of {sample_id}.json LayoutTree files (pluggable tree source)", + ) + ap.add_argument( + "--no-tree-gen", + action="store_true", + help="never call the LLM; samples without a cached tree are skipped", + ) + args = ap.parse_args() + + sample_ids = _sample_ids() + if args.limit: + sample_ids = sample_ids[: args.limit] + print(f"[step90] {len(sample_ids)} samples, tree dir = {args.tree_dir}") + + if not args.no_tree_gen: + await _gen_trees(sample_ids, args.tree_dir) + + samples: List[SampleMetrics] = [] + for sid in sample_ids: + samples.extend(_eval_sample(sid, args.tree_dir)) + _write_reports(samples) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/layout_agent/output2/step91_metrics.py b/layout_agent/output2/step91_metrics.py new file mode 100644 index 000000000..3cf219bb3 --- /dev/null +++ b/layout_agent/output2/step91_metrics.py @@ -0,0 +1,189 @@ +"""Step 91 post-hoc -- paired gpt-4o vs o4-mini comparison on the same N=20. + +Three signals, from weakest to strongest coupling with the LLM judge: + + 1. geometry -- SEGA rule-based axes (Ali/Ove/Rea/Occ + text_on_panel), + identical implementation to step89_metrics.py. Judge-free: + if o4-mini degrades the layouts, this moves regardless of + what any grader thinks. + 2. status -- terminal pipeline status + judge rounds + empty-candidate + rounds. Exposes refusals and QC blowups. + 3. verdict -- blind pairwise vs designer GT, PAIRED per sample. Both arms + were graded by gpt-4o with the same attachment order, so a + per-sample cross-tab is meaningful. + +Sources: + gt -- designer text layout (meta.json, kind=text) + gpt4o -- step89_n100//a/ (Step 89 arm A; pipeline roles on gpt-4o) + o4mini -- step91_model_ab/o4mini// (this run) + +Only ids present in BOTH arms are compared, so every number is paired. + +Run (offline, no LLM): + conda activate meta + python layout_agent/output2/step91_metrics.py +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np +from PIL import Image + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +OUTPUT1 = HERE.parent / "output" +for p in (str(REPO_ROOT), str(OUTPUT1)): + if p not in sys.path: + sys.path.insert(0, p) + +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( # noqa: E402 + metric_alignment, + metric_occlusion, + metric_overlay, + metric_readability, +) +import step20_sega_eval as s20 # noqa: E402 +from step89_metrics import _cand_layout, _gt_layout, _on_panel_rate # noqa: E402 + +N100 = HERE / "step89_n100" +O4MINI = HERE / "step91_model_ab" / "o4mini" +SEGA_PRE = OUTPUT1 / "sega_pre" +OUT = HERE / "step91_model_ab" / "comparison.json" + +AXES = ["overall_winner", "design_layout", "typography_color", + "graphics_images", "content_relevance", "innovation_originality"] + + +def _paired_ids() -> list: + if not O4MINI.exists(): + raise SystemExit(f"missing {O4MINI} -- run step91_o4mini_ab.py first") + out = [] + for d in sorted(O4MINI.iterdir()): + if not d.is_dir() or not (d / "row.json").exists(): + continue + if (N100 / d.name / "row.json").exists(): + out.append(d.name) + return out + + +def main() -> int: + ids = _paired_ids() + if not ids: + raise SystemExit("no paired samples") + + acc = {src: {"Ali": [], "Ove": [], "Rea": [], "Occ": [], "panel": []} + for src in ("gt", "gpt4o", "o4mini")} + status = {"gpt4o": {}, "o4mini": {}} + rounds = {"gpt4o": [], "o4mini": []} + empty_rounds = {"o4mini": 0} + paired = {ax: {} for ax in AXES} + per_sample = [] + n_geo = 0 + + for sid in ids: + pre_p = SEGA_PRE / sid / "sega_input.json" + meta_p = OUTPUT1 / f"crello_{sid}" / "meta.json" + row_g = json.loads((N100 / sid / "row.json").read_text()) + row_o = json.loads((O4MINI / sid / "row.json").read_text()) + + arm_g = row_g.get("a", {}) + sg = arm_g.get("status", "?") + so = row_o.get("status", "?") + status["gpt4o"][sg] = status["gpt4o"].get(sg, 0) + 1 + status["o4mini"][so] = status["o4mini"].get(so, 0) + 1 + if arm_g.get("rounds") is not None: + rounds["gpt4o"].append(arm_g["rounds"]) + if row_o.get("rounds") is not None: + rounds["o4mini"].append(row_o["rounds"]) + for tr in row_o.get("trace") or []: + if tr.get("candidate_count") == 0: + empty_rounds["o4mini"] += 1 + + # --- paired verdict cross-tab (gpt4o outcome -> o4mini outcome) --- + vg, vo = arm_g.get("verdict"), row_o.get("verdict") + if isinstance(vg, dict) and isinstance(vo, dict): + for ax in AXES: + key = f"{vg.get(ax)}->{vo.get(ax)}" + paired[ax][key] = paired[ax].get(key, 0) + 1 + per_sample.append({"id": sid, + "gpt4o": {ax: vg.get(ax) for ax in AXES}, + "o4mini": {ax: vo.get(ax) for ax in AXES}}) + + # --- judge-free geometry --- + if not (pre_p.exists() and meta_p.exists()): + continue + pre = json.loads(pre_p.read_text()) + meta = json.loads(meta_p.read_text()) + cw, ch = float(pre["canvas_width"]), float(pre["canvas_height"]) + bg = np.asarray( + Image.open(pre["background_path"]).convert("RGB").resize((int(cw), int(ch))), + dtype=np.uint8, + ) + sal = s20._saliency_from_bg(bg) + regions = pre["underlay_regions"] + + layouts = {"gt": _gt_layout(meta)} + cp_g, cp_o = N100 / sid / "a" / "candidate.json", O4MINI / sid / "candidate.json" + if cp_g.exists(): + layouts["gpt4o"] = _cand_layout(json.loads(cp_g.read_text())) + if cp_o.exists(): + layouts["o4mini"] = _cand_layout(json.loads(cp_o.read_text())) + + for src, layout in layouts.items(): + if not layout: + continue + acc[src]["Ali"].append(metric_alignment([layout], cw, ch)) + acc[src]["Ove"].append(metric_overlay([layout])) + acc[src]["Rea"].append(metric_readability([layout], [bg], cw, ch)) + acc[src]["Occ"].append(metric_occlusion([layout], [sal], cw, ch)) + rate = _on_panel_rate(layout, regions) + if rate is not None: + acc[src]["panel"].append(rate) + n_geo += 1 + + geometry = {} + for src in ("gt", "gpt4o", "o4mini"): + geometry[src] = {k: (round(sum(v) / len(v), 5) if v else None) + for k, v in acc[src].items()} + geometry[src]["n"] = len(acc[src]["Ali"]) + + result = { + "n_paired": len(ids), "n_geometry": n_geo, + "geometry": geometry, + "status": status, + "rounds_mean": {k: (round(sum(v) / len(v), 2) if v else None) for k, v in rounds.items()}, + "empty_candidate_rounds": empty_rounds, + "verdict_paired": paired, + "per_sample": per_sample, + } + + print(f"n_paired={len(ids)} n_geometry={n_geo}\n") + print(f"{'':8s}{'Ali↓':>10s}{'Ove↓':>10s}{'Rea↓':>10s}{'Occ↓':>10s}{'panel↑':>10s}") + for src in ("gt", "gpt4o", "o4mini"): + g = geometry[src] + + def fmt(x): + return f"{x:>10.5f}" if isinstance(x, float) else f"{'-':>10s}" + + print(f"{src:8s}{fmt(g['Ali'])}{fmt(g['Ove'])}{fmt(g['Rea'])}{fmt(g['Occ'])}" + f"{fmt(g['panel'])} (n={g['n']})") + + print("\nstatus:", json.dumps(status, ensure_ascii=False)) + print("rounds_mean:", result["rounds_mean"]) + print("empty_candidate_rounds (o4mini):", empty_rounds["o4mini"]) + print("\npaired verdict transitions (gpt4o -> o4mini):") + for ax in AXES: + flips = {k: v for k, v in sorted(paired[ax].items()) if v} + print(f" {ax:24s} {json.dumps(flips)}") + + OUT.parent.mkdir(parents=True, exist_ok=True) + OUT.write_text(json.dumps(result, indent=2, ensure_ascii=False)) + print(f"\nwrote {OUT}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/output2/step91_o4mini_ab.py b/layout_agent/output2/step91_o4mini_ab.py new file mode 100644 index 000000000..2d0137836 --- /dev/null +++ b/layout_agent/output2/step91_o4mini_ab.py @@ -0,0 +1,212 @@ +"""Step 91 -- what changes in the system when the pipeline roles run on o4-mini? + +Only ONE thing differs from the Step 89 arm-A reference: the model driving the +pipeline roles (Analyst / CompositionDirector / CoordinateMapper / internal +JudgeAesthetic). Everything else -- samples, pipeline config, prompts, blind +evaluator -- is held fixed. + + reference : Step 89 arm A rows, pipeline roles on gpt-4o (already on disk) + this run : same samples + same config, pipeline roles on o4-mini + +The blind pairwise-vs-designer-GT evaluator is PINNED to gpt-4o. Swapping the +evaluator alongside the system would confound "did the layouts get worse" with +"did the grader change", making the win rates uninterpretable. + +Pipeline config = Step 89 arm A (3 concepts, max_total_rounds=3, visual loop +OFF), so the existing step89_n100//a/ rows are a valid paired reference. +No gpt-4o arm is re-run. + +Deliberately NOT instrumented: token/cost accounting. MetaGPT's streamed path +never yields a real usage block (OpenAI omits it without +stream_options.include_usage, and the _calc_usage fallback throws on vision +messages and is swallowed), so any number here would be fake. Read the billing +dashboard instead. Leaving the streamed path untouched also keeps this run's +call shape identical to Step 89's. + +Captured per sample: terminal status, judge rounds, the full pipeline trace +(per-round decision / candidate_count / qc_filtered_count -- these expose +refusals and QC blowups), and the blind verdict on four axes. + +RESUMABLE: samples with an existing row.json are skipped. + +Run (model override must land before any Action is constructed, hence one +process per model): + conda activate meta + python layout_agent/output2/step91_o4mini_ab.py --model o4-mini --limit 1 # smoke + python layout_agent/output2/step91_o4mini_ab.py --model o4-mini +""" +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import sys +import time +from pathlib import Path + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +# Model override MUST happen before any Action/LLM is constructed. +_ARGP = argparse.ArgumentParser() +_ARGP.add_argument("--model", required=True, choices=["o4-mini", "gpt-4o"]) +_ARGP.add_argument("--limit", type=int, default=20) +_ARGP.add_argument("--out", default="step91_model_ab") +ARGS = _ARGP.parse_args() + +from metagpt.config2 import config # noqa: E402 + +config.llm.model = ARGS.model + +from layout_agent.output2.step76_ab_live import OUTPUT1, SEGA_PRE, _blind_pairwise # noqa: E402 +from layout_agent.output2.step80_smoke import _build_text_image_inputs # noqa: E402 +from metagpt.ext.agentlayout.pipeline import ( # noqa: E402 + LayoutPipeline, + PipelineConfig, + PipelineError, +) +from metagpt.ext.agentlayout.tools.renderer import render_to_file # noqa: E402 +from metagpt.llm import LLM # noqa: E402 +from metagpt.provider.base_llm import BaseLLM # noqa: E402 + +OUT_ROOT = HERE / ARGS.out / ARGS.model.replace("-", "") +IDS_FILE = HERE / "eval100_ids.json" +EVALUATOR_MODEL = "gpt-4o" # pinned; see module docstring +ARM_CONFIG = dict(max_total_rounds=3) # Step 89 arm A +FLAG = "AGENTLAYOUT_VISUAL_LOOP" + + +def _trace_rows(trace) -> list: + """Per-round pipeline behaviour: refusals show up as candidate_count 0, + QC blowups as qc_filtered_count == candidate_count + filtered.""" + out = [] + for t in trace or []: + out.append({ + "round": t.round_idx, + "decision": t.decision, + "feedback_target": t.feedback_target, + "candidate_count": t.candidate_count, + "qc_filtered_count": t.qc_filtered_count, + }) + return out + + +async def _run_one(sample_id: str, out_dir: Path, evaluator: BaseLLM) -> dict: + os.environ.pop(FLAG, None) # visual loop OFF (arm A) + + crello_dir = OUTPUT1 / f"crello_{sample_id}" + meta = json.loads((crello_dir / "meta.json").read_text()) + pre = json.loads((SEGA_PRE / sample_id / "sega_input.json").read_text()) + user_brief, asset_list, regions = _build_text_image_inputs(pre) + + row = {"id": sample_id, "model": ARGS.model} + out_dir.mkdir(parents=True, exist_ok=True) + t0 = time.monotonic() + + pipe = LayoutPipeline(config=PipelineConfig(**ARM_CONFIG)) + try: + result = await pipe.run( + user_brief=user_brief, asset_list=asset_list, underlay_regions=regions or None + ) + candidate, spec, trace = result.accepted_candidate, result.spec, result.trace + row.update(status="accepted", internal_accepted=True) + except PipelineError as err: + if err.best_candidate is None or err.spec is None: + row.update(status="pipeline_error", error=str(err), + wall_s=round(time.monotonic() - t0, 1)) + return row + candidate, spec, trace = err.best_candidate, err.spec, err.trace + row.update(status="exhausted_judged", internal_accepted=False) + + row["rounds"] = len(trace or []) + row["trace"] = _trace_rows(trace) + row["wall_s"] = round(time.monotonic() - t0, 1) + + png = out_dir / "final.png" + render_to_file(candidate, spec, png) + # spec + candidate are what the post-hoc SEGA geometric metrics rebuild + # Layouts from -- Step 89 arm A stores the same two files. + (out_dir / "candidate.json").write_text(candidate.model_dump_json()) + (out_dir / "spec.json").write_text(spec.model_dump_json()) + + gt_path = crello_dir / "ground_truth_preview.jpg" + if gt_path.exists(): + # arm label fixed to "B" -> same blind attachment order as Step 89. + row["verdict"] = await _blind_pairwise( + evaluator, sample_id, "B", meta.get("title", ""), png, gt_path + ) + return row + + +def _tally(rows: list) -> dict: + axes = ["overall_winner", "design_layout", "typography_color", + "graphics_images", "content_relevance", "innovation_originality"] + t = {"n": len(rows), "accepted": 0, "exhausted_judged": 0, "pipeline_error": 0, + "crash": 0, "no_verdict": 0, "rounds_total": 0, "wall_s_total": 0.0, + "empty_candidate_rounds": 0, "qc_filtered_total": 0} + for ax in axes: + t[ax] = {"cand": 0, "gt": 0, "tie": 0} + for r in rows: + if r.get("status") in t: + t[r["status"]] += 1 + t["rounds_total"] += r.get("rounds", 0) + t["wall_s_total"] += r.get("wall_s", 0.0) + for tr in r.get("trace") or []: + if tr.get("candidate_count") == 0: + t["empty_candidate_rounds"] += 1 + t["qc_filtered_total"] += tr.get("qc_filtered_count", 0) + v = r.get("verdict") + if isinstance(v, dict): + for ax in axes: + if v.get(ax) in t[ax]: + t[ax][v[ax]] += 1 + else: + t["no_verdict"] += 1 + t["wall_s_total"] = round(t["wall_s_total"], 1) + return t + + +async def main() -> int: + all_ids = json.loads(IDS_FILE.read_text())["ids"] + ids = [] + for sid in all_ids: + p = SEGA_PRE / sid / "sega_input.json" + if p.exists() and json.loads(p.read_text())["text_assets"]: + ids.append(sid) + ids = ids[: ARGS.limit] + print(f"model={ARGS.model} evaluator={EVALUATOR_MODEL} n={len(ids)}", flush=True) + + evaluator = LLM(llm_config=config.llm.model_copy(update={"model": EVALUATOR_MODEL})) + + rows = [] + for i, sid in enumerate(ids, 1): + out_dir = OUT_ROOT / sid + row_path = out_dir / "row.json" + if row_path.exists(): + rows.append(json.loads(row_path.read_text())) + print(f"[{i}/{len(ids)}] {sid} cached", flush=True) + continue + try: + row = await _run_one(sid, out_dir, evaluator) + except Exception as exc: # noqa: BLE001 -- one bad sample must not kill the run + row = {"id": sid, "model": ARGS.model, "status": "crash", "error": repr(exc)} + out_dir.mkdir(parents=True, exist_ok=True) + row_path.write_text(json.dumps(row, ensure_ascii=False, indent=1)) + rows.append(row) + v = (row.get("verdict") or {}).get("overall_winner", "-") + print(f"[{i}/{len(ids)}] {sid} {row.get('status')} rounds={row.get('rounds','-')} " + f"overall={v} {row.get('wall_s','?')}s", flush=True) + + summary = {"model": ARGS.model, "evaluator": EVALUATOR_MODEL, + "arm_config": ARM_CONFIG, "tally": _tally(rows), "rows": rows} + OUT_ROOT.mkdir(parents=True, exist_ok=True) + (OUT_ROOT / "_summary.json").write_text(json.dumps(summary, indent=2, ensure_ascii=False)) + print(json.dumps(summary["tally"], indent=1, ensure_ascii=False), flush=True) + return 0 + + +if __name__ == "__main__": + sys.exit(asyncio.run(main())) diff --git a/layout_agent/output2/step92_cole_h2h.py b/layout_agent/output2/step92_cole_h2h.py new file mode 100644 index 000000000..a1f12f4ce --- /dev/null +++ b/layout_agent/output2/step92_cole_h2h.py @@ -0,0 +1,513 @@ +"""Step 92 -- matched COLE H2H under the text-as-image protocol (Step 89 samples). + +Why this exists +--------------- +The paper's B-axis headline is currently Step 70's "86.6% of designer Smean", +measured under the OLD protocol (old renderer, raw-asset input). The paper's +main result is now Step 89 (text-as-image protocol, N=100). Putting those two +in one table is exactly the cross-version comparison that EXPERIMENT_MATRIX +table 3 forbids. This script re-measures the B axis on the Step 89 samples so +that A axis (metrics.json), B axis (this file) and C axis (blind pairwise in +_summary.json) all come from ONE protocol on ONE set of 100 samples. + +Comparability contract +---------------------- +The COLE prompt, model (gpt-4o), temperature (0.0) and parser are imported +verbatim from ``step21_phaseb_eval`` -- the same module Step 70 and Step 74 +called. Nothing about the judge is re-implemented here, so the numbers are +directly comparable to step70_n100_{agent,designer_gt}_5axis.json. The ONLY +thing that changed is which PNGs get fed in. + +Note: designer GT is a .jpg but ``_score_image`` wraps every payload in a +``data:image/png`` header. Step 70/74 did the same and OpenAI sniffs the actual +bytes, so it is kept as-is rather than "fixed" -- changing it would silently +break comparability with the published numbers. + +The evaluator stays pinned to gpt-4o via ``step21_phaseb_eval.MODEL`` no matter +what ``~/.metagpt/config2.yaml`` sets as the pipeline model (same isolation +decision as Step 91). + +Inputs +------ + agent_a -- output2/step89_n100//a/final.png (baseline arm) + agent_b -- output2/step89_n100//b/final.png (deep-review arm, optional) + gt -- output/crello_/ground_truth_preview.jpg + +Outputs +------- + output2/step92_cole_h2h/per_sample/.json (resumable unit of work) + output2/step92_cole_h2h/aggregate.json + output2/step92_cole_h2h/aggregate.md + +Cost +---- +~$0.0125 per vision call. Default arms (a, gt) = 2 calls/sample = ~$2.5 for +N=100. Adding arm b makes it 3 calls/sample = ~$3.75. + +Run:: + + # cost/plan only, ZERO API calls -- always do this first + conda run -n meta python layout_agent/output2/step92_cole_h2h.py --dry-run + + # 3-sample smoke + conda run -n meta python layout_agent/output2/step92_cole_h2h.py --max-samples 3 + + # full run (resumable; re-run with --skip-existing after an interrupt) + conda run -n meta python layout_agent/output2/step92_cole_h2h.py --skip-existing + + # include the deep-review arm + conda run -n meta python layout_agent/output2/step92_cole_h2h.py --arms a,b,gt + + # re-aggregate from existing per_sample/ without touching the API + conda run -n meta python layout_agent/output2/step92_cole_h2h.py --aggregate-only +""" +from __future__ import annotations + +import argparse +import asyncio +import base64 +import json +import math +import random +import statistics +import sys +from pathlib import Path +from typing import Dict, List, Optional, Sequence + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +OUTPUT1 = HERE.parent / "output" +for _p in (str(REPO_ROOT), str(OUTPUT1), str(HERE)): + if _p not in sys.path: + sys.path.insert(0, _p) + +import step21_phaseb_eval as s21 # noqa: E402 (COLE prompt + judge, verbatim) + +from provenance import capture as _prov_capture # noqa: E402 +from provenance import summary_line as _prov_line # noqa: E402 +from provenance import write as _prov_write # noqa: E402 + +STEP89_ROOT = HERE / "step89_n100" +OUT_ROOT = HERE / "step92_cole_h2h" +PER_SAMPLE = OUT_ROOT / "per_sample" + +REPORT_AXES_4 = ("SDL", "SQL", "STV", "SIO") +ALL_AXES = ("SDL", "SQL", "STV", "SGI", "SIO") +COST_PER_CALL_USD = 0.0125 +BOOTSTRAP_N = 10_000 +BOOTSTRAP_SEED = 20260709 + +# Step 70 published baselines (old protocol). Echoed in the report purely as +# context -- they are NOT a valid same-table comparison. +STEP70_REF = {"agent_smean4": 6.598, "gt_smean4": 7.617, "pct": 86.6} + + +# -------------------------------------------------------------------------- +# source resolution +# -------------------------------------------------------------------------- +def _arm_png(sample_id: str, arm: str) -> Path: + """Resolve one arm's image. ``gt`` comes from the Crello cache, not step89.""" + if arm == "gt": + return OUTPUT1 / f"crello_{sample_id}" / "ground_truth_preview.jpg" + return STEP89_ROOT / sample_id / arm / "final.png" + + +def _b64(path: Path) -> Optional[str]: + if not path.exists(): + return None + return base64.b64encode(path.read_bytes()).decode() + + +def _sample_ids(limit: Optional[int], only: Optional[str]) -> List[str]: + ids = sorted(d.name for d in STEP89_ROOT.iterdir() + if d.is_dir() and not d.name.startswith("_")) + if only: + ids = [i for i in ids if i == only] + if limit: + ids = ids[:limit] + return ids + + +# -------------------------------------------------------------------------- +# scoring +# -------------------------------------------------------------------------- +def _agg_scores(scores: Dict[str, int]) -> Dict[str, object]: + return { + "scores": scores, + "smean4": float(statistics.mean(scores[k] for k in REPORT_AXES_4)), + "smean5": float(statistics.mean(scores[k] for k in ALL_AXES)), + } + + +def _existing_arms(sample_id: str) -> Dict[str, dict]: + """Already-scored arms for this sample, so a later run can add an arm + without paying to re-score the ones already on disk. Only ``ok`` arms are + reused -- a previous ``parse_failed`` gets another chance.""" + p = PER_SAMPLE / f"{sample_id}.json" + if not p.exists(): + return {} + prior = json.loads(p.read_text()).get("arms", {}) + return {k: v for k, v in prior.items() if v.get("status") == "ok"} + + +async def _score_one_sample(client, sample_id: str, arms: Sequence[str]) -> dict: + """Score every requested arm for one sample. Fails loud, never scores 0.""" + out: dict = {"id": sample_id, "status": "ok", "arms": {}} + reusable = _existing_arms(sample_id) + + for arm in arms: + if arm in reusable: + out["arms"][arm] = reusable[arm] + continue + png = _arm_png(sample_id, arm) + b64 = _b64(png) + if b64 is None: + out["arms"][arm] = {"status": "missing_image", "path": str(png)} + out["status"] = "partial" + continue + + scores = await s21._score_image(client, b64) + if scores is None: + out["arms"][arm] = {"status": "parse_failed", "path": str(png)} + out["status"] = "partial" + continue + + out["arms"][arm] = {"status": "ok", "path": str(png), **_agg_scores(scores)} + + # Paired deltas exist only when both sides of the pair actually scored. + for arm in arms: + if arm == "gt": + continue + a, g = out["arms"].get(arm, {}), out["arms"].get("gt", {}) + if a.get("status") != "ok" or g.get("status") != "ok": + continue + out.setdefault("deltas", {})[arm] = { + "per_axis": {k: a["scores"][k] - g["scores"][k] for k in ALL_AXES}, + "smean4": a["smean4"] - g["smean4"], + "smean5": a["smean5"] - g["smean5"], + "pct_of_gt_smean4": (a["smean4"] / g["smean4"] * 100.0) if g["smean4"] else None, + } + return out + + +# -------------------------------------------------------------------------- +# statistics (no scipy -- exact binomial + percentile bootstrap) +# -------------------------------------------------------------------------- +def _sign_test_p(wins: int, losses: int) -> Optional[float]: + """Two-sided exact binomial on non-tied pairs, H0: p=0.5.""" + n = wins + losses + if n == 0: + return None + k = min(wins, losses) + tail = sum(math.comb(n, i) for i in range(0, k + 1)) / (2 ** n) + return min(1.0, 2.0 * tail) + + +def _bootstrap_ci(deltas: Sequence[float], alpha: float = 0.05) -> Optional[Dict[str, float]]: + """Percentile bootstrap CI on the mean paired delta. Seeded => reproducible.""" + if len(deltas) < 2: + return None + rng = random.Random(BOOTSTRAP_SEED) + n = len(deltas) + means = [statistics.fmean(deltas[rng.randrange(n)] for _ in range(n)) + for _ in range(BOOTSTRAP_N)] + means.sort() + lo = means[int((alpha / 2) * BOOTSTRAP_N)] + hi = means[min(BOOTSTRAP_N - 1, int((1 - alpha / 2) * BOOTSTRAP_N))] + return {"mean": statistics.fmean(deltas), "ci95_lo": lo, "ci95_hi": hi, + "n_bootstrap": BOOTSTRAP_N, "seed": BOOTSTRAP_SEED} + + +def _paired_block(rows: List[dict], arm: str) -> Optional[dict]: + """Everything the paper needs for one arm vs designer GT.""" + paired = [r for r in rows if r.get("deltas", {}).get(arm)] + if not paired: + return None + + d4 = [r["deltas"][arm]["smean4"] for r in paired] + d5 = [r["deltas"][arm]["smean5"] for r in paired] + + wins = sum(1 for d in d4 if d > 0) + ties = sum(1 for d in d4 if d == 0) + losses = sum(1 for d in d4 if d < 0) + + per_axis = {} + for ax in ALL_AXES: + dax = [r["deltas"][arm]["per_axis"][ax] for r in paired] + per_axis[ax] = { + "agent_mean": statistics.fmean(r["arms"][arm]["scores"][ax] for r in paired), + "gt_mean": statistics.fmean(r["arms"]["gt"]["scores"][ax] for r in paired), + "delta_mean": statistics.fmean(dax), + "bootstrap": _bootstrap_ci(dax), + "wins": sum(1 for d in dax if d > 0), + "ties": sum(1 for d in dax if d == 0), + "losses": sum(1 for d in dax if d < 0), + "sign_p": _sign_test_p(sum(1 for d in dax if d > 0), + sum(1 for d in dax if d < 0)), + } + + agent_m4 = statistics.fmean(r["arms"][arm]["smean4"] for r in paired) + gt_m4 = statistics.fmean(r["arms"]["gt"]["smean4"] for r in paired) + agent_m5 = statistics.fmean(r["arms"][arm]["smean5"] for r in paired) + gt_m5 = statistics.fmean(r["arms"]["gt"]["smean5"] for r in paired) + return { + "n_paired": len(paired), + "agent_smean4": agent_m4, + "gt_smean4": gt_m4, + "pct_of_gt_smean4": (agent_m4 / gt_m4 * 100.0) if gt_m4 else None, + "agent_smean5": agent_m5, + "gt_smean5": gt_m5, + "pct_of_gt_smean5": (agent_m5 / gt_m5 * 100.0) if gt_m5 else None, + "smean4_delta_bootstrap": _bootstrap_ci(d4), + "smean5_delta_bootstrap": _bootstrap_ci(d5), + "smean4_wins_ties_losses": [wins, ties, losses], + "smean4_sign_p": _sign_test_p(wins, losses), + "per_axis": per_axis, + } + + +def _arm_vs_arm(rows: List[dict]) -> Optional[dict]: + """A vs B on Smean4, paired. Answers 'does the deep-review stack help?'""" + paired = [r for r in rows + if r["arms"].get("a", {}).get("status") == "ok" + and r["arms"].get("b", {}).get("status") == "ok"] + if not paired: + return None + d = [r["arms"]["b"]["smean4"] - r["arms"]["a"]["smean4"] for r in paired] + wins = sum(1 for x in d if x > 0) + losses = sum(1 for x in d if x < 0) + return { + "n_paired": len(paired), + "b_minus_a_smean4": _bootstrap_ci(d), + "b_wins_ties_losses": [wins, sum(1 for x in d if x == 0), losses], + "sign_p": _sign_test_p(wins, losses), + } + + +# -------------------------------------------------------------------------- +# reporting +# -------------------------------------------------------------------------- +def _fmt_ci(b: Optional[dict]) -> str: + if not b: + return "—" + return f"{b['mean']:+.3f} [{b['ci95_lo']:+.3f}, {b['ci95_hi']:+.3f}]" + + +def _fmt_p(p: Optional[float]) -> str: + return "—" if p is None else (f"{p:.3f}" if p >= 0.001 else "<0.001") + + +def _render_md(agg: dict) -> str: + L: List[str] = [] + L.append("# Step 92 — matched COLE H2H under the text-as-image protocol\n") + L.append(f"- samples scored: **{agg['n_scored']}** / {agg['n_total']}") + L.append(f"- arms: `{', '.join(agg['arms'])}` | judge: `{agg['judge_model']}` " + f"single-call COLE, temperature 0.0 (verbatim from `step21_phaseb_eval`)") + L.append(f"- vision calls: {agg['n_calls']} | est. cost: ${agg['est_cost_usd']:.2f}") + L.append("\n> Same 100 samples as `output2/step89_n100/` — A axis (`metrics.json`), " + "B axis (this file) and C axis (`_summary.json` blind pairwise) are now " + "**one protocol, one sample set**.\n") + + for arm, name in (("a", "A 基線"), ("b", "B 深審")): + blk = agg["vs_gt"].get(arm) + if not blk: + continue + L.append(f"\n## {name} vs designer GT (paired, n={blk['n_paired']})\n") + L.append(f"- **Smean4 {blk['agent_smean4']:.3f} vs GT {blk['gt_smean4']:.3f}** " + f"→ **{blk['pct_of_gt_smean4']:.1f}% of designer**") + L.append(f"- Smean5 {blk['agent_smean5']:.3f} vs GT {blk['gt_smean5']:.3f} " + f"→ {blk['pct_of_gt_smean5']:.1f}%") + L.append(f"- Δ Smean4 (95% bootstrap CI): {_fmt_ci(blk['smean4_delta_bootstrap'])}") + w, t, lo = blk["smean4_wins_ties_losses"] + L.append(f"- per-sample win/tie/loss: {w}/{t}/{lo} " + f"(sign test p={_fmt_p(blk['smean4_sign_p'])})\n") + L.append("| axis | agent | GT | Δ mean [95% CI] | W/T/L | sign p |") + L.append("|---|---|---|---|---|---|") + for ax in ALL_AXES: + a = blk["per_axis"][ax] + L.append(f"| {ax} | {a['agent_mean']:.2f} | {a['gt_mean']:.2f} | " + f"{_fmt_ci(a['bootstrap'])} | {a['wins']}/{a['ties']}/{a['losses']} | " + f"{_fmt_p(a['sign_p'])} |") + + if agg.get("b_vs_a"): + b = agg["b_vs_a"] + L.append(f"\n## B 深審 − A 基線 (paired, n={b['n_paired']})\n") + L.append(f"- Δ Smean4: {_fmt_ci(b['b_minus_a_smean4'])}") + w, t, lo = b["b_wins_ties_losses"] + L.append(f"- B better / tie / A better: {w}/{t}/{lo} (sign p={_fmt_p(b['sign_p'])})") + + a_blk = agg["vs_gt"].get("a") + if a_blk and a_blk.get("pct_of_gt_smean4"): + L.append("\n## Context — do NOT put in the same table\n") + L.append(f"Step 70 (old protocol, old renderer, raw-asset input) reported agent " + f"Smean4 {STEP70_REF['agent_smean4']} vs GT {STEP70_REF['gt_smean4']} " + f"= {STEP70_REF['pct']}% of designer. This run reports " + f"**{a_blk['pct_of_gt_smean4']:.1f}%** under text-as-image. The two differ " + f"in renderer version AND input protocol; per `EXPERIMENT_MATRIX.md` table 3 " + f"they are not directly comparable. Report this run; cite Step 70 as the " + f"pre-text-as-image measurement only.") + + if agg["failures"]: + L.append("\n## Failures\n") + for f in agg["failures"]: + L.append(f"- `{f['id']}` — {f['arm']}: {f['status']}") + return "\n".join(L) + "\n" + + +def _aggregate(rows: List[dict], arms: Sequence[str], n_total: int) -> dict: + failures = [ + {"id": r["id"], "arm": arm, "status": info["status"]} + for r in rows for arm, info in r["arms"].items() + if info.get("status") != "ok" + ] + n_calls = sum(1 for r in rows for info in r["arms"].values() + if info.get("status") == "ok") + vs_gt = {arm: _paired_block(rows, arm) for arm in arms if arm != "gt"} + return { + "step": 92, + "protocol": "text-as-image (Step 89 samples)", + "judge_model": s21.MODEL, + # Read back what the SCORING run recorded. Capturing fresh here would + # stamp aggregate.json with the re-aggregation environment (possibly a + # different commit / model) and silently misattribute the numbers. + "provenance": _read_run_provenance(), + "arms": list(arms), + "n_total": n_total, + "n_scored": len(rows), + "n_calls": n_calls, + "est_cost_usd": n_calls * COST_PER_CALL_USD, + "vs_gt": {k: v for k, v in vs_gt.items() if v}, + "b_vs_a": _arm_vs_arm(rows) if {"a", "b"} <= set(arms) else None, + "failures": failures, + } + + +def _read_run_provenance() -> dict: + """Provenance of the run that produced per_sample/, not of this process. + + Absent for scores written before provenance capture existed -- say so + rather than substituting today's environment. + """ + p = OUT_ROOT / "provenance.json" + if p.exists(): + return json.loads(p.read_text()) + return {"captured": False, + "note": "scored before provenance capture was wired in; " + "see IMPLEMENTATION_LOG Step 92 for the reconstructed environment"} + + +def _load_per_sample() -> List[dict]: + if not PER_SAMPLE.exists(): + return [] + return [json.loads(p.read_text()) for p in sorted(PER_SAMPLE.glob("*.json"))] + + +def _write_aggregate(rows: List[dict], arms: Sequence[str], n_total: int) -> dict: + agg = _aggregate(rows, arms, n_total) + OUT_ROOT.mkdir(parents=True, exist_ok=True) + (OUT_ROOT / "aggregate.json").write_text(json.dumps(agg, indent=2, ensure_ascii=False)) + (OUT_ROOT / "aggregate.md").write_text(_render_md(agg)) + return agg + + +# -------------------------------------------------------------------------- +# main +# -------------------------------------------------------------------------- +async def main() -> int: + ap = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + ap.add_argument("--arms", default="a,gt", + help="Comma list from {a,b,gt}. 'gt' is required. Default: a,gt") + ap.add_argument("--only", default=None, help="Single sample id (smoke).") + ap.add_argument("--max-samples", type=int, default=None, help="Limit (smoke).") + ap.add_argument("--skip-existing", action="store_true", + help="Skip samples that already have per_sample/.json.") + ap.add_argument("--concurrency", type=int, default=4) + ap.add_argument("--dry-run", action="store_true", + help="Print the plan and cost estimate. Makes ZERO API calls.") + ap.add_argument("--aggregate-only", action="store_true", + help="Rebuild aggregate.{json,md} from per_sample/. ZERO API calls.") + args = ap.parse_args() + + arms = [a.strip() for a in args.arms.split(",") if a.strip()] + bad = set(arms) - {"a", "b", "gt"} + if bad: + print(f"[error] unknown arms: {sorted(bad)}") + return 2 + if "gt" not in arms: + print("[error] 'gt' arm is required -- this is a head-to-head against designer GT.") + return 2 + + if not STEP89_ROOT.exists(): + print(f"[error] step89 root missing: {STEP89_ROOT}") + return 1 + + if args.aggregate_only: + rows = _load_per_sample() + if not rows: + print(f"[error] no per-sample results under {PER_SAMPLE}") + return 1 + agg = _write_aggregate(rows, arms, len(rows)) + print(f"[done] re-aggregated {agg['n_scored']} samples -> {OUT_ROOT}") + return 0 + + ids = _sample_ids(args.max_samples, args.only) + if args.skip_existing: + # Arm-level: a sample is done only when EVERY requested arm is scored. + ids = [i for i in ids if not set(arms) <= set(_existing_arms(i))] + + # Pre-flight: check every image exists before spending a cent. Arms already + # on disk are reused, so they cost nothing. + todo = [(i, arm) for i in ids for arm in arms if arm not in _existing_arms(i)] + missing = [(i, arm) for i, arm in todo if not _arm_png(i, arm).exists()] + n_reused = len(ids) * len(arms) - len(todo) + n_calls = len(todo) - len(missing) + if n_reused: + print(f"[plan] reusing {n_reused} already-scored arm(s) from per_sample/") + + prov = _prov_capture(judge_model=s21.MODEL) + print(_prov_line(prov)) + print(f"[plan] samples={len(ids)} arms={arms} judge={s21.MODEL}") + print(f"[plan] vision calls={n_calls} est. cost=${n_calls * COST_PER_CALL_USD:.2f}") + if missing: + print(f"[plan] WARNING {len(missing)} missing images (recorded, not scored):") + for i, arm in missing[:10]: + print(f" {i} [{arm}] -> {_arm_png(i, arm)}") + if args.dry_run: + print("[dry-run] no API calls made.") + return 0 + if not ids: + print("[plan] nothing to do (all skipped).") + return 0 + + PER_SAMPLE.mkdir(parents=True, exist_ok=True) + _prov_write(OUT_ROOT / "provenance.json", prov) + client = s21._load_openai_client() + sem = asyncio.Semaphore(args.concurrency) + done = {"n": 0} + + async def _worker(sid: str) -> dict: + async with sem: + row = await _score_one_sample(client, sid, arms) + (PER_SAMPLE / f"{sid}.json").write_text( + json.dumps(row, indent=2, ensure_ascii=False)) + done["n"] += 1 + d = row.get("deltas", {}).get("a") + tail = f"Δsmean4={d['smean4']:+.2f}" if d else row["status"] + print(f"[{done['n']:3d}/{len(ids)}] {sid} {tail}") + return row + + await asyncio.gather(*(_worker(i) for i in ids)) + + rows = _load_per_sample() # includes previously-completed samples on resume + agg = _write_aggregate(rows, arms, len(rows)) + a = agg["vs_gt"].get("a") + if a: + print(f"\n[result] A vs GT Smean4 {a['agent_smean4']:.3f} / {a['gt_smean4']:.3f} " + f"= {a['pct_of_gt_smean4']:.1f}% of designer " + f"(Δ CI {_fmt_ci(a['smean4_delta_bootstrap'])})") + print(f"[done] -> {OUT_ROOT / 'aggregate.md'}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(asyncio.run(main())) diff --git a/layout_agent/output2/step92_cole_h2h/RUN_METADATA.json b/layout_agent/output2/step92_cole_h2h/RUN_METADATA.json new file mode 100644 index 000000000..480f91faa --- /dev/null +++ b/layout_agent/output2/step92_cole_h2h/RUN_METADATA.json @@ -0,0 +1,93 @@ +{ + "run_id": "step92_cole_h2h", + "title": "Step 92 -- matched COLE head-to-head under the text-as-image protocol", + "status": "frozen", + "why_it_matters": "Source of the paper's B axis (Smean4/Smean5 vs designer GT). Scored the Step 89 renders, so A/B/C axes finally share one protocol and one sample set.", + + "capture": { + "method": "reconstructed", + "reason": "Scoring ran a few hours before provenance capture was wired into this driver (same day). aggregate.json therefore reports {\"captured\": false} rather than stamping itself with the re-aggregation environment. Fields below carry their own evidence.", + "reconstructed_on": "2026-07-09", + "future_runs": "provenance.json is now written at scoring time; aggregate.json reads it back instead of re-capturing." + }, + + "when": { + "scored_on": "2026-07-09", + "phases": [ + "arms a+gt: 200 vision calls (100 samples x 2)", + "arm b added later via arm-level resume: 98 further calls (2 samples lack b/final.png)" + ] + }, + + "code_state": { + "driver_commit": "9884f3c4daffb618fee54a515140dbbe4fea45f9", + "driver_commit_subject": "feat(agentlayout): track output2 drivers + capture run provenance", + "judge_source": "layout_agent/output/step21_phaseb_eval.py", + "claim": "The COLE prompt, model, temperature and parser are imported verbatim from step21_phaseb_eval -- the same module Step 70 and Step 74 called. Nothing about the judge is reimplemented.", + "pipeline_involvement": "none -- this run reads PNGs and calls the judge. metagpt/ext/agentlayout is not on its execution path, so the Step 89 pipeline freeze does not constrain it.", + "note": "Scoring itself ran against an uncommitted tree; the driver was committed the same day with scoring logic unchanged. Only provenance wiring and arm-level resume were added afterwards (see resume_semantics)." + }, + + "models": { + "judge_llm": "gpt-4o", + "judge_llm_evidence": "Pinned in code by step21_phaseb_eval.MODEL. Machine-verifiable, and independent of ~/.metagpt/config2.yaml, which read o4-mini on this date. The driver's --dry-run prints 'judge=gpt-4o' next to 'model=o4-mini', which is the check.", + "temperature": 0.0, + "pipeline_llm": "not applicable -- no generation in this run" + }, + + "data": { + "sample_ids": "layout_agent/output2/eval100_ids.json (inherited from step89_n100)", + "n_samples": 100, + "ids_sha256_prefix": "2c045eb834b8d618", + "arms": { + "a": "layout_agent/output2/step89_n100//a/final.png (baseline)", + "b": "layout_agent/output2/step89_n100//b/final.png (deep-review; 2 missing)", + "gt": "layout_agent/output/crello_/ground_truth_preview.jpg (designer)" + }, + "known_failures": "5888d6f095a7a863ddcc2865 and 5888d7a795a7a863ddcc2981 have no b/final.png (the Step 89 arm-B error + crash). Recorded, excluded, never scored as zero => arm B is n=98." + }, + + "protocol": { + "input": "text-as-image (Step 89 renders)", + "renderer": "R3", + "judging": "COLE single-call, 5 axes scored 1-10, absolute (not pairwise)", + "jpeg_under_png_header": "Designer GT is .jpg but _score_image wraps every payload in a data:image/png header. Step 70/74 did the same and OpenAI sniffs the bytes. Deliberately NOT 'fixed' -- changing it would silently break comparability with the published numbers." + }, + + "statistics": { + "sign_test": "exact two-sided binomial on non-tied pairs (math.comb), no scipy", + "bootstrap": "percentile CI on the mean paired delta, 10000 resamples", + "bootstrap_seed": 20260709, + "determinism": "The seed is fixed, so --aggregate-only reproduces identical CIs from the same per_sample/ files." + }, + + "resume_semantics": { + "granularity": "arm-level", + "rule": "A sample is skipped only when every requested arm already has status=ok in per_sample/.json. A previous parse_failed is retried.", + "why": "Adding arm b cost 98 calls instead of 300. Verified by re-running: arm A's numbers came out bit-identical (7.120 / 7.800 / 91.3%), proving a and gt were reused rather than re-scored." + }, + + "headline_results": { + "arm_a_vs_gt": {"n": 100, "smean4": 7.120, "gt_smean4": 7.800, "pct_of_gt": 91.28, "delta_ci95": [-0.853, -0.512], "wins_ties_losses": [11, 25, 64], "sign_p": "<0.001"}, + "arm_b_vs_gt": {"n": 98, "smean4": 6.997, "gt_smean4": 7.796, "pct_of_gt": 89.76, "delta_ci95": [-0.997, -0.620], "wins_ties_losses": [6, 22, 70], "sign_p": "<0.001"}, + "b_minus_a": {"n": 98, "delta_ci95": [-0.316, 0.026], "b_better_tie_a_better": [26, 27, 45], "sign_p": 0.032}, + "sdl_zero_wins": "Both arms win 0 samples on design_layout. Not a bug: designer GT saturates at 8/10 on 79/100 samples." + }, + + "cost_usd": 3.725, + "cost_note": "298 vision calls at ~$0.0125 each. Recorded by the driver in aggregate.json.est_cost_usd.", + + "artifacts": [ + "layout_agent/output2/step92_cole_h2h/aggregate.json", + "layout_agent/output2/step92_cole_h2h/aggregate.md", + "layout_agent/output2/step92_cole_h2h/per_sample/.json" + ], + + "reproduce": [ + "git checkout 9884f3c4 # or later; scoring logic unchanged since", + "conda run -n meta python layout_agent/output2/step92_cole_h2h.py --arms a,b,gt --dry-run # zero API, prints plan + cost", + "conda run -n meta python layout_agent/output2/step92_cole_h2h.py --arms a,b,gt --skip-existing", + "conda run -n meta python layout_agent/output2/step92_cole_h2h.py --arms a,b,gt --aggregate-only # rebuild tables from per_sample/, zero API", + "NOTE: temperature is 0.0 but the judge is still an LLM; per-sample scores may shift slightly across runs. The bootstrap seed is fixed, so aggregation over the same per_sample/ is exactly reproducible." + ] +} diff --git a/layout_agent/output2/step93_perround_curve.py b/layout_agent/output2/step93_perround_curve.py new file mode 100644 index 000000000..2ecd39712 --- /dev/null +++ b/layout_agent/output2/step93_perround_curve.py @@ -0,0 +1,259 @@ +"""Step 93 -- formalize the per-round gain curve from the Step 89 N=100 run (E2). + +Context +------- +Paper section 5.8 currently cites +0.45 / -0.19 / -0.03 / -0.12 from the +result.md section 11.4 prose. Those numbers came from the Step 89 run but were +never dumped as a standalone, per-transition paired table with sample counts +and significance. After Step 92 moved the B-axis main table onto the same +Step 89 batch, this curve is now SAME-protocol with the headline numbers, so +the only remaining gap is provenance: a formal table with n / mean / median / +W-T-L / exact sign p per round transition, written to disk. + +Zero new generation: reads only `step89_n100//{a,b}/rounds/round*.json` +(the in-pipeline JudgeAesthetic verdicts persisted by the Step 89 driver). +The `total` field is the 5-axis COLE total (5..50) emitted by the pipeline's +own judge during the run -- NOT the Step 92 post-hoc single-call scores. + +Outputs +------- + output2/step93_perround/perround.json full per-sample series + stats + output2/step93_perround/perround.md paper-ready tables + +Cross-check: the script prints the published section 11.4 values next to the +recomputed ones; any mismatch means the definition drifted and must be +resolved before the paper cites this table. +""" +from __future__ import annotations + +import json +import math +import re +import statistics +from pathlib import Path + +ROOT = Path(__file__).resolve().parent / "step89_n100" +OUT_DIR = Path(__file__).resolve().parent / "step93_perround" + +# Published in result.md section 11.4 (2026-07-03). Keyed by (arm, round_k): +# paired mean of total(k) - total(k-1). +PUBLISHED = { + ("a", 1): 0.45, + ("a", 2): 0.14, + ("b", 1): 0.45, + ("b", 2): -0.19, + ("b", 3): -0.03, + ("b", 4): -0.12, +} + +_ROUND_RE = re.compile(r"round(\d+)\.json$") + + +def exact_sign_test_two_sided(wins: int, losses: int) -> float | None: + """Exact two-sided binomial sign test on non-tied pairs, p0=0.5. + + Same convention as step92_cole_h2h.py: ties excluded, symmetric null so + two-sided p = 2 * P(X >= max(wins, losses)), capped at 1.0. + """ + n = wins + losses + if n == 0: + return None + k = max(wins, losses) + tail = sum(math.comb(n, i) for i in range(k, n + 1)) / 2.0**n + return min(1.0, 2.0 * tail) + + +def load_series() -> dict[str, dict[str, dict[int, dict]]]: + """-> {sample_id: {arm: {round_idx: verdict_dict}}} (arms with >=1 round).""" + series: dict[str, dict[str, dict[int, dict]]] = {} + for sample_dir in sorted(p for p in ROOT.iterdir() if p.is_dir()): + arms: dict[str, dict[int, dict]] = {} + for arm in ("a", "b"): + rounds_dir = sample_dir / arm / "rounds" + if not rounds_dir.is_dir(): + continue + rounds: dict[int, dict] = {} + for f in rounds_dir.iterdir(): + m = _ROUND_RE.search(f.name) + if not m: + continue + data = json.loads(f.read_text()) + idx = int(m.group(1)) + if data.get("total") is not None: + rounds[idx] = data + if rounds: + arms[arm] = rounds + if arms: + series[sample_dir.name] = arms + return series + + +def transition_stats(series, arm: str, k: int) -> dict | None: + """Paired stats for total(k) - total(k-1) over samples having both rounds.""" + deltas = [] + for sid, arms in series.items(): + rounds = arms.get(arm, {}) + if k in rounds and (k - 1) in rounds: + deltas.append((sid, rounds[k]["total"] - rounds[k - 1]["total"])) + if not deltas: + return None + vals = [d for _, d in deltas] + wins = sum(1 for v in vals if v > 0) + losses = sum(1 for v in vals if v < 0) + ties = sum(1 for v in vals if v == 0) + return { + "arm": arm, + "round": k, + "n_pairs": len(vals), + "mean_delta": statistics.fmean(vals), + "median_delta": statistics.median(vals), + "improved": wins, + "tied": ties, + "worsened": losses, + "sign_p_two_sided": exact_sign_test_two_sided(wins, losses), + "published_11_4": PUBLISHED.get((arm, k)), + "per_sample": {sid: d for sid, d in deltas}, + } + + +def round0_cross_arm(series) -> dict: + """Paired A.R0.total - B.R0.total (the best-of-3 vs single-candidate gap).""" + deltas = [] + for sid, arms in series.items(): + a0 = arms.get("a", {}).get(0) + b0 = arms.get("b", {}).get(0) + if a0 and b0: + deltas.append((sid, a0["total"] - b0["total"])) + vals = [d for _, d in deltas] + wins = sum(1 for v in vals if v > 0) + losses = sum(1 for v in vals if v < 0) + return { + "n_pairs": len(vals), + "mean_delta_a_minus_b": statistics.fmean(vals), + "median_delta": statistics.median(vals), + "a_better": wins, + "tied": sum(1 for v in vals if v == 0), + "b_better": losses, + "sign_p_two_sided": exact_sign_test_two_sided(wins, losses), + "per_sample": {sid: d for sid, d in deltas}, + } + + +def per_round_means(series, arm: str) -> list[dict]: + """Descriptive per-round means (total + 5 axes). Finding-2 discipline: + the paper reports the total-level curve; axis columns are descriptive.""" + out = [] + max_k = max((max(r) for _, a in series.items() if (r := a.get(arm))), default=-1) + for k in range(0, max_k + 1): + rows = [a[arm][k] for a in series.values() if arm in a and k in a[arm]] + if not rows: + continue + entry = { + "round": k, + "n": len(rows), + "mean_total": statistics.fmean(r["total"] for r in rows), + } + for axis in ("design_layout", "content_relevance", "typography_color", + "graphics_images", "innovation_originality"): + entry[f"mean_{axis}"] = statistics.fmean(r["scores"][axis] for r in rows) + out.append(entry) + return out + + +def main() -> None: + series = load_series() + n_samples = len(series) + + transitions = [] + for arm in ("a", "b"): + k = 1 + while (t := transition_stats(series, arm, k)) is not None: + transitions.append(t) + k += 1 + + r0 = round0_cross_arm(series) + means = {arm: per_round_means(series, arm) for arm in ("a", "b")} + + OUT_DIR.mkdir(exist_ok=True) + payload = { + "step": 93, + "source": "output2/step89_n100//{a,b}/rounds/round*.json", + "protocol_note": ( + "In-pipeline JudgeAesthetic 5-axis totals (5..50) persisted during " + "the Step 89 text-as-image N=100 run; same batch as the Step 92 " + "B-axis main table. Judge = pipeline LLM (gpt-4o), multi-candidate " + "prompt -- distinct from Step 92's post-hoc single-call protocol." + ), + "n_samples_with_rounds": n_samples, + "transitions": transitions, + "round0_cross_arm_a_minus_b": r0, + "per_round_descriptive_means": means, + } + (OUT_DIR / "perround.json").write_text( + json.dumps(payload, indent=2, ensure_ascii=False) + ) + + lines = [ + "# Step 93 -- Per-round paired gain curve (Step 89 N=100 batch)", + "", + f"Samples with round traces: {n_samples}. " + "Delta(k) = total(round k) - total(round k-1), paired per sample; " + "totals are the in-pipeline 5-axis judge totals (5-50) from the " + "Step 89 run itself (same batch + protocol as the Step 92 main table).", + "", + "| arm | round k | n pairs | mean Δ | median Δ | improved/tied/worsened |" + " sign p (two-sided) | §11.4 published |", + "|---|---|---|---|---|---|---|---|", + ] + for t in transitions: + p = t["sign_p_two_sided"] + lines.append( + f"| {t['arm'].upper()} | R{t['round'] - 1}→R{t['round']} | {t['n_pairs']} " + f"| {t['mean_delta']:+.3f} | {t['median_delta']:+.1f} " + f"| {t['improved']}/{t['tied']}/{t['worsened']} " + f"| {('%.4f' % p) if p is not None else '—'} " + f"| {t['published_11_4']:+.2f} |" + ) + lines += [ + "", + "## Round-0 cross-arm gap (A best-of-3 concepts vs B single candidate)", + "", + f"n={r0['n_pairs']} paired; mean Δ(A−B) = {r0['mean_delta_a_minus_b']:+.3f}, " + f"median {r0['median_delta']:+.1f}; A better {r0['a_better']} / tie {r0['tied']} / " + f"B better {r0['b_better']}; sign p = {r0['sign_p_two_sided']:.2e}", + "", + "## Descriptive per-round means (totals; axis means in perround.json)", + "", + "| arm | round | n | mean total |", + "|---|---|---|---|", + ] + for arm in ("a", "b"): + for e in means[arm]: + lines.append(f"| {arm.upper()} | R{e['round']} | {e['n']} | {e['mean_total']:.2f} |") + lines += [ + "", + "Provenance: recomputed 2026-07-09 by step93_perround_curve.py; the " + "'§11.4 published' column must match the recomputed mean Δ -- any " + "mismatch blocks citing this table.", + ] + (OUT_DIR / "perround.md").write_text("\n".join(lines) + "\n") + + print(f"samples={n_samples}") + for t in transitions: + pub = t["published_11_4"] + flag = "" + if pub is not None and abs(t["mean_delta"] - pub) > 0.005: + flag = " <-- MISMATCH vs §11.4" + print( + f"{t['arm'].upper()} R{t['round']-1}->R{t['round']}: n={t['n_pairs']} " + f"mean={t['mean_delta']:+.3f} (published {pub}){flag}" + ) + print( + f"R0 A-B: n={r0['n_pairs']} mean={r0['mean_delta_a_minus_b']:+.3f} " + f"(§11.4 prose: best-of-3 R0 +1.6)" + ) + print(f"wrote {OUT_DIR}/perround.json and perround.md") + + +if __name__ == "__main__": + main() diff --git a/layout_agent/output2/step94_signtest.py b/layout_agent/output2/step94_signtest.py new file mode 100644 index 000000000..4f4b242db --- /dev/null +++ b/layout_agent/output2/step94_signtest.py @@ -0,0 +1,110 @@ +"""Step 94 -- formalize the Step 71 Ali 65/100 result as an exact sign test (E3). + +Input: `output/b1_root_cause_n100.json` (Step 71 per-sample root-cause dump, +per_axis_summary counts: alignment 65W/3L/32T, readability 21W/41L/38T, +occlusion 45W/55L/0T; win = agent better on that geometric axis vs designer GT). + +Two p-value conventions, both exact binomial vs p0=0.5, two-sided: + * decisive-only -- ties excluded (standard sign test): Ali 65 wins / 68. + * conservative -- ties kept in n (treated as if they could all have gone + against the winner): Ali 65 wins / 100. This is the number the paper + cites, per the user's instruction; decisive-only goes in a footnote. + +Purpose: one-line defense answer to "is N=100 enough?" -- even under the +conservative convention the Ali win imbalance is far beyond chance. + +Outputs: output2/step94_signtest/{signtest.json, signtest.md} +Pure stdlib (math.comb), same convention as step92/step93. +""" +from __future__ import annotations + +import json +import math +from pathlib import Path + +SRC = Path(__file__).resolve().parent.parent / "output" / "b1_root_cause_n100.json" +OUT_DIR = Path(__file__).resolve().parent / "step94_signtest" + + +def binom_two_sided(k_max_side: int, n: int) -> float: + """Exact two-sided binomial p vs p0=0.5: 2 * P(X >= max-side count).""" + tail = sum(math.comb(n, i) for i in range(k_max_side, n + 1)) / 2.0**n + return min(1.0, 2.0 * tail) + + +def main() -> None: + summary = json.loads(SRC.read_text())["per_axis_summary"] + results = [] + for axis, row in summary.items(): + w, l, t = row["n_agent_win"], row["n_agent_lose"], row["n_tie"] + n_total = row["n_total"] + assert w + l + t == n_total, f"{axis}: counts do not sum to n_total" + decisive = w + l + results.append({ + "axis": axis, + "wins": w, + "losses": l, + "ties": t, + "n_decisive": decisive, + "p_decisive_two_sided": binom_two_sided(max(w, l), decisive), + "p_conservative_ties_in_n": binom_two_sided(max(w, l), n_total), + "direction": "agent" if w > l else ("gt" if l > w else "even"), + }) + + OUT_DIR.mkdir(exist_ok=True) + payload = { + "step": 94, + "source": "output/b1_root_cause_n100.json (Step 71, N=100 fresh, geometric axes)", + "method": ( + "Exact binomial sign test vs p0=0.5, two-sided = 2*P(X >= max-side " + "count) capped at 1. 'decisive' excludes ties (standard); " + "'conservative' keeps ties in n. Paper cites the conservative " + "value; decisive-only in a footnote." + ), + "results": results, + } + (OUT_DIR / "signtest.json").write_text(json.dumps(payload, indent=2)) + + lines = [ + "# Step 94 -- Exact sign tests for Step 71 per-sample geometric axes (N=100)", + "", + "Win = agent strictly better than designer GT on that axis (Step 71 per-sample table).", + "", + "| axis | W/L/T | direction | p (decisive-only, two-sided) | p (conservative, ties in n=100) |", + "|---|---|---|---|---|", + ] + for r in results: + lines.append( + f"| {r['axis']} | {r['wins']}/{r['losses']}/{r['ties']} | {r['direction']} " + f"| {r['p_decisive_two_sided']:.3e} | {r['p_conservative_ties_in_n']:.3e} |" + ) + ali = next(r for r in results if r["axis"] == "alignment") + lines += [ + "", + "## One-line defense answer (\"is N=100 enough?\")", + "", + f"Alignment: 65 wins vs 3 losses (32 ties). Even under the conservative " + f"convention that counts all 32 ties against the result " + f"(p = {ali['p_conservative_ties_in_n']:.1e}), the imbalance is far beyond " + f"chance; excluding ties, the exact two-sided p is " + f"{ali['p_decisive_two_sided']:.1e}. N=100 is ample for this claim.", + "", + "Caveats carried over from Step 71: the Ali aggregate mean is pulled by 3 " + "banner outliers -- the sign test speaks to the per-sample win *count*, " + "not to the mean margin; readability remains a genuine systematic loss " + "(21/41/38) and occlusion a mild loss (45/55/0), both shown above for " + "completeness.", + ] + (OUT_DIR / "signtest.md").write_text("\n".join(lines) + "\n") + + for r in results: + print( + f"{r['axis']}: {r['wins']}W/{r['losses']}L/{r['ties']}T -> " + f"decisive p={r['p_decisive_two_sided']:.3e}, " + f"conservative p={r['p_conservative_ties_in_n']:.3e}" + ) + print(f"wrote {OUT_DIR}/signtest.json and signtest.md") + + +if __name__ == "__main__": + main() diff --git a/layout_agent/output2/step96_legacy_perround_curve.py b/layout_agent/output2/step96_legacy_perround_curve.py new file mode 100644 index 000000000..13039dd48 --- /dev/null +++ b/layout_agent/output2/step96_legacy_perround_curve.py @@ -0,0 +1,317 @@ +"""Step 96 (E2') -- per-round paired gain curve for the LEGACY pipeline (N=178). + +Why +--- +Paper §5.8 currently cites the Step 89 per-round curve (+0.45 / -0.19 / ...), +which was measured on the text-as-image protocol with the deep-review stack. +E2' recomputes the same curve on the Step 73-74 full-trace run -- the legacy +pipeline, raw-asset input, refinement loop -- so §5.8 can cite a curve from the +pipeline it actually describes. + +Zero API. Reads only `layout_agent/full_result//trace/per_round_judge.json`, +the JudgeAesthetic verdicts persisted during the Step 73-74 run. + +Round total +----------- +Each round the judge scores several candidates and names one +``best_candidate_id``. The round's total is that candidate's 5-axis COLE total +(5..50) -- the score the pipeline actually carried forward. Spot-checked across +rounds: best_candidate_id is always the argmax, so this equals "the score of +what the pipeline chose". Rounds whose named id is missing from the evaluation +list fall back to argmax and are counted in ``fallback_to_argmax``; a nonzero +count is reported, never silently absorbed. + +Pairing +------- +``mean_delta`` for transition k is the paired mean of total(k) - total(k-1) +over samples that reached BOTH rounds. Samples that accepted (and stopped) at +round k-1 do not contribute to transition k, which is why n_pairs shrinks with +k. That attrition is survivorship, not missing data -- reported per transition +so the reader can see it. + +Columns mirror `step93_perround_curve.py` so the two tables line up; the 95% +bootstrap CI is an extra column (step93 reports only the sign test). + +Run:: + + conda run -n meta python layout_agent/output2/step96_legacy_perround_curve.py +""" +from __future__ import annotations + +import json +import math +import random +import statistics +import sys +from pathlib import Path +from typing import Dict, List, Optional, Sequence, Tuple + +HERE = Path(__file__).resolve().parent +REPO_ROOT = HERE.parents[1] +if str(HERE) not in sys.path: + sys.path.insert(0, str(HERE)) + +from provenance import capture as _prov_capture # noqa: E402 +from provenance import summary_line as _prov_line # noqa: E402 + +FULL_RESULT = REPO_ROOT / "layout_agent" / "full_result" +OUT_ROOT = HERE / "step96_legacy_perround" + +AXES = ("design_layout", "content_relevance", "typography_color", + "graphics_images", "innovation_originality") +BOOTSTRAP_N = 10_000 +BOOTSTRAP_SEED = 20260709 + +# Step 89 §11.3 curve, for the side-by-side contrast (different protocol, +# different pipeline -- shown to justify the replacement, never merged). +STEP89_A = {1: +0.45, 2: +0.14} +STEP89_B = {1: +0.45, 2: -0.19, 3: -0.03, 4: -0.12} + + +# -------------------------------------------------------------------------- +# statistics (no scipy) +# -------------------------------------------------------------------------- +def _sign_test_p(wins: int, losses: int) -> Optional[float]: + """Two-sided exact binomial on non-tied pairs, H0: p=0.5.""" + n = wins + losses + if n == 0: + return None + k = min(wins, losses) + tail = sum(math.comb(n, i) for i in range(0, k + 1)) / (2 ** n) + return min(1.0, 2.0 * tail) + + +def _bootstrap_ci(vals: Sequence[float], alpha: float = 0.05) -> Optional[Dict[str, float]]: + if len(vals) < 2: + return None + rng = random.Random(BOOTSTRAP_SEED) + n = len(vals) + means = [statistics.fmean(vals[rng.randrange(n)] for _ in range(n)) + for _ in range(BOOTSTRAP_N)] + means.sort() + return { + "mean": statistics.fmean(vals), + "ci95_lo": means[int((alpha / 2) * BOOTSTRAP_N)], + "ci95_hi": means[min(BOOTSTRAP_N - 1, int((1 - alpha / 2) * BOOTSTRAP_N))], + "n_bootstrap": BOOTSTRAP_N, + "seed": BOOTSTRAP_SEED, + } + + +# -------------------------------------------------------------------------- +# loading +# -------------------------------------------------------------------------- +def _round_total(judgement: dict) -> Tuple[Optional[int], Optional[dict], bool]: + """(total, axis_scores, used_fallback) for the candidate the pipeline kept.""" + evals = judgement.get("evaluations") or [] + by_id = {e.get("candidate_id"): e for e in evals if e.get("total") is not None} + if not by_id: + return None, None, False + + best_id = judgement.get("best_candidate_id") + if best_id in by_id: + e = by_id[best_id] + return e["total"], e.get("scores"), False + + e = max(by_id.values(), key=lambda x: x["total"]) + return e["total"], e.get("scores"), True + + +def load_series() -> Tuple[Dict[str, Dict[int, dict]], dict]: + """-> {sample_id: {round_idx: {total, scores, label}}}, plus diagnostics.""" + series: Dict[str, Dict[int, dict]] = {} + diag = {"dirs": 0, "no_trace": 0, "empty": 0, "fallback_to_argmax": 0, + "rounds_without_total": 0} + + for d in sorted(p for p in FULL_RESULT.iterdir() + if p.is_dir() and not p.name.startswith("_")): + diag["dirs"] += 1 + f = d / "trace" / "per_round_judge.json" + if not f.exists(): + diag["no_trace"] += 1 + continue + try: + rounds_raw = json.loads(f.read_text()) + except (json.JSONDecodeError, OSError): + diag["no_trace"] += 1 + continue + + rounds: Dict[int, dict] = {} + for r in rounds_raw: + total, scores, fb = _round_total(r.get("judgement") or {}) + if total is None: + diag["rounds_without_total"] += 1 + continue + if fb: + diag["fallback_to_argmax"] += 1 + rounds[int(r["round"])] = {"total": total, "scores": scores, + "label": r.get("label")} + if rounds: + series[d.name] = rounds + else: + diag["empty"] += 1 + return series, diag + + +# -------------------------------------------------------------------------- +# analysis +# -------------------------------------------------------------------------- +def transition_stats(series: Dict[str, Dict[int, dict]], k: int) -> Optional[dict]: + """Paired total(k) - total(k-1) over samples reaching both rounds.""" + deltas: List[Tuple[str, int]] = [] + for sid, rounds in series.items(): + if k in rounds and (k - 1) in rounds: + deltas.append((sid, rounds[k]["total"] - rounds[k - 1]["total"])) + if not deltas: + return None + + vals = [d for _, d in deltas] + wins = sum(1 for v in vals if v > 0) + losses = sum(1 for v in vals if v < 0) + ties = sum(1 for v in vals if v == 0) + return { + "arm": "legacy", + "round": k, + "transition": f"R{k-1}->R{k}", + "n_pairs": len(vals), + "mean_delta": statistics.fmean(vals), + "median_delta": statistics.median(vals), + "bootstrap": _bootstrap_ci(vals), + "improved": wins, + "tied": ties, + "worsened": losses, + "sign_p_two_sided": _sign_test_p(wins, losses), + "per_sample": {sid: d for sid, d in deltas}, + } + + +def per_round_means(series: Dict[str, Dict[int, dict]]) -> List[dict]: + """Descriptive per-round means. The paper reports the total-level curve; + axis columns are descriptive only (same discipline as step93).""" + out = [] + max_k = max((max(r) for r in series.values()), default=-1) + for k in range(max_k + 1): + rows = [r[k] for r in series.values() if k in r] + if not rows: + continue + entry = {"round": k, "n": len(rows), + "mean_total": statistics.fmean(r["total"] for r in rows)} + scored = [r for r in rows if r.get("scores")] + for axis in AXES: + vals = [r["scores"][axis] for r in scored if axis in r["scores"]] + if vals: + entry[f"mean_{axis}"] = statistics.fmean(vals) + out.append(entry) + return out + + +# -------------------------------------------------------------------------- +# reporting +# -------------------------------------------------------------------------- +def _fmt_ci(b: Optional[dict]) -> str: + return "—" if not b else f"[{b['ci95_lo']:+.3f}, {b['ci95_hi']:+.3f}]" + + +def _fmt_p(p: Optional[float]) -> str: + return "—" if p is None else (f"{p:.3f}" if p >= 0.001 else "<0.001") + + +def _render_md(res: dict) -> str: + L: List[str] = [] + L.append("# Step 96 (E2') — legacy pipeline per-round paired gain curve\n") + L.append("- source: `layout_agent/full_result/*/trace/per_round_judge.json` " + "(Step 73–74 full-trace run)") + L.append(f"- samples with usable trace: **{res['n_samples']}** / " + f"{res['diagnostics']['dirs']} sample dirs") + L.append("- round total = 5-axis COLE total (5..50) of the round's " + "`best_candidate_id`; zero API calls\n") + + L.append("## Per-transition paired Δ (judge total)\n") + L.append("| transition | n pairs | mean Δ | median Δ | 95% CI | improved/tied/worsened | sign p |") + L.append("|---|---|---|---|---|---|---|") + for t in res["transitions"]: + L.append(f"| {t['transition']} | {t['n_pairs']} | **{t['mean_delta']:+.3f}** | " + f"{t['median_delta']:+.1f} | {_fmt_ci(t['bootstrap'])} | " + f"{t['improved']}/{t['tied']}/{t['worsened']} | " + f"{_fmt_p(t['sign_p_two_sided'])} |") + + L.append("\n## Descriptive per-round means\n") + L.append("| round | n | mean total | " + " | ".join(a[:4].upper() for a in AXES) + " |") + L.append("|---|---|---|" + "---|" * len(AXES)) + for m in res["per_round_means"]: + cells = " | ".join( + (f"{m['mean_' + a]:.2f}" if f"mean_{a}" in m else "—") for a in AXES) + L.append(f"| R{m['round']} | {m['n']} | {m['mean_total']:.2f} | {cells} |") + + L.append("\n## Contrast with the Step 89 curve (§11.3) — different pipeline, do not merge\n") + L.append("| transition | legacy (this run) | Step 89 arm A | Step 89 arm B |") + L.append("|---|---|---|---|") + for t in res["transitions"]: + k = t["round"] + a = f"{STEP89_A[k]:+.2f}" if k in STEP89_A else "—" + b = f"{STEP89_B[k]:+.2f}" if k in STEP89_B else "—" + L.append(f"| {t['transition']} | {t['mean_delta']:+.3f} | {a} | {b} |") + L.append("\n> Legacy = raw-asset input + refinement loop. Step 89 = text-as-image " + "input, arm A best-of-3 / arm B deep-review. §5.8 cites the legacy curve " + "because that is the pipeline the section describes.") + + d = res["diagnostics"] + L.append("\n## Load diagnostics\n") + L.append(f"- sample dirs scanned: {d['dirs']}") + L.append(f"- no/unreadable `per_round_judge.json`: {d['no_trace']}") + L.append(f"- trace present but no scored round: {d['empty']}") + L.append(f"- rounds with no scorable candidate: {d['rounds_without_total']}") + L.append(f"- rounds where `best_candidate_id` was absent → argmax fallback: " + f"{d['fallback_to_argmax']}") + L.append("\n> n_pairs shrinks with k because samples that accepted at round k−1 " + "stopped there. This is survivorship, not missing data.") + return "\n".join(L) + "\n" + + +def main() -> int: + if not FULL_RESULT.exists(): + print(f"[error] missing {FULL_RESULT}") + return 1 + + prov = _prov_capture() + print(_prov_line(prov)) + + series, diag = load_series() + if not series: + print("[error] no usable per_round_judge.json found") + return 1 + + transitions = [] + k = 1 + while (t := transition_stats(series, k)) is not None: + transitions.append(t) + k += 1 + + res = { + "step": 96, + "label": "E2' legacy per-round paired gain curve", + "source": "layout_agent/full_result/*/trace/per_round_judge.json", + "provenance": prov, + "n_samples": len(series), + "diagnostics": diag, + "transitions": transitions, + "per_round_means": per_round_means(series), + } + + OUT_ROOT.mkdir(parents=True, exist_ok=True) + (OUT_ROOT / "curve.json").write_text(json.dumps(res, indent=2, ensure_ascii=False)) + (OUT_ROOT / "curve.md").write_text(_render_md(res)) + + print(f"[loaded] {len(series)} samples with trace " + f"({diag['no_trace']} missing, {diag['fallback_to_argmax']} argmax fallbacks)") + for t in transitions: + print(f" {t['transition']} n={t['n_pairs']:3d} " + f"mean={t['mean_delta']:+.3f} {_fmt_ci(t['bootstrap'])} " + f"W/T/L={t['improved']}/{t['tied']}/{t['worsened']} " + f"p={_fmt_p(t['sign_p_two_sided'])}") + print(f"[done] -> {OUT_ROOT / 'curve.md'}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH.md b/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH.md new file mode 100644 index 000000000..da892b668 --- /dev/null +++ b/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH.md @@ -0,0 +1,308 @@ +# A3 Pipeline Walkthrough — End-to-End Trace of a Single Crello Test Sample + +This document traces one Crello test-set sample through every stage of the A3 +architecture (T2 tree arm, L0 loop) and reproduces each intermediate artifact +verbatim, in pipeline order. All outputs below are taken unmodified from the +persisted run directory of the full Crello test batch +(`runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1`); nothing was re-generated or +edited for presentation. + +| Provenance | Value | +|---|---| +| Sample ID | `5f885a9aa637ee11e3498504` (Crello test split) | +| Design title | *Christmas Offer Girl in Headphones with Gift* | +| Canvas | 851 × 315 px (Facebook-cover format) | +| Foreground assets | 4 (3 raster images + 1 text bitmap) | +| Pipeline configuration | Tree arm **T2** (model-predicted layout tree), loop **L0** (single pass, no revision) | +| Model (all stages, frozen) | `gpt-5.4-mini-2026-03-17` | +| LLM calls | 7 (Analyst 1, Asset Planner 1, Composition Director 1, Coordinate Mapper 3, Internal Judge 1) | +| Total cost / wall time | $0.0301 / 22.0 s (sum of stage calls) | + +Pipeline order: **Inputs → Background Analyzer → Design Spec → Layout Tree → +Composition Concepts (×3) → Coordinate Mapper (×3) → Renderer (×3) → Quality +Checker (×3) → Internal Judge (select 1 of 3)**. The Background Analyzer output +and the Design Spec are two sections of the same Analyst stage response. + +--- + +## 1. Inputs: background, foreground assets, and user brief + +### 1.1 Background + +This sample has **no base background layer**: the canvas is blank white. The +deterministic vision-packet builder therefore emits an explicit placeholder +overview so the Analyst is never shown an ambiguous empty image. + +![Background overview](images/background_overview.png) + +### 1.2 Foreground assets + +The Analyst receives the foreground assets as a uniform contact sheet. Cells +deliberately erase the original placement and scale from the source document, +so no ground-truth layout information can leak into the pipeline; the printed +labels are the stable asset IDs used by every downstream stage. + +![Foreground asset contact sheet](images/asset_contact_sheet_01.png) + +| Asset ID | Media type | Content | +|---|---|---| +| `asset_0000` | raster | Photo: girl with headphones holding a wrapped gift on a red studio background | +| `asset_0001` | raster | Faint decorative raster panel (very low contrast) | +| `asset_0002` | text bitmap | `SAGANO\nGADGETS` (yellow rounded wordmark) | +| `asset_0003` | raster | Yellow gift-ribbon/bow graphic with diagonal banding | + +### 1.3 User brief + +The brief is constructed deterministically from the sample's title and canvas; +the theme string is context only and must not be typeset: + +> Create a 851x315 foreground layout for the theme 'Christmas Offer Girl in +> Headphones with Gift'. Use every provided placeable foreground asset exactly +> once. The theme is context, not visible copy. + +--- + +## 2. Background Analyzer output + +The Analyst stage inspects the background overview image first. Its +`background_summary` field is the background analysis passed to all downstream +stages (verbatim): + +> The base canvas is completely blank white with no built-in imagery, texture, +> or color fields. Visual saliency is entirely dependent on placed foreground +> assets. Quiet regions are the full open canvas area, which can support strong +> contrast compositions. Because there is no existing palette from the +> background, the design palette should be established by the foreground +> assets, especially the vivid red product photo, the bright yellow brand text, +> and the yellow ribbon graphic. + +The analyzer correctly recognizes the no-background case, declares the whole +canvas a quiet region, and redirects palette authority to the foreground +assets — a decision the Composition Director later exploits by treating white +space as deliberate retail negative space. + +--- + +## 3. Design Spec + +The remainder of the Analyst response is the Design Spec: a global design +intent, style keywords, and a per-asset semantic specification with hard usage +constraints (all verbatim). + +**Design intent** + +> Create a festive promotional composition for a Christmas offer using the +> supplied assets exactly once: the girl-with-gift photo as the main +> product/hero visual, the brand wordmark as the identity anchor, and the +> ribbon graphic plus the pale decorative panel as supporting holiday accents. +> Since the theme is context only and no extra copy is provided, the layout +> should feel like a clean holiday retail banner with cheerful, gift-oriented +> energy and clear brand presence. + +**Style keywords** — `festive`, `retail promo`, `holiday gift`, `bright red`, +`yellow accent`, `clean banner`, `playful`, `celebratory`, `minimal background` + +**Per-asset specification** + +| Asset | Semantic type | Semantic role (abridged) | Constraints | +|---|---|---|---| +| `asset_0000` | `product_image` | Primary hero visual communicating the Christmas gift offer | Use exactly once as the dominant focal image; preserve the festive red photo look; do not treat as a background layer | +| `asset_0001` | `decorative_image` | Secondary atmospheric accent that softens the composition | Use exactly once; keep visually subordinate to hero and brand text; treat as subtle decorative support | +| `asset_0002` | `logo` | Brand identifier and promotional signature (`SAGANO GADGETS`) | Use exactly once; keep text fully legible and intact; do not alter wording or split the logo | +| `asset_0003` | `decorative_image` | Holiday embellishment adding motion/festive energy | Use exactly once; decorative accent only; avoid obscuring the hero subject or wordmark | + +--- + +## 4. Layout Tree (Asset Planner, T2 arm) + +The Asset Planner converts the Design Spec into a validated layout tree +(`a3.layout-tree.v1`): a semantic hierarchy (`parent_id` / +`relation_to_parent`) plus a spatial grouping (`groups`). The tree is +schema-validated before the pipeline proceeds. + +``` +root +├── asset_0000 product_image [group_hero: hero_visual] priority 0, conf 0.99 +│ ├── asset_0003 decorative_image — decorates → asset_0000 +│ │ [group_holiday_accent] priority 2, conf 0.92 +│ └── asset_0001 decorative_image — supports → asset_0000 +│ [group_atmosphere] priority 3, conf 0.84 +└── asset_0002 logo [group_brand: brand_identity] priority 1, conf 0.98 +``` + +Full artifact: + +```json +{ + "schema_version": "a3.layout-tree.v1", + "groups": [ + {"group_id": "group_hero", "label": "hero_visual", "member_ids": ["asset_0000"], "ordering_priority": 0, "confidence": 0.99}, + {"group_id": "group_brand", "label": "brand_identity", "member_ids": ["asset_0002"], "ordering_priority": 1, "confidence": 0.98}, + {"group_id": "group_holiday_accent", "label": "holiday_accent", "member_ids": ["asset_0003"], "ordering_priority": 2, "confidence": 0.92}, + {"group_id": "group_atmosphere", "label": "atmospheric_support", "member_ids": ["asset_0001"], "ordering_priority": 3, "confidence": 0.84} + ], + "nodes": [ + {"asset_id": "asset_0000", "parent_id": "root", "relation_to_parent": "root", "semantic_type": "product_image", "group_id": "group_hero", "ordering_priority": 0, "confidence": 0.99}, + {"asset_id": "asset_0002", "parent_id": "root", "relation_to_parent": "root", "semantic_type": "logo", "group_id": "group_brand", "ordering_priority": 1, "confidence": 0.98}, + {"asset_id": "asset_0003", "parent_id": "asset_0000", "relation_to_parent": "decorates", "semantic_type": "decorative_image", "group_id": "group_holiday_accent", "ordering_priority": 2, "confidence": 0.92}, + {"asset_id": "asset_0001", "parent_id": "asset_0000", "relation_to_parent": "supports", "semantic_type": "decorative_image", "group_id": "group_atmosphere", "ordering_priority": 3, "confidence": 0.84} + ] +} +``` + +The tree captures the intended dependency structure: both decorative assets +serve the hero photo (`decorates` / `supports`), while the logo is an +independent top-level anchor. + +--- + +## 5. Composition Concepts (Composition Director, ×3) + +Conditioned on the Design Spec and the layout tree, the Composition Director +proposes three intentionally diverse composition concepts +(`a3.concept-set.v1`). Each concept later drives exactly one Coordinate Mapper +call. + +### Concept 1 — "Left Hero Banner" + +| Field | Value | +|---|---| +| Focal element | `asset_0000` | +| Focal placement | Place the girl-with-gift photo large in the left half of the canvas, slightly weighted toward the center so the red studio image reads as the main hero block without touching the edges too tightly. | +| Text placement | Set the SAGANO GADGETS wordmark in the upper-right area, clearly separated from the hero image and held as a clean brand anchor against the white space. | +| Text↔photo relation | `beside` (`asset_0002` → top-right) | +| Visual flow | The eye enters on the bold red hero at left, moves diagonally upward to the yellow wordmark at right, then catches the holiday ribbon as a linking accent across the hero edge. | +| Whitespace | Keep the right half mostly open and airy so the logo has room to breathe; let the blank white canvas function as premium retail negative space. | + +### Concept 2 — "Right Split Feature" + +| Field | Value | +|---|---| +| Focal element | `asset_0000` | +| Focal placement | Place the girl-with-gift photo on the right side of the banner, with the red image acting like a strong feature panel that slightly overlaps the visual center. | +| Text placement | Position the SAGANO GADGETS wordmark in the upper-left region, making the brand read first before the eye lands on the hero image. | +| Text↔photo relation | `beside` (`asset_0002` → top-left) | +| Visual flow | The composition should read left-to-right: brand first, then a short cross-canvas move into the hero, with the ribbon adding a festive sweep that reinforces the transition. | +| Whitespace | Leave generous open space beneath the logo and around the left side so the layout feels breathable and modern rather than crowded. | + +### Concept 3 — "Center Pop Layout" + +| Field | Value | +|---|---| +| Focal element | `asset_0000` | +| Focal placement | Place the girl-with-gift photo near the center-left, large enough to dominate the middle band of the banner while still leaving a strong open margin on one side. | +| Text placement | Set the SAGANO GADGETS wordmark in the lower-right area, turning it into a signature tag that anchors the composition without competing with the hero face. | +| Text↔photo relation | `below` (`asset_0002` → bottom-right) | +| Visual flow | The viewer meets the central hero first, then drops toward the lower-right brand signature, while the ribbon can arc around the hero to create a gentle festive loop. | +| Whitespace | Preserve broad white margins on the top and one outer side so the hero feels spotlighted and the banner retains a polished, minimal retail feel. | + +--- + +## 6. Coordinate Mapper output (×3) + +Each concept is compiled independently into absolute pixel coordinates on the +851 × 315 canvas (one Coordinate Mapper call per concept; elements listed in +z-order). + +### Candidate 1 ← Concept "Left Hero Banner" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0000` (hero photo) | 18 | 35 | 430 | 287 | 1 | — | +| `asset_0001` (soft panel) | 370 | 198 | 100 | 109 | 1 | — | +| `asset_0003` (ribbon) | 310 | 118 | 165 | 154 | 2 | — | +| `asset_0002` (wordmark) | 520 | 42 | 284 | 133 | 3 | Arial 58 px, weight 700, `#F2D21B`, left-aligned | + +### Candidate 2 ← Concept "Right Split Feature" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0001` (soft panel) | 610 | 74 | 120 | 131 | 1 | — | +| `asset_0000` (hero photo) | 403 | 36 | 378 | 252 | 2 | — | +| `asset_0002` (wordmark) | 42 | 33 | 288 | 134 | 3 | rendered as supplied text bitmap | +| `asset_0003` (ribbon) | 333 | 18 | 271 | 253 | 4 | — | + +### Candidate 3 ← Concept "Center Pop Layout" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0001` (soft panel) | 472 | 28 | 250 | 273 | 1 | — | +| `asset_0003` (ribbon) | 318 | 14 | 188 | 175 | 2 | — | +| `asset_0000` (hero photo) | 84 | 50 | 340 | 227 | 3 | — | +| `asset_0002` (wordmark) | 509 | 231 | 300 | 140 | 4 | Arial 48 px, bold, `#F4C542`, left-aligned | + +All rotations are 0°. Each candidate places all four assets exactly once, as +required by the Design Spec constraints. + +--- + +## 7. Quality Checker results + +The deterministic Quality Checker validates every candidate against the Design +Spec and the geometric/typographic rule set. Completeness is the fraction of +required assets actually placed. + +| Candidate | Completeness | Passed | Violations | +|---|---:|:---:|---| +| `r0_candidate_01` | 1.0 | ✗ | `out_of_bounds: top+height=322 > canvas.height=315` | +| `r0_candidate_02` | 1.0 | **✓** | *(none)* | +| `r0_candidate_03` | 1.0 | ✗ | `out_of_bounds: top+height=371 > canvas.height=315` | + +Candidates 1 and 3 each let one element overrun the bottom canvas edge +(candidate 1: the hero photo by 7 px; candidate 3: the wordmark by 56 px). +Candidate 2 is fully compliant. QC verdicts are attached to the candidate +bundle that accompanies the render set. + +--- + +## 8. The three rendered candidates + +### Candidate 1 — "Left Hero Banner" (QC: 1 violation) + +![Candidate 1](images/r0_candidate_01.png) + +### Candidate 2 — "Right Split Feature" (QC: pass) + +![Candidate 2](images/r0_candidate_02.png) + +### Candidate 3 — "Center Pop Layout" (QC: 1 violation) + +![Candidate 3](images/r0_candidate_03.png) + +--- + +## 9. Internal Judge: final selection + +Judge-Select receives the three rendered candidates as images (attachment +order matching the candidate list) and must produce a strict ranking with +exactly one winner (`a3.judge-select-result.v1`): + +```json +{ + "schema_version": "a3.judge-select-result.v1", + "ranking": ["r0_candidate_02", "r0_candidate_01", "r0_candidate_03"], + "selected_candidate_id": "r0_candidate_02" +} +``` + +**Final output: `r0_candidate_02` ("Right Split Feature").** The judge's +visual ranking independently agrees with the Quality Checker: the only +QC-clean candidate is ranked first, while candidate 3 — whose wordmark is +visibly clipped at the bottom edge — is ranked last. The L0 loop then stops +(`stop_reason: l0_unconditional_stop`) and candidate 2 is emitted as the final +design. + +--- + +## Appendix: per-stage cost and latency + +| Stage | Calls | Prompt tokens | Completion tokens | Cost (USD) | Time (s) | +|---|---:|---:|---:|---:|---:| +| Analyst (Background Analyzer + Design Spec) | 1 | 1,707 | 640 | 0.0042 | 6.1 | +| Asset Planner (Layout Tree) | 1 | 2,045 | 456 | 0.0036 | 3.1 | +| Composition Director (3 concepts) | 1 | 2,729 | 648 | 0.0050 | 5.5 | +| Coordinate Mapper | 3 | 7,178 | 576 | 0.0080 | 5.7 | +| Internal Judge (select) | 1 | 1,616 | 47 | 0.0014 | 1.6 | +| **Total** | **7** | **15,275** | **2,367** | **$0.0301** | **22.0** | + +Renderer and Quality Checker are deterministic (no LLM calls, no cost). diff --git a/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH_2.md b/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH_2.md new file mode 100644 index 000000000..f9c83e6b9 --- /dev/null +++ b/layout_agent/output2/step98_a3_walkthrough/A3_PIPELINE_WALKTHROUGH_2.md @@ -0,0 +1,340 @@ +# A3 Pipeline Walkthrough #2 — Sample with a Real Photographic Background and a Non-Trivial Layout Tree + +This is the companion walkthrough to `A3_PIPELINE_WALKTHROUGH.md`. The first +document traced a blank-canvas sample; this one traces a sample chosen to +exercise the remaining structural features of the A3 architecture: + +1. a **real background image** (not blank, not a solid fill), +2. a background with a **recognizable subject and quiet/whitespace regions**, +3. a layout tree with **at least one group containing two or more assets**, and +4. explicit **parent–child dependencies** between assets. + +As before, every output is reproduced verbatim from the persisted run +directory of the full Crello test batch +(`runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1`); nothing was re-generated +or edited for presentation. + +| Provenance | Value | +|---|---| +| Sample ID | `58ac638c95a7a863ddcc7c2b` (Crello test split) | +| Design title | *Softest Pillows Ad with Tender Dandelion Seeds* | +| Canvas | 600 × 200 px (leaderboard-banner format) | +| Background | Real photographic background (`asset_0000`, macro dandelion seed heads) | +| Foreground assets | 6 (3 raster decorative panels + 3 text bitmaps) | +| Pipeline configuration | Tree arm **T2** (model-predicted layout tree), loop **L0** (single pass, no revision) | +| Model (all stages, frozen) | `gpt-5.4-mini-2026-03-17` | +| LLM calls | 7 (Analyst 1, Asset Planner 1, Composition Director 1, Coordinate Mapper 3, Internal Judge 1) | +| Total cost / wall time | $0.0252 / 27.1 s (sum of stage calls) | + +Pipeline order: **Inputs → Background Analyzer → Design Spec → Layout Tree → +Composition Concepts (×3) → Coordinate Mapper (×3) → Renderer (×3) → Quality +Checker (×3) → Internal Judge (select 1 of 3)**. The Background Analyzer output +and the Design Spec are two sections of the same Analyst stage response. + +--- + +## 1. Inputs: background, foreground assets, and user brief + +### 1.1 Background + +Unlike the first walkthrough sample, this design ships with a genuine +photographic base layer: a macro shot of dandelion seed heads. The image has a +clearly recognizable subject (the large central and right seed heads with +radiating filaments) and naturally quiet regions (the washed-out, bokeh-soft +left and lower-left area) — exactly the structure the Background Analyzer is +designed to characterize. + +![Background overview](images2/background_overview.png) + +### 1.2 Foreground assets + +The Analyst receives the six placeable foreground assets as a uniform contact +sheet (original placement and scale deliberately erased; printed labels are +the stable asset IDs): + +![Foreground asset contact sheet](images2/asset_contact_sheet_01.png) + +| Asset ID | Media type | Content | +|---|---|---| +| `asset_0001` | raster | Translucent pale horizontal panel (soft texture strip) | +| `asset_0002` | raster | Translucent pale horizontal panel (soft texture strip) | +| `asset_0003` | raster | Translucent pale horizontal panel (soft texture strip) | +| `asset_0004` | text bitmap | `EVER` (slender blue serif) | +| `asset_0005` | text bitmap | `pillows` (flowing blue script) | +| `asset_0006` | text bitmap | `SOFTEST` (pale blue serif, uppercase) | + +### 1.3 User brief + +> Create a 600x200 foreground layout for the theme 'Softest Pillows Ad with +> Tender Dandelion Seeds'. Use every provided placeable foreground asset +> exactly once. The theme is context, not visible copy. + +--- + +## 2. Background Analyzer output + +The Analyst's `background_summary` for the photographic background (verbatim): + +> The background is a soft, airy macro-style botanical scene with pale beige +> dandelion seed heads and fine filaments against a bright, washed-out cream +> and sky-tinted backdrop. Saliency is low and diffuse, with the central seed +> head and thin radiating strands providing the main visual focus while the +> edges stay quiet and atmospheric. The palette is restrained and tender: +> ivory, warm beige, light tan, faint gold-brown, and hints of icy blue in the +> blur. + +Three properties of this analysis matter downstream: it identifies the **main +subject** (central seed head and filaments), the **quiet regions** (edges), +and the **background palette** (ivory/beige/icy blue) — which the Composition +Director converts into edge-biased text placement and the Coordinate Mapper +converts into soft blue typography that harmonizes with the backdrop. + +--- + +## 3. Design Spec + +**Design intent** + +> Create a gentle luxury ad composition that feels like the softness of a +> pillow and the delicacy of dandelion fluff. The foreground should read as a +> light, elegant typographic arrangement paired with subtle decorative +> imagery, reinforcing tenderness, comfort, and airy softness without adding +> new copy beyond the provided words. + +**Style keywords** — `soft`, `airy`, `minimal`, `gentle`, `pastel`, `luxury`, +`botanical`, `delicate`, `dreamy`, `clean` + +**Per-asset specification** + +| Asset | Semantic type | Semantic role | Constraints | +|---|---|---|---| +| `asset_0001` | `decorative_image` | Supporting decorative texture that amplifies delicacy and lightness | Use exactly once as a foreground decorative element; keep visually subordinate to typography; do not treat as a background image | +| `asset_0002` | `decorative_image` | Supporting decorative texture for softness and depth | Use exactly once; keep subtle and non-dominant | +| `asset_0003` | `decorative_image` | Supporting decorative texture that adds calm visual breathing room | Use exactly once; maintain a quiet, delicate presence | +| `asset_0004` | `subtitle` | Typographic word fragment contributing to the phrase structure and rhythmic emphasis (`EVER`) | Use exactly once as provided; preserve text content exactly; treat as typographic element, not a logo | +| `asset_0005` | `title` | Primary product-themed headline fragment conveying comfort and plushness (`pillows`) | Use exactly once; preserve the lowercase content exactly; keep the script prominent and tender | +| `asset_0006` | `title` | Main headline word emphasizing extreme softness and setting the emotional tone (`SOFTEST`) | Use exactly once; preserve the uppercase content exactly; central soft-selling message | + +Note how the Analyst recovers the intended **reading phrase** from three +separate text bitmaps: `SOFTEST` + `pillows` + `EVER`. + +--- + +## 4. Layout Tree (Asset Planner, T2 arm) + +This sample is the reason it was selected: the predicted tree contains **two +multi-member groups** (three assets each) and a **three-level parent–child +chain**, rather than the flat two-singleton structure of simpler samples. + +``` +root +└── asset_0006 "SOFTEST" title [group_typography_main] prio 0, conf 0.98 + ├── asset_0005 "pillows" title — sequence_after → asset_0006 prio 1, conf 0.95 + │ └── asset_0004 "EVER" subtitle — sequence_after → asset_0005 prio 2, conf 0.93 + ├── asset_0001 decorative_image — decorates → asset_0006 prio 3, conf 0.92 + ├── asset_0002 decorative_image — decorates → asset_0006 prio 4, conf 0.91 + └── asset_0003 decorative_image — decorates → asset_0006 prio 5, conf 0.91 +``` + +Two structural facts to highlight for the paper: + +- **Multi-member groups.** `group_typography_main` ("Main Headline Cluster", + confidence 0.98) binds `asset_0006`, `asset_0005`, `asset_0004`; + `group_decorative_soft` ("Soft Atmospheric Decoration", confidence 0.93) + binds the three texture panels. Group membership tells the mapper which + elements must be laid out as coherent clusters. +- **Parent–child dependencies.** The `sequence_after` chain + `SOFTEST → pillows → EVER` encodes the reading order of the three-word + phrase, and all three decorative panels attach to the headline via + `decorates` — five non-root edges in total. + +Full artifact: + +```json +{ + "schema_version": "a3.layout-tree.v1", + "root_label": "foreground_layout", + "source": "predicted", + "groups": [ + {"group_id": "group_typography_main", "label": "Main Headline Cluster", "member_ids": ["asset_0006", "asset_0005", "asset_0004"], "ordering_priority": 0, "confidence": 0.98}, + {"group_id": "group_decorative_soft", "label": "Soft Atmospheric Decoration", "member_ids": ["asset_0001", "asset_0002", "asset_0003"], "ordering_priority": 1, "confidence": 0.93} + ], + "nodes": [ + {"asset_id": "asset_0006", "parent_id": "root", "relation_to_parent": "root", "semantic_type": "title", "group_id": "group_typography_main", "ordering_priority": 0, "confidence": 0.98}, + {"asset_id": "asset_0005", "parent_id": "asset_0006", "relation_to_parent": "sequence_after", "semantic_type": "title", "group_id": "group_typography_main", "ordering_priority": 1, "confidence": 0.95}, + {"asset_id": "asset_0004", "parent_id": "asset_0005", "relation_to_parent": "sequence_after", "semantic_type": "subtitle", "group_id": "group_typography_main", "ordering_priority": 2, "confidence": 0.93}, + {"asset_id": "asset_0001", "parent_id": "asset_0006", "relation_to_parent": "decorates", "semantic_type": "decorative_image", "group_id": "group_decorative_soft", "ordering_priority": 3, "confidence": 0.92}, + {"asset_id": "asset_0002", "parent_id": "asset_0006", "relation_to_parent": "decorates", "semantic_type": "decorative_image", "group_id": "group_decorative_soft", "ordering_priority": 4, "confidence": 0.91}, + {"asset_id": "asset_0003", "parent_id": "asset_0006", "relation_to_parent": "decorates", "semantic_type": "decorative_image", "group_id": "group_decorative_soft", "ordering_priority": 5, "confidence": 0.91} + ] +} +``` + +--- + +## 5. Composition Concepts (Composition Director, ×3) + +### Concept 1 — "Left Air Drift" + +| Field | Value | +|---|---| +| Focal element | `asset_0006` ("SOFTEST") | +| Focal placement | Place the main headline word as a calm anchor in the left-center portion of the canvas, letting it read first against the softer open area. | +| Text placement | Stack the remaining typography nearby in a compact vertical cluster that stays on the left half, with the script word flowing beneath the serif headline and the slender subtitle finishing close by. | +| Text↔photo relation | `beside` (all three words → left-center) | +| Visual flow | The eye enters from the bright left edge, settles on the headline cluster, then drifts gently toward the airy botanical detail toward the middle and right. | +| Whitespace | Preserve generous open space on the right side so the dandelion background can breathe and the ad feels featherlight. | + +Note that the Director places the whole text cluster in the **left-center +open area** — the quiet region the Background Analyzer identified — leaving +the recognizable seed heads unobstructed. + +### Concept 2 — "Center Overlap Bloom" + +| Field | Value | +|---|---| +| Focal element | `asset_0005` ("pillows") | +| Focal placement | Let the flowing script word sit across the central zone as the most expressive element, lightly overlapping the soft botanical atmosphere without overpowering it. | +| Text placement | Arrange the serif headline above and the slender subtitle just below or adjacent, forming a compact central stack that feels like a luxury label suspended in air. | +| Text↔photo relation | `overlay` (all three words → center) | +| Visual flow | The eye lands in the center, reads the stacked words top to bottom, and then gently registers the surrounding seed-head filaments as a halo of softness. | +| Whitespace | Keep the outer edges especially quiet so the center feels floated and luminous, with negative space acting like a cushion around the type. | + +### Concept 3 — "Right Edge Serenity" + +| Field | Value | +|---|---| +| Focal element | `asset_0004` ("EVER") | +| Focal placement | Place the slender subtitle word as a refined accent near the upper-right area, allowing it to act like a quiet finishing note against the pale backdrop. | +| Text placement | Set the main headline and script word lower and slightly left of it, creating a stepped arrangement that stretches diagonally across the right half of the canvas. | +| Text↔photo relation | `above` (`asset_0004` → upper-right; `asset_0005`, `asset_0006` → lower-right) | +| Visual flow | The viewer reads from the larger words in the lower-left-to-center zone upward toward the smaller subtitle near the upper-right, mirroring the lightness of drifting seed fluff. | +| Whitespace | Leave a broad expanse of calm space on the left and upper center so the composition feels airy, expensive, and uncluttered. | + +--- + +## 6. Coordinate Mapper output (×3) + +Absolute pixel coordinates on the 600 × 200 canvas (elements in z-order; all +rotations 0°; each candidate places all six foreground assets exactly once). + +### Candidate 1 ← Concept "Left Air Drift" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0001` (panel) | 235 | 18 | 142 | 19 | 1 | — | +| `asset_0002` (panel) | 404 | 6 | 151 | 21 | 1 | — | +| `asset_0003` (panel) | 482 | 52 | 96 | 13 | 1 | — | +| `asset_0006` "SOFTEST" | 48 | 46 | 173 | 31 | 3 | serif 28 px, regular, `#BFD9EA` | +| `asset_0005` "pillows" | 62 | 79 | 128 | 51 | 4 | script 34 px, regular, `#D7EAF5` | +| `asset_0004` "EVER" | 56 | 132 | 148 | 41 | 5 | sans-serif 24 px, weight 300, `#DCEAF4` | + +The `sequence_after` chain from the layout tree materializes as a top-to-bottom +stack at nearly identical x-positions (48/62/56): the phrase reads +SOFTEST → pillows → EVER in order. + +### Candidate 2 ← Concept "Center Overlap Bloom" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0001` (panel) | 12 | 8 | 120 | 16 | 1 | — | +| `asset_0002` (panel) | 436 | 6 | 132 | 18 | 1 | — | +| `asset_0003` (panel) | 215 | 148 | 170 | 23 | 1 | — | +| `asset_0006` "SOFTEST" | 150 | 70 | 300 | 54 | 3 | serif 46 px, weight 300, `#7AA7C7`, centered | +| `asset_0005` "pillows" | 167 | 89 | 266 | 106 | 4 | cursive 56 px, weight 400, `#8FB8D8`, centered | +| `asset_0004` "EVER" | 195 | 152 | 210 | 58 | 5 | serif 32 px, weight 300, `#9AB8D0`, centered | + +### Candidate 3 ← Concept "Right Edge Serenity" + +| Element | left | top | width | height | z | Typography | +|---|---:|---:|---:|---:|---:|---| +| `asset_0001` (panel) | 17 | 10 | 154 | 21 | 1 | — | +| `asset_0002` (panel) | 70 | 2 | 130 | 18 | 1 | — | +| `asset_0003` (panel) | 0 | 78 | 146 | 20 | 1 | — | +| `asset_0006` "SOFTEST" | 306 | 120 | 188 | 34 | 3 | serif 30 px, regular, `#5E86A8` | +| `asset_0005` "pillows" | 381 | 151 | 172 | 69 | 4 | script 42 px, regular, `#6D97B8` | +| `asset_0004` "EVER" | 468 | 64 | 98 | 27 | 5 | serif 22 px, weight 300, `#86A8C3` | + +--- + +## 7. Quality Checker results + +| Candidate | Completeness | Passed | Violations | +|---|---:|:---:|---| +| `r0_candidate_01` | 1.0 | ✗ | `missing_element: asset_0000`†; `low_text_contrast` on `asset_0004/0005/0006` vs `canvas_bg=#FFFFFF`† | +| `r0_candidate_02` | 1.0 | ✗ | `missing_element: asset_0000`†; **`out_of_bounds: top+height=210 > canvas.height=200`**; `low_text_contrast` ×3† | +| `r0_candidate_03` | 1.0 | ✗ | `missing_element: asset_0000`†; **`out_of_bounds: top+height=220 > canvas.height=200`**; **`title_peripheral: title 'asset_0005' center_y=0.93 > 0.85`**; `low_text_contrast` ×3† | + +† **Protocol artifacts on background-bearing samples (honest disclosure).** +Two violation classes fire on *every* candidate of *every* sample that has a +real background asset, and carry no discriminative signal in this QC version: +(a) `missing_element: asset_0000` — the background layer is composited by the +renderer, never placed by the Coordinate Mapper, but the checker still scans +the DesignSpec asset list; (b) `low_text_contrast … vs canvas_bg=#FFFFFF` — +the contrast rule tests against a default white canvas rather than the actual +photographic background (the pale-blue-on-white readings of 1.2–3.9 do not +describe the rendered result, where the same text sits on darker botanical +imagery). + +The **discriminating** violations are highlighted in bold: candidate 2's +"EVER" block overruns the bottom edge by 10 px, and candidate 3 both overruns +by 20 px and drops the "pillows" title into the peripheral zone +(center_y = 0.93). Candidate 1 carries only the two artifact classes. + +Because no candidate formally passed, the bundle records the degradation +`all_qc_failed`, and per L0 policy the Internal Judge still selects among all +three candidates. + +--- + +## 8. The three rendered candidates + +### Candidate 1 — "Left Air Drift" (QC: protocol artifacts only) + +![Candidate 1](images2/r0_candidate_01.png) + +### Candidate 2 — "Center Overlap Bloom" (QC: out-of-bounds) + +![Candidate 2](images2/r0_candidate_02.png) + +### Candidate 3 — "Right Edge Serenity" (QC: out-of-bounds + peripheral title) + +![Candidate 3](images2/r0_candidate_03.png) + +--- + +## 9. Internal Judge: final selection + +```json +{ + "schema_version": "a3.judge-select-result.v1", + "ranking": ["r0_candidate_01", "r0_candidate_03", "r0_candidate_02"], + "selected_candidate_id": "r0_candidate_01" +} +``` + +**Final output: `r0_candidate_01` ("Left Air Drift").** The judge — which sees +only the rendered images — ranks first the one candidate whose only QC entries +are the two protocol artifact classes, and ranks last candidate 2, whose +centered script overlaps the headline and whose subtitle is clipped at the +bottom edge. The selection also validates the whole chain of upstream +decisions on this sample: the Background Analyzer's quiet-region reading (left +edge), the Director's Concept 1 placement into that region, and the Mapper's +vertical realization of the `SOFTEST → pillows → EVER` sequence chain all +survive intact in the winning render, with the dandelion subject left fully +visible. The L0 loop then stops (`stop_reason: l0_unconditional_stop`). + +--- + +## Appendix: per-stage cost and latency + +| Stage | Calls | Prompt tokens | Completion tokens | Cost (USD) | Time (s) | +|---|---:|---:|---:|---:|---:| +| Analyst (Background Analyzer + Design Spec) | 1 | 1,946 | 761 | 0.0049 | 7.4 | +| Asset Planner (Layout Tree) | 1 | 2,214 | 549 | 0.0041 | 3.6 | +| Composition Director (3 concepts) | 1 | 2,946 | 664 | 0.0052 | 6.1 | +| Coordinate Mapper | 3 | 7,581 | 881 | 0.0097 | 8.0 | +| Internal Judge (select) | 1 | 1,568 | 41 | 0.0014 | 2.1 | +| **Total** | **7** | **16,255** | **2,896** | **$0.0252** | **27.1** | + +Renderer and Quality Checker are deterministic (no LLM calls, no cost). diff --git a/layout_agent/output2/step98_a3_walkthrough/images/asset_contact_sheet_01.png b/layout_agent/output2/step98_a3_walkthrough/images/asset_contact_sheet_01.png new file mode 100644 index 000000000..0a8f9469d Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/asset_contact_sheet_01.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/background_overview.png b/layout_agent/output2/step98_a3_walkthrough/images/background_overview.png new file mode 100644 index 000000000..4195eefe9 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/background_overview.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0000.png b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0000.png new file mode 100644 index 000000000..c3817db78 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0000.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0001.png b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0001.png new file mode 100644 index 000000000..d3c9ea60a Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0001.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0002.png b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0002.png new file mode 100644 index 000000000..59780b80e Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0002.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0003.png b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0003.png new file mode 100644 index 000000000..942297000 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/input_asset_0003.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_01.png b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_01.png new file mode 100644 index 000000000..b2596112a Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_01.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_02.png b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_02.png new file mode 100644 index 000000000..111cb22c7 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_02.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_03.png b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_03.png new file mode 100644 index 000000000..46ee1c023 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images/r0_candidate_03.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images2/asset_contact_sheet_01.png b/layout_agent/output2/step98_a3_walkthrough/images2/asset_contact_sheet_01.png new file mode 100644 index 000000000..2a90efcba Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images2/asset_contact_sheet_01.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images2/background_overview.png b/layout_agent/output2/step98_a3_walkthrough/images2/background_overview.png new file mode 100644 index 000000000..2b81cc24b Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images2/background_overview.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_01.png b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_01.png new file mode 100644 index 000000000..1dab112ab Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_01.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_02.png b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_02.png new file mode 100644 index 000000000..2594c0f48 Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_02.png differ diff --git a/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_03.png b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_03.png new file mode 100644 index 000000000..d4956b71a Binary files /dev/null and b/layout_agent/output2/step98_a3_walkthrough/images2/r0_candidate_03.png differ diff --git a/layout_agent/prepare_full_crello.py b/layout_agent/prepare_full_crello.py new file mode 100644 index 000000000..6244d62f7 --- /dev/null +++ b/layout_agent/prepare_full_crello.py @@ -0,0 +1,1216 @@ +"""Prepare the pinned official Crello test split for batched A3 evaluation. + +This tool has no OpenAI client and no paid execution path. Network and +dataset-byte operations are separately gated: + +* ``snapshot-ids --allow-network`` projects only the pinned test ``id`` column + and atomically publishes the ordered-ID snapshot. +* ``materialize --allow-dataset-download`` streams the pinned test rows and + atomically creates only missing cache directories while publishing missing + text-bitmap sidecars without changing ``meta.json``. + +``plan``, ``build-batches`` and ``verify-batches`` are local-only. Every +directory artifact is published with Linux ``renameat2(RENAME_NOREPLACE)``; +no completed cache, snapshot, batch bundle, run, or evaluation may be replaced. +""" +from __future__ import annotations + +import argparse +import ctypes +import errno +import hashlib +import json +import os +import random +import re +import shutil +import sys +import tempfile +from pathlib import Path +from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional, Sequence, Tuple + +from PIL import Image + + +REPO_ROOT = Path(__file__).resolve().parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.tools.pfull_preprocessor import ( # noqa: E402 + A3_TEXT_BITMAP_SIDECAR_VERSION as TEXT_BITMAP_SIDECAR_VERSION, +) + +DATASET = "cyberagent/crello" +DATASET_REVISION = "7997e2f434ee4aa73cf4cdf22c5954cb175872e1" +DATASET_LAST_MODIFIED = "2026-02-27T02:45:00Z" +SPLIT = "test" +EXPECTED_SPLIT_COUNTS = {"train": 19479, "validation": 1852, "test": 1971} +EXPECTED_TEST_COUNT = EXPECTED_SPLIT_COUNTS[SPLIT] +TEST_PARQUET_BYTES = 1_551_056_855 +MIN_FREE_BYTES = 80 * 1024**3 +BATCH_SIZE = 100 +BATCH_SEED = 42 +EXPECTED_EXISTING_IDS_SHA256 = ( + "0e5401fb45cb83c573c82be458508e6ace003482b027b667556dfd876aed052c" +) + +SNAPSHOT_SCHEMA_VERSION = "a3.crello-official-test-snapshot.v1" +BATCH_SCHEMA_VERSION = "a3.crello-official-test-batches.v1" +CACHE_PROVENANCE_VERSION = "a3.crello-cache-provenance.v1" +TEXT_BITMAP_SIDECAR_FILENAME = "a3_text_bitmaps.json" +CACHE_PROVENANCE_FILENAME = "a3_cache_provenance.json" + +DEFAULT_CRELLO_ROOT = REPO_ROOT / "layout_agent" / "output" +DEFAULT_EXISTING_IDS = REPO_ROOT / "layout_agent" / "sample_ids" / "a3_general_n100.json" +DEFAULT_SNAPSHOT_DIR = ( + REPO_ROOT / "layout_agent" / "sample_ids" / "a3_crello_test_n1971_v1" +) +DEFAULT_BATCH_DIR = ( + REPO_ROOT / "layout_agent" / "sample_ids" / "a3_crello_test_batches_v1" +) +DEFAULT_CONFIG = REPO_ROOT / "layout_agent" / "configs" / "a3_crello_test_l0_v1.json" +DEFAULT_RUNS_ROOT = REPO_ROOT / "layout_agent" / "runs" / "a3" +DEFAULT_EVALUATIONS_ROOT = ( + REPO_ROOT / "layout_agent" / "evaluations" / "a3-sega" / "a3.sega-pku-protocol.v1" +) + +COMPLETED_ARTIFACTS = { + "sega_manifest": ( + REPO_ROOT + / "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/" + "a3-general-n100-sega-v1/evaluation_manifest.json", + "ee6f4d3284c91a0d8c5346b42d7e74f8640a63ddf77a97800931212a5d56086e", + ), + "sega_aggregate": ( + REPO_ROOT + / "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/" + "a3-general-n100-sega-v1/aggregate.json", + "dc5dfe2446933df717b21987258beb933d702add6a5416c4e3819f72c66bf5ae", + ), + "sega_per_sample": ( + REPO_ROOT + / "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/" + "a3-general-n100-sega-v1/per_sample.jsonl", + "a72c699ff4eac61022c8cb12d4705afb845a80699c76fbe4923465827e663f25", + ), +} + +SAMPLE_ID_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{0,255}$") +REQUIRED_ROW_ARRAYS = ( + "type", + "image", + "text", + "left", + "top", + "width", + "height", +) + + +class FullCrelloPreparationError(RuntimeError): + """The pinned full-test preparation contract was violated.""" + + +def _pretty_json_bytes(value: Any) -> bytes: + return ( + json.dumps( + value, + ensure_ascii=False, + indent=2, + sort_keys=True, + allow_nan=False, + ) + + "\n" + ).encode("utf-8") + + +def _canonical_json_bytes(value: Any) -> bytes: + return ( + json.dumps( + value, + ensure_ascii=False, + sort_keys=True, + separators=(",", ":"), + allow_nan=False, + ) + + "\n" + ).encode("utf-8") + + +def _sha256_bytes(payload: bytes) -> str: + return hashlib.sha256(payload).hexdigest() + + +def _sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _strict_json(path: Path) -> Any: + return json.loads( + path.read_text(encoding="utf-8"), + parse_constant=lambda value: (_ for _ in ()).throw( + ValueError(f"non-finite JSON constant {value}") + ), + ) + + +def _path_lexists(path: Path) -> bool: + return os.path.lexists(os.fspath(path)) + + +def _write_new(path: Path, payload: bytes) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("xb") as handle: + handle.write(payload) + handle.flush() + os.fsync(handle.fileno()) + + +def _write_once_or_verify(path: Path, payload: bytes) -> str: + """Publish one file without replacement; identical reruns are verification.""" + path.parent.mkdir(parents=True, exist_ok=True) + temp = path.with_name(f".{path.name}.{os.getpid()}.tmp") + try: + _write_new(temp, payload) + try: + os.link(temp, path) + except FileExistsError: + if path.read_bytes() != payload: + raise FullCrelloPreparationError( + f"refusing to overwrite different artifact: {path}" + ) + return "verified-existing" + return "created" + finally: + temp.unlink(missing_ok=True) + + +def _rename_directory_noreplace(source: Path, destination: Path) -> None: + """Atomically publish a directory without replacing any existing path.""" + libc = ctypes.CDLL(None, use_errno=True) + renameat2 = getattr(libc, "renameat2", None) + if renameat2 is None: + raise FullCrelloPreparationError( + "safe directory publication requires renameat2(RENAME_NOREPLACE)" + ) + renameat2.argtypes = [ + ctypes.c_int, + ctypes.c_char_p, + ctypes.c_int, + ctypes.c_char_p, + ctypes.c_uint, + ] + renameat2.restype = ctypes.c_int + result = renameat2( + -100, + os.fsencode(source), + -100, + os.fsencode(destination), + 1, + ) + if result == 0: + return + error_number = ctypes.get_errno() + if error_number == errno.EEXIST: + raise FullCrelloPreparationError(f"destination already exists: {destination}") + raise OSError(error_number, os.strerror(error_number), os.fspath(destination)) + + +def _publish_directory( + destination: Path, + *, + build: Callable[[Path], None], + verify: Callable[[Path], Any], +) -> Tuple[str, Any]: + """Build, round-trip verify, and atomically publish a complete directory.""" + destination = destination.resolve() + destination.parent.mkdir(parents=True, exist_ok=True) + if _path_lexists(destination): + return "verified-existing", verify(destination) + staging: Optional[Path] = None + try: + staging = Path( + tempfile.mkdtemp( + prefix=f".{destination.name}.staging-", + dir=str(destination.parent), + ) + ) + build(staging) + result = verify(staging) + _rename_directory_noreplace(staging, destination) + staging = None + return "created", verify(destination) + finally: + if staging is not None and staging.exists(): + shutil.rmtree(staging) + + +def _validate_ids(ids: Sequence[str], *, expected_count: Optional[int] = None) -> List[str]: + values = list(ids) + if expected_count is not None and len(values) != expected_count: + raise FullCrelloPreparationError( + f"expected {expected_count} IDs, found {len(values)}" + ) + if not values: + raise FullCrelloPreparationError("ID snapshot cannot be empty") + if len(values) != len(set(values)): + raise FullCrelloPreparationError("ID snapshot contains duplicates") + invalid = [ + value + for value in values + if not isinstance(value, str) + or not SAMPLE_ID_RE.fullmatch(value) + or value in {".", ".."} + ] + if invalid: + raise FullCrelloPreparationError(f"unsafe sample IDs: {invalid[:5]}") + return values + + +def _load_ids(path: Path, *, expected_count: Optional[int] = None) -> List[str]: + payload = _strict_json(path) + if not isinstance(payload, list) or not all(isinstance(item, str) for item in payload): + raise FullCrelloPreparationError(f"IDs file must be a JSON string array: {path}") + return _validate_ids(payload, expected_count=expected_count) + + +def _display_path(path: Path) -> str: + resolved = path.resolve() + try: + return str(resolved.relative_to(REPO_ROOT)) + except ValueError: + return str(resolved) + + +def verify_id_snapshot( + snapshot_dir: Path, + *, + expected_count: int = EXPECTED_TEST_COUNT, + revision: str = DATASET_REVISION, +) -> Dict[str, Any]: + ids_path = snapshot_dir / "ordered_ids.json" + provenance_path = snapshot_dir / "dataset_provenance.json" + ids = _load_ids(ids_path, expected_count=expected_count) + provenance = _strict_json(provenance_path) + if not isinstance(provenance, dict): + raise FullCrelloPreparationError("dataset provenance must be an object") + expected = { + "schema_version": SNAPSHOT_SCHEMA_VERSION, + "dataset": DATASET, + "revision": revision, + "split": SPLIT, + "split_counts": EXPECTED_SPLIT_COUNTS, + "count": expected_count, + "ordered_ids_file_sha256": _sha256_file(ids_path), + "ordered_ids_canonical_sha256": _sha256_bytes(_canonical_json_bytes(ids)), + } + for key, value in expected.items(): + if provenance.get(key) != value: + raise FullCrelloPreparationError( + f"snapshot provenance mismatch for {key}: {provenance.get(key)!r} != {value!r}" + ) + return {"count": len(ids), "ids": ids, "provenance": provenance} + + +def snapshot_ordered_ids( + snapshot_dir: Path, + *, + load_dataset_fn: Optional[Callable[..., Any]] = None, + expected_count: int = EXPECTED_TEST_COUNT, + revision: str = DATASET_REVISION, +) -> Tuple[str, Dict[str, Any]]: + """Project and atomically freeze the ordered ID column at one source SHA.""" + if _path_lexists(snapshot_dir): + return "verified-existing", verify_id_snapshot( + snapshot_dir, expected_count=expected_count, revision=revision + ) + if load_dataset_fn is None: + from datasets import load_dataset as load_dataset_fn # type: ignore[no-redef] + + dataset = load_dataset_fn( + DATASET, + split=SPLIT, + streaming=True, + revision=revision, + ) + if not hasattr(dataset, "select_columns"): + raise FullCrelloPreparationError("streaming dataset lacks select_columns") + projected = dataset.select_columns(["id"]) + ids = _validate_ids( + [str(row["id"]) for row in projected], + expected_count=expected_count, + ) + ids_payload = _pretty_json_bytes(ids) + provenance = { + "schema_version": SNAPSHOT_SCHEMA_VERSION, + "dataset": DATASET, + "revision": revision, + "repository_last_modified": DATASET_LAST_MODIFIED, + "split": SPLIT, + "split_counts": EXPECTED_SPLIT_COUNTS, + "count": len(ids), + "ordered_ids_file_sha256": _sha256_bytes(ids_payload), + "ordered_ids_canonical_sha256": _sha256_bytes(_canonical_json_bytes(ids)), + "network_projection": ["id"], + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + + def build(staging: Path) -> None: + _write_new(staging / "ordered_ids.json", ids_payload) + _write_new(staging / "dataset_provenance.json", _pretty_json_bytes(provenance)) + + return _publish_directory( + snapshot_dir, + build=build, + verify=lambda path: verify_id_snapshot( + path, expected_count=expected_count, revision=revision + ), + ) + + +def _validate_row(row: Mapping[str, Any]) -> Tuple[str, int]: + sample_id = str(row.get("id", "")) + _validate_ids([sample_id]) + for name in REQUIRED_ROW_ARRAYS: + if name not in row or not isinstance(row[name], Sequence): + raise FullCrelloPreparationError( + f"row {sample_id} missing sequence field {name}" + ) + count = len(row["type"]) + if count <= 0: + raise FullCrelloPreparationError(f"row {sample_id} has no elements") + mismatched = {name: len(row[name]) for name in REQUIRED_ROW_ARRAYS if len(row[name]) != count} + if mismatched: + raise FullCrelloPreparationError( + f"row {sample_id} array lengths differ from type={count}: {mismatched}" + ) + if int(row.get("length", count)) != count: + raise FullCrelloPreparationError(f"row {sample_id} length field mismatch") + if int(row.get("canvas_width", 0)) <= 0 or int(row.get("canvas_height", 0)) <= 0: + raise FullCrelloPreparationError(f"row {sample_id} has invalid canvas") + return sample_id, count + + +def _save_image_new(image: Image.Image, path: Path, *, image_format: str) -> None: + with path.open("xb") as handle: + image.save(handle, format=image_format) + handle.flush() + os.fsync(handle.fileno()) + + +def _tree_file_snapshot(tree: Path, *, exclude: Iterable[str] = ()) -> List[Dict[str, Any]]: + excluded = set(exclude) + rows: List[Dict[str, Any]] = [] + for path in sorted(tree.rglob("*")): + if path.is_symlink(): + raise FullCrelloPreparationError(f"symlink not allowed in cache: {path}") + if not path.is_file(): + continue + relative = path.relative_to(tree).as_posix() + if relative in excluded: + continue + rows.append( + {"path": relative, "size": path.stat().st_size, "sha256": _sha256_file(path)} + ) + return rows + + +def _verify_cache_tree( + tree: Path, + *, + final_dir: Path, + sample_id: str, + require_provenance: bool, +) -> Dict[str, Any]: + meta_path = tree / "meta.json" + preview_path = tree / "ground_truth_preview.jpg" + if not meta_path.is_file() or not preview_path.is_file(): + raise FullCrelloPreparationError(f"incomplete cache tree for {sample_id}") + meta = _strict_json(meta_path) + if not isinstance(meta, dict) or meta.get("id") != sample_id: + raise FullCrelloPreparationError(f"cache meta ID mismatch for {sample_id}") + elements = meta.get("elements") + if not isinstance(elements, list) or meta.get("n_elements") != len(elements): + raise FullCrelloPreparationError(f"cache element count mismatch for {sample_id}") + for element in elements: + if not isinstance(element, dict): + raise FullCrelloPreparationError(f"non-object cache element for {sample_id}") + asset_ref = element.get("asset_ref") + if not asset_ref: + continue + expected = final_dir / Path(str(asset_ref)).name + if Path(str(asset_ref)) != expected: + raise FullCrelloPreparationError( + f"asset_ref escapes or disagrees with final cache: {asset_ref}" + ) + if not (tree / expected.name).is_file(): + raise FullCrelloPreparationError(f"missing cache asset {expected.name}") + sidecar = _strict_json(tree / TEXT_BITMAP_SIDECAR_FILENAME) + if sidecar.get("version") != TEXT_BITMAP_SIDECAR_VERSION or sidecar.get("sample_id") != sample_id: + raise FullCrelloPreparationError(f"invalid text sidecar for {sample_id}") + bitmaps = sidecar.get("bitmaps") + if not isinstance(bitmaps, dict): + raise FullCrelloPreparationError(f"invalid text bitmap map for {sample_id}") + for filename in bitmaps.values(): + if not isinstance(filename, str) or not (tree / filename).is_file(): + raise FullCrelloPreparationError(f"missing text bitmap for {sample_id}: {filename}") + provenance_path = tree / CACHE_PROVENANCE_FILENAME + if require_provenance: + provenance = _strict_json(provenance_path) + if ( + provenance.get("schema_version") != CACHE_PROVENANCE_VERSION + or provenance.get("sample_id") != sample_id + or provenance.get("dataset_revision") != DATASET_REVISION + ): + raise FullCrelloPreparationError(f"invalid cache provenance for {sample_id}") + actual_files = _tree_file_snapshot( + tree, exclude=(CACHE_PROVENANCE_FILENAME,) + ) + if provenance.get("files") != actual_files: + raise FullCrelloPreparationError( + f"cache file snapshot mismatch for {sample_id}" + ) + if provenance.get("files_snapshot_sha256") != _sha256_bytes( + _canonical_json_bytes(actual_files) + ): + raise FullCrelloPreparationError( + f"cache file snapshot hash mismatch for {sample_id}" + ) + return { + "sample_id": sample_id, + "meta_sha256": _sha256_file(meta_path), + "file_count": len(_tree_file_snapshot(tree)), + } + + +def _verify_existing_text_sidecar(sample_dir: Path, sample_id: str) -> None: + sidecar_path = sample_dir / TEXT_BITMAP_SIDECAR_FILENAME + sidecar = _strict_json(sidecar_path) + if ( + not isinstance(sidecar, dict) + or sidecar.get("version") != TEXT_BITMAP_SIDECAR_VERSION + or sidecar.get("sample_id") != sample_id + or not isinstance(sidecar.get("bitmaps"), dict) + ): + raise FullCrelloPreparationError(f"invalid text sidecar for {sample_id}") + for filename in sidecar["bitmaps"].values(): + if ( + not isinstance(filename, str) + or Path(filename).name != filename + or not (sample_dir / filename).is_file() + ): + raise FullCrelloPreparationError( + f"sidecar bitmap is missing or unsafe for {sample_id}: {filename}" + ) + + +def _build_cache_tree(row: Mapping[str, Any], staging: Path, final_dir: Path) -> None: + sample_id, count = _validate_row(row) + types = row["type"] + images = row["image"] + texts = row["text"] + canvas_width = int(row["canvas_width"]) + canvas_height = int(row["canvas_height"]) + elements: List[Dict[str, Any]] = [] + text_bitmaps: Dict[str, str] = {} + + from layout_agent.output.step27_audit_underlay_assets import _classify_underlay + + for index in range(count): + type_code = int(types[index]) + descriptor: Dict[str, Any] = { + "idx": index, + "type_code": type_code, + "left": float(row["left"][index]), + "top": float(row["top"][index]), + "width": float(row["width"][index]), + "height": float(row["height"][index]), + } + image = images[index] + if type_code == 1: + descriptor["content"] = texts[index] + descriptor["kind"] = "text" + if image is not None: + filename = f"a3_text_{index:04d}.png" + _save_image_new(image.convert("RGBA"), staging / filename, image_format="PNG") + text_bitmaps[str(index)] = filename + elif type_code in (0, 2, 3, 4): + if image is None: + descriptor["kind"] = f"type{type_code}_no_image" + else: + label, signals = _classify_underlay( + image, + descriptor["width"], + descriptor["height"], + canvas_width, + canvas_height, + ) + descriptor["classifier_label"] = label + descriptor["classifier_signals"] = signals + if label == "shape": + filename = f"asset_{index:02d}_underlay.png" + descriptor["kind"] = "underlay" + elif label == "full_canvas": + filename = f"asset_{index:02d}_background.png" + descriptor["kind"] = "background_candidate" + else: + filename = f"asset_{index:02d}_image.png" + descriptor["kind"] = "image" + _save_image_new(image.convert("RGBA"), staging / filename, image_format="PNG") + descriptor["asset_ref"] = str(final_dir / filename) + else: + descriptor["kind"] = f"type{type_code}" + elements.append(descriptor) + + preview = row.get("preview") + if preview is None: + raise FullCrelloPreparationError(f"row {sample_id} has no preview") + _save_image_new(preview.convert("RGB"), staging / "ground_truth_preview.jpg", image_format="JPEG") + meta = { + "id": sample_id, + "title": row.get("title", ""), + "canvas_width": canvas_width, + "canvas_height": canvas_height, + "n_elements": count, + "elements": elements, + } + _write_new( + staging / "meta.json", + json.dumps(meta, ensure_ascii=False, indent=2, allow_nan=False).encode("utf-8"), + ) + _write_new( + staging / TEXT_BITMAP_SIDECAR_FILENAME, + _canonical_json_bytes( + { + "version": TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": sample_id, + "bitmaps": text_bitmaps, + } + ), + ) + file_snapshot = _tree_file_snapshot(staging) + provenance = { + "schema_version": CACHE_PROVENANCE_VERSION, + "dataset": DATASET, + "dataset_revision": DATASET_REVISION, + "split": SPLIT, + "sample_id": sample_id, + "files": file_snapshot, + "files_snapshot_sha256": _sha256_bytes(_canonical_json_bytes(file_snapshot)), + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + _write_new(staging / CACHE_PROVENANCE_FILENAME, _pretty_json_bytes(provenance)) + + +def materialize_cache_row(row: Mapping[str, Any], crello_root: Path) -> Dict[str, Any]: + """Atomically materialize one absent cache directory; never replace a final.""" + sample_id, _ = _validate_row(row) + crello_root = crello_root.resolve() + final_dir = crello_root / f"crello_{sample_id}" + crello_root.mkdir(parents=True, exist_ok=True) + if _path_lexists(final_dir): + raise FullCrelloPreparationError(f"cache destination already exists: {final_dir}") + staging: Optional[Path] = None + try: + staging = Path( + tempfile.mkdtemp(prefix=f".crello_{sample_id}.staging-", dir=str(crello_root)) + ) + _build_cache_tree(row, staging, final_dir) + _verify_cache_tree( + staging, + final_dir=final_dir, + sample_id=sample_id, + require_provenance=True, + ) + _rename_directory_noreplace(staging, final_dir) + staging = None + return _verify_cache_tree( + final_dir, + final_dir=final_dir, + sample_id=sample_id, + require_provenance=True, + ) + finally: + if staging is not None and staging.exists(): + shutil.rmtree(staging) + + +def _publish_text_sidecar(row: Mapping[str, Any], sample_dir: Path) -> str: + """Publish missing text PNGs and sidecar without changing existing meta bytes.""" + sample_id, count = _validate_row(row) + final_sidecar = sample_dir / TEXT_BITMAP_SIDECAR_FILENAME + meta_path = sample_dir / "meta.json" + meta_before = meta_path.read_bytes() + meta = _strict_json(meta_path) + if meta.get("id") != sample_id or len(meta.get("elements", [])) != count: + raise FullCrelloPreparationError(f"row/cache mismatch for {sample_id}") + if final_sidecar.exists(): + _verify_existing_text_sidecar(sample_dir, sample_id) + return "verified-existing" + + bitmaps: Dict[str, str] = {} + for index, type_code in enumerate(row["type"]): + if int(type_code) != 1: + continue + image = row["image"][index] + if image is None: + continue + filename = f"a3_text_{index:04d}.png" + final = sample_dir / filename + temp = sample_dir / f".{filename}.{os.getpid()}.tmp" + try: + _save_image_new(image.convert("RGBA"), temp, image_format="PNG") + try: + os.link(temp, final) + except FileExistsError: + if final.read_bytes() != temp.read_bytes(): + raise FullCrelloPreparationError( + f"refusing to overwrite different text bitmap: {final}" + ) + finally: + temp.unlink(missing_ok=True) + bitmaps[str(index)] = filename + status = _write_once_or_verify( + final_sidecar, + _canonical_json_bytes( + { + "version": TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": sample_id, + "bitmaps": bitmaps, + } + ), + ) + if meta_path.read_bytes() != meta_before: + raise FullCrelloPreparationError(f"meta.json changed during sidecar publication: {sample_id}") + return status + + +def _cache_inventory(official_ids: Sequence[str], crello_root: Path) -> Dict[str, Any]: + valid: List[Dict[str, str]] = [] + missing: List[str] = [] + missing_sidecars: List[str] = [] + for sample_id in official_ids: + sample_dir = crello_root / f"crello_{sample_id}" + meta_path = sample_dir / "meta.json" + if not _path_lexists(sample_dir): + missing.append(sample_id) + continue + if not sample_dir.is_dir() or not meta_path.is_file(): + raise FullCrelloPreparationError(f"partial cache path consumes ID {sample_id}") + meta = _strict_json(meta_path) + if not isinstance(meta, dict) or meta.get("id") != sample_id: + raise FullCrelloPreparationError(f"cache ID mismatch for {sample_id}") + valid.append({"sample_id": sample_id, "meta_sha256": _sha256_file(meta_path)}) + if not (sample_dir / TEXT_BITMAP_SIDECAR_FILENAME).is_file(): + missing_sidecars.append(sample_id) + else: + _verify_existing_text_sidecar(sample_dir, sample_id) + return { + "valid_count": len(valid), + "missing_count": len(missing), + "missing_ids": missing, + "missing_sidecar_count": len(missing_sidecars), + "missing_sidecar_ids": missing_sidecars, + "meta_snapshot_sha256": _sha256_bytes(_canonical_json_bytes(valid)), + } + + +def _completed_artifact_snapshot( + completed_artifacts: Mapping[str, Tuple[Path, str]], +) -> Dict[str, Dict[str, Any]]: + snapshot: Dict[str, Dict[str, Any]] = {} + for name, (path, expected_sha256) in completed_artifacts.items(): + if not path.is_file(): + raise FullCrelloPreparationError(f"completed artifact is missing: {path}") + actual = _sha256_file(path) + if actual != expected_sha256: + raise FullCrelloPreparationError( + f"completed artifact hash mismatch for {path}: {actual}" + ) + snapshot[name] = { + "path": _display_path(path), + "sha256": actual, + "size": path.stat().st_size, + } + return snapshot + + +def verify_batch_bundle( + bundle_dir: Path, + *, + snapshot_dir: Path, + existing_ids_path: Path, + expected_official_count: int = EXPECTED_TEST_COUNT, +) -> Dict[str, Any]: + snapshot = verify_id_snapshot(snapshot_dir, expected_count=expected_official_count) + official_ids = snapshot["ids"] + existing_ids = _load_ids(existing_ids_path) + manifest = _strict_json(bundle_dir / "manifest.json") + if manifest.get("schema_version") != BATCH_SCHEMA_VERSION: + raise FullCrelloPreparationError("batch manifest schema mismatch") + if manifest.get("dataset", {}).get("revision") != DATASET_REVISION: + raise FullCrelloPreparationError("batch manifest dataset revision mismatch") + if manifest.get("coverage", {}).get("official_count") != expected_official_count: + raise FullCrelloPreparationError("batch manifest official count mismatch") + if manifest.get("dataset", {}).get("ordered_ids_file_sha256") != snapshot[ + "provenance" + ]["ordered_ids_file_sha256"]: + raise FullCrelloPreparationError("batch manifest ordered-ID hash mismatch") + config_path = bundle_dir / "run_config.json" + if manifest.get("protocol", {}).get("config_sha256") != _sha256_file(config_path): + raise FullCrelloPreparationError("batch config snapshot hash mismatch") + from metagpt.ext.agentlayout.a3_config import A3RunConfig + + config = A3RunConfig.model_validate_json(config_path.read_bytes()) + if config.dataset_split != "crello-official-test-n1971-batched-v1": + raise FullCrelloPreparationError("batch config dataset_split mismatch") + if manifest.get("completed_batch", {}).get("ids_sha256") != _sha256_file( + existing_ids_path + ): + raise FullCrelloPreparationError("completed batch ID hash mismatch") + if manifest.get("authorization", {}).get("paid_generation_authorized") is not False: + raise FullCrelloPreparationError("batch bundle must remain paid-unauthorized") + rows = manifest.get("new_batches") + if not isinstance(rows, list) or not rows: + raise FullCrelloPreparationError("batch manifest new_batches must be a non-empty list") + flattened: List[str] = [] + run_ids: set[str] = set() + evaluation_ids: set[str] = set() + batch_size = manifest["coverage"].get("batch_size") + if not isinstance(batch_size, int) or batch_size <= 0: + raise FullCrelloPreparationError("batch manifest batch_size is invalid") + for expected_index, row in enumerate(rows, start=1): + if row.get("index") != expected_index: + raise FullCrelloPreparationError("batch indices are not consecutive") + ids_path = bundle_dir / row["ids_file"] + ids = _load_ids(ids_path) + if len(ids) != row.get("count") or _sha256_file(ids_path) != row.get("ids_sha256"): + raise FullCrelloPreparationError(f"batch {expected_index} IDs mismatch") + if expected_index < len(rows) and len(ids) != batch_size: + raise FullCrelloPreparationError(f"batch {expected_index} is not full-sized") + if expected_index == len(rows) and not (1 <= len(ids) <= batch_size): + raise FullCrelloPreparationError("final batch size is invalid") + if row.get("status") != "planned-not-authorized": + raise FullCrelloPreparationError(f"batch {expected_index} status is not locked") + run_id = row.get("run_id") + evaluation_id = row.get("evaluation_id") + if not isinstance(run_id, str) or run_id in run_ids: + raise FullCrelloPreparationError("new run IDs are invalid or duplicated") + if not isinstance(evaluation_id, str) or evaluation_id in evaluation_ids: + raise FullCrelloPreparationError("new evaluation IDs are invalid or duplicated") + run_ids.add(run_id) + evaluation_ids.add(evaluation_id) + flattened.extend(ids) + if len(flattened) != len(set(flattened)): + raise FullCrelloPreparationError("new batches overlap") + if set(flattened) & set(existing_ids): + raise FullCrelloPreparationError("new batches overlap completed N=100") + if set(flattened) | set(existing_ids) != set(official_ids): + raise FullCrelloPreparationError("completed plus new batches do not cover official test") + expected_new = expected_official_count - len(existing_ids) + if len(flattened) != expected_new or manifest["coverage"].get("new_count") != expected_new: + raise FullCrelloPreparationError("new batch count mismatch") + if manifest["coverage"].get("new_batch_count") != len(rows): + raise FullCrelloPreparationError("new batch manifest count mismatch") + last_batch_count = len(_load_ids(bundle_dir / rows[-1]["ids_file"])) + if manifest["coverage"].get("final_batch_count") != last_batch_count: + raise FullCrelloPreparationError("final batch count mismatch") + return { + "official_count": len(official_ids), + "reused_count": len(existing_ids), + "new_count": len(flattened), + "new_batch_count": len(rows), + "manifest_sha256": _sha256_file(bundle_dir / "manifest.json"), + } + + +def build_batch_bundle( + bundle_dir: Path, + *, + snapshot_dir: Path, + existing_ids_path: Path, + config_path: Path, + crello_root: Path, + runs_root: Path = DEFAULT_RUNS_ROOT, + evaluations_root: Path = DEFAULT_EVALUATIONS_ROOT, + batch_size: int = BATCH_SIZE, + seed: int = BATCH_SEED, + expected_official_count: int = EXPECTED_TEST_COUNT, + expected_existing_ids_sha256: Optional[str] = EXPECTED_EXISTING_IDS_SHA256, + completed_artifacts: Mapping[str, Tuple[Path, str]] = COMPLETED_ARTIFACTS, +) -> Tuple[str, Dict[str, Any]]: + snapshot = verify_id_snapshot(snapshot_dir, expected_count=expected_official_count) + official_ids = snapshot["ids"] + existing_ids = _load_ids(existing_ids_path) + existing_payload = existing_ids_path.read_bytes() + if expected_existing_ids_sha256 is not None: + actual = _sha256_bytes(existing_payload) + if actual != expected_existing_ids_sha256: + raise FullCrelloPreparationError( + f"completed N=100 ID hash mismatch: {actual}" + ) + if not set(existing_ids) <= set(official_ids): + raise FullCrelloPreparationError("completed N=100 is not a subset of official test") + if batch_size <= 0: + raise FullCrelloPreparationError("batch_size must be positive") + config_bytes = config_path.read_bytes() + from metagpt.ext.agentlayout.a3_config import A3RunConfig + + config = A3RunConfig.model_validate_json(config_bytes) + if config.dataset_split != "crello-official-test-n1971-batched-v1": + raise FullCrelloPreparationError("full-test config dataset_split mismatch") + remaining = sorted(set(official_ids) - set(existing_ids)) + random.Random(seed).shuffle(remaining) + batches = [remaining[index : index + batch_size] for index in range(0, len(remaining), batch_size)] + expected_batch_count = (len(remaining) + batch_size - 1) // batch_size + if len(batches) != expected_batch_count: + raise AssertionError("batch partition arithmetic changed") + cache = _cache_inventory(official_ids, crello_root) + if cache["missing_count"] or cache["missing_sidecar_count"]: + raise FullCrelloPreparationError( + "cache readiness incomplete: materialize all official caches and text sidecars first" + ) + artifacts = _completed_artifact_snapshot(completed_artifacts) + + batch_rows: List[Dict[str, Any]] = [] + for index, ids in enumerate(batches, start=1): + count = len(ids) + suffix = f"{index:03d}-n{count}" + run_id = f"a3-crello-test-batch-{suffix}-t2-l0-v1" + evaluation_id = f"a3-crello-test-batch-{suffix}-sega-v1" + run_dir = runs_root / run_id + evaluation_dir = evaluations_root / evaluation_id + if _path_lexists(run_dir) or _path_lexists(evaluation_dir): + raise FullCrelloPreparationError( + f"new write-once target already exists: {run_dir if _path_lexists(run_dir) else evaluation_dir}" + ) + filename = f"batch_{index:03d}_n{count}.json" + ids_payload = _pretty_json_bytes(ids) + batch_rows.append( + { + "index": index, + "batch_id": f"crello-test-{suffix}", + "count": count, + "ids_file": filename, + "ids_sha256": _sha256_bytes(ids_payload), + "run_id": run_id, + "run_dir": _display_path(run_dir), + "evaluation_id": evaluation_id, + "evaluation_dir": _display_path(evaluation_dir), + "tree_arm": "T2", + "analyst_arm": "vision", + "nominal_calls": 7 * count, + "code_retry_max_calls": 21 * count, + "operational_attempt_stop": 850 if count == 100 else 610, + "usd_stop": 7.0 if count == 100 else 5.0, + "input_token_ceiling": None, + "output_token_ceiling": None, + "status": "planned-not-authorized", + } + ) + + manifest = { + "schema_version": BATCH_SCHEMA_VERSION, + "dataset": { + "name": DATASET, + "revision": DATASET_REVISION, + "repository_last_modified": DATASET_LAST_MODIFIED, + "split": SPLIT, + "split_counts": EXPECTED_SPLIT_COUNTS, + "ordered_ids_path": _display_path(snapshot_dir / "ordered_ids.json"), + "ordered_ids_file_sha256": snapshot["provenance"]["ordered_ids_file_sha256"], + "ordered_ids_canonical_sha256": snapshot["provenance"][ + "ordered_ids_canonical_sha256" + ], + }, + "coverage": { + "official_count": len(official_ids), + "reused_count": len(existing_ids), + "new_count": len(remaining), + "new_batch_count": len(batches), + "batch_size": batch_size, + "final_batch_count": len(batches[-1]), + "seed": seed, + "algorithm": "sorted-remaining-ids-shuffle-seed42-chunks.v1", + }, + "protocol": { + "config_source": _display_path(config_path), + "config_file": "run_config.json", + "config_sha256": _sha256_bytes(config_bytes), + "model": "gpt-5.4-mini-2026-03-17", + "foreground_protocol": "P-Full", + "renderer": "R3", + "loop": "L0", + "tree_arm": "T2", + "analyst_arm": "vision", + "candidates_per_sample": 3, + }, + "completed_batch": { + "ids_path": _display_path(existing_ids_path), + "ids_sha256": _sha256_bytes(existing_payload), + "count": len(existing_ids), + "run_id": "a3-general-n100-t2-l0-01", + "evaluation_id": "a3-general-n100-sega-v1", + "artifacts": artifacts, + "immutable": True, + }, + "cache_snapshot": cache, + "new_batches": batch_rows, + "budget": { + "expected_new_usd_low": 75.0, + "expected_new_usd_high": 85.0, + "global_usd_stop": 120.0, + "exact_token_ceilings_status": "pending-full-readiness-dry-run", + }, + "authorization": { + "paid_generation_authorized": False, + "api_model_calls_performed_by_bundle": 0, + "paid_cost_usd": 0.0, + }, + } + + def build(staging: Path) -> None: + _write_new(staging / "run_config.json", config_bytes) + for ids, row in zip(batches, batch_rows): + _write_new(staging / row["ids_file"], _pretty_json_bytes(ids)) + _write_new(staging / "manifest.json", _pretty_json_bytes(manifest)) + + return _publish_directory( + bundle_dir, + build=build, + verify=lambda path: verify_batch_bundle( + path, + snapshot_dir=snapshot_dir, + existing_ids_path=existing_ids_path, + expected_official_count=expected_official_count, + ), + ) + + +def materialize_missing_and_sidecars( + *, + snapshot_dir: Path, + crello_root: Path, + load_dataset_fn: Optional[Callable[..., Any]] = None, + min_free_bytes: int = MIN_FREE_BYTES, +) -> Dict[str, Any]: + snapshot = verify_id_snapshot(snapshot_dir) + official_ids = snapshot["ids"] + inventory = _cache_inventory(official_ids, crello_root) + available = shutil.disk_usage(crello_root).free + if available < min_free_bytes: + raise FullCrelloPreparationError( + f"disk hard stop: {available} bytes available < {min_free_bytes}" + ) + stale_staging = sorted(crello_root.glob(".crello_*.staging-*")) + if stale_staging: + raise FullCrelloPreparationError( + f"stale cache staging directories must be audited first: {stale_staging[:3]}" + ) + missing_cache = set(inventory["missing_ids"]) + missing_sidecar = set(inventory["missing_sidecar_ids"]) + targets = missing_cache | missing_sidecar + if not targets: + return { + "scanned": 0, + "cache_created": 0, + "sidecars_created": 0, + "remaining": [], + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + if load_dataset_fn is None: + from datasets import load_dataset as load_dataset_fn # type: ignore[no-redef] + + dataset = load_dataset_fn( + DATASET, + split=SPLIT, + streaming=True, + revision=DATASET_REVISION, + ) + cache_created = 0 + sidecars_created = 0 + done: set[str] = set() + scanned = 0 + for scanned, row in enumerate(dataset, start=1): + sample_id = str(row.get("id", "")) + if sample_id not in targets or sample_id in done: + continue + current_available = shutil.disk_usage(crello_root).free + if current_available < min_free_bytes: + raise FullCrelloPreparationError( + f"disk hard stop during scan: {current_available} bytes < {min_free_bytes}" + ) + if sample_id in missing_cache: + materialize_cache_row(row, crello_root) + cache_created += 1 + else: + status = _publish_text_sidecar(row, crello_root / f"crello_{sample_id}") + if status == "created": + sidecars_created += 1 + done.add(sample_id) + if done == targets: + break + remaining = sorted(targets - done) + if remaining: + raise FullCrelloPreparationError( + f"pinned dataset scan ended with {len(remaining)} unresolved targets" + ) + final_inventory = _cache_inventory(official_ids, crello_root) + if final_inventory["missing_count"] or final_inventory["missing_sidecar_count"]: + raise FullCrelloPreparationError("post-materialization cache inventory is incomplete") + return { + "scanned": scanned, + "cache_created": cache_created, + "sidecars_created": sidecars_created, + "remaining": remaining, + "available_bytes_before": available, + "meta_snapshot_sha256": final_inventory["meta_snapshot_sha256"], + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + + +def plan_state( + *, + snapshot_dir: Path, + bundle_dir: Path, + existing_ids_path: Path, + crello_root: Path, +) -> Dict[str, Any]: + existing_ids = _load_ids(existing_ids_path) + cached_dirs = sum(1 for path in crello_root.glob("crello_*") if path.is_dir()) + available = shutil.disk_usage(crello_root).free + return { + "schema_version": "a3.crello-full-test-plan.v1", + "dataset": DATASET, + "revision": DATASET_REVISION, + "split": SPLIT, + "expected_test_count": EXPECTED_TEST_COUNT, + "completed_ids_count": len(existing_ids), + "local_cache_directory_count": cached_dirs, + "snapshot_exists": _path_lexists(snapshot_dir), + "bundle_exists": _path_lexists(bundle_dir), + "available_bytes": available, + "minimum_materialization_free_bytes": MIN_FREE_BYTES, + "test_parquet_transfer_upper_bound_bytes": TEST_PARQUET_BYTES, + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + + +def _add_common_paths(parser: argparse.ArgumentParser) -> None: + parser.add_argument("--snapshot-dir", type=Path, default=DEFAULT_SNAPSHOT_DIR) + parser.add_argument("--bundle-dir", type=Path, default=DEFAULT_BATCH_DIR) + parser.add_argument("--existing-ids", type=Path, default=DEFAULT_EXISTING_IDS) + parser.add_argument("--config", type=Path, default=DEFAULT_CONFIG) + parser.add_argument("--crello-root", type=Path, default=DEFAULT_CRELLO_ROOT) + parser.add_argument("--runs-root", type=Path, default=DEFAULT_RUNS_ROOT) + parser.add_argument("--evaluations-root", type=Path, default=DEFAULT_EVALUATIONS_ROOT) + + +def main(argv: Optional[Sequence[str]] = None) -> int: + parser = argparse.ArgumentParser(description=__doc__) + sub = parser.add_subparsers(dest="command", required=True) + plan = sub.add_parser("plan", help="Print local zero-cost readiness; no network or writes.") + _add_common_paths(plan) + snapshot = sub.add_parser( + "snapshot-ids", + help="Project pinned official test IDs and atomically publish their snapshot.", + ) + _add_common_paths(snapshot) + snapshot.add_argument("--allow-network", action="store_true") + build = sub.add_parser( + "build-batches", help="Build the deterministic 19-batch bundle from a frozen snapshot." + ) + _add_common_paths(build) + verify = sub.add_parser("verify-batches", help="Strictly reload and verify a batch bundle.") + _add_common_paths(verify) + materialize = sub.add_parser( + "materialize", + help="Stream pinned dataset rows to create missing caches and text sidecars.", + ) + _add_common_paths(materialize) + materialize.add_argument("--allow-dataset-download", action="store_true") + args = parser.parse_args(argv) + + try: + if args.command == "plan": + result = plan_state( + snapshot_dir=args.snapshot_dir, + bundle_dir=args.bundle_dir, + existing_ids_path=args.existing_ids, + crello_root=args.crello_root, + ) + elif args.command == "snapshot-ids": + if not args.allow_network: + print( + json.dumps( + { + "authorized": False, + "reason": "snapshot-ids requires --allow-network", + "api_model_calls": 0, + "paid_cost_usd": 0.0, + }, + indent=2, + ) + ) + return 2 + status, verified = snapshot_ordered_ids(args.snapshot_dir) + result = {"status": status, **{key: value for key, value in verified.items() if key != "ids"}} + elif args.command == "build-batches": + status, verified = build_batch_bundle( + args.bundle_dir, + snapshot_dir=args.snapshot_dir, + existing_ids_path=args.existing_ids, + config_path=args.config, + crello_root=args.crello_root, + runs_root=args.runs_root, + evaluations_root=args.evaluations_root, + ) + result = {"status": status, **verified, "api_model_calls": 0, "paid_cost_usd": 0.0} + elif args.command == "verify-batches": + result = { + **verify_batch_bundle( + args.bundle_dir, + snapshot_dir=args.snapshot_dir, + existing_ids_path=args.existing_ids, + ), + "api_model_calls": 0, + "paid_cost_usd": 0.0, + } + else: + if not args.allow_dataset_download: + print( + json.dumps( + { + "authorized": False, + "reason": "materialize requires --allow-dataset-download", + "transfer_upper_bound_bytes": TEST_PARQUET_BYTES, + "minimum_free_bytes": MIN_FREE_BYTES, + "api_model_calls": 0, + "paid_cost_usd": 0.0, + }, + indent=2, + ) + ) + return 2 + result = materialize_missing_and_sidecars( + snapshot_dir=args.snapshot_dir, + crello_root=args.crello_root, + ) + except (FullCrelloPreparationError, FileNotFoundError, ValueError) as error: + print(f"ERROR: {type(error).__name__}: {error}", file=sys.stderr) + return 1 + print(json.dumps(result, ensure_ascii=False, indent=2, sort_keys=True, allow_nan=False)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/result.md b/layout_agent/result.md index a14ae2f57..40adecd24 100644 --- a/layout_agent/result.md +++ b/layout_agent/result.md @@ -79,6 +79,43 @@ --- +## §1.5 實驗設定 — 系統常數與演算法細節(論文 Methods 對照,2026-07-08 逐行查證) + +> 以下四項皆對當前程式碼逐行確認(含 `len(Enum)` 實際執行驗證),供論文 Methods / Implementation Details 直接引用。 + +### 1.5.1 QC 規則詞彙表:ViolationType = 21 個(`tools/quality_checker.py:122`) + +分期演進:基礎 9(missing_element / extra_element / out_of_bounds / position_preference / no_overlap / z_order / size_preference / unknown_hint / unknown_target)→ Step 35 +2(text_obscured_by_overlay、low_text_contrast)→ Step 36 +3(decorative_image_oversized、title_undersized、title_peripheral)→ Step 43 +1(primary_outside_safe_zone)→ Step 57 +2(canvas_coverage_low、dead_band_excessive)→ Step 59 +1(text_on_busy_texture)→ Step 62 +2(composition_mismatch、text_on_photo_no_underlay)→ Step 72 +1(text_on_high_saliency)。 + +**引用注意**: +- 「先想再畫」重構後(2026-06-25),`PRIMARY_OUTSIDE_SAFE_ZONE` 與 `TEXT_ON_HIGH_SALIENCY` 降級為**非阻擋 warning**(進 `CheckResult.warnings`、不影響 `passed`)——阻擋型規則實為 **19 個**,論文寫「21 types (2 advisory-only)」。 +- judge 的視覺觀察詞彙 `VisualObservationKind`(`schema.py:799`,**8 個**:text_off_panel / text_illegible / text_too_small / text_too_large / text_overlap / text_tilted / title_misplaced / lockup_broken)是**另一個 enum**,勿與 ViolationType 加總。 + +### 1.5.2 Saliency ensemble:兩處、皆 per-pixel MAX、模型不同(論文須分開描述) + +| | 管線側(擺放引導) | 評測側(Occ 指標,對齊 PKU/SEGA) | +|---|---|---| +| 位置 | `tools/background_analyzer.py` `_energy_map` | `evaluation/saliency_basnet_isnet.py` | +| 成分 | 局部亮度標準差(~canvas/20 boxFilter 視窗,normalize [0,1])+ **U2Net**(rembg,最長邊縮 512 再放回) | **BASNet**(HF `creative-graphic-design/BASNet`,input 256²)+ **ISNet**(rembg `isnet-general-use`) | +| 合併 | `np.maximum(std_norm, alpha)` | 兩圖 resize 至 canvas 解析度後 `np.maximum`,逐字對齊 PKU eval.py | +| 防呆 | U2Net matte 覆蓋 >70% 判為反轉、整張丟棄(退回 variance-only) | 模型載入失敗直接 raise、caller 決定跳樣本 | + +揭露事項:(a) 評測側 2026-06-13 metric audit A3 之前誤用 **mean**,已改 max 才與 SEGA Table 3 可比(引 Occ 數字只能用 audit 後的 run);(b) 與 PKU 原版殘餘差異=**以 ISNet 替代 PFPN**(模型身分差異,詳 `layout_agent/METRIC_ALIGNMENT_AUDIT.md` A3)。 + +### 1.5.3 Safe zone 抽取:同一 energy map 的兩層摘要(`tools/background_analyzer.py`) + +energy map 每樣本只算一次(Step 72 起),衍生: +1. **二值 subject-avoidance bands(`safe_zones`)**:`mask = energy > 0.18`(`_ENERGY_TAU`)→ subject 像素 bounding box → 上/下/左/右四 margin band → 保留條件=面積 ≥3% canvas(`_MIN_SAFE_AREA_FRAC`)且 band 內 subject 佔比 <10%(`_SUBJECT_OCCUPANCY_TAU`);`confidence = 1 − occupancy`。邊界:無 subject → 單一 `full` zone(conf 1.0);subject 滿版 → fallback 3×3 grid 取 occupancy 最低 3 格。 +2. **連續值 low-saliency rectangles(`low_saliency_regions`,Step 72/F2)**:6×6 grid 掃 1×1/2×1/1×2/2×2 視窗,score = 1 − mean saliency,面積 ≥4% canvas(`_LOW_SAL_MIN_AREA_FRAC`),IoU>0.5 NMS 去重,取 **top-5**(`_LOW_SAL_K`)。語意區分:(1) 是「subject 不在哪」、(2) 是「全畫布最平靜矩形」。 + +另輸出同一 energy field 的 32×32 block-mean `saliency_map` 與 3×3 `saliency_histogram`。入口 `resolve_background`:僅當 `background_asset_ref` 可載入才分析,否則(含任何例外)退回純色 stub、永不 crash。 + +### 1.5.4 色盤分群(`tools/background_analyzer.py` `_dominant_palette`) + +RGB 像素直接跑 **k-means,k=5**(sklearn `KMeans(n_clusters=5, n_init=4, random_state=0)`);像素 >20,000 時以 `np.linspace` **等距抽樣 20,000 點**(確定性、非隨機);輸出 5 個 centroid hex、**按 cluster 人口降冪排序**;sklearn 失敗 fallback 單一全圖平均色。注意 `recommended_text_color` 非取自色盤——由最大 safe zone 的平均亮度決定(Rec. 601 luma ≥128 → `#111111`,否則 `#F4F4F4`)。 + +--- + ## §2 實驗結果(逐步:動機 → 方法 → 數值 → 誠實定調) > baseline = Crello 設計師 GT 經 pipeline 自家 Judge 量到的 ≈68(注意:此為單邊測量,**非配對**,僅供同 pipeline 內部 trend 比較,見 §3.1)。Live # 編號對應 `live_runs_table.md`。 @@ -2079,3 +2116,155 @@ conda run -n meta python layout_agent/output/step74_n1897_full_trace.py \ 2. 全樣本覆蓋——SGC/TLC 有效僅 34–40/100:SEGA 前處理後只剩文字元素(11 個單元素、22 個雙元素),樹常是平的(36 全 singleton、23 單 group)=scope 限制須註明;另 agent_a 有 7 樣本 final candidate 掉元素、agent_b 有 4 樣本對齊失敗(記錄於 skip_reasons)。 **證據檔**:`output2/step90_semantic_metrics/{per_sample.json, aggregate.md, qualitative_picks.json, trees/}`、runner=`output2/step90_semantic_metrics.py`、公式與邊界處理全文見 IMPLEMENTATION_LOG Step 90。 + +--- + +## §13 Step 92 — B 軸 matched COLE H2H 遷移到 text-as-image 協定(2026-07-09,`output2/step92_cole_h2h/`) + +**動機(論文結構性缺口,非改善實驗)**:B 軸 headline 原為 Step 70 的 86.6%,量在**舊 renderer + raw-asset 輸入**;主結果已換成 Step 89 的 text-as-image(N=100)。兩者同表即違反表三跨版本禁令。本步把 B 軸重量在 Step 89 的**同一批 100 樣本**上,使 A 軸(`step89_n100/metrics.json`)/B 軸(本步)/C 軸(`_summary.json` blind pairwise)**三軸同協定同樣本集**。判官(COLE prompt / gpt-4o / temp 0.0 / parser)逐字 import `step21_phaseb_eval`,與 Step 70/74 同源,唯一變動是輸入 PNG。 + +**結果(N=100 全數完成、200 vision calls、$2.50、零 parse 失敗)**: + +| | Smean4 | Smean5 | Δ Smean4 [95% bootstrap CI] | W/T/L | sign p | +|---|---|---|---|---|---| +| **A 基線** | **7.120** | 7.256 | **−0.680 [−0.853, −0.512]** | 11/25/64 | <0.001 | +| designer GT | 7.800 | 7.866 | — | — | — | + +→ **A 基線達 designer Smean4 的 91.3%**(Smean5 92.2%)。CI 不跨 0 = **落後是統計顯著的**,不可宣稱匹敵。 + +| axis | agent | GT | Δ [95% CI] | W/T/L | p | +|---|---|---|---|---|---| +| SDL(design layout)| 7.25 | 8.03 | −0.780 [−0.970, −0.600] | **0/48/52** | <0.001 | +| SQL(content relevance)| 7.93 | 8.64 | −0.710 [−0.940, −0.490] | 7/46/47 | <0.001 | +| STV(typography)| 6.68 | 7.67 | **−0.990 [−1.220, −0.760]** | 4/37/59 | <0.001 | +| SGI(graphics)| 7.80 | 8.13 | −0.330 [−0.500, −0.170] | 11/56/33 | 0.001 | +| SIO(innovation)| 6.62 | 6.86 | −0.240 [−0.400, −0.070] | 14/53/33 | 0.008 | + +**可寫**: +1. **統一協定主表成立**:A/B/C 三軸首次來自同一協定、同一批 100 樣本,消除 `EXPERIMENT_MATRIX` 表三列的 renderer/protocol 混用風險。 +2. **Convergent validity(方法學貢獻)**:兩個**獨立**評測管道給出幾乎相同的勝場——Step 89 blind pairwise `cand 12 / tie 7 / gt 81` vs 本步 COLE 絕對分 `11/25/64`。比較式與絕對打分收斂,**削弱「結論是 judge 協定產物」的質疑**。 +3. **SDL 零勝(已驗非 bug)**:agent 在 design_layout 軸 100 樣本零勝。原始分布:GT SDL 近乎飽和常數 8(79/100 給 8、12 個 9、9 個 7),agent 散佈 3–9(49 個 8、32 個 7);agent 兩次得 9 時 GT 亦 9 → delta=0。**judge 給設計師 GT 的 SDL 打分天花板化,agent 只能追平不能超越**——Generator-bounded 在絕對分軸上的新形式證據,與 STV 最大 gap −0.99 一致。 +4. **統計嚴謹度**:全部數字附 95% percentile bootstrap CI(10,000 次、`seed=20260709` 可重現)與非平手配對的**精確**二項 sign test(`math.comb`,無 scipy 依賴)。 + +**不可寫**: +1. **91.3% 與 Step 70 的 86.6% 不可同表**——renderer 版本+輸入協定雙變因。論文引本步、Step 70 僅作 pre-text-as-image 註記。方向雖支持 Step 54/55/56 的 render-channel 假說(字型/尺寸 fidelity 交還設計師素材後 gap 縮約 4.7 pts),但**不構成受控 ablation**。 +2. 「達 91.3% ≈ 匹敵設計師」——Δ CI `[−0.853, −0.512]` 不跨 0、64/100 敗、五軸全輸且全部顯著。 + +### §13.1 B 深審臂補跑(同日,`--arms a,b,gt`,+98 calls / $1.23) + +臂級 resume(a/gt 分數自磁碟重用、零重評——A 臂數字 bit-identical 可驗)。2 個樣本無 `b/final.png`(=Step 89 記錄的 B 臂 1 error+1 crash),pre-flight 抓出、記錄後排除 → **B 臂 n=98**。 + +| | Smean4 | Smean5 | Δ vs GT [95% CI] | W/T/L | sign p | +|---|---|---|---|---|---| +| A 基線 (n=100) | 7.120 | 7.256 | −0.680 [−0.853, −0.512] | 11/25/64 | <0.001 | +| **B 深審 (n=98)** | **6.997** | 7.153 | **−0.798 [−0.997, −0.620]** | 6/22/70 | <0.001 | + +→ B 達 designer 的 **89.8%**(A 為 91.3%)。**B 逐軸全面劣於 A**:SDL −0.888 vs −0.780、SQL −0.888 vs −0.710、STV −1.051 vs −0.990、SIO −0.367 vs −0.240。B 臂 SDL 亦零勝(0/43/55)。 + +**B − A 配對比較(n=98)**:Δ Smean4 = **−0.145 [−0.316, +0.026]**;逐樣本 **B 較好 26 / 平 27 / A 較好 45,sign p=0.032**。 + +**判定與 Step 89 的關係(本步最重要的推論)**:Step 89 用 blind pairwise 判 B vs A 為「方向相反但 n.s.」(B 較好 8 / A 較好 13)。本步用**完全獨立的第二評測管道**(COLE 絕對打分)在同一批樣本上得到**同方向且達顯著**的結果(A 較好 45 / B 較好 26,p=0.032)。故: + +- **可寫**:深審棧(Step 83–89 全家桶)相對 best-of-3 基線是 **net negative**,此結論在兩個獨立評測協定下一致,其中 COLE 管道達統計顯著。這是 Generator-bounded 反證鏈的第 7 筆證據,也是全鏈中**唯一達顯著的負向效果**(先前皆為 n.s.)。 +- **誠實註記**:mean Δ 的 bootstrap CI `[−0.316, +0.026]` 仍跨 0,sign test 顯著而 CI 不顯著——兩者衡量不同量(前者「A 較常勝」、後者「平均差距大小」)。正確陳述是「**B 更常輸給 A(顯著),但平均劣勢幅度小(約 0.15 分,CI 含 0)**」,**不可**寫成「B 顯著拉低 Smean」。 +- 歸因與 Step 89 §11.3 結果四一致:後期輪次的帳本單元素搬移拆散對齊群(Ali R1 0.011 → R3 0.050),破壞版面全域秩序。 + +**證據檔**:`output2/step92_cole_h2h/{aggregate.json, aggregate.md, per_sample/.json}`、runner=`output2/step92_cole_h2h.py`;可比性合約與安全設計見 IMPLEMENTATION_LOG Step 92。 + +--- + +## §14 Step 93–95 — 三個零成本正式化步驟:逐輪曲線落盤+Ali sign test+跨協定溯源表(2026-07-09) + +E1(Step 92)之後的收尾三件套(E2/E3/E4),全部零 API 呼叫、零新生成——只把已存在的數字正式化、可引用化。 + +### §14.1 Step 93 — 逐輪增益曲線正式化(`output2/step93_perround/`) + +**動機**:論文 5.8 引用的 +0.45/−0.19/−0.03/−0.12 出自 §11.4 行文、從未以獨立表格落盤。Step 92 把 B 軸主表遷到 Step 89 同批樣本後,這條曲線已與 headline **同協定同樣本集**——5.8 的協定混用標註問題自動消解,剩下的缺口只是出處正式化。 + +**方法**:`step93_perround_curve.py`(純 stdlib)讀 `step89_n100//{a,b}/rounds/round*.json`(pipeline 內建 JudgeAesthetic 5 軸 total 5–50,run 當下逐輪落盤)。Δ(k)=同樣本 `total(k)−total(k−1)` 配對;內建 §11.4 已發布值對照欄,差 >0.005 直接報 MISMATCH。 + +**結果(100 樣本全數有 trace)**: + +| arm | 輪 | n pairs | mean Δ | W/T/L | sign p(雙尾) | §11.4 已發布 | +|---|---|---|---|---|---|---| +| A | R0→R1 | 100 | **+0.440** | 30/54/16 | 0.054 | +0.45 | +| A | R1→R2 | 94 | +0.138 | 21/50/23 | 0.88 | +0.14 | +| B | R0→R1 | 99 | +0.455 | 29/47/23 | 0.49 | +0.45 | +| B | R1→R2 | 95 | −0.189 | 16/57/22 | 0.42 | −0.19 | +| B | R2→R3 | 93 | −0.032 | 16/55/22 | 0.42 | −0.03 | +| B | R3→R4 | 91 | −0.121 | 19/54/18 | 1.00 | −0.12 | + +R0 跨臂(best-of-3 vs 單候選):**A−B = +1.590**(median +1.0;A 勝 84 / 平 9 / B 勝 7;**sign p = 7.1e-18**)——§11.4 口述「+1.6 分」的正式量測。 + +**對帳**:B 臂四值與 §11.4 全中;唯一差異=§11.4 把兩臂 R1 合寫「均 +0.45」,精確值 A +0.440 / B +0.455。**論文 5.8 引本表精確值**(或明示「≈ +0.45」為近似)。 + +**可寫(5.8 措辭紀律,本步最重要產出)**: +1. **沒有任何單一輪 transition 顯著**(最佳 A R0→R1 sign p=0.054,其餘 ≥0.42);唯一強顯著效果是 **R0 的 best-of-3(+1.59,p=7.1e-18)**。 +2. 可辯護的主張排序:(a) best-of-3 選擇承載絕大多數增益(顯著);(b) 第一輪修復是小幅正向 drift(+0.44,邊緣);(c) B 後期輪次負向趨勢單輪皆 n.s.。 + +**不可寫**:「R3 起淨害」作為推論性結論——只能描述性陳述(趨勢一致但單輪不顯著);PIPE 逐輪 total(5–50)與 H2H5 Smean(1–10)量綱不同,不可直接相減。 + +### §14.2 Step 94 — Ali 65/100 精確 sign test(`output2/step94_signtest/`) + +**方法**:`step94_signtest.py` 讀 Step 71 的 `output/b1_root_cause_n100.json`(先 assert W+L+T=n_total),精確二項雙尾 p(`math.comb`、與 Step 92/93 同慣例)兩種算法:decisive-only(排除 ties)與保守版(ties 算進 n=100)。 + +| axis | W/L/T | 方向 | decisive p | 保守 p | +|---|---|---|---|---| +| **alignment** | **65/3/32** | agent | **3.56e-16** | **3.52e-03** | +| readability | 21/41/38 | GT | 1.51e-02 | 1.00 | +| occlusion | 45/55/0 | GT | 0.368 | 0.368 | + +**口試一行答案(「N=100 夠嗎」)**:Ali 65 勝 3 敗——即使把 32 個 tie 全算成不利(保守 p=3.5e-03)仍遠超隨機;排除 ties 的精確雙尾 p=3.6e-16。**論文引保守版、decisive 版放註腳。** + +**Caveat 照舊**:sign test 只講勝場數、不涉 mean margin——Step 71「3 個 banner outlier 撐 aggregate mean」的改寫(outlier 尾部風險)不因此翻案;readability 是 GT 方向 decisive 顯著=真實系統性落後的又一正式確認。 + +### §14.3 Step 95 — 跨協定一致性聲明表(`output2/step95_protocol_map/PROTOCOL_MAP.md`) + +**動機**:Step 92 後論文同時存在舊協定(N=20/100/1,897+N=178 trace)與新協定(Step 89/92 text-as-image N=100)兩批數字,附錄需要「數字→run→協定→renderer」溯源表杜絕混用。 + +**產出**: +- 版本代號:renderer **R1**(初版,天花板 ~22.5%)/**R2**(Step 55 升級,天花板 55%)/**R3**(text-as-image,Step 76–81);評測協定 **GEO**(SEGA 幾何)/**WJ4**(within-judge 4 軸)/**H2H5**(matched COLE single-call 5 軸)/**PAIR**(blind pairwise)/**PIPE**(pipeline 內建 judge total)。 +- 主表 17 列:Step 20/21b/22/23/29/70/71/73-74/75/89/90/92/93/94 每個論文數字的 N/協定/renderer/證據檔/論文引用節(引用節欄待 Overleaf 逐一核對,表內已標明)。 +- **禁止同表 6 條**:91.3%(R3) vs 86.6%(R2) 雙變因;WJ4 vs H2H5 軸數+單邊/成對不可互比;PIPE vs Smean 量綱;GEO 跨 renderer 可比但樣本集不同須標明;12/100 不可宣稱總體勝設計師;逐輪曲線單輪皆 n.s.(§14.1 紀律)。 + +**遺留(86.6%→91.3% 全域替換時必看)**:「跨規模穩定性」敘事需改寫——91.3% 只存在 N=100 R3 單一規模、無 N=1,897 對應點。建議拆成兩句:「within-judge WJ4 跨規模穩定(N=100 64.8% → N=1,897 65.8%)」+「matched H2H5 text-as-image 協定下 91.3%(N=100)」。 + +### §14.4 Step 96(E2')— legacy 管線逐輪配對增益曲線(`output2/step96_legacy_perround/`) + +**動機**:§14.1(Step 93)的曲線量在 **step89 / text-as-image / R3 renderer** 上。若論文 5.8 節描述的是 **legacy 管線**(raw-asset 輸入 + refinement loop、R2 renderer),引 step93 的數字就是**引錯管線的證據**。本步在 Step 73–74 的 full-trace 上重算同一條曲線。**使用者指示:5.8 引本表數字,取代 step89 那組。** + +**方法**:`step96_legacy_perround_curve.py`(純 stdlib、**零 API**)讀 `full_result//trace/per_round_judge.json`。每輪 total =該輪 `best_candidate_id` 對應候選的 5 軸 PIPE total(5–50,與 §14.1 同量綱、同軸);Δ(k)=同樣本 `total(k)−total(k−1)` 配對。統計慣例與 Step 92/93/94 一致(`math.comb` 精確雙尾 sign test),另附 95% percentile bootstrap CI(10,000 次、`seed=20260709`)。 + +**結果(161 個有 judge trace 的樣本)**: + +| transition | n pairs | mean Δ | median Δ | 95% CI | 改善/持平/惡化 | sign p | +|---|---|---|---|---|---|---| +| R0→R1 | 160 | **−0.075** | +0.0 | [−0.475, +0.325] | 49/57/54 | 0.694 | +| R1→R2 | 142 | +0.169 | +0.0 | [−0.275, +0.606] | 37/64/41 | 0.734 | +| R2→R3 | 133 | +0.361 | +0.0 | [−0.098, +0.827] | 51/46/36 | 0.133 | +| R3→R4 | 126 | +0.151 | +0.0 | [−0.333, +0.635] | 48/45/33 | 0.119 | + +逐輪 mean total:R0 33.553 → R1 33.487 → R2 33.127 → R3 33.383 → R4 33.317(**全程持平**)。 + +**跨管線對照(不同管線、不同協定,禁止併表)**: + +| transition | legacy(本步,R2 renderer) | step89 arm A(R3) | step89 arm B(R3) | +|---|---|---|---| +| R0→R1 | **−0.075** | +0.440 | +0.455 | +| R1→R2 | +0.169 | +0.138 | −0.189 | +| R2→R3 | +0.361 | — | −0.032 | +| R3→R4 | +0.151 | — | −0.121 | + +**可寫**: +1. **legacy 管線的 refinement loop 在任何一輪都沒有可測得的增益**:四個 transition 全部 n.s.(p=0.694/0.734/0.133/0.119),四條 CI 全部跨 0,mean total 五輪持平於 33.1–33.6。 +2. 這與 Step 20b/31/32/74 的 refinement-loop net-negative 結論**方向一致且互相加強**——本步是該結論在 N=161、逐輪解析度下的正式量測。 +3. 與 §14.1 的紀律相同且更強:§14.1 在 step89 上「無單輪顯著」(最佳 p=0.054),legacy 上連邊緣顯著都沒有(最佳 p=0.119)。**「逐輪修復無顯著增益」是跨兩個管線、兩個協定的一致發現。** + +**不可寫(本步最關鍵的三條)**: +1. **「價值集中在第一輪」在 legacy 上不成立**。§11.4「可寫」第 2 條(+0.45、best-of-3+一輪修復+停)**只適用 step89 / text-as-image**;legacy 的 R0→R1 是 **−0.075**。5.8 若改引本表,該設計規則的論據**必須同步撤下或改綁 step89**。 +2. R2→R3 的 +0.361 是四者中最大,**不可**據此宣稱「第三輪最有價值」——p=0.133、CI 跨 0,且 n_pairs 已從 160 掉到 133(存活者偏誤:R2 就 accept 的樣本不再貢獻)。 +3. legacy PIPE total(5–50)與 H2H5 Smean(1–10)量綱不同,不可相減(同 §14.1/§14.3 禁令)。 + +**樣本數誠實註記(論文若寫 N=178 必附)**:179 個樣本目錄中,1 個無 `per_round_judge.json`、**17 個 trace 為空 list**(pipeline 未產出任何 judge 判決=crash/QC catastrophic),故可算增益者為 **161**。n_pairs 隨輪次遞減(160→142→133→126)是**存活者偏誤非缺資料**:在 R(k−1) 已 accept 的樣本停在該輪。四個數字與 `full_result/_aggregate/per_round_convergence.md` 的 `rounds_observed`(160/142/133/126)**逐格吻合**——由另一支程式、另一時間點獨立產生,構成讀取邏輯的交叉驗證。 + +**證據檔**:`output2/step96_legacy_perround/{curve.json, curve.md}`、runner=`output2/step96_legacy_perround_curve.py`(含 provenance 區塊)。編號跳至 96 是因 Step 95 已由平行 session 用於 `step95_protocol_map/`。 diff --git a/layout_agent/run_a3.py b/layout_agent/run_a3.py new file mode 100644 index 000000000..a6168d06d --- /dev/null +++ b/layout_agent/run_a3.py @@ -0,0 +1,1232 @@ +"""A3 run planner and immutable run initializer (A3-01; makes no API calls).""" +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + +from metagpt.ext.agentlayout.a3_config import A3RunConfig # noqa: E402 +from metagpt.ext.agentlayout.run_manifest import ( # noqa: E402 + A3RunStore, + ErrorRecord, + load_sample_ids, + validate_run_id, + write_json_once, +) +from metagpt.ext.agentlayout.tools.pfull_preprocessor import ( # noqa: E402 + ASSET_MANIFEST_FILENAME, + PFullAssetManifest, + build_prepared_input, + prepare_pfull_sample, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( # noqa: E402 + R3_MANIFEST_FILENAME, + R3AssetManifest, + R3NormalizationConfig, + prepare_r3_sample, +) +from metagpt.ext.agentlayout.tools.analyst_vision import ( # noqa: E402 + build_vision_packet, + save_vision_packet, +) + + +DEFAULT_RUNS_ROOT = REPO_ROOT / "layout_agent" / "runs" / "a3" + + +def _call_budget(loop: str, tree_arm: str, sample_count: int) -> dict: + """System-call budget assuming no reliability retries (each stage may 3x).""" + per_sample = 1 + 1 + 3 + 1 # analyst + director + 3 mappers + judge_select + if tree_arm == "T2": + per_sample += 1 # planner + if loop == "L1-Gated": + per_sample += 2 # judge_critic + at most one revision mapper call + return { + "loop": loop, + "tree_arm": tree_arm, + "samples": sample_count, + "model_calls_per_sample_max": per_sample, + "model_calls_total_max": per_sample * sample_count, + "note": "excludes schema-retry attempts (up to 3x per stage) and assumes " + "every L1 sample triggers one revision", + } + + +def _command_prepare_annotation(args: argparse.Namespace) -> int: + """Build self-contained annotation packets (no background, no GT).""" + import shutil + + from metagpt.ext.agentlayout.tools.annotation import ( # noqa: E402 + build_annotation_packet, + save_annotation_packet, + ) + + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + rows = [] + failed = 0 + for sample_id in sample_ids: + sample_dir = store.run_dir / "samples" / sample_id + inputs = sample_dir / "inputs" + destination = sample_dir / "annotation" + try: + pfull = PFullAssetManifest.model_validate_json( + (inputs / "pfull" / ASSET_MANIFEST_FILENAME).read_bytes() + ) + r3 = R3AssetManifest.model_validate_json( + (inputs / "r3" / R3_MANIFEST_FILENAME).read_bytes() + ) + vision_dir = inputs / "analyst_vision" + sheets = sorted( + path.name for path in vision_dir.glob("asset_contact_sheet_*.png") + ) + if not sheets: + raise FileNotFoundError("no contact sheets; run prepare-analyst-vision first") + packet = build_annotation_packet( + r3, build_prepared_input(pfull).user_brief, sheets + ) + save_annotation_packet(packet, destination) + # Copy ONLY the contact sheets: annotators never receive the + # background overview or any GT-derived artifact. + for sheet in sheets: + shutil.copyfile(vision_dir / sheet, destination / sheet) + rows.append( + { + "sample_id": sample_id, + "status": "prepared", + "packet_sha256": packet.packet_sha256, + "contact_sheets": sheets, + } + ) + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="annotation_preparation", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id}, + ) + ) + write_json_once( + store.run_dir / "annotation_preparation.json", + {"total": len(sample_ids), "failed": failed, "samples": rows}, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + +def _command_prepare_adjudication(args: argparse.Namespace) -> int: + """Build a no-winner comparison queue from independent annotations.""" + from metagpt.ext.agentlayout.tools.adjudication import ( # noqa: E402 + build_adjudication_guide, + build_adjudication_packet, + load_annotation_submissions, + save_adjudication_materials, + ) + from metagpt.ext.agentlayout.tools.annotation import ( # noqa: E402 + ANNOTATION_PACKET_FILENAME, + AnnotationPacket, + ) + + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + destination = store.run_dir / "adjudication" + destination.mkdir(parents=True, exist_ok=False) + with (destination / "ADJUDICATION_GUIDE.md").open( + "x", encoding="utf-8" + ) as handle: + handle.write(build_adjudication_guide()) + + rows = [] + failed = 0 + for sample_id in sample_ids: + sample_dir = store.run_dir / "samples" / sample_id + annotation_dir = sample_dir / "annotation" + try: + r3 = R3AssetManifest.model_validate_json( + (sample_dir / "inputs" / "r3" / R3_MANIFEST_FILENAME).read_bytes() + ) + source_packet = AnnotationPacket.model_validate_json( + (annotation_dir / ANNOTATION_PACKET_FILENAME).read_bytes() + ) + submissions = load_annotation_submissions(annotation_dir, r3) + packet = build_adjudication_packet( + submissions, + annotation_directory=f"samples/{sample_id}/annotation", + contact_sheet_files=source_packet.contact_sheet_files, + ) + save_adjudication_materials( + packet, destination / "samples" / sample_id + ) + rows.append( + { + "sample_id": sample_id, + "status": "prepared", + "annotator_ids": packet.annotator_ids, + "pairwise_reports": len(packet.pairwise_agreements), + "assets_requiring_decision": sum( + bool(asset.disagreement_fields) for asset in packet.assets + ), + "requires_adjudication": packet.requires_adjudication, + } + ) + except Exception as error: # noqa: BLE001 -- preserve every failure + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + error_dir = destination / "errors" + error_dir.mkdir(parents=True, exist_ok=True) + write_json_once( + error_dir / f"{sample_id}.json", + { + "stage": "adjudication_preparation", + "sample_id": sample_id, + "error_type": type(error).__name__, + "message": str(error), + }, + ) + write_json_once( + destination / "adjudication_queue.json", + { + "version": "a3.adjudication-queue.v1", + "source_run_id": manifest.run_id, + "total": len(sample_ids), + "failed": failed, + "samples": rows, + }, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + +def _command_finalize_adjudication(args: argparse.Namespace) -> int: + """Validate completed human decisions and publish T3 oracle trees.""" + import hashlib + + from metagpt.ext.agentlayout.tools.adjudication import ( # noqa: E402 + ADJUDICATED_ANNOTATION_FILENAME, + ADJUDICATION_PACKET_FILENAME, + ADJUDICATION_RECORD_FILENAME, + AdjudicationPacket, + validate_adjudication_submission, + ) + from metagpt.ext.agentlayout.tools.annotation import ( # noqa: E402 + AdjudicationRecord, + HumanAnnotation, + ) + + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + adjudication_root = store.run_dir / "adjudication" + oracle_root = adjudication_root / "oracle_trees" + summary_path = adjudication_root / "adjudication_finalization.json" + if oracle_root.exists() or summary_path.exists(): + raise FileExistsError("adjudication finalization is write-once") + + validated = [] + errors = [] + for sample_id in sample_ids: + sample_dir = adjudication_root / "samples" / sample_id + try: + packet = AdjudicationPacket.model_validate_json( + (sample_dir / ADJUDICATION_PACKET_FILENAME).read_bytes() + ) + annotation_path = sample_dir / ADJUDICATED_ANNOTATION_FILENAME + record_path = sample_dir / ADJUDICATION_RECORD_FILENAME + final_annotation = HumanAnnotation.model_validate_json( + annotation_path.read_bytes() + ) + record = AdjudicationRecord.model_validate_json(record_path.read_bytes()) + for source in packet.sources: + source_path = store.run_dir / packet.annotation_directory / source.filename + source_hash = hashlib.sha256(source_path.read_bytes()).hexdigest() + if source_hash != source.sha256: + raise ValueError( + f"source annotation changed after packet creation: {source_path}" + ) + tree = validate_adjudication_submission(packet, final_annotation, record) + validated.append( + { + "sample_id": sample_id, + "tree": tree, + "annotation_sha256": hashlib.sha256( + annotation_path.read_bytes() + ).hexdigest(), + "record_sha256": hashlib.sha256(record_path.read_bytes()).hexdigest(), + } + ) + except Exception as error: # noqa: BLE001 -- report all human form errors + errors.append( + { + "sample_id": sample_id, + "error_type": type(error).__name__, + "message": str(error), + } + ) + + # Human forms are editable until valid. Validation is all-or-nothing so a + # partial submission never creates a misleading partial oracle set. + if errors: + print( + json.dumps( + {"total": len(sample_ids), "valid": len(validated), "errors": errors}, + indent=2, + ) + ) + return 1 + + oracle_root.mkdir(parents=True, exist_ok=False) + rows = [] + for item in validated: + tree_path = oracle_root / f"{item['sample_id']}.json" + tree_payload = item["tree"].model_dump(mode="json") + write_json_once(tree_path, tree_payload) + rows.append( + { + "sample_id": item["sample_id"], + "annotation_sha256": item["annotation_sha256"], + "record_sha256": item["record_sha256"], + "oracle_tree_path": str(tree_path.relative_to(store.run_dir)), + "oracle_tree_sha256": hashlib.sha256(tree_path.read_bytes()).hexdigest(), + } + ) + write_json_once( + summary_path, + { + "version": "a3.adjudication-finalization.v1", + "source_run_id": manifest.run_id, + "total": len(rows), + "failed": 0, + "oracle_root": str(oracle_root.relative_to(store.run_dir)), + "samples": rows, + }, + ) + print(json.dumps({"total": len(rows), "failed": 0}, indent=2)) + return 0 + + +def _command_snapshot_text_bitmaps(args: argparse.Namespace) -> int: + """Write A3 text-bitmap sidecars from the Crello dataset (no LLM calls).""" + from metagpt.ext.agentlayout.tools.pfull_preprocessor import ( # noqa: E402 + A3_TEXT_BITMAP_SIDECAR_VERSION, + TEXT_BITMAP_SIDECAR_FILENAME, + ) + + payload = json.loads(args.ids.read_text(encoding="utf-8")) + id_pool = payload["ids"] if isinstance(payload, dict) else payload + targets = set() + for sample_id in id_pool: + sample_dir = args.crello_root / f"crello_{sample_id}" + if not (sample_dir / "meta.json").exists(): + print(f"skip {sample_id}: no cached meta.json", file=sys.stderr) + continue + if (sample_dir / TEXT_BITMAP_SIDECAR_FILENAME).exists(): + continue # incremental: sidecar is write-once per sample + targets.add(sample_id) + print(f"targets: {len(targets)} samples (of {len(id_pool)} requested)") + if not targets: + return 0 + + from datasets import load_dataset # noqa: E402 + + dataset = load_dataset(args.hf_dataset, split=args.split, streaming=True) + done = set() + saved = 0 + mismatches = 0 + for scanned, sample in enumerate(dataset, start=1): + sample_id = sample["id"] + if sample_id not in targets or sample_id in done: + if len(done) == len(targets): + break + continue + sample_dir = args.crello_root / f"crello_{sample_id}" + meta = json.loads((sample_dir / "meta.json").read_text(encoding="utf-8")) + images = sample["image"] + types = sample["type"] + bitmaps = {} + for position, element in enumerate(meta["elements"]): + index = int(element.get("idx", position)) + if not (element.get("type_code") == 1 or element.get("kind") == "text"): + continue + if index >= len(images) or types[index] != 1: + mismatches += 1 + print(f" [WARN] {sample_id} idx={index}: dataset/meta mismatch", file=sys.stderr) + continue + filename = f"a3_text_{index:04d}.png" + # Raw dataset render, deliberately NOT resized to GT geometry. + images[index].convert("RGBA").save(sample_dir / filename, format="PNG") + bitmaps[str(index)] = filename + saved += 1 + write_json_once( + sample_dir / TEXT_BITMAP_SIDECAR_FILENAME, + { + "version": A3_TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": sample_id, + "bitmaps": bitmaps, + }, + ) + done.add(sample_id) + print(f" [{len(done)}/{len(targets)}] {sample_id} (scanned={scanned})") + if len(done) == len(targets): + break + missing = sorted(targets - done) + print( + json.dumps( + {"done": len(done), "bitmaps_saved": saved, "mismatches": mismatches, "missing": missing} + ) + ) + return 0 if not missing else 1 + + +def _command_run_l1_tail(args: argparse.Namespace) -> int: + """Gate C L1 arm: critic + at most one revision on a persisted L0 run.""" + store = A3RunStore(args.run_dir) + manifest = store.manifest() + config = manifest.config + if config.loop != "L1-Gated": + print("run-l1-tail requires a run whose config.loop is 'L1-Gated'", file=sys.stderr) + return 1 + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + source_root = args.reuse_r0_from.resolve() + budget = { + "loop": "L1-Gated (tail only, R0 reused)", + "tree_arm": args.tree_arm, + "samples": len(sample_ids), + "model_calls_per_sample_max": 2, + "model_calls_total_max": 2 * len(sample_ids), + "reuse_r0_from": str(source_root), + "note": "judge_critic + at most one revision; excludes schema-retry " + "attempts (up to 3x per stage)", + } + if not args.allow_api_calls: + print(json.dumps({"authorized": False, "budget": budget}, indent=2)) + print( + "refusing to make paid model calls without --allow-api-calls", + file=sys.stderr, + ) + return 2 + + import asyncio + + from metagpt.ext.agentlayout.a3_pipeline import R0Bundle, R0PhaseOutcome # noqa: E402 + from metagpt.ext.agentlayout.a3_pipeline_l1 import A3L1GatedPipeline # noqa: E402 + from metagpt.ext.agentlayout.a3_stage_binding import A3StageBinding # noqa: E402 + from metagpt.ext.agentlayout.actions.generate_layout_a3 import GenerateLayoutA3 # noqa: E402 + from metagpt.ext.agentlayout.actions.judge_critic_a3 import JudgeCriticA3 # noqa: E402 + from metagpt.ext.agentlayout.layout_tree_v3 import TreeCondition # noqa: E402 + from metagpt.ext.agentlayout.schema import CompositionConcept # noqa: E402 + from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput # noqa: E402 + from metagpt.ext.agentlayout.tools.judge_select import JudgeSelectResult # noqa: E402 + + async def _unused(*_args, **_kwargs): + raise RuntimeError("this stage is frozen from the reused L0 run") + + rows = [] + failed = 0 + for sample_id in sample_ids: + sample_dir = store.run_dir / "samples" / sample_id + source_sample = source_root / "samples" / sample_id + source_pipeline = source_sample / "pipeline" + binding = None + try: + r3 = R3AssetManifest.model_validate_json( + (source_sample / "inputs" / "r3" / R3_MANIFEST_FILENAME).read_bytes() + ) + analyst_output = A3AnalystOutput.model_validate_json( + (source_pipeline / "analyst_output.json").read_bytes() + ) + concept_payload = json.loads( + (source_sample / "stages" / "director" / "concept_set.json").read_text() + ) + concepts = [ + CompositionConcept.model_validate(concept) + for concept in concept_payload["concepts"] + ] + l0_result = json.loads((source_pipeline / "l0_result.json").read_text()) + outcome = R0PhaseOutcome( + analyst_output=analyst_output, + condition=TreeCondition.model_validate_json( + (source_pipeline / "tree_condition.json").read_bytes() + ), + bundle=R0Bundle.model_validate_json( + (source_pipeline / "r0_bundle.json").read_bytes() + ), + degradations=l0_result["degradations"], + selection=JudgeSelectResult.model_validate_json( + (source_pipeline / "judge_select_result.json").read_bytes() + ), + ) + binding = A3StageBinding( + r3_manifest=r3, + background_overview_path=source_sample + / "inputs" + / "analyst_vision" + / "background_overview.png", + renders_dir=sample_dir / "renders", + stages_dir=sample_dir / "stages", + analyst_action=None, + planner_action=None, + director_action=None, + mapper_action=GenerateLayoutA3( + expected_model=config.models["coordinate_mapper"].model + ), + judge_select_action=None, + judge_critic_action=JudgeCriticA3( + expected_model=config.models["judge_critic"].model + ), + ) + binding.hydrate_from_r0(analyst_output=analyst_output, concepts=concepts) + pipeline = A3L1GatedPipeline( + config=config, + analyst=_unused, + planner=_unused, + director=_unused, + mapper=binding.mapper, + renderer=binding.renderer, + qc=binding.qc, + judge_select=_unused, + judge_critic=binding.judge_critic, + repair=binding.repair, + verifier=binding.verifier, + artifacts_dir=sample_dir / "pipeline", + ) + result = asyncio.run( + pipeline.run_from_r0(outcome=outcome, tree_arm=args.tree_arm) + ) + rows.append( + { + "sample_id": sample_id, + "status": "completed", + "b0": result.b0_slot_id, + "final": result.final_slot_id, + "repair_attempted": result.repair_attempted, + "winner": result.guard.winner if result.guard else None, + "stage_calls": len(binding.call_records), + } + ) + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="a3_l1_tail_run", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id, "reuse_r0_from": str(source_root)}, + ) + ) + finally: + if binding is not None and binding.call_records: + try: + binding.write_call_records(sample_dir / "stage_calls.json") + except FileExistsError: + pass + write_json_once( + store.run_dir / "a3_run_summary.json", + { + "tree_arm": args.tree_arm, + "budget": budget, + "total": len(sample_ids), + "failed": failed, + "samples": rows, + }, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + +def _command_run(args: argparse.Namespace) -> int: + store = A3RunStore(args.run_dir) + manifest = store.manifest() + config = manifest.config + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + oracle_trees = {} + if args.tree_arm == "T3": + if args.oracle_trees_from is None: + print("T3 requires --oracle-trees-from", file=sys.stderr) + return 1 + from metagpt.ext.agentlayout.tools.adjudication import ( # noqa: E402 + load_oracle_tree, + ) + + try: + for sample_id in sample_ids: + tree = load_oracle_tree(args.oracle_trees_from, sample_id) + r3 = R3AssetManifest.model_validate_json( + ( + store.run_dir + / "samples" + / sample_id + / "inputs" + / "r3" + / R3_MANIFEST_FILENAME + ).read_bytes() + ) + expected_ids = {asset.asset_id for asset in r3.foreground_assets()} + tree_ids = {node.asset_id for node in tree.nodes} + if tree_ids != expected_ids: + raise ValueError( + f"{sample_id} oracle coverage mismatch: " + f"missing={sorted(expected_ids - tree_ids)}, " + f"extra={sorted(tree_ids - expected_ids)}" + ) + oracle_trees[sample_id] = tree + except Exception as error: # noqa: BLE001 -- fail before any paid call + print(f"invalid T3 oracle tree set: {error}", file=sys.stderr) + return 1 + elif args.oracle_trees_from is not None: + print("--oracle-trees-from is only valid with --tree-arm T3", file=sys.stderr) + return 1 + budget = _call_budget(config.loop, args.tree_arm, len(sample_ids)) + if args.oracle_trees_from is not None: + budget["oracle_trees_from"] = str(args.oracle_trees_from.resolve()) + if not args.allow_api_calls: + print(json.dumps({"authorized": False, "budget": budget}, indent=2)) + print( + "refusing to make paid model calls without --allow-api-calls", + file=sys.stderr, + ) + return 2 + + if args.authorization_receipt is None: + print( + "refusing paid calls without --authorization-receipt", + file=sys.stderr, + ) + return 2 + + # Paid path: import the LLM machinery only after explicit authorization. + import asyncio + + from metagpt.ext.agentlayout.a3_paid_budget import ( # noqa: E402 + A3AuthorizationCapReached, + A3BudgetedLLM, + A3PaidBudget, + acquire_paid_run_lock, + load_authorization, + release_paid_run_lock, + ) + from metagpt.ext.agentlayout.a3_pipeline import A3L0Pipeline # noqa: E402 + from metagpt.ext.agentlayout.a3_pipeline_l1 import A3L1GatedPipeline # noqa: E402 + from metagpt.ext.agentlayout.a3_stage_binding import A3StageBinding # noqa: E402 + from metagpt.ext.agentlayout.actions.analyze_a3 import AnalyzeA3Brief # noqa: E402 + from metagpt.ext.agentlayout.actions.analyze_a3_text_only import AnalyzeA3TextOnly # noqa: E402 + from metagpt.ext.agentlayout.actions.compose_concept_a3 import ComposeConceptA3 # noqa: E402 + from metagpt.ext.agentlayout.actions.generate_layout_a3 import GenerateLayoutA3 # noqa: E402 + from metagpt.ext.agentlayout.actions.judge_critic_a3 import JudgeCriticA3 # noqa: E402 + from metagpt.ext.agentlayout.actions.judge_select_a3 import JudgeSelectA3 # noqa: E402 + from metagpt.ext.agentlayout.actions.plan_assets_a3 import PlanAssetsA3 # noqa: E402 + + expected_models = {entry.model for entry in config.models.values()} + if len(expected_models) != 1: + print("paid run requires one frozen model across all stages", file=sys.stderr) + return 2 + expected_model = next(iter(expected_models)) + try: + authorization = load_authorization( + args.authorization_receipt, + expected_run_id=manifest.run_id, + expected_model=expected_model, + expected_tree_arm=args.tree_arm, + expected_analyst_arm=args.analyst_arm, + ) + except Exception as error: + print(f"authorization receipt rejected: {type(error).__name__}", file=sys.stderr) + return 2 + + lock_descriptor = acquire_paid_run_lock(store.run_dir / ".a3_paid_run.lock") + paid_budget = A3PaidBudget( + authorization, + store.run_dir / "a3_paid_budget_ledger.jsonl", + code_paths=[ + Path(__file__), + REPO_ROOT / "metagpt/ext/agentlayout/a3_paid_budget.py", + ], + resume=args.resume_ledger, + ) + + def _expected(stage: str) -> str: + return config.models[stage].model + + rows = [] + failed = 0 + consecutive_failures = 0 + stop_reason = None + for sample_id in sample_ids: + sample_dir = store.run_dir / "samples" / sample_id + # Resume: a durable l0_result means this sample already completed in a + # previous authorized attempt; reuse it verbatim, never re-spend. + prior_result_path = sample_dir / "pipeline" / "l0_result.json" + if prior_result_path.exists(): + prior = json.loads(prior_result_path.read_text()) + rows.append( + { + "sample_id": sample_id, + "status": "completed", + "final": prior.get("b0_slot_id"), + "resumed_existing": True, + } + ) + continue + if sample_id in args.skip_sample: + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": "OperatorSkip", + "message": "operator-declared skip on resume; prior attempt " + "exhausted validation retries and retry was not authorized", + } + ) + continue + inputs = sample_dir / "inputs" + binding = None + budgeted_llms = [] + try: + r3 = R3AssetManifest.model_validate_json( + (inputs / "r3" / R3_MANIFEST_FILENAME).read_bytes() + ) + pfull = PFullAssetManifest.model_validate_json( + (inputs / "pfull" / ASSET_MANIFEST_FILENAME).read_bytes() + ) + def _paid(action, stage): + wrapped = A3BudgetedLLM( + action.llm, + budget=paid_budget, + stage=stage, + max_completion_tokens=authorization.stage_max_completion_tokens[ + stage + ], + ) + action.set_llm(wrapped, override=True) + budgeted_llms.append(wrapped) + return action + + binding = A3StageBinding( + r3_manifest=r3, + background_overview_path=inputs / "analyst_vision" / "background_overview.png", + renders_dir=sample_dir / "renders", + stages_dir=sample_dir / "stages", + analyst_action=( + _paid( + AnalyzeA3TextOnly(expected_model=_expected("analyst")), + "analyst", + ) + if args.analyst_arm == "text-only" + else _paid( + AnalyzeA3Brief(expected_model=_expected("analyst")), + "analyst", + ) + ), + planner_action=_paid( + PlanAssetsA3(expected_model=_expected("asset_planner")), + "asset_planner", + ), + director_action=_paid( + ComposeConceptA3( + expected_model=_expected("composition_director") + ), + "composition_director", + ), + mapper_action=_paid( + GenerateLayoutA3( + expected_model=_expected("coordinate_mapper") + ), + "coordinate_mapper", + ), + judge_select_action=_paid( + JudgeSelectA3(expected_model=_expected("judge_select")), + "judge_select", + ), + judge_critic_action=JudgeCriticA3(expected_model=_expected("judge_critic")) + if config.loop == "L1-Gated" + else None, + ) + common = dict( + config=config, + analyst=binding.analyst, + planner=binding.planner, + director=binding.director, + mapper=binding.mapper, + renderer=binding.renderer, + qc=binding.qc, + judge_select=binding.judge_select, + artifacts_dir=sample_dir / "pipeline", + ) + if config.loop == "L1-Gated": + pipeline = A3L1GatedPipeline( + judge_critic=binding.judge_critic, + repair=binding.repair, + verifier=binding.verifier, + **common, + ) + else: + pipeline = A3L0Pipeline(**common) + async def _execute_and_close(): + try: + return await pipeline.run( + user_brief=build_prepared_input(pfull).user_brief, + tree_arm=args.tree_arm, + oracle_tree=oracle_trees.get(sample_id), + ) + finally: + await asyncio.gather( + *(llm.aclose() for llm in budgeted_llms), + return_exceptions=True, + ) + + result = asyncio.run(_execute_and_close()) + consecutive_failures = 0 + rows.append( + { + "sample_id": sample_id, + "status": "completed", + "final": getattr(result, "final_slot_id", result.b0_slot_id), + "stage_calls": len(binding.call_records), + } + ) + except A3AuthorizationCapReached: + failed += 1 + stop_reason = "authorization_cap_reached" + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": "A3AuthorizationCapReached", + "message": stop_reason, + } + ) + break + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + consecutive_failures += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="a3_pipeline_run", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id, "tree_arm": args.tree_arm}, + ) + ) + if failed > 5 or consecutive_failures >= 3: + stop_reason = ( + "failed_sample_limit" + if failed > 5 + else "consecutive_failure_limit" + ) + break + finally: + # Paid calls happened even when the sample failed; the cost trail + # must survive either way (A3-08 smoke finding). + if binding is not None and binding.call_records: + try: + binding.write_call_records(sample_dir / "stage_calls.json") + except FileExistsError: + pass + write_json_once( + store.run_dir / "a3_run_summary.json", + { + "tree_arm": args.tree_arm, + "analyst_arm": args.analyst_arm, + "oracle_trees_from": ( + str(args.oracle_trees_from.resolve()) + if args.oracle_trees_from is not None + else None + ), + "budget": budget, + "paid_authorization": authorization.public_dict(), + "paid_usage": paid_budget.snapshot(), + "stop_reason": stop_reason, + "total": len(sample_ids), + "processed": len(rows), + "failed": failed, + "samples": rows, + }, + ) + release_paid_run_lock(lock_descriptor) + print( + json.dumps( + { + "total": len(sample_ids), + "processed": len(rows), + "failed": failed, + "stop_reason": stop_reason, + "paid_usage": paid_budget.snapshot(), + }, + indent=2, + ) + ) + return 1 if failed or len(rows) != len(sample_ids) else 0 + + +def _common(parser: argparse.ArgumentParser) -> None: + parser.add_argument("--config", type=Path, required=True) + parser.add_argument("--sample-ids", type=Path, required=True) + parser.add_argument("--run-id", required=True) + parser.add_argument("--runs-root", type=Path, default=DEFAULT_RUNS_ROOT) + + +def _load(args: argparse.Namespace): + config = A3RunConfig.model_validate_json(args.config.read_bytes()) + ids = load_sample_ids(args.sample_ids) + return config, ids + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + sub = parser.add_subparsers(dest="command", required=True) + plan = sub.add_parser("plan", help="Validate and print a zero-cost run plan.") + _common(plan) + init = sub.add_parser("init", help="Create an immutable A3 run skeleton.") + _common(init) + prepare = sub.add_parser( + "prepare-pfull", help="Snapshot P-Full inputs into an initialized A3 run." + ) + prepare.add_argument("--run-dir", type=Path, required=True) + prepare.add_argument("--crello-root", type=Path, required=True) + normalize = sub.add_parser( + "normalize-r3", help="Normalize every P-Full text bitmap for an initialized run." + ) + normalize.add_argument("--run-dir", type=Path, required=True) + vision = sub.add_parser( + "prepare-analyst-vision", + help="Build background overview and foreground contact sheets without API calls.", + ) + vision.add_argument("--run-dir", type=Path, required=True) + run = sub.add_parser( + "run", + help="Execute the A3 pipeline for an initialized, fully prepared run. " + "Refuses to spend money unless --allow-api-calls is given.", + ) + run.add_argument("--run-dir", type=Path, required=True) + run.add_argument("--tree-arm", choices=["T0", "T1", "T2", "T3"], default="T2") + run.add_argument( + "--oracle-trees-from", + type=Path, + help="Directory containing .json human-oracle trees; required for T3.", + ) + run.add_argument( + "--analyst-arm", + choices=["vision", "text-only"], + default="vision", + help="Gate A ablation: 'text-only' swaps in AnalyzeA3TextOnly (no images).", + ) + run.add_argument( + "--allow-api-calls", + action="store_true", + help="Explicitly authorize paid model calls. Without it, only the call " + "budget is printed and the command exits with status 2.", + ) + run.add_argument( + "--authorization-receipt", + type=Path, + help="Exact user authorization receipt; required with --allow-api-calls.", + ) + run.add_argument( + "--skip-sample", + action="append", + default=[], + metavar="SAMPLE_ID", + help="Operator-declared explicit skip on resume (e.g. a sample that " + "exhausted validation retries in a prior attempt and must not be " + "retried). Recorded as an explicit failed row, never silent.", + ) + run.add_argument( + "--resume-ledger", + action="store_true", + help="Resume an interrupted paid run against its existing append-only " + "budget ledger. Prior spend keeps counting against the ORIGINAL " + "authorization envelope; caps are never reset.", + ) + tail = sub.add_parser( + "run-l1-tail", + help="Run only the L1 gated-revision tail, reusing R0 candidates and " + "B0 selection from a completed L0 run (Gate C protocol).", + ) + tail.add_argument("--run-dir", type=Path, required=True) + tail.add_argument("--reuse-r0-from", type=Path, required=True) + tail.add_argument("--tree-arm", choices=["T0", "T1", "T2", "T3"], default="T2") + tail.add_argument("--allow-api-calls", action="store_true") + snapshot = sub.add_parser( + "snapshot-text-bitmaps", + help="Stream the Crello dataset and write A3 text-bitmap sidecars " + "(a3_text_bitmaps.json + raw-size PNGs) into cached sample dirs " + "WITHOUT touching meta.json. No LLM calls; downloads dataset data.", + ) + snapshot.add_argument("--ids", type=Path, required=True, + help="JSON array of sample IDs, or an object with an 'ids' key") + snapshot.add_argument("--crello-root", type=Path, required=True) + snapshot.add_argument("--hf-dataset", default="cyberagent/crello") + snapshot.add_argument("--split", default="test") + annotation = sub.add_parser( + "prepare-annotation", + help="Build self-contained human-annotation packets (packet + empty " + "form + contact sheets, WITHOUT the background) for a prepared run.", + ) + annotation.add_argument("--run-dir", type=Path, required=True) + adjudication = sub.add_parser( + "prepare-adjudication", + help="Build a zero-cost, write-once human adjudication queue from " + "independent annotation_*.json files. Never chooses a winner.", + ) + adjudication.add_argument("--run-dir", type=Path, required=True) + finalize = sub.add_parser( + "finalize-adjudication", + help="Validate completed human adjudication forms all-or-nothing and " + "publish write-once T3 oracle trees. No API calls.", + ) + finalize.add_argument("--run-dir", type=Path, required=True) + args = parser.parse_args() + + if args.command == "prepare-annotation": + return _command_prepare_annotation(args) + if args.command == "prepare-adjudication": + return _command_prepare_adjudication(args) + if args.command == "finalize-adjudication": + return _command_finalize_adjudication(args) + + if args.command == "run": + return _command_run(args) + if args.command == "run-l1-tail": + return _command_run_l1_tail(args) + if args.command == "snapshot-text-bitmaps": + return _command_snapshot_text_bitmaps(args) + + if args.command == "prepare-pfull": + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + rows = [] + failed = 0 + for sample_id in sample_ids: + source = args.crello_root / f"crello_{sample_id}" + destination = store.run_dir / "samples" / sample_id / "inputs" / "pfull" + try: + prepared = prepare_pfull_sample(source, destination) + rows.append( + { + "sample_id": sample_id, + "status": "prepared", + "asset_count": len(prepared.assets), + "foreground_count": len(prepared.foreground_assets()), + "background_asset_id": prepared.background_asset_id, + } + ) + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="pfull_preprocessing", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id, "source": str(source)}, + ) + ) + write_json_once( + store.run_dir / "pfull_preparation.json", + {"total": len(sample_ids), "failed": failed, "samples": rows}, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + if args.command == "normalize-r3": + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + image_config = manifest.config.image_normalization + normalization = R3NormalizationConfig( + long_edge_px=image_config.text_long_edge_px, + padding_px=image_config.text_padding_px, + alpha_threshold=image_config.alpha_threshold, + resize_filter=image_config.resize_filter, + ) + rows = [] + failed = 0 + for sample_id in sample_ids: + sample_inputs = store.run_dir / "samples" / sample_id / "inputs" + pfull_manifest = sample_inputs / "pfull" / ASSET_MANIFEST_FILENAME + destination = sample_inputs / "r3" + try: + prepared = prepare_r3_sample(pfull_manifest, destination, normalization) + rows.append( + { + "sample_id": sample_id, + "status": "normalized", + "asset_count": len(prepared.assets), + "text_bitmap_count": sum( + asset.media_type == "text_bitmap" for asset in prepared.assets + ), + } + ) + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="r3_normalization", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id, "source": str(pfull_manifest)}, + ) + ) + write_json_once( + store.run_dir / "r3_normalization.json", + {"total": len(sample_ids), "failed": failed, "samples": rows}, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + if args.command == "prepare-analyst-vision": + store = A3RunStore(args.run_dir) + manifest = store.manifest() + sample_ids = json.loads( + (store.run_dir / manifest.sample_ids_snapshot.stored_path).read_text() + ) + rows = [] + failed = 0 + for sample_id in sample_ids: + inputs = store.run_dir / "samples" / sample_id / "inputs" + pfull_path = inputs / "pfull" / ASSET_MANIFEST_FILENAME + r3_path = inputs / "r3" / R3_MANIFEST_FILENAME + destination = inputs / "analyst_vision" + try: + pfull = PFullAssetManifest.model_validate_json(pfull_path.read_bytes()) + r3 = R3AssetManifest.model_validate_json(r3_path.read_bytes()) + brief = build_prepared_input(pfull).user_brief + packet = build_vision_packet(r3, brief) + save_vision_packet(packet, destination) + rows.append( + { + "sample_id": sample_id, + "status": "prepared", + "prompt_sha256": packet.prompt_sha256, + "image_count": len(packet.images), + "image_labels": packet.image_labels, + } + ) + except Exception as error: # noqa: BLE001 -- failure must be persisted + failed += 1 + rows.append( + { + "sample_id": sample_id, + "status": "failed", + "error_type": type(error).__name__, + "message": str(error), + } + ) + store.record_run_error( + ErrorRecord( + stage="analyst_vision_preparation", + error_type=type(error).__name__, + message=str(error), + details={"sample_id": sample_id}, + ) + ) + write_json_once( + store.run_dir / "analyst_vision_preparation.json", + {"total": len(sample_ids), "failed": failed, "samples": rows}, + ) + print(json.dumps({"total": len(sample_ids), "failed": failed}, indent=2)) + return 1 if failed else 0 + + config, ids = _load(args) + validate_run_id(args.run_id) + run_dir = args.runs_root.resolve() / args.run_id + if args.command == "plan": + print( + json.dumps( + { + "api_calls": 0, + "run_id": args.run_id, + "run_directory": str(run_dir), + "sample_count": len(ids), + "config": config.model_dump(mode="json"), + "exists": run_dir.exists(), + }, + indent=2, + ensure_ascii=False, + ) + ) + return 0 + + store = A3RunStore.create( + runs_root=args.runs_root, + run_id=args.run_id, + config_path=args.config, + sample_ids_path=args.sample_ids, + repo_root=REPO_ROOT, + ) + print(store.run_dir) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_001_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_001_n100.json new file mode 100644 index 000000000..c664b9f33 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_001_n100.json @@ -0,0 +1,102 @@ +[ + "5bf29cf541fdeab19fedad0e", + "5ef309aa499b85dcc731cc93", + "5df212b79fea0cc374ae0f65", + "58aed0dc95a7a863ddcc8769", + "5e959759499b85dcc7f30615", + "5c1792c9133a78539282377f", + "5db16f87abc8ea6d1c691cbb", + "5cb5858c23c829c82126ac24", + "5d69068eabc8ea6d1c077938", + "589b281695a7a863ddcc4b8e", + "5fc4a82ca637ee11e3396453", + "592fd68895a7a863ddcdb9a2", + "5e2024a89fea0cc37439a7c1", + "5f631425a637ee11e3b4637c", + "59b7e99b1350e8329300f972", + "58b5677e95a7a863ddcca4a9", + "5d94c70eabc8ea6d1cc8b7cf", + "5c45a3df048d064dbcbe1709", + "5c99f9fa85ea3c16f95330e1", + "5b1e58251eb1c99e2a5f2a52", + "58aed2aa95a7a863ddcc8811", + "595327fe95a7a863ddce0ad0", + "5bffffad8caf671e1c6fda89", + "58b4382295a7a863ddcca0c3", + "5abcf6f94b568b8eec611a50", + "5e0216ee9fea0cc3742096c2", + "5b891d4c18654940f7ce96d7", + "5a6079518c32ec6f8b7eeaa9", + "58ab077b95a7a863ddcc72b8", + "5d234fbf8cba87f943250964", + "5da735deabc8ea6d1cc70d09", + "58b822ad95a7a863ddccadc9", + "5c3c6ed8048d064dbc3d79a3", + "5a4e0e518c32ec6f8b930119", + "599ecac21350e832930076f1", + "58b032a995a7a863ddcc9615", + "5d0cf30b8cba87f94359542b", + "595293f495a7a863ddcdffe7", + "59c9fd0a1350e832930151ef", + "58891e6395a7a863ddcc2f57", + "590af6a995a7a863ddcd6ab6", + "5db2ba06abc8ea6d1c4770b7", + "59b27df41350e8329300d95d", + "5bb488ea78e1194aa6365f98", + "589b28d195a7a863ddcc4c2d", + "5e7c71244b3890eb071e6e40", + "5909b86d95a7a863ddcd309c", + "592d6c1d95a7a863ddcda131", + "5f23d732a637ee11e36c0f12", + "5a686e448c32ec6f8b69a4ef", + "592e782b95a7a863ddcda4d0", + "592d211c95a7a863ddcd9e61", + "5ea97afb499b85dcc7e25995", + "58ac638c95a7a863ddcc7c2b", + "5e5f7079b04a3d1f19e6d299", + "5e81d0554b3890eb0719b148", + "5acf77784b568b8eec317748", + "5bd878089259f9ba54c07345", + "5db2dac5abc8ea6d1c80b699", + "58a440f195a7a863ddcc71c9", + "5a4cf7ed8c32ec6f8b0ceb70", + "5d973119abc8ea6d1c603048", + "5f4e5304a637ee11e3928aa6", + "5a2322bcd8141396fe9a94ec", + "5df219169fea0cc374bf4d9a", + "5936865895a7a863ddcdd152", + "5d4aa16dcf657b21ef68d8d3", + "5e0216ee9fea0cc37420967d", + "5b6da9001cc8aa542948b10e", + "5dc93d439fea0cc3740e81b7", + "5b62ffeb1cc8aa542947b0ca", + "5f9a8be0a637ee11e37a8a88", + "5f92dc7ea637ee11e341b058", + "5936895895a7a863ddcdd31f", + "5df7436b9fea0cc3748d96b3", + "5952720b95a7a863ddcdedee", + "5c7fbb0785ea3c16f94a594e", + "5c5b0913048d064dbc785e7c", + "5de7cdc19fea0cc37428e229", + "5954bde095a7a863ddce14da", + "5fc0b87ba637ee11e3a49e4c", + "5f885a9aa637ee11e3498504", + "58ac657a95a7a863ddcc7d8c", + "5d108d688cba87f9438e85f7", + "5954bda495a7a863ddce149b", + "5be9749341fdeab19f607853", + "5909cf1995a7a863ddcd3742", + "59b7a7a71350e8329300f2dc", + "5fa9191ca637ee11e35548b1", + "5be97b9241fdeab19f985504", + "5e847c8b4b3890eb07bf3a59", + "5b979f3f18654940f764417a", + "5889aa8395a7a863ddcc361a", + "59008beb95a7a863ddcd26e5", + "58aed49195a7a863ddcc8a59", + "5f041f26499b85dcc7b20357", + "5a034321d8141396fe9897ee", + "5df395ba9fea0cc374da3cec", + "5952689495a7a863ddcde990", + "5952946495a7a863ddce0052" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_002_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_002_n100.json new file mode 100644 index 000000000..c9c4d7253 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_002_n100.json @@ -0,0 +1,102 @@ +[ + "5d94aa59abc8ea6d1c714710", + "5fbb700ea637ee11e3f4bf84", + "5a017416d8141396fe987885", + "59535cfe95a7a863ddce1026", + "5f4e119da637ee11e3e63e96", + "5915821995a7a863ddcd8015", + "5930147395a7a863ddcdc188", + "592d201795a7a863ddcd9dd1", + "5952690795a7a863ddcde9ee", + "5fbb72baa637ee11e3fe021c", + "5df38d399fea0cc374c1537f", + "5a24023ed8141396fe9a9dd1", + "5fb53967a637ee11e35aa465", + "58cbc44595a7a863ddccc20b", + "5e7a35064b3890eb072c981e", + "5da71a56abc8ea6d1c8d3c6c", + "5a03376ed8141396fe9891c8", + "58ac545c95a7a863ddcc7ab8", + "589dd1fb95a7a863ddcc5b74", + "5f4798fca637ee11e3cbdc84", + "5ea2d5f9499b85dcc7a075ea", + "5fbfcda4a637ee11e3e8d304", + "5aaa5022f07aee6977429062", + "5f4cea60a637ee11e3ff4c88", + "59c9fc651350e832930151ae", + "5b7588251cc8aa54296ba55d", + "58a43f4095a7a863ddcc7187", + "5c5af7a1048d064dbc1f0d67", + "5cebcb707d4459dfe1e546fb", + "59b287a31350e8329300dd42", + "592d6ef095a7a863ddcda37e", + "5931402695a7a863ddcdcb00", + "5e8474ad4b3890eb07af19b2", + "591d5df595a7a863ddcd87f6", + "589dfc0d95a7a863ddcc60e5", + "5a240260d8141396fe9a9de3", + "5d0ceb1d8cba87f943498e8f", + "592e7adb95a7a863ddcda79e", + "5a4e16358c32ec6f8b98590f", + "5d5ec3c5cf657b21ef068e8d", + "5ba0c7db18654940f7b6c3bc", + "5a9968cff07aee6977a29a68", + "5d2c8e918cba87f943ff28d3", + "5df7606b9fea0cc374d37295", + "5c6d19e085ea3c16f9d525a9", + "5d67e1aecf657b21ef70e46e", + "5a216201d8141396fe9a234f", + "5f19368fa637ee11e377ba6a", + "5e15f8a89fea0cc374ed14b8", + "5f96b711a637ee11e3360589", + "590af83d95a7a863ddcd6be4", + "593140a995a7a863ddcdcb34", + "5c77eda885ea3c16f9f29101", + "5888daea95a7a863ddcc2cb0", + "592e7e4195a7a863ddcdab32", + "5ea00e00499b85dcc77b6181", + "5b2e0d731eb1c99e2a0ece14", + "5a033ab5d8141396fe9892c2", + "5fbb8a6ba637ee11e35e5df7", + "5928027595a7a863ddcd8f23", + "5c0aae72133a785392bd458d", + "5b979b4e18654940f75917e9", + "5f982488a637ee11e3a1779f", + "5f563c5fa637ee11e39adff9", + "592d6d5c95a7a863ddcda279", + "5889aec695a7a863ddcc37e7", + "5d23570d8cba87f943359d60", + "5e995e60499b85dcc75e0eab", + "5b7a815b1cc8aa54299bfbb3", + "5df3ac9a9fea0cc3741cc29d", + "59b13af81350e8329300c0e7", + "5c178467133a785392290642", + "5c26505c133a7853926220a8", + "592fbda695a7a863ddcdb868", + "588a103a95a7a863ddcc45a7", + "5a218244d8141396fe9a31ef", + "5e0621999fea0cc3748584ad", + "5fbf9ca6a637ee11e3c42061", + "5bdc5e229259f9ba5492df50", + "592d20cc95a7a863ddcd9e30", + "5df7606b9fea0cc374d371db", + "5d2357258cba87f94335d8e2", + "5fb51a4aa637ee11e3acf1e0", + "5f3b7c43a637ee11e31dd17f", + "5d95f10babc8ea6d1cf72826", + "5a219a5cd8141396fe9a3b97", + "591581c995a7a863ddcd7fc1", + "5dcbc70a9fea0cc374f7ead3", + "5a379a2f5b3acffff7dbd4e6", + "589d8ca795a7a863ddcc5783", + "5d95f275abc8ea6d1cfb27c1", + "5be9669741fdeab19ffa4a0e", + "5d6903b8abc8ea6d1c0305fd", + "5954bef795a7a863ddce15f7", + "59c8e4751350e83293014cec", + "592fbb8695a7a863ddcdb782", + "58b83cf795a7a863ddccb0a5", + "5da071b5abc8ea6d1c1f1d6f", + "58898cbf95a7a863ddcc312b", + "5da715a3abc8ea6d1c835ab2" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_003_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_003_n100.json new file mode 100644 index 000000000..d6c6ed876 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_003_n100.json @@ -0,0 +1,102 @@ +[ + "5cd59dad7d4459dfe135f8e0", + "592fd60d95a7a863ddcdb960", + "590b0e1395a7a863ddcd71dc", + "58e36ad695a7a863ddcd0735", + "5a13f948d8141396fe9967ab", + "59b143a31350e8329300c34e", + "5cfe555d8cba87f94325cfcd", + "5888cbf695a7a863ddcc214f", + "5914287e95a7a863ddcd7d0f", + "59bbdd301350e83293011695", + "5928031a95a7a863ddcd8fc1", + "5c373bed048d064dbc1efbe3", + "5f96bfe0a637ee11e35beb30", + "5f47aeb9a637ee11e3058186", + "5f23c8b9a637ee11e34e8d0a", + "5ebd5f4f499b85dcc7a9df85", + "59b268f51350e8329300d285", + "5f4cf9d0a637ee11e3431a3f", + "5d973505abc8ea6d1c6a49bd", + "5de0eeb09fea0cc374a9071f", + "59535caa95a7a863ddce0fed", + "5e6a3440b04a3d1f19b1f59f", + "5a562a1f8c32ec6f8bafaa55", + "5db9919cabc8ea6d1c968df9", + "5e5f707ab04a3d1f19e6d56c", + "590b0d8f95a7a863ddcd714e", + "5c7fbc1485ea3c16f94eb7ee", + "5888dcf495a7a863ddcc2deb", + "5aedcc7b4b568b8eec64124c", + "5f96a513a637ee11e3edadc7", + "5e0d9a7b9fea0cc374a816ef", + "58dbb6e695a7a863ddccf791", + "5f644f40a637ee11e3669a1c", + "5b89206918654940f7dfb404", + "5931132c95a7a863ddcdc5d3", + "5ea2e142499b85dcc7c305f3", + "5bc61a7d78e1194aa6f815f5", + "5c263de4133a785392318ba9", + "59529b1d95a7a863ddce06be", + "5e68dc56b04a3d1f19a72557", + "59529f0995a7a863ddce08c2", + "592d6d0a95a7a863ddcda233", + "5b7a7f6c1cc8aa542993a745", + "5dada59fabc8ea6d1ce7f9ba", + "592d6d4095a7a863ddcda26a", + "5d108c098cba87f9438c122e", + "5f4e134ea637ee11e3ea717e", + "5f5f5032a637ee11e35cb88e", + "5bd1cc0578e1194aa62a8e9f", + "5f041df9499b85dcc7afe4e3", + "5f4f5e15a637ee11e3e0fc5b", + "5bdb01379259f9ba54514787", + "5f982c36a637ee11e3cb4807", + "5cb89ccdadbc796055f83079", + "5b61db9b00f9c6103ac28282", + "5be94b6f41fdeab19f3e8000", + "58898d8695a7a863ddcc31fc", + "5bf2b2c441fdeab19f6d55a4", + "58a4091a95a7a863ddcc6c59", + "5f34dcb3a637ee11e32dc2aa", + "5a5c914d8c32ec6f8bf685d1", + "5a3a8b7c5b3acffff7dc0f5c", + "5b9a7cdc18654940f7cb88f4", + "5fbf5c99a637ee11e3acc3d0", + "592e79d795a7a863ddcda681", + "58b432be95a7a863ddcc9bcf", + "5928006a95a7a863ddcd8db9", + "5a2188c4d8141396fe9a35f0", + "591428c195a7a863ddcd7d39", + "5b63087d1cc8aa54296a99c4", + "5e6753d6b04a3d1f194b0959", + "590b114395a7a863ddcd74bc", + "5d2c8fec8cba87f943024bc5", + "5ef30aa6499b85dcc7339c6d", + "5c0aa222133a785392616854", + "5e0da6a29fea0cc374b389a1", + "5c178421133a785392275f83", + "5bd1c5f178e1194aa60ce914", + "5e81c9d54b3890eb070fcf6b", + "5aedcb8c4b568b8eec627258", + "5ae472d64b568b8eec2ca106", + "5f98305ba637ee11e3e40f12", + "592fbce195a7a863ddcdb82e", + "5d9f2175abc8ea6d1ca4bf57", + "5df396499fea0cc374dbe202", + "5d4ae6facf657b21efffdf67", + "5ab0fd80f07aee697737f884", + "592d700295a7a863ddcda454", + "58dbb6eb95a7a863ddccf792", + "5aba5a40f07aee6977608f0f", + "5e15f1af9fea0cc374ddf98f", + "5d94b489abc8ea6d1c92f49f", + "5dc938829fea0cc37404c1aa", + "59b7a91f1350e8329300f326", + "5b9a550e18654940f754c07c", + "5e985654499b85dcc7a1df44", + "5952704d95a7a863ddcdecb5", + "5abd03f84b568b8eec85656a", + "5b891fb318654940f7db9ed9", + "59535fa795a7a863ddce1266" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_004_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_004_n100.json new file mode 100644 index 000000000..e6d844b88 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_004_n100.json @@ -0,0 +1,102 @@ +[ + "5fc67550a637ee11e3103694", + "5eec8cf7499b85dcc7dae4b2", + "5dbbfc2cabc8ea6d1c11035b", + "595292df95a7a863ddcdfea5", + "5a30e48ad8141396fe9b663b", + "5ea973c6499b85dcc7cb8173", + "5e847c8b4b3890eb07bf3ac9", + "58ac656495a7a863ddcc7d79", + "59c9fd561350e83293015204", + "5f65c162a637ee11e31c7a80", + "5e7caf544b3890eb07809d3f", + "5df3a8ff9fea0cc37412b382", + "58a4156895a7a863ddcc6dde", + "599ecda11350e83293007945", + "5df7606b9fea0cc374d3721f", + "592e7b8895a7a863ddcda864", + "5f981d45a637ee11e37c538f", + "5b2a07dc1eb1c99e2ac15b0b", + "5953616195a7a863ddce1425", + "593013d995a7a863ddcdc130", + "5f636329a637ee11e38387f1", + "5e202d829fea0cc3744908a8", + "5db2b821abc8ea6d1c441469", + "5b9a538818654940f75073dd", + "590afa8c95a7a863ddcd6e16", + "5b86a3a31cc8aa5429e5c5b5", + "5889bc9495a7a863ddcc3bff", + "58b4378e95a7a863ddcc9ffe", + "58aefab895a7a863ddcc8e40", + "59158b8195a7a863ddcd86ba", + "5a1449f0d8141396fe997112", + "5f562c10a637ee11e36d83d1", + "5e9eefaf499b85dcc7909828", + "58b437ff95a7a863ddcca095", + "5f916b5da637ee11e3057ccc", + "5952774f95a7a863ddcdf1d1", + "5fb53253a637ee11e331961f", + "5b4cbf5f00f9c6103abe277c", + "5f475606a637ee11e33e6892", + "5a22763fd8141396fe9a45b6", + "5e737d894b3890eb07419011", + "5f3b7a68a637ee11e31aafd3", + "5e95a1f8499b85dcc7072f35", + "5c1e3079133a7853926a74a1", + "5889bb4795a7a863ddcc39d0", + "5c0e50de133a785392916258", + "5e4121ae9fea0cc3748bd900", + "5e996e07499b85dcc778e04a", + "5c34ac6e048d064dbca6c54d", + "5979afa895a7a863ddce1731", + "5eea2b35499b85dcc7831756", + "5da715e0abc8ea6d1c83dd10", + "5d67ed46cf657b21ef7bdad9", + "5f3b9afaa637ee11e35f1111", + "5a22cc3fd8141396fe9a69d2", + "592d6e9d95a7a863ddcda335", + "5ea2e053499b85dcc7c007ba", + "5ba8b598ebe74117be0792c9", + "5dada4f3abc8ea6d1ce6b5f0", + "5bb5d58578e1194aa6f0d97f", + "5e0d9a7a9fea0cc374a816c4", + "5dad79afabc8ea6d1c9a14ad", + "5d6909e8abc8ea6d1c0cda03", + "58d1351d95a7a863ddcccc8d", + "5c5b07c0048d064dbc715c46", + "5fb66d81a637ee11e331eff7", + "5a217a2cd8141396fe9a2c81", + "5952a1ee95a7a863ddce0a50", + "5a26bcecd8141396fe9ac474", + "5f92cf79a637ee11e3055170", + "5c1e078d133a78539213eb7a", + "593688a695a7a863ddcdd28f", + "592d6f1395a7a863ddcda3b1", + "5b48808800f9c6103a252b3d", + "58e263e095a7a863ddcd0488", + "5da72151abc8ea6d1c9bfd81", + "5ae994754b568b8eec00f220", + "5e8effce499b85dcc77c87d3", + "5e0d99499fea0cc374a71c22", + "5a217d71d8141396fe9a2f44", + "5a22e2bfd8141396fe9a76f9", + "5a3783865b3acffff7dbd02d", + "58b013b395a7a863ddcc92f8", + "595293ee95a7a863ddcdffe0", + "5bf812c78caf671e1c97746d", + "5bf56aaa8caf671e1c60ce4b", + "5de7cf0c9fea0cc3742cced8", + "592801a995a7a863ddcd8e70", + "5c3c992e048d064dbcc2f681", + "5df398469fea0cc374e21041", + "5d9720b1abc8ea6d1c37b8d8", + "5f9917eaa637ee11e317522b", + "5952960c95a7a863ddce01b4", + "5f50b4e8a637ee11e3531d2b", + "5b62fc991cc8aa54293a0b2b", + "5f1feb15a637ee11e36d9e98", + "5f96de4aa637ee11e3f2339b", + "592e78e295a7a863ddcda547", + "590af64e95a7a863ddcd6a47", + "5952983095a7a863ddce03f5" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_005_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_005_n100.json new file mode 100644 index 000000000..6c11f2ed9 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_005_n100.json @@ -0,0 +1,102 @@ +[ + "5952923595a7a863ddcdfe2f", + "5d4a9458cf657b21ef4fcbaf", + "5c348882048d064dbc42da3d", + "5e7484214b3890eb07926eb6", + "5b9b789318654940f7c339ba", + "5d4aaa56cf657b21ef79d475", + "5a21a23ad8141396fe9a3dc2", + "5b7150d91cc8aa542919d6ff", + "5de0ee579fea0cc374a81c58", + "590b0e6e95a7a863ddcd723f", + "5b27b9bd1eb1c99e2abc2a8c", + "5930177f95a7a863ddcdc313", + "5c373565048d064dbc0c0df7", + "59b146c01350e8329300c43e", + "5de10e5e9fea0cc374f7255a", + "58a409c095a7a863ddcc6c79", + "5ea99740499b85dcc7466d10", + "5d4ab788cf657b21ef93c354", + "5e6a3438b04a3d1f19b1e4ea", + "5bfffe1e8caf671e1c6ad81f", + "5ea996a3499b85dcc7441a28", + "595295b895a7a863ddce0148", + "5d4ac826cf657b21efb7953b", + "5de0ee829fea0cc374a88e45", + "5909cfb695a7a863ddcd37cb", + "5889915495a7a863ddcc3485", + "592fbc2895a7a863ddcdb7dc", + "5c373ef6048d064dbc2824a1", + "590b0eeb95a7a863ddcd72b5", + "58dbb70095a7a863ddccf795", + "5dc934b79fea0cc374fd68e9", + "5bc60ba878e1194aa6b55faf", + "5ce3ba947d4459dfe1cebd75", + "5c3f5475048d064dbcf96378", + "5f99543fa637ee11e3fd170e", + "59b13d1d1350e8329300c1b9", + "5cfe2ad78cba87f943da4ec5", + "5d67dd7fcf657b21ef694cf1", + "5bd6f2dc78e1194aa66d5538", + "5952653a95a7a863ddcde888", + "5dad78a8abc8ea6d1c984dc9", + "5aa6afa7f07aee697778e1b8", + "5f6df489a637ee11e334eb74", + "589b246895a7a863ddcc49e5", + "5fb686f5a637ee11e3cab05e", + "5947e22895a7a863ddcddbe2", + "5ca73f3523c829c82188842b", + "5da732dcabc8ea6d1cc0dcc2", + "589dcfa695a7a863ddcc5a20", + "5ea9784c499b85dcc7da155d", + "58ab17ba95a7a863ddcc77bf", + "5914234b95a7a863ddcd7788", + "5f631425a637ee11e3b460a5", + "589b39f395a7a863ddcc4e8d", + "5bc09c4b78e1194aa64b5ffd", + "5b06924a4b568b8eec5d3d7c", + "5cab682523c829c8218e6115", + "5f114599499b85dcc796da51", + "5d9f2ad6abc8ea6d1cbed784", + "5e5f643fb04a3d1f19c8ec2b", + "593011d195a7a863ddcdbf7b", + "5ea95fca499b85dcc790c5b3", + "5c94fa6085ea3c16f9ca91a2", + "5e5f6528b04a3d1f19cb337b", + "5df3964b9fea0cc374dbe707", + "5ea97608499b85dcc7d2ec78", + "5e15f0179fea0cc374daa046", + "5c7e887d85ea3c16f904f689", + "5c0aafc9133a785392c6d063", + "5f85a10ca637ee11e33bb484", + "5952925795a7a863ddcdfe43", + "5c1e30ae133a7853926adb78", + "5e6f7bec4b3890eb071fad8c", + "5a231e10d8141396fe9a92a6", + "595272a795a7a863ddcdee6d", + "5de51f659fea0cc374ae59e8", + "5aa6ae49f07aee697775db29", + "5bf2cab441fdeab19f016c88", + "593017c595a7a863ddcdc327", + "5f041a9d499b85dcc7aa2528", + "5888d01295a7a863ddcc26a4", + "5f96aca7a637ee11e30bb517", + "5f464b6fa637ee11e3023d22", + "5b2a07361eb1c99e2abf8923", + "58a30a2495a7a863ddcc6841", + "5e99701d499b85dcc77c6b1d", + "5ab90801f07aee69770fe5cf", + "5c3c8d96048d064dbc9a3019", + "5e2808939fea0cc3748ee95d", + "5a329e71d8141396fe9b879b", + "5952757b95a7a863ddcdf0b8", + "588a10a595a7a863ddcc4636", + "589dfb1995a7a863ddcc6033", + "5c5b0796048d064dbc708a38", + "5b8567591cc8aa5429259e67", + "5889904595a7a863ddcc3325", + "5c4f1d10048d064dbc98288f", + "5c00025d8caf671e1c787a73", + "5ba0dbee18654940f7e579b6", + "5b76e97a1cc8aa5429a96181" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_006_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_006_n100.json new file mode 100644 index 000000000..89647f906 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_006_n100.json @@ -0,0 +1,102 @@ +[ + "5eec925b499b85dcc7e50220", + "592d6ce495a7a863ddcda20f", + "5bf28f6041fdeab19fa44a63", + "5c0aab41133a785392a5e0aa", + "5b51e7a300f9c6103ab68f78", + "5d6927ffabc8ea6d1c54e7f1", + "5c0e4c80133a7853927a2617", + "595275c795a7a863ddcdf0d6", + "5eec7b19499b85dcc7b8c3a2", + "58e6447895a7a863ddcd1696", + "58a30b0395a7a863ddcc695e", + "5a3289cdd8141396fe9b858a", + "5e7c74394b3890eb07228fcb", + "591426c795a7a863ddcd7bed", + "5a6f31568c32ec6f8bcc5e19", + "5dbc055eabc8ea6d1c1fe558", + "5fb7a537a637ee11e30cd754", + "5b756cd11cc8aa5429b99555", + "5a034328d8141396fe9897f3", + "5f916d22a637ee11e30c6f61", + "5c0fcbdc133a7853923e1d27", + "5d09011b8cba87f94306b562", + "593011fc95a7a863ddcdbf9a", + "5e9596ea499b85dcc7f22770", + "5d9c8fa2abc8ea6d1cd0d3e7", + "5fc11dbda637ee11e3a127f7", + "5adf29964b568b8eec8c7d33", + "5e33f6b89fea0cc374526ee6", + "5fbfb285a637ee11e33deff5", + "588991fc95a7a863ddcc3566", + "5e5f71b1b04a3d1f19e9f6a8", + "5d9f0b6cabc8ea6d1c6b2667", + "5e5f6528b04a3d1f19cb328f", + "5e6f77454b3890eb0717bf79", + "5bd1c53378e1194aa609548d", + "595270b895a7a863ddcded18", + "5e95927e499b85dcc7e91de0", + "58e38af995a7a863ddcd08d1", + "5f8958fca637ee11e35d0a69", + "5c5b095c048d064dbc7a0ede", + "595274be95a7a863ddcdeff3", + "5ea2d990499b85dcc7aaeb92", + "5e8596d64b3890eb078227f9", + "5e8479c74b3890eb07b961fc", + "5a215fc2d8141396fe9a218f", + "5e16e7af9fea0cc3741ba7dc", + "592fbb4895a7a863ddcdb757", + "5af02c394b568b8eecc23d5b", + "58ab15e295a7a863ddcc7666", + "5c3c9888048d064dbcc08c50", + "5b9a51ce18654940f74bf296", + "5a733dd48c32ec6f8b501bd7", + "5930199295a7a863ddcdc462", + "5df399629fea0cc374e54e05", + "5c7fc42b85ea3c16f972f905", + "5c628ceb85ea3c16f97afe5c", + "5c95085885ea3c16f9051739", + "58adb00a95a7a863ddcc82ec", + "589b422895a7a863ddcc5106", + "5de8dd4a9fea0cc374135e4f", + "5f9feefda637ee11e3f04b24", + "5b993af218654940f75b12f6", + "5ca73e7a23c829c821868ef4", + "5eb9a717499b85dcc704d42c", + "590b0d2195a7a863ddcd70ee", + "58b02de495a7a863ddcc9353", + "5a4bab528c32ec6f8b61da23", + "5952911c95a7a863ddcdfd3a", + "5c88efb785ea3c16f95ab8c3", + "592e7d1b95a7a863ddcdaa2d", + "5ea99ea3499b85dcc76169eb", + "5f5638b7a637ee11e38fd661", + "58b9425b95a7a863ddccb54b", + "59b7efc71350e8329300fa78", + "5f92d306a637ee11e3159f4a", + "5f85a10da637ee11e33bb68f", + "5c1e15f3133a78539233fb0e", + "5d6fa7aaabc8ea6d1c1cb1ed", + "5f85a006a637ee11e33755be", + "592e7c7d95a7a863ddcda9b2", + "588991b795a7a863ddcc34fd", + "5be58ca841fdeab19f976cfd", + "5df3afc19fea0cc37425e36e", + "5b75884e1cc8aa54296cc2d6", + "58a1e55695a7a863ddcc6147", + "5de10f159fea0cc374f8efa3", + "5b758bae1cc8aa542983a4be", + "58b6d2f895a7a863ddccaba6", + "5f466c31a637ee11e35c8f35", + "5c41f7a3048d064dbccfae94", + "5909ad9995a7a863ddcd2de4", + "59142a2a95a7a863ddcd7ec7", + "5df3ae369fea0cc3742150a6", + "5d5fb10fcf657b21ef44607b", + "59b7ff5b1350e8329300fd6d", + "5888cded95a7a863ddcc2397", + "591425ae95a7a863ddcd7a8a", + "593019da95a7a863ddcdc477", + "5888dd6095a7a863ddcc2e6d", + "5f991554a637ee11e3105fcd" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_007_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_007_n100.json new file mode 100644 index 000000000..3636c83f4 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_007_n100.json @@ -0,0 +1,102 @@ +[ + "5da6dde1abc8ea6d1c1a3583", + "599ecbfc1350e832930077ec", + "59e8d212d8141396fe978875", + "5a219b05d8141396fe9a3bdd", + "5bdc3b4d9259f9ba54ff8b8f", + "5909cf3095a7a863ddcd3754", + "58a30a2a95a7a863ddcc684d", + "5dcad2499fea0cc3749f99d1", + "5f982002a637ee11e389baf0", + "58b85eb495a7a863ddccb433", + "5bffb4aa8caf671e1c0e9c8e", + "5d08eacb8cba87f943da88b5", + "5b71641d1cc8aa5429639539", + "5c34ba99048d064dbccf0247", + "59c225d21350e83293012df5", + "5a82f6ddf07aee69770e9447", + "5a22d471d8141396fe9a6ec6", + "5b6aaf851cc8aa542986ad50", + "5bdc41399259f9ba54178456", + "5eb9a6ca499b85dcc703c2ba", + "59535be595a7a863ddce0f6a", + "59e8b4bcd8141396fe9786da", + "5f96aecaa637ee11e313f2d9", + "5888ceb795a7a863ddcc24c1", + "5ca5faf823c829c8218ffb10", + "59526e3a95a7a863ddcdeb06", + "5d9726b1abc8ea6d1c460b8c", + "5c17a218133a785392e5f17f", + "5d234eaf8cba87f94322b763", + "5f886765a637ee11e385d2ed", + "59b146b81350e8329300c43b", + "5e845ecd4b3890eb0784b016", + "590af50495a7a863ddcd6902", + "5c265074133a785392625e76", + "5f9a85d3a637ee11e361ae97", + "589b457b95a7a863ddcc5331", + "5b61d61c00f9c6103aac4060", + "58b4321995a7a863ddcc9b05", + "58b563ff95a7a863ddcca279", + "5954bf3c95a7a863ddce1651", + "5b27b8ae1eb1c99e2ab83eda", + "5da719ebabc8ea6d1c8c55a3", + "590af5c995a7a863ddcd69bc", + "5d4bd3aacf657b21ef38d681", + "5947c4ad95a7a863ddcddb3b", + "592fbd3e95a7a863ddcdb852", + "5dbbf802abc8ea6d1c0afb62", + "591582c295a7a863ddcd80ca", + "588a0edb95a7a863ddcc4389", + "5dc3ebe9abc8ea6d1cf4b6f4", + "5889bb0b95a7a863ddcc3968", + "5aa697bff07aee697745c6ea", + "59158b4f95a7a863ddcd8675", + "58b0311c95a7a863ddcc9522", + "595260fe95a7a863ddcde633", + "5fb52c7ca637ee11e310a67a", + "59bb95331350e83293011189", + "58a1e58f95a7a863ddcc617b", + "5952447195a7a863ddcdddd7", + "589dd40e95a7a863ddcc5bdf", + "5da6dde0abc8ea6d1c1a337a", + "5c41f55b048d064dbcc85b80", + "5f02e4b0499b85dcc75f8952", + "5909babd95a7a863ddcd3231", + "589b295495a7a863ddcc4c9f", + "59b7af7e1350e8329300f5c2", + "588991ea95a7a863ddcc3546", + "5c179393133a785392874557", + "5e21b4169fea0cc3749a38c4", + "59bb8ae11350e83293010e42", + "5928158695a7a863ddcd940c", + "5e8c76874b3890eb0755632b", + "5e8d966a4b3890eb071bb665", + "592d1bf795a7a863ddcd995d", + "5b76cac81cc8aa542999a893", + "5eec99e9499b85dcc7f3c8bc", + "5d67e0e4cf657b21ef700392", + "5c62929f85ea3c16f9940e2a", + "592d219f95a7a863ddcd9ebf", + "5e04bd5b9fea0cc3749cdb79", + "5be94c7e41fdeab19f45b1e8", + "5ba8b7ddebe74117be0e5a7f", + "5fb7ec30a637ee11e3b81316", + "5c8fbd0585ea3c16f96be241", + "5931435595a7a863ddcdcd4b", + "58aeb46795a7a863ddcc84a5", + "5888d8c795a7a863ddcc2a0f", + "5ec5562f499b85dcc76269f1", + "5f4cf5dba637ee11e3316e6a", + "5fbe7165a637ee11e34e654b", + "59524ee195a7a863ddcde237", + "5c013c608caf671e1c12e570", + "592d1ebe95a7a863ddcd9c89", + "59b266ce1350e8329300d08e", + "5e4faa211cc98b350ae9f58d", + "5c41f1f1048d064dbcbd957f", + "5b9a4b5818654940f73a5590", + "5cfe4cea8cba87f943155c48", + "5bdb00fd9259f9ba54502465", + "5c2643a9133a785392411b7c" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_008_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_008_n100.json new file mode 100644 index 000000000..44c512217 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_008_n100.json @@ -0,0 +1,102 @@ +[ + "5a0342dad8141396fe9897b0", + "5dad9b0babc8ea6d1cd3f4d9", + "592fd96c95a7a863ddcdbb21", + "5dbbfe7babc8ea6d1c14a4e5", + "5e317b779fea0cc374391655", + "5889ae9c95a7a863ddcc37a9", + "593143fa95a7a863ddcdcda5", + "5e0213489fea0cc374175712", + "5f982980a637ee11e3bbc43a", + "5e9855a8499b85dcc7a04af5", + "5c0fd091133a785392536a13", + "5e8c77134b3890eb07569c0e", + "592c21ac95a7a863ddcd9611", + "5e2808939fea0cc3748ee9ce", + "592fd67f95a7a863ddcdb999", + "5d08efd78cba87f943e540e6", + "5a71ca788c32ec6f8b14e73f", + "5e72455e4b3890eb07bcc0fa", + "592d6d3095a7a863ddcda256", + "5c0ab1ad133a785392d48c9b", + "5953280695a7a863ddce0ad2", + "5fc11b13a637ee11e3924a24", + "5f8958fca637ee11e35d0750", + "5d5ebf83cf657b21effd6f4c", + "5a033fe0d8141396fe9895e8", + "599ff4801350e83293008438", + "5b855e341cc8aa5429d7c653", + "5de0ee4f9fea0cc374a80b03", + "5b9ba2bf18654940f723c245", + "5ba1134618654940f77d16c2", + "5da0672fabc8ea6d1c07f503", + "5952934395a7a863ddcdff21", + "5be5853e41fdeab19f70ecad", + "5936872f95a7a863ddcdd19f", + "591425c495a7a863ddcd7aa3", + "589b37b795a7a863ddcc4d72", + "5e416f729fea0cc3743f04dc", + "5952938495a7a863ddcdff6c", + "5fb65edaa637ee11e3de078a", + "58b6d5a995a7a863ddccabf8", + "5d972353abc8ea6d1c3e001e", + "5e15f0179fea0cc374daa00a", + "5ea01126499b85dcc781e788", + "595269d495a7a863ddcdea73", + "590af5b395a7a863ddcd69b1", + "595274e195a7a863ddcdf01c", + "5e90704d499b85dcc7d7114d", + "5936882595a7a863ddcdd223", + "591423c195a7a863ddcd781c", + "5a22e318d8141396fe9a773c", + "5f1febdda637ee11e36fc6e0", + "5b9bbc3818654940f765e773", + "5a24a5e2d8141396fe9aa363", + "5aab8b36f07aee697768b07e", + "58aef0e195a7a863ddcc8b96", + "5b8d551918654940f7f58106", + "5f4cfb34a637ee11e3499843", + "5c1786e0133a7853923820d8", + "5bdc5b2e9259f9ba5486025e", + "5b8d559518654940f7f780c3", + "589df8fd95a7a863ddcc5e6c", + "593142b595a7a863ddcdcccf", + "5f041ebf499b85dcc7b151b7", + "5bf828a38caf671e1c2632e9", + "59535e2595a7a863ddce113b", + "5df3a00d9fea0cc374f870f5", + "58affeb595a7a863ddcc8f4a", + "5d37146e8cba87f9439167d9", + "5fb7ec31a637ee11e3b81624", + "59b27e3f1350e8329300d9c7", + "59bb92b91350e83293011088", + "58898fce95a7a863ddcc328e", + "5e5f5d2bb04a3d1f19b84e3b", + "5952789795a7a863ddcdf2e0", + "5a22883ed8141396fe9a4e73", + "5cd59b7c7d4459dfe131f3f8", + "59142a6195a7a863ddcd7f1b", + "58ac639f95a7a863ddcc7c46", + "5d09027f8cba87f9430979cb", + "5d2c8ca38cba87f943faf694", + "5cd58d4f7d4459dfe114a339", + "5c263090133a7853920c2a70", + "5b07ef901e2cc446e71d937f", + "5d95ef60abc8ea6d1cf28038", + "5bec503341fdeab19f15ed2d", + "5d2d85008cba87f94346a0d6", + "5d9c82a1abc8ea6d1cae1dff", + "5ce2b21b7d4459dfe16073ee", + "592e7b7095a7a863ddcda840", + "5d108aa38cba87f94389b4e4", + "58b6d25a95a7a863ddccab44", + "5ea9a2fb499b85dcc770e691", + "5cdeaf2c7d4459dfe13d4959", + "5e4facaa1cc98b350aef58bb", + "59532cac95a7a863ddce0cb8", + "5a033a83d8141396fe9892b2", + "5ee9f2d7499b85dcc7fb86b7", + "595295b395a7a863ddce0140", + "59313f3595a7a863ddcdca8a", + "5abcf4be4b568b8eec5b4e01" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_009_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_009_n100.json new file mode 100644 index 000000000..32b5135b5 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_009_n100.json @@ -0,0 +1,102 @@ +[ + "5eb9a81d499b85dcc7086b7e", + "592c223195a7a863ddcd967c", + "5be174d215d5cddfd04fd1a2", + "5e4a90c01cc98b350ada7aee", + "5da058e8abc8ea6d1ce7bd7a", + "5952694195a7a863ddcdea1b", + "588991f195a7a863ddcc3552", + "5fc11d19a637ee11e39d5946", + "5c0aa609133a7853927ed64b", + "5bdc42cd9259f9ba541e9bfd", + "5da7332dabc8ea6d1cc17247", + "5df398469fea0cc374e21063", + "5e9eeddb499b85dcc78c453d", + "5a219b45d8141396fe9a3be5", + "593684f195a7a863ddcdd061", + "5e6f770e4b3890eb07175aee", + "5e42687d9fea0cc37499314e", + "58a309e295a7a863ddcc6806", + "5d68dd6ce79a2a634ea111b8", + "592c213595a7a863ddcd95da", + "592d1ef595a7a863ddcd9ca4", + "5e4170299fea0cc37440e657", + "5d960231abc8ea6d1c2a7ab9", + "5ce3b0597d4459dfe1bc9fd3", + "5d4ae64dcf657b21effe78e1", + "5bf55e578caf671e1c2272f0", + "59bb96701350e8329301120a", + "5cc046150d983d43031c0ded", + "59b14bb11350e8329300c5f6", + "58b5655395a7a863ddcca3a6", + "5914266595a7a863ddcd7b70", + "5952590095a7a863ddcde4e4", + "5a017648d8141396fe98792d", + "595297cf95a7a863ddce039e", + "5b9bc6a018654940f781b996", + "58b4374495a7a863ddcc9f9d", + "5aa915dbf07aee697739f98b", + "5bbc950178e1194aa6fed246", + "5c77e18c85ea3c16f9ae49b5", + "5bdc3ee39259f9ba540db170", + "5fbfbd0fa637ee11e37e30f5", + "5d0ceced8cba87f9434d2da9", + "5f9815e2a637ee11e3589676", + "5888dd5195a7a863ddcc2e57", + "5f154115499b85dcc75cb8a6", + "599eccbb1350e83293007890", + "5a215d73d8141396fe9a1fb3", + "5c6c147785ea3c16f98dd907", + "5f9815e3a637ee11e3589a48", + "58898c4a95a7a863ddcc30c7", + "590af8d695a7a863ddcd6c7b", + "59b27d131350e8329300d87e", + "5de519bc9fea0cc3749d8e12", + "5a4e36758c32ec6f8baf3bde", + "5947dd6795a7a863ddcddb93", + "5cdd7fc47d4459dfe19fcd52", + "59b26b981350e8329300d505", + "5c7e41ba85ea3c16f9e6630c", + "5d37174d8cba87f94397b615", + "5f4cfc78a637ee11e34f5678", + "5f844a8aa637ee11e31c2578", + "595290a795a7a863ddcdfcde", + "591423b195a7a863ddcd7809", + "59313e5495a7a863ddcdc9ac", + "5dd3b76d9fea0cc37453f5fe", + "5e872eb04b3890eb0711742b", + "5ba0d45018654940f7d421de", + "5952730695a7a863ddcdeead", + "5e8d96b74b3890eb071c43d6", + "5cb89d8aadbc796055f970af", + "5d692c01abc8ea6d1c616114", + "5bbcbdfd78e1194aa69fe067", + "5dbbfa51abc8ea6d1c0e4395", + "5a82c1f8f07aee6977ba61c2", + "59b26aee1350e8329300d44e", + "591d9b0e95a7a863ddcd8cb6", + "5b080da41e2cc446e7813b12", + "58b02e5595a7a863ddcc9392", + "5c89156985ea3c16f90c9a65", + "5dd3e0c09fea0cc374a8d6d2", + "5e908795499b85dcc707c6a5", + "5b714f3a1cc8aa542913ca1d", + "590b0ff895a7a863ddcd73b7", + "5bd9d2fe9259f9ba54bd1d39", + "5ee9cd6b499b85dcc7af75ac", + "58ff3a6f95a7a863ddcd2430", + "5df39c869fea0cc374ee6695", + "5e5e34e0b04a3d1f19f74539", + "5f50d8e7a637ee11e3b3d584", + "58b85d9995a7a863ddccb3a3", + "5b2e13361eb1c99e2a18c565", + "5fbe7166a637ee11e34e6634", + "5c0aad9d133a785392b7197c", + "5bb5d0d378e1194aa6e08c43", + "5e1c28099fea0cc3744d8210", + "5ca5d15a23c829c82104d913", + "5c3c74b5048d064dbc4eb8b8", + "5909b8e195a7a863ddcd30f0", + "5a21848dd8141396fe9a33eb", + "589b37fe95a7a863ddcc4dbc" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_010_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_010_n100.json new file mode 100644 index 000000000..236204df5 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_010_n100.json @@ -0,0 +1,102 @@ +[ + "5952690f95a7a863ddcde9f5", + "5bc0aa8b78e1194aa66ed33e", + "5dad7628abc8ea6d1c943572", + "5c0a8413133a7853927c7ea5", + "5a230172d8141396fe9a8246", + "591581c395a7a863ddcd7faf", + "5909b14395a7a863ddcd2fbe", + "5889918e95a7a863ddcc34dd", + "5915828395a7a863ddcd806e", + "5f464f4ca637ee11e30b84b2", + "59b26a7e1350e8329300d3cb", + "5a2187d5d8141396fe9a358d", + "5c49c701048d064dbc08d0c2", + "5e202fd99fea0cc3744d32c9", + "5888b64795a7a863ddcc1d6d", + "5bb4861578e1194aa62ec8a4", + "589b418a95a7a863ddcc5079", + "5c348092048d064dbc2e9f6b", + "5c3c8975048d064dbc8cb2a0", + "5e4121709fea0cc3748b5349", + "58aefb3e95a7a863ddcc8ec4", + "589d7dc495a7a863ddcc55d3", + "5d9f0af2abc8ea6d1c6a0f60", + "5e8d96cb4b3890eb071c683d", + "5c4f1b1f048d064dbc90b24a", + "59bb8a2a1350e83293010e29", + "5df3adef9fea0cc374209a0e", + "5f3b84c8a637ee11e32ee4c9", + "58a1e89e95a7a863ddcc65ad", + "5a5cc79c8c32ec6f8b29904a", + "59b280711350e8329300dbaf", + "5fbf8699a637ee11e35d582d", + "5d67e85acf657b21ef774b04", + "598be11a1350e832930040b2", + "5c77dc9b85ea3c16f992531e", + "5947c39595a7a863ddcddaea", + "5e7484bf4b3890eb07933412", + "5f96895da637ee11e38af581", + "59158b0295a7a863ddcd8638", + "5c1e1fb6133a7853924aa3bc", + "5bbcaed078e1194aa6632a8b", + "5952687a95a7a863ddcde97e", + "5da8259eabc8ea6d1cf522b1", + "5952991195a7a863ddce04fd", + "5acf73d94b568b8eec2793b1", + "59006d2395a7a863ddcd250b", + "5d9c83f8abc8ea6d1cb19081", + "5b07efff1e2cc446e71ecc21", + "59b26b291350e8329300d483", + "59b27d871350e8329300d8e8", + "5936882a95a7a863ddcdd226", + "5aaa9bb8f07aee6977ee0f76", + "5c3c7aee048d064dbc6188e3", + "58a4184395a7a863ddcc7022", + "590af87295a7a863ddcd6c1e", + "589d8dd995a7a863ddcc587a", + "591d6af695a7a863ddcd89ad", + "5954bdf495a7a863ddce14fc", + "5b51ea5c00f9c6103ac28116", + "58aed11295a7a863ddcc87c4", + "5df3a7259fea0cc3740d8211", + "5fbe1dc6a637ee11e37e4eed", + "5df3964e9fea0cc374dbf3a0", + "5fa8f71ca637ee11e3cc935b", + "599ecd931350e83293007937", + "589b3e9495a7a863ddcc4f3d", + "595287f295a7a863ddcdf683", + "5931180295a7a863ddcdc8da", + "589b102e95a7a863ddcc47c2", + "5e875d084b3890eb0776a036", + "5ea847b2499b85dcc7f4bfdd", + "5fbf8b06a637ee11e37194e2", + "5ea99741499b85dcc74670c4", + "5d972a36abc8ea6d1c4ea54a", + "5c77dad985ea3c16f98822d9", + "5c62963585ea3c16f9a4803e", + "58b56a0a95a7a863ddcca609", + "592d6a7f95a7a863ddcd9f9a", + "5cc045e80d983d43031b7d13", + "5eba7bc4499b85dcc7d4508f", + "5e995ecc499b85dcc75eb401", + "5914298195a7a863ddcd7e0e", + "5d94c5bbabc8ea6d1cc51bc9", + "5cd686a67d4459dfe12ecd52", + "5f8433b2a637ee11e3c9ba0c", + "58a309aa95a7a863ddcc67bb", + "5c3c8d51048d064dbc994316", + "5a996902f07aee6977a321a5", + "5da7156fabc8ea6d1c82e947", + "59c8b8471350e83293014a4e", + "5c3732ea048d064dbc053728", + "5bdc41b09259f9ba5419add1", + "5e04ba7f9fea0cc3749733ea", + "591582b395a7a863ddcd80b2", + "5de8d9339fea0cc37408c695", + "5ca5bfea23c829c821cd9290", + "5889baee95a7a863ddcc3930", + "591424fb95a7a863ddcd79a1", + "58ab1aaa95a7a863ddcc78d8", + "5db2ba85abc8ea6d1c48520f" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_011_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_011_n100.json new file mode 100644 index 000000000..444b051be --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_011_n100.json @@ -0,0 +1,102 @@ +[ + "5e8762404b3890eb0782ad22", + "5e984f83499b85dcc792f6be", + "59158b9d95a7a863ddcd86d9", + "58b563c495a7a863ddcca252", + "592e7b0195a7a863ddcda7ed", + "590079c695a7a863ddcd25e2", + "5dcbcc729fea0cc37401a3ef", + "5e8c76b54b3890eb0755caec", + "5b756ba61cc8aa5429b24fb9", + "5f2ac874a637ee11e3b518d5", + "5bffb9f98caf671e1c2c8518", + "591428b695a7a863ddcd7d30", + "5cd67f1f7d4459dfe12714cf", + "5952998195a7a863ddce0560", + "5f969bfca637ee11e3c9bdad", + "5c264336133a7853923fea00", + "59b266461350e8329300cffe", + "5eea246a499b85dcc7719eb5", + "5cfe2aae8cba87f943da0b2e", + "5952784b95a7a863ddcdf2b1", + "5dd3c5c19fea0cc3746fd35c", + "5e5f5d2bb04a3d1f19b84ebd", + "58b8228995a7a863ddccad8f", + "592fbbae95a7a863ddcdb793", + "590af47495a7a863ddcd686c", + "5f57485ea637ee11e3b0af98", + "592fdd7e95a7a863ddcdbe67", + "5c5b0a5a048d064dbc7f6e17", + "59526f1295a7a863ddcdebd6", + "5f842afba637ee11e3aa919e", + "5eec99b2499b85dcc7f35f33", + "595329da95a7a863ddce0b9d", + "5f048092499b85dcc7962a94", + "5cd686627d4459dfe12e8ac1", + "5f893fafa637ee11e314a8f8", + "5b855cf71cc8aa5429cccf0d", + "5fa50e1ea637ee11e399a87f", + "5c77d83a85ea3c16f97885af", + "5c6d295585ea3c16f91c4d26", + "59b7a5641350e8329300f1f9", + "595278dc95a7a863ddcdf32f", + "5eb9a6ca499b85dcc703c38e", + "5952605495a7a863ddcde5a2", + "59b2651d1350e8329300cef1", + "58b56aca95a7a863ddcca69f", + "588991d295a7a863ddcc3530", + "5ba8bc14ebe74117be1aff3e", + "5bffc9178caf671e1c83374f", + "5be1764b15d5cddfd058acf9", + "5952776895a7a863ddcdf1ed", + "5df38a979fea0cc374ba07ce", + "5dc1670eabc8ea6d1c24d441", + "5952781695a7a863ddcdf26e", + "5eb3b027499b85dcc7ffbd88", + "592fdb0595a7a863ddcdbcb0", + "5888dd4395a7a863ddcc2e42", + "59535e2a95a7a863ddce1142", + "5953614995a7a863ddce1417", + "5a217811d8141396fe9a2a7a", + "5952969895a7a863ddce0237", + "5a2304e8d8141396fe9a848b", + "59368c8995a7a863ddcdd57a", + "5bf8264d8caf671e1c175e19", + "5f4cfae6a637ee11e3483568", + "5a0173f8d8141396fe987874", + "5d4ab51dcf657b21ef8ed3b7", + "588a0fb695a7a863ddcc4501", + "5cab667b23c829c82188baab", + "5f80480ea637ee11e3c57754", + "5d2c88498cba87f943f0cb14", + "5d94a871abc8ea6d1c6b5966", + "5bb4e7c278e1194aa6689dc8", + "5f02e4b0499b85dcc75f8922", + "58b4331395a7a863ddcc9c55", + "595287a895a7a863ddcdf636", + "59e8acf5d8141396fe97847b", + "5952a26c95a7a863ddce0a90", + "5e33fb199fea0cc3745c5ad6", + "5dd7b9db9fea0cc374d13bc1", + "5bf4228f41fdeab19f438894", + "5953296f95a7a863ddce0b6e", + "5c3c6c27048d064dbc34ffc5", + "5fa16796a637ee11e359dafd", + "5b97a74218654940f77b1b74", + "5eec8f7c499b85dcc7df9182", + "5bc60aee78e1194aa6b2338a", + "5f4c9be9a637ee11e34888bf", + "5b979c2a18654940f75b8ac9", + "58dbb71395a7a863ddccf79a", + "5bffb6bf8caf671e1c1a4cb8", + "5cdeaeea7d4459dfe13cbfbd", + "58891e7b95a7a863ddcc2f75", + "5a21785cd8141396fe9a2aaf", + "5e0621989fea0cc3748583f6", + "5ea9a2fa499b85dcc770e419", + "5f929ccba637ee11e335507f", + "5c9a00c885ea3c16f970c0b9", + "5c5af52d048d064dbc12b7e3", + "5a21a051d8141396fe9a3c88", + "589d7e8995a7a863ddcc5642" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_012_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_012_n100.json new file mode 100644 index 000000000..b958e085d --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_012_n100.json @@ -0,0 +1,102 @@ +[ + "5e9eef54499b85dcc78facb4", + "59b26dd21350e8329300d763", + "58cfb1b795a7a863ddccc9f5", + "5e8d86e94b3890eb0701b002", + "58aed44f95a7a863ddcc89dc", + "5931120895a7a863ddcdc51a", + "5b0d431e1eb1c99e2a8014bb", + "5a96bc4ef07aee6977c864cb", + "5ea2d700499b85dcc7a388a7", + "5889bc5995a7a863ddcc3b97", + "5e6753a7b04a3d1f194ab98f", + "59b7f2cf1350e8329300fb02", + "592d1bf395a7a863ddcd9953", + "5c77d73785ea3c16f9727e57", + "592d205595a7a863ddcd9e0f", + "5a5cc5998c32ec6f8b278b75", + "5952943095a7a863ddce0026", + "5e0da62e9fea0cc374b2fd7f", + "59524cbd95a7a863ddcde08d", + "5f2a8590a637ee11e3fcfdc3", + "5d691f60abc8ea6d1c3aae5f", + "590afa8795a7a863ddcd6e10", + "5e1c36049fea0cc37463d1ff", + "5cebcbb07d4459dfe1e5b5cf", + "5889aa4f95a7a863ddcc35e2", + "5db19debabc8ea6d1cc6ad38", + "5d0cf79f8cba87f943616ca6", + "589b0e9a95a7a863ddcc472e", + "589d7bd995a7a863ddcc5560", + "5e04b9a19fea0cc374957edc", + "5952678895a7a863ddcde8ab", + "5db170bbabc8ea6d1c6b599d", + "58a309ce95a7a863ddcc67ee", + "5e8d97274b3890eb071d01fc", + "5ed0ddff499b85dcc7274a10", + "5db1a55dabc8ea6d1cd871aa", + "5e2a9d2f9fea0cc374b35358", + "5952924a95a7a863ddcdfe3a", + "5b76ea0c1cc8aa5429ae4234", + "5f9698cfa637ee11e3be0527", + "5e8efa394b3890eb076135e1", + "5a215dc5d8141396fe9a1ffb", + "5a0335fdd8141396fe98917b", + "5e68e06cb04a3d1f19af5e5a", + "5ea968c3499b85dcc7aa3828", + "5a033738d8141396fe9891bf", + "5f9913dfa637ee11e30ca02f", + "595297d695a7a863ddce03a7", + "5d36eca58cba87f9433b0bc4", + "592e7c0995a7a863ddcda91e", + "5bd0598078e1194aa61642b1", + "5914238395a7a863ddcd77d3", + "5f4ce55da637ee11e3ecc40a", + "58b0315395a7a863ddcc954d", + "5ca5e9eb23c829c82154d340", + "5af06dce4b568b8eec939453", + "588a0c7595a7a863ddcc3f77", + "5f880072a637ee11e3da60d3", + "5dcbc84b9fea0cc374fa22c7", + "5bd9d0209259f9ba54b29c99", + "5ea97752499b85dcc7d70236", + "5b51e41700f9c6103aa8642e", + "5a1563a2d8141396fe9980a4", + "5ad8a4d74b568b8eecd98471", + "588a0fd395a7a863ddcc4517", + "5f4cedafa637ee11e30d5639", + "5b97a76918654940f77b93b2", + "59535bbb95a7a863ddce0f4b", + "5f4c9398a637ee11e33ceb3f", + "5bf826ea8caf671e1c1b4044", + "5e98506d499b85dcc794e364", + "5c77d70985ea3c16f9716278", + "5d9f2b87abc8ea6d1cc0aa1e", + "5f2ac6bba637ee11e3afb3f4", + "5ad8aeb24b568b8eecf9fed5", + "5eec9b34499b85dcc7f66df4", + "5a22e2b4d8141396fe9a76f2", + "5888d70595a7a863ddcc2885", + "5ea9a41f499b85dcc774e490", + "5aaa464ef07aee697730ccba", + "5cd697867d4459dfe13feb9f", + "5889aa4a95a7a863ddcc35dc", + "5ad8a9554b568b8eece82ddf", + "5b76e8381cc8aa54299ef785", + "593686a395a7a863ddcdd16f", + "58ab163b95a7a863ddcc76a3", + "5b716ba01cc8aa5429815a82", + "5bd82c0978e1194aa654f608", + "5c64158a85ea3c16f9060502", + "5a034189d8141396fe989747", + "5b51f1d400f9c6103ae2fda2", + "5b7160471cc8aa54295455e8", + "5e997385499b85dcc78256a4", + "5e8ece9e4b3890eb0711d46f", + "591d6cc495a7a863ddcd8a2d", + "5aab8a99f07aee6977678c43", + "59526f2b95a7a863ddcdebee", + "59158b9495a7a863ddcd86d0", + "5f48b5bfa637ee11e339b80c", + "58b012f495a7a863ddcc926d" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_013_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_013_n100.json new file mode 100644 index 000000000..c4b0bda7e --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_013_n100.json @@ -0,0 +1,102 @@ +[ + "5c628e0585ea3c16f97fad93", + "59c8e2b41350e83293014c2a", + "5a156387d8141396fe99808d", + "59535b9995a7a863ddce0f26", + "5952741695a7a863ddcdef74", + "599a8fe41350e83293006d92", + "58aef78d95a7a863ddcc8d3d", + "5b9a620118654940f77aafda", + "59535d0a95a7a863ddce102d", + "595276d295a7a863ddcdf1a9", + "5bf569998caf671e1c5b44c8", + "5c374446048d064dbc380092", + "59535ef495a7a863ddce11ce", + "5952897195a7a863ddcdf79b", + "595296e995a7a863ddce029b", + "5bb4888f78e1194aa6356be2", + "5bdc66479259f9ba54b72bb5", + "5928159c95a7a863ddcd9424", + "5ba10dbc18654940f76c37f6", + "5d95eda9abc8ea6d1cedb3c7", + "5b8565521cc8aa542914f3a0", + "5c17b35a133a78539257b0ae", + "5b9bb77618654940f7593c58", + "59bb95b31350e832930111bf", + "5d1c667f8cba87f9433747bc", + "5c8fac2785ea3c16f91fd3a8", + "5e68da79b04a3d1f19a34366", + "5d36f2338cba87f94345a005", + "590b111f95a7a863ddcd7492", + "5bbcc06a78e1194aa6a948bb", + "590af53895a7a863ddcd6938", + "59528f8d95a7a863ddcdfc3d", + "5c88e9d785ea3c16f943c675", + "5e5655fe1cc98b350abcaa7d", + "5bd1e22778e1194aa697a507", + "5c34af69048d064dbcaf6517", + "592d6f8395a7a863ddcda42a", + "59524d7695a7a863ddcde128", + "5b85593f1cc8aa5429aa9da8", + "58e2502695a7a863ddcd007f", + "5888d6f095a7a863ddcc2865", + "591589ab95a7a863ddcd848d", + "5952793c95a7a863ddcdf366", + "5da8210aabc8ea6d1cedfdc2", + "5c0a98a4133a785392183786", + "5aaf7943f07aee6977c79100", + "593013c795a7a863ddcdc127", + "5cd68b5c7d4459dfe1330505", + "5b71544c1cc8aa542927c42f", + "5bbcbd1778e1194aa69c3232", + "58aed05b95a7a863ddcc86fa", + "5d4bd597cf657b21ef3c4cd6", + "5ea97a10499b85dcc7df7aeb", + "5f85b16ea637ee11e3851aec", + "589df80995a7a863ddcc5d5f", + "5dbbf802abc8ea6d1c0afb92", + "591589a695a7a863ddcd8487", + "5eec91f8499b85dcc7e446f8", + "5e997386499b85dcc78256c0", + "59b7ecda1350e8329300f9f2", + "5e4121af9fea0cc3748bd98f", + "5e737d234b3890eb0740c7ff", + "5a15626ed8141396fe997fe6", + "5c265122133a78539264287e", + "598be0d11350e8329300406f", + "58b3f0d095a7a863ddcc9961", + "592d6a6e95a7a863ddcd9f83", + "5bdc59ba9259f9ba547fab4b", + "5c1e3d76133a7853928a24a2", + "5e6f787f4b3890eb0719d0bc", + "5b9bb4e218654940f7527c2f", + "5f27f167a637ee11e353cffb", + "5bd1e99778e1194aa6b9dfc1", + "59e8a3a5d8141396fe978202", + "5ea9732e499b85dcc7c9a633", + "5ce2afc87d4459dfe15b417b", + "5e416ef79fea0cc3743dc06b", + "5e16e7ae9fea0cc3741ba77a", + "599ecb061350e83293007738", + "59b27e1d1350e8329300d995", + "5888a28d95a7a863ddcc1c82", + "5c77dc2585ea3c16f98fbc1b", + "5b51eab900f9c6103ac42b73", + "59b26cee1350e8329300d679", + "5cb585c923c829c821271229", + "5d67e9e4cf657b21ef782b39", + "592d6e8595a7a863ddcda32f", + "5e6f763d4b3890eb0715fc61", + "5b76e8c31cc8aa5429a373ba", + "5e81dc7a4b3890eb072b5be1", + "590afa9895a7a863ddcd6e25", + "5df3af489fea0cc3742457a9", + "59b267641350e8329300d123", + "5e847b3e4b3890eb07bc8c6c", + "5a032842d8141396fe98907a", + "5b61d86a00f9c6103ab5c2f8", + "59b7afa01350e8329300f5e2", + "5c1e0993133a785392180f66", + "59b26c751350e8329300d604", + "5f9a80a4a637ee11e34d411f" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_014_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_014_n100.json new file mode 100644 index 000000000..eaede9734 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_014_n100.json @@ -0,0 +1,102 @@ +[ + "5da708bdabc8ea6d1c6883bb", + "5d94abababc8ea6d1c75c375", + "5f6376eba637ee11e3c286b5", + "58adb00395a7a863ddcc82e0", + "5b8923f718654940f7f2e576", + "5a3d1cf28c32ec6f8b3e639f", + "5930184395a7a863ddcdc36f", + "5c5b0d35048d064dbc8d58f2", + "5c3738f7048d064dbc1676dc", + "5888bb2995a7a863ddcc1f74", + "5da708afabc8ea6d1c6867f6", + "5de8d8179fea0cc37405fef5", + "595293da95a7a863ddcdffcc", + "5e81dbcc4b3890eb072a4588", + "5e8d87284b3890eb070215cf", + "5f991554a637ee11e3105fb3", + "5ea011f2499b85dcc783737d", + "5c260c50133a785392a5699f", + "5d4aa2e0cf657b21ef6ba5b9", + "5b97c92518654940f7ef15a1", + "5e5e3619b04a3d1f19faa564", + "5a218ae4d8141396fe9a370d", + "5b97a2ee18654940f76eb876", + "5f3b9afaa637ee11e35f1172", + "58e264ef95a7a863ddcd0559", + "589b431595a7a863ddcc5214", + "5e04c0ee9fea0cc374a3e279", + "5ce2b3727d4459dfe1637e3b", + "5efdd4a3499b85dcc7603b2c", + "5f56075fa637ee11e31044fa", + "5df3a9069fea0cc37412c906", + "588a0df095a7a863ddcc41aa", + "5a03424cd8141396fe98979a", + "5e81dbcb4b3890eb072a452f", + "5b2a01e91eb1c99e2ab2a7c5", + "5f47b0fba637ee11e30c4d8e", + "5da06020abc8ea6d1cf83f7e", + "5a22e26ed8141396fe9a76b3", + "595360ff95a7a863ddce13b9", + "5f981a71a637ee11e36e9de2", + "5e81c9bc4b3890eb070f8fc3", + "5a033a1bd8141396fe989267", + "5b28c7f51eb1c99e2a585581", + "593010d195a7a863ddcdbebb", + "5889bb4495a7a863ddcc39c9", + "5952616395a7a863ddcde69c", + "5f980530a637ee11e30ce6ec", + "59b2809c1350e8329300dbe4", + "5a22cb87d8141396fe9a692a", + "5bc60b2e78e1194aa6b34b8d", + "593112f495a7a863ddcdc5a7", + "5952610395a7a863ddcde636", + "5bdc3b889259f9ba54008a3b", + "589b43c795a7a863ddcc5289", + "5aaa9dfcf07aee6977f36df2", + "58e264cf95a7a863ddcd0543", + "5fb66464a637ee11e3fc90cb", + "5f200209a637ee11e3aa88d5", + "59528c5995a7a863ddcdf9c2", + "5b6ab3e01cc8aa542994ee9d", + "5a0342f7d8141396fe9897d3", + "592e7a8095a7a863ddcda719", + "5889bc1295a7a863ddcc3b29", + "5b6c552d1cc8aa5429294e05", + "592d707695a7a863ddcda4ae", + "592d194695a7a863ddcd96ed", + "5e737b594b3890eb073d4ee2", + "592800e695a7a863ddcd8df0", + "5d692c12abc8ea6d1c619709", + "5e709d684b3890eb0788c6c6", + "5c90ce8d85ea3c16f952ac20", + "5a230470d8141396fe9a843d", + "58cfb46e95a7a863ddcccbb0", + "5dbbfe15abc8ea6d1c140152", + "5e7c74f84b3890eb07239266", + "59368a1695a7a863ddcdd3a2", + "5a240287d8141396fe9a9df8", + "5e317aac9fea0cc374372867", + "5a4104d58c32ec6f8b197259", + "59b7af6e1350e8329300f5ac", + "589d8c5495a7a863ddcc5753", + "590b0b6495a7a863ddcd6f28", + "5b891fce18654940f7dc346f", + "59158a7195a7a863ddcd8572", + "5c7e881085ea3c16f9031528", + "5ce3cea27d4459dfe1f3e8e4", + "5e0219159fea0cc37425a627", + "589b38a095a7a863ddcc4e83", + "5c6d2fcb85ea3c16f93bd58b", + "59158b1f95a7a863ddcd864b", + "5e7c74d04b3890eb07235984", + "5f5748ada637ee11e3b182b6", + "5e0da8279fea0cc374b54a19", + "5c94fb2a85ea3c16f9cddf6c", + "5b85707d1cc8aa542972823c", + "5c7e4eb885ea3c16f919271a", + "5b9ba5e718654940f72b637a", + "5fb7a6cda637ee11e31472eb", + "5952997a95a7a863ddce0559", + "5d9f147eabc8ea6d1c829ef2" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_015_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_015_n100.json new file mode 100644 index 000000000..c76791f30 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_015_n100.json @@ -0,0 +1,102 @@ +[ + "590b0eab95a7a863ddcd7279", + "5a034425d8141396fe9898fa", + "5888ccd895a7a863ddcc227c", + "589dd1b895a7a863ddcc5b40", + "59535ea395a7a863ddce1193", + "5e875fa84b3890eb077cdbde", + "5d9c9fcdabc8ea6d1cffdceb", + "5fb50288a637ee11e335e18f", + "58a3099695a7a863ddcc67a5", + "5f3a63f1a637ee11e3d600fc", + "5fb66a6fa637ee11e32095b0", + "5c1b6fdc133a785392916275", + "595299f295a7a863ddce05df", + "5d9c94eeabc8ea6d1cdfb0b6", + "5df216b89fea0cc374b8d341", + "5931414095a7a863ddcdcbcc", + "5a218251d8141396fe9a31fb", + "59368a1a95a7a863ddcdd3ab", + "5d4a8c1ccf657b21ef417600", + "5954be6695a7a863ddce1560", + "59535ba395a7a863ddce0f2d", + "5fb542f1a637ee11e3911dbf", + "5f34ddbfa637ee11e32f6d12", + "58e262f195a7a863ddcd0435", + "5909ae1095a7a863ddcd2e32", + "5fa10b6aa637ee11e3c3f065", + "5914233f95a7a863ddcd777c", + "58d138ae95a7a863ddcccf02", + "5db2bb16abc8ea6d1c49456b", + "59b26c501350e8329300d5cd", + "5c7fa9c885ea3c16f900c0de", + "5dbc0176abc8ea6d1c198aa7", + "5888d8fb95a7a863ddcc2a40", + "5f3b7921a637ee11e3188a08", + "5dad77cbabc8ea6d1c96f2bf", + "5d5eba76cf657b21eff2f0d7", + "59b27d5f1350e8329300d8bd", + "5c6c12ae85ea3c16f9846c10", + "5ea01126499b85dcc781e710", + "5f1041fc499b85dcc7782033", + "5996aac11350e832930064ab", + "5a5cc6f18c32ec6f8b28e2a0", + "5952794195a7a863ddcdf36a", + "5e4170299fea0cc37440e6ef", + "5a22792dd8141396fe9a46a4", + "590b0f3f95a7a863ddcd72f9", + "5e1c2b529fea0cc374529db3", + "5c1b8b7f133a78539209357d", + "5937e7da95a7a863ddcdd787", + "5c5b0c1c048d064dbc87fb7d", + "58aed08d95a7a863ddcc8733", + "58b941d595a7a863ddccb4e3", + "5ca5bb0123c829c821bea9f1", + "5d6f9c19abc8ea6d1c01db5c", + "5bc0aeed78e1194aa67a02f1", + "5888dd2795a7a863ddcc2e33", + "58aed05795a7a863ddcc86f2", + "5e5f755bb04a3d1f19f38efe", + "5bc09d0878e1194aa64cf88d", + "59b26c641350e8329300d5e7", + "5da709b3abc8ea6d1c6a6d12", + "5ea2a19f499b85dcc7253f3a", + "590b0ee295a7a863ddcd72af", + "5f4f5a77a637ee11e3d842be", + "5e68e28db04a3d1f19b3c445", + "595276ac95a7a863ddcdf18f", + "59bb8fb61350e83293010f07", + "5fbbb0c3a637ee11e3183776", + "5dc28ef2abc8ea6d1cdcccc4", + "593142cb95a7a863ddcdccec", + "5952987d95a7a863ddce0454", + "59bb93fc1350e8329301114c", + "5c3c6f8b048d064dbc3f90c0", + "5ca5ea6b23c829c821566b60", + "5f4c9d6fa637ee11e34ab88c", + "5db16c13abc8ea6d1c62b46f", + "5b76cb441cc8aa54299df374", + "58b013c595a7a863ddcc9316", + "5d692009abc8ea6d1c3c8c0e", + "589d79f195a7a863ddcc5475", + "5d108ed78cba87f94390f593", + "5ce2966f7d4459dfe1248cd4", + "595288a095a7a863ddcdf709", + "5cb89cb2adbc796055f801ef", + "590af4e595a7a863ddcd68e9", + "5b4cbdb100f9c6103ab792e6", + "5952747995a7a863ddcdef9a", + "5dcbca229fea0cc374fd7b10", + "58ac67fc95a7a863ddcc7e70", + "5d1c60d78cba87f9432e29f6", + "58ac681795a7a863ddcc7e8b", + "592fbbbb95a7a863ddcdb7a0", + "58b010d395a7a863ddcc91d9", + "5c1e1134133a78539229763d", + "58a416a895a7a863ddcc6df1", + "5928033b95a7a863ddcd8fde", + "5c49d036048d064dbc2c27d8", + "5c178c40133a78539258ee89", + "5be407e241fdeab19fff2cfe", + "5cf146fc8cba87f943453d8f" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_016_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_016_n100.json new file mode 100644 index 000000000..34f7a7b16 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_016_n100.json @@ -0,0 +1,102 @@ +[ + "58a307b495a7a863ddcc65ce", + "58a416d595a7a863ddcc6e28", + "59bb8c6a1350e83293010e77", + "5ea9a0ae499b85dcc768bb3a", + "5c629f3085ea3c16f9ce0146", + "5ce2971b7d4459dfe125d6d4", + "58a4178995a7a863ddcc6f6f", + "5952498f95a7a863ddcddfe5", + "59b269e01350e8329300d320", + "592fd73895a7a863ddcdb9e7", + "5928014795a7a863ddcd8e2f", + "5bf7ec838caf671e1c9f2da7", + "5e2033229fea0cc374534a3c", + "5db2b93aabc8ea6d1c460a33", + "5c7fc28185ea3c16f96b7a0b", + "5e4a90f21cc98b350adaf03e", + "5df3ad999fea0cc3741fa156", + "5ea97187499b85dcc7c45e3d", + "5996ffca1350e83293006997", + "5bbcb74978e1194aa685f999", + "59529ad295a7a863ddce0693", + "5add937c4b568b8eecbe8a06", + "5888c54095a7a863ddcc2082", + "5aa915fef07aee69773a3ef4", + "592d1d1595a7a863ddcd9abb", + "5e9597fa499b85dcc7f44923", + "5f5731d0a637ee11e37b2476", + "5947a93c95a7a863ddcdd95c", + "5bf28d0641fdeab19f978b10", + "5f97e7fea637ee11e3877c93", + "5b51ebd700f9c6103ac94c1f", + "592d1edf95a7a863ddcd9c91", + "5952756d95a7a863ddcdf0a9", + "5fbf5f72a637ee11e3b6df54", + "58898fe895a7a863ddcc32b5", + "5c62905d85ea3c16f989b71e", + "5da82591abc8ea6d1cf509af", + "58a3088995a7a863ddcc66c6", + "58b83ddd95a7a863ddccb137", + "5c7e410385ea3c16f9e3f34f", + "5b9bb86d18654940f75bf003", + "58aed36995a7a863ddcc88aa", + "59528fb295a7a863ddcdfc63", + "5bd0754678e1194aa6931dba", + "5e8eff4a499b85dcc77b8951", + "592e7e2095a7a863ddcdab22", + "5f3bb9d9a637ee11e3a6a85f", + "5914271f95a7a863ddcd7c33", + "5bb4859478e1194aa62d5e4f", + "5f9a82b1a637ee11e3554b89", + "5e8d7e0a4b3890eb07f47128", + "592fdbde95a7a863ddcdbd4f", + "59528f7295a7a863ddcdfc2c", + "58e264f695a7a863ddcd055e", + "5a2160ccd8141396fe9a2279", + "5e4176a49fea0cc374515314", + "5b3f3c461eb1c99e2a11414a", + "58a441bb95a7a863ddcc7232", + "58b85c6095a7a863ddccb265", + "5da7158fabc8ea6d1c83329d", + "5dad776aabc8ea6d1c965bb2", + "5dcbc6a09fea0cc374f72869", + "58a30a4695a7a863ddcc6872", + "5f85b205a637ee11e3882108", + "5bd9cf849259f9ba54b04221", + "5b6aadee1cc8aa5429813505", + "5b7a72fc1cc8aa54295f1086", + "5a2304a0d8141396fe9a8461", + "5b89222318654940f7e9121e", + "5db19426abc8ea6d1cb34cd5", + "5fa91920a637ee11e3555a35", + "58b6d2bb95a7a863ddccab82", + "592fd90595a7a863ddcdbab3", + "5b51f1a600f9c6103ae23ae3", + "5e8d87224b3890eb07020c6d", + "595278a495a7a863ddcdf2f0", + "5bdc57b99259f9ba5476cba2", + "5cd69ab27d4459dfe14320d8", + "5cc03cb80d983d4303fecaa0", + "5e33f4009fea0cc3744b56d1", + "590b0efb95a7a863ddcd72c6", + "5f4630bfa637ee11e3c439dd", + "5947b6ff95a7a863ddcdda09", + "5bf56d588caf671e1c6e62f3", + "5dc27c32abc8ea6d1cbf115a", + "595360e195a7a863ddce13a3", + "595275dc95a7a863ddcdf0e8", + "5c264eee133a7853925e7e20", + "5e984f83499b85dcc792f65b", + "5a034147d8141396fe989703", + "589b0f6e95a7a863ddcc4789", + "58ac666695a7a863ddcc7e27", + "59526a2495a7a863ddcdea9e", + "58a417b295a7a863ddcc6fb4", + "5d972ba6abc8ea6d1c524609", + "5e0d99499fea0cc374a71bcc", + "58adb02495a7a863ddcc830f", + "5888d7b795a7a863ddcc299d", + "5fbb6616a637ee11e3d6532b", + "5d08f71b8cba87f943f37caf" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_017_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_017_n100.json new file mode 100644 index 000000000..860bb401e --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_017_n100.json @@ -0,0 +1,102 @@ +[ + "59526e7a95a7a863ddcdeb46", + "5c7fa3cd85ea3c16f9e8de2a", + "5d08f3708cba87f943ec4e3f", + "5889aa9b95a7a863ddcc3627", + "5a215f3fd8141396fe9a2107", + "58ac52a495a7a863ddcc79e0", + "5952684995a7a863ddcde950", + "59528bd495a7a863ddcdf953", + "590af51f95a7a863ddcd691c", + "5bb5d02b78e1194aa6de26dd", + "5c34acde048d064dbca8094e", + "5b9a52bf18654940f74e6d3b", + "5a733f3d8c32ec6f8b5193fc", + "5fbbb00ea637ee11e314772d", + "5dc9369d9fea0cc374012b40", + "5f4c9d6fa637ee11e34ab88b", + "59b7fb5d1350e8329300fc44", + "5e15f91c9fea0cc374ee0915", + "5931187395a7a863ddcdc919", + "5df38e5f9fea0cc374c488c4", + "5f9a85d4a637ee11e361b088", + "5e81ca524b3890eb071093a2", + "5eea3290499b85dcc7962b80", + "59368ac495a7a863ddcdd435", + "5b7a72941cc8aa54295d5607", + "5d4aa424cf657b21ef6ddd7b", + "5c41f383048d064dbcc2866b", + "5f4e06c2a637ee11e3cd8aaf", + "592d1da895a7a863ddcd9b66", + "5c77ed7b85ea3c16f9f1a0f8", + "5bdc6b7c9259f9ba54d09a1f", + "5db1a1f8abc8ea6d1ccf1bf9", + "590b0bc495a7a863ddcd6f81", + "590af9cd95a7a863ddcd6d69", + "5e8b2b464b3890eb0748bb34", + "5c4f235b048d064dbcb1a8bc", + "5e847c264b3890eb07be679f", + "58ad65ad95a7a863ddcc7f9c", + "5bf7ea9f8caf671e1c92a3df", + "5e4fac801cc98b350aeef053", + "58b4328e95a7a863ddcc9b9c", + "5f994d42a637ee11e3dddddd", + "5f560883a637ee11e3131868", + "595277ca95a7a863ddcdf20f", + "58a4178695a7a863ddcc6f68", + "595276e695a7a863ddcdf1b6", + "59b7a8b01350e8329300f31a", + "5a37a8f55b3acffff7dbd700", + "58ff0d7995a7a863ddcd2145", + "5889922195a7a863ddcc3583", + "5bf827a78caf671e1c20098f", + "59e8da23d8141396fe978a97", + "5d2365a58cba87f94353decc", + "5888a54d95a7a863ddcc1d0c", + "5c49ccb1048d064dbc1df08b", + "5e95a153499b85dcc705f282", + "5c62857485ea3c16f95c3393", + "592c222b95a7a863ddcd9675", + "5e847d8a4b3890eb07c136c2", + "5a79d0048c32ec6f8b205381", + "5f466a65a637ee11e3572fe4", + "5fbcece6a637ee11e3fe5bc6", + "5f885f81a637ee11e360a0ca", + "5ef311ff499b85dcc7412cf9", + "5da03ef0abc8ea6d1caf807c", + "59b26b751350e8329300d4e1", + "5d95d46cabc8ea6d1cae2161", + "58dbb73d95a7a863ddccf79e", + "5c1e0b39133a7853921ba51a", + "592e799f95a7a863ddcda638", + "5e847cf64b3890eb07c00737", + "5c1769f3133a785392916c66", + "595299cb95a7a863ddce059d", + "5e2553d09fea0cc37450bb3a", + "5e2aa10f9fea0cc374b8fb74", + "5888cc5c95a7a863ddcc21da", + "5bbc9fc778e1194aa627c636", + "5928147995a7a863ddcd936d", + "5b97a41518654940f771c659", + "59b264c91350e8329300ce98", + "5fc664a8a637ee11e38d0b83", + "5fb62e87a637ee11e3ec10f8", + "5da05facabc8ea6d1cf74019", + "5e8d7ece4b3890eb07f57f79", + "5f896c3ba637ee11e3a02595", + "5e74852b4b3890eb0793b775", + "5c5b0a29048d064dbc7e5d53", + "5de10f859fea0cc374fa1ef5", + "59009cc595a7a863ddcd2866", + "5e28090f9fea0cc3748fc62a", + "5f3bbac8a637ee11e3a8e312", + "5888dd6795a7a863ddcc2e74", + "5c7e88ce85ea3c16f9065e88", + "5952921695a7a863ddcdfe1f", + "5c459ce5048d064dbca8bc68", + "5bd9d2b79259f9ba54bc01e0", + "5d1c73e98cba87f9434ee162", + "5aaa53f5f07aee697749bb44", + "5ab4dd26f07aee697708fd73", + "58ab1d4c95a7a863ddcc7997" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_018_n100.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_018_n100.json new file mode 100644 index 000000000..143c5b574 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_018_n100.json @@ -0,0 +1,102 @@ +[ + "5d234b9c8cba87f9431bf572", + "5fbf8a42a637ee11e36e0472", + "5de0eecc9fea0cc374a9510b", + "5ea9605d499b85dcc7925846", + "5928171b95a7a863ddcd9562", + "5d95fa77abc8ea6d1c12a634", + "591d70b495a7a863ddcd8a64", + "58e3691c95a7a863ddcd06bc", + "589df9cc95a7a863ddcc5f43", + "5e81cf774b3890eb071851bc", + "58b565d095a7a863ddcca433", + "5c0145148caf671e1c3014d8", + "5c1e2af7133a785392603221", + "591425fb95a7a863ddcd7ae8", + "5f6e0180a637ee11e35aa918", + "5a3789a05b3acffff7dbd1e5", + "5b2919ac1eb1c99e2a84d1b7", + "5cebedcc7d4459dfe12ba578", + "5b891ad418654940f7c1548b", + "5cf4df3a8cba87f943602cda", + "5e709c644b3890eb07872f65", + "5952998c95a7a863ddce056a", + "5c61a37185ea3c16f9da35b5", + "5fbcece6a637ee11e3fe5be4", + "5e6f773d4b3890eb0717acd2", + "595288f095a7a863ddcdf745", + "5fc118e3a637ee11e385fba9", + "59529a6195a7a863ddce0650", + "591429c395a7a863ddcd7e57", + "5bc0b0ea78e1194aa67f6ab4", + "5da6d797abc8ea6d1c0d3369", + "5b07f0851e2cc446e7203c84", + "5c0fbc4e133a785392f6b825", + "5dad9af2abc8ea6d1cd3c8f7", + "5937e69395a7a863ddcdd6d0", + "59bb913c1350e83293010fe3", + "5e2031da9fea0cc37450dd01", + "5cab658423c829c821856c5b", + "59368aa995a7a863ddcdd424", + "58ac63e895a7a863ddcc7c85", + "5952a22e95a7a863ddce0a6c", + "5b2e09221eb1c99e2a0821a9", + "59bb931f1350e83293011104", + "5ec55750499b85dcc765840b", + "5fbf8a41a637ee11e36e01f4", + "5f200082a637ee11e3a6afad", + "59526a6495a7a863ddcdead9", + "58a40a4595a7a863ddcc6d37", + "5e9591b5499b85dcc7e78f6a", + "5e8d7e744b3890eb07f5068b", + "5f4dff27a637ee11e3bc86ad", + "59f7435cd8141396fe9800f7", + "5de8c0789fea0cc374ce931b", + "59524e4395a7a863ddcde1bc", + "5c88e41885ea3c16f92c4cb2", + "5df3880b9fea0cc374b2d334", + "5da054a3abc8ea6d1cde6621", + "595328cb95a7a863ddce0b29", + "5aa95574f07aee6977ba9cf7", + "5bd05c0e78e1194aa6210e31", + "592d1a2b95a7a863ddcd97aa", + "5fc11bd6a637ee11e39649c3", + "5e4540361cc98b350ac8e761", + "5c5afad6048d064dbc2ee507", + "592d6cd295a7a863ddcda1f8", + "5d9cad82abc8ea6d1c23ebf1", + "5d4accbacf657b21efc2584b", + "58aeb41795a7a863ddcc846d", + "5da71a19abc8ea6d1c8cb3db", + "5de7cad69fea0cc3741f9a3c", + "5e0213489fea0cc3741755fb", + "5952a16595a7a863ddce0a11", + "5dc2e11cabc8ea6d1c7d6cb3", + "593689d895a7a863ddcdd375", + "5a230512d8141396fe9a84a3", + "5a6078dc8c32ec6f8b7e7e09", + "592d197595a7a863ddcd96ff", + "5a4ba6f18c32ec6f8b5f3208", + "5f475449a637ee11e33aabb9", + "5d9cadb1abc8ea6d1c246dc8", + "5bbc9b3a78e1194aa616041e", + "5fb542f1a637ee11e3911dc2", + "5fb4fdd3a637ee11e31fa1a2", + "58b9492595a7a863ddccb59d", + "5f9297cba637ee11e321c00e", + "5fbf5b4aa637ee11e3a82536", + "5f6de1c6a637ee11e3fffaf1", + "58b00d5a95a7a863ddcc90dc", + "599fef501350e83293008044", + "5e8ef9fb4b3890eb0760bade", + "595269ac95a7a863ddcdea66", + "5db2b939abc8ea6d1c460919", + "589dd59d95a7a863ddcc5c02", + "58ada45395a7a863ddcc8287", + "5e021a3d9fea0cc37428a2fd", + "592fdcb795a7a863ddcdbdda", + "5cde9f537d4459dfe11e9dd5", + "5a37866c5b3acffff7dbd0ee", + "5f88022aa637ee11e3dfc003", + "5d6910ccabc8ea6d1c190a36" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_019_n71.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_019_n71.json new file mode 100644 index 000000000..f991ff0ec --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/batch_019_n71.json @@ -0,0 +1,73 @@ +[ + "5d960598abc8ea6d1c34cc4a", + "5f3b9945a637ee11e35b31aa", + "59b264ae1350e8329300ce73", + "5c7e87de85ea3c16f90241c9", + "58affe7195a7a863ddcc8f0e", + "5aa915e0f07aee69773a0214", + "590af8a195a7a863ddcd6c54", + "5c5b099a048d064dbc7b64a1", + "5bc60a7d78e1194aa6b0384b", + "5e4a90521cc98b350ad98e88", + "589d904495a7a863ddcc594c", + "5ee9dfdb499b85dcc7d472a9", + "59529a1b95a7a863ddce0604", + "5d37155c8cba87f943936f1a", + "5a218728d8141396fe9a3529", + "5f55fa71a637ee11e3f06a29", + "5a2fdb2dd8141396fe9b56db", + "58b822b995a7a863ddccade5", + "5aaa34b4f07aee697711d8fe", + "58b56a3b95a7a863ddcca62c", + "5fbfcf4ca637ee11e3f22e3a", + "5a184009d8141396fe99b0da", + "5e8599254b3890eb0785a28a", + "5947c49295a7a863ddcddb38", + "5928015095a7a863ddcd8e38", + "5fb7b29ca637ee11e34eaad2", + "5a21762cd8141396fe9a28c2", + "5b76eca81cc8aa5429c3bf58", + "5df3aece9fea0cc37422f39b", + "5928170b95a7a863ddcd9558", + "5ee9c4f3499b85dcc7a02007", + "5e84764f4b3890eb07b27b52", + "5888d7a795a7a863ddcc2981", + "5f968b52a637ee11e391152b", + "5eec6d34499b85dcc7a03404", + "595360c995a7a863ddce138b", + "5d08f7a08cba87f943f48a6d", + "5bb485f278e1194aa62e6a19", + "59524efd95a7a863ddcde25a", + "5b76dd7f1cc8aa5429408e03", + "5fbfa227a637ee11e3df4473", + "5e01cb059fea0cc37471e7c5", + "5da732a8abc8ea6d1cc0755d", + "5e201f8f9fea0cc374313d9d", + "593112a395a7a863ddcdc577", + "5c9502bb85ea3c16f9ed8b4c", + "588a0c4095a7a863ddcc3f10", + "5d2d91e38cba87f9435f92e7", + "5c1b648a133a7853926203ec", + "5952710f95a7a863ddcded4b", + "59524d2e95a7a863ddcde0e5", + "58b6d16295a7a863ddccaad1", + "588a109895a7a863ddcc461b", + "589b0f8c95a7a863ddcc4795", + "5b76eb201cc8aa5429b755e6", + "5d09050d8cba87f9430e74d3", + "58b4335795a7a863ddcc9c92", + "5c6d2c5a85ea3c16f92af509", + "5fb65d79a637ee11e3d6c486", + "5e68dc56b04a3d1f19a724f1", + "5dd3b9e19fea0cc37458d95f", + "58cfb24d95a7a863ddccca8e", + "5e5f6e8eb04a3d1f19e1d306", + "591426a995a7a863ddcd7bce", + "5952645b95a7a863ddcde7c9", + "59527b6495a7a863ddcdf507", + "59535d2f95a7a863ddce1050", + "5e68de9cb04a3d1f19ab7ab6", + "5889bc3695a7a863ddcc3b63", + "58ff09fb95a7a863ddcd1ff4", + "5da04ac7abc8ea6d1cc8645b" +] diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/manifest.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/manifest.json new file mode 100644 index 000000000..8d77568f9 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/manifest.json @@ -0,0 +1,465 @@ +{ + "authorization": { + "api_model_calls_performed_by_bundle": 0, + "paid_cost_usd": 0.0, + "paid_generation_authorized": false + }, + "budget": { + "exact_token_ceilings_status": "pending-full-readiness-dry-run", + "expected_new_usd_high": 85.0, + "expected_new_usd_low": 75.0, + "global_usd_stop": 120.0 + }, + "cache_snapshot": { + "meta_snapshot_sha256": "84ad5f01ad825b7fa2c8f9a1c0dc545737d998e6e0eb46e0c71bb25addffbdf3", + "missing_count": 0, + "missing_ids": [], + "missing_sidecar_count": 0, + "missing_sidecar_ids": [], + "valid_count": 1971 + }, + "completed_batch": { + "artifacts": { + "sega_aggregate": { + "path": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/aggregate.json", + "sha256": "dc5dfe2446933df717b21987258beb933d702add6a5416c4e3819f72c66bf5ae", + "size": 2094 + }, + "sega_manifest": { + "path": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/evaluation_manifest.json", + "sha256": "ee6f4d3284c91a0d8c5346b42d7e74f8640a63ddf77a97800931212a5d56086e", + "size": 15456 + }, + "sega_per_sample": { + "path": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-general-n100-sega-v1/per_sample.jsonl", + "sha256": "a72c699ff4eac61022c8cb12d4705afb845a80699c76fbe4923465827e663f25", + "size": 451191 + } + }, + "count": 100, + "evaluation_id": "a3-general-n100-sega-v1", + "ids_path": "layout_agent/sample_ids/a3_general_n100.json", + "ids_sha256": "0e5401fb45cb83c573c82be458508e6ace003482b027b667556dfd876aed052c", + "immutable": true, + "run_id": "a3-general-n100-t2-l0-01" + }, + "coverage": { + "algorithm": "sorted-remaining-ids-shuffle-seed42-chunks.v1", + "batch_size": 100, + "final_batch_count": 71, + "new_batch_count": 19, + "new_count": 1871, + "official_count": 1971, + "reused_count": 100, + "seed": 42 + }, + "dataset": { + "name": "cyberagent/crello", + "ordered_ids_canonical_sha256": "b082ec96e38798de500c8d1c82961bf20912634142218996446f2284c8b2d815", + "ordered_ids_file_sha256": "c3578fa5c8e0c181887a70f9e78b850b7d6adc52d3f367fe191b5f5292e0974c", + "ordered_ids_path": "layout_agent/sample_ids/a3_crello_test_n1971_v1/ordered_ids.json", + "repository_last_modified": "2026-02-27T02:45:00Z", + "revision": "7997e2f434ee4aa73cf4cdf22c5954cb175872e1", + "split": "test", + "split_counts": { + "test": 1971, + "train": 19479, + "validation": 1852 + } + }, + "new_batches": [ + { + "analyst_arm": "vision", + "batch_id": "crello-test-001-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-001-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-001-n100-sega-v1", + "ids_file": "batch_001_n100.json", + "ids_sha256": "0eb655c65218889753cb183d99faf1a7438b9138e7cac6ffab627e7020a0a73a", + "index": 1, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-001-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-001-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-002-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-002-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-002-n100-sega-v1", + "ids_file": "batch_002_n100.json", + "ids_sha256": "102b09d535e1c25f28a25afc46b6c58c53cfc8ddaa5e7c7382df838863c89d19", + "index": 2, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-002-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-002-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-003-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-003-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-003-n100-sega-v1", + "ids_file": "batch_003_n100.json", + "ids_sha256": "e6dafec2c7855c8568305a3c54fd372f1122d9636b28bf8ff2149ddc89ee03a7", + "index": 3, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-003-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-003-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-004-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-004-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-004-n100-sega-v1", + "ids_file": "batch_004_n100.json", + "ids_sha256": "93e5a1cd70214204a0e565eb49002c565e85c2dfa9b09531d61ed1c4e3dbffbd", + "index": 4, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-004-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-004-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-005-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-005-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-005-n100-sega-v1", + "ids_file": "batch_005_n100.json", + "ids_sha256": "a7b0abc63cf8f193b00877f472be1acc13adaa752eec86851014ef712de92772", + "index": 5, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-005-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-005-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-006-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-006-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-006-n100-sega-v1", + "ids_file": "batch_006_n100.json", + "ids_sha256": "19c11401000e91936f9b33fdb8536527a09e6f2d24c54956d08c1c446085d8c5", + "index": 6, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-006-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-006-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-007-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-007-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-007-n100-sega-v1", + "ids_file": "batch_007_n100.json", + "ids_sha256": "f6ce519e9f5dadd3c8e43d3443f8a7565567dafdbae2b935c2c1f63d10d73a32", + "index": 7, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-007-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-007-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-008-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-008-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-008-n100-sega-v1", + "ids_file": "batch_008_n100.json", + "ids_sha256": "b7509bb33e1775094e64dd58bc61b6af8227b5dcc718b3ea166ab36b649eeb24", + "index": 8, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-008-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-008-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-009-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-009-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-009-n100-sega-v1", + "ids_file": "batch_009_n100.json", + "ids_sha256": "f10f5f0f569fc6aa834de5525dbf2a1de5c95d29dbd1615ae0e0e49ff038d773", + "index": 9, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-009-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-009-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-010-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-010-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-010-n100-sega-v1", + "ids_file": "batch_010_n100.json", + "ids_sha256": "08ad307617d1e519f0cfc20113b06b10d4e4e250c93fbc85d8499678a24fb7c4", + "index": 10, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-010-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-010-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-011-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-011-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-011-n100-sega-v1", + "ids_file": "batch_011_n100.json", + "ids_sha256": "e5ed63447c13ff3d14b27fa40a4932a84fc754ffec935e72643c5e865e7b5b6c", + "index": 11, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-011-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-011-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-012-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-012-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-012-n100-sega-v1", + "ids_file": "batch_012_n100.json", + "ids_sha256": "5b293a2017fc624001da20d051618fc49872198fd937594ad8604618275ddbab", + "index": 12, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-012-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-012-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-013-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-013-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-013-n100-sega-v1", + "ids_file": "batch_013_n100.json", + "ids_sha256": "003748ca6c5d2e007c2578559b0316677f454d6ab0d32417890f177d7c5d0375", + "index": 13, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-013-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-013-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-014-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-014-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-014-n100-sega-v1", + "ids_file": "batch_014_n100.json", + "ids_sha256": "e3fec2a7e32916cd5eb3f202b97f69f8009ccb9b82f346deeac57844ac502ff1", + "index": 14, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-014-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-014-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-015-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-015-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-015-n100-sega-v1", + "ids_file": "batch_015_n100.json", + "ids_sha256": "58aff240ab678e179fcdce13e48c89870763129e542ec18bf67717e722fa3ac1", + "index": 15, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-015-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-015-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-016-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-016-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-016-n100-sega-v1", + "ids_file": "batch_016_n100.json", + "ids_sha256": "7dd381b920cf7215c6c82cc50b9fade102ddad93ad01cbdd201bd1688a8f32f9", + "index": 16, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-016-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-016-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-017-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-017-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-017-n100-sega-v1", + "ids_file": "batch_017_n100.json", + "ids_sha256": "7fbdd15dc33c4e568dc4c7dcbb9d4d9c3dcd1c5c2204a26f4c160641cbd85f3c", + "index": 17, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-017-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-017-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-018-n100", + "code_retry_max_calls": 2100, + "count": 100, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-018-n100-sega-v1", + "evaluation_id": "a3-crello-test-batch-018-n100-sega-v1", + "ids_file": "batch_018_n100.json", + "ids_sha256": "49e77b43ae889f9e6bf8e118f70c67225a49cb9d1a4b92ce2883671a7ae425f6", + "index": 18, + "input_token_ceiling": null, + "nominal_calls": 700, + "operational_attempt_stop": 850, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-018-n100-t2-l0-v1", + "run_id": "a3-crello-test-batch-018-n100-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 7.0 + }, + { + "analyst_arm": "vision", + "batch_id": "crello-test-019-n71", + "code_retry_max_calls": 1491, + "count": 71, + "evaluation_dir": "layout_agent/evaluations/a3-sega/a3.sega-pku-protocol.v1/a3-crello-test-batch-019-n71-sega-v1", + "evaluation_id": "a3-crello-test-batch-019-n71-sega-v1", + "ids_file": "batch_019_n71.json", + "ids_sha256": "6ddb10fd1f88c01241c5e807f436e2e8687e83e2ffdef131a6d4a83a121572ec", + "index": 19, + "input_token_ceiling": null, + "nominal_calls": 497, + "operational_attempt_stop": 610, + "output_token_ceiling": null, + "run_dir": "layout_agent/runs/a3/a3-crello-test-batch-019-n71-t2-l0-v1", + "run_id": "a3-crello-test-batch-019-n71-t2-l0-v1", + "status": "planned-not-authorized", + "tree_arm": "T2", + "usd_stop": 5.0 + } + ], + "protocol": { + "analyst_arm": "vision", + "candidates_per_sample": 3, + "config_file": "run_config.json", + "config_sha256": "3fb24c4193abdfda2e826b6260eaeefff426ab2dca052a23d9dc61b02fdc5270", + "config_source": "layout_agent/configs/a3_crello_test_l0_v1.json", + "foreground_protocol": "P-Full", + "loop": "L0", + "model": "gpt-5.4-mini-2026-03-17", + "renderer": "R3", + "tree_arm": "T2" + }, + "schema_version": "a3.crello-official-test-batches.v1" +} diff --git a/layout_agent/sample_ids/a3_crello_test_batches_v1/run_config.json b/layout_agent/sample_ids/a3_crello_test_batches_v1/run_config.json new file mode 100644 index 000000000..71b914014 --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_batches_v1/run_config.json @@ -0,0 +1,23 @@ +{ + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": null, + "dataset_split": "crello-official-test-n1971-batched-v1", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17", "image_detail": "high"} + }, + "schema_versions": { + "layout_tree": "a3.layout-tree.v1", + "judge_select_result": "a3.judge-select-result.v1", + "l0_pipeline": "a3.l0-pipeline.v1", + "annotation_packet": "a3.annotation-packet.v1", + "human_annotation": "a3.human-annotation.v1", + "adjudication": "a3.annotation-adjudication.v1" + }, + "price_table_version": null +} diff --git a/layout_agent/sample_ids/a3_crello_test_n1971_v1/dataset_provenance.json b/layout_agent/sample_ids/a3_crello_test_n1971_v1/dataset_provenance.json new file mode 100644 index 000000000..56174be7f --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_n1971_v1/dataset_provenance.json @@ -0,0 +1,20 @@ +{ + "api_model_calls": 0, + "count": 1971, + "dataset": "cyberagent/crello", + "network_projection": [ + "id" + ], + "ordered_ids_canonical_sha256": "b082ec96e38798de500c8d1c82961bf20912634142218996446f2284c8b2d815", + "ordered_ids_file_sha256": "c3578fa5c8e0c181887a70f9e78b850b7d6adc52d3f367fe191b5f5292e0974c", + "paid_cost_usd": 0.0, + "repository_last_modified": "2026-02-27T02:45:00Z", + "revision": "7997e2f434ee4aa73cf4cdf22c5954cb175872e1", + "schema_version": "a3.crello-official-test-snapshot.v1", + "split": "test", + "split_counts": { + "test": 1971, + "train": 19479, + "validation": 1852 + } +} diff --git a/layout_agent/sample_ids/a3_crello_test_n1971_v1/ordered_ids.json b/layout_agent/sample_ids/a3_crello_test_n1971_v1/ordered_ids.json new file mode 100644 index 000000000..ef04aa6bb --- /dev/null +++ b/layout_agent/sample_ids/a3_crello_test_n1971_v1/ordered_ids.json @@ -0,0 +1,1973 @@ +[ + "5ca5faf823c829c8218ffb10", + "5936872f95a7a863ddcdd19f", + "5c77dc2585ea3c16f98fbc1b", + "5952793c95a7a863ddcdf366", + "592fbb8695a7a863ddcdb782", + "59535fa795a7a863ddce1266", + "5928158695a7a863ddcd940c", + "5c3738f7048d064dbc1676dc", + "5888cc5c95a7a863ddcc21da", + "5fa50e1ea637ee11e399a87f", + "5bbcbdfd78e1194aa69fe067", + "591d9b0e95a7a863ddcd8cb6", + "591425fb95a7a863ddcd7ae8", + "59526f1295a7a863ddcdebd6", + "5b61d86a00f9c6103ab5c2f8", + "5f85a10ca637ee11e33bb484", + "5d9cadb1abc8ea6d1c246dc8", + "5c17a218133a785392e5f17f", + "59524cbd95a7a863ddcde08d", + "589b0f6e95a7a863ddcc4789", + "5da6dde0abc8ea6d1c1a337a", + "5c265122133a78539264287e", + "592d6d3095a7a863ddcda256", + "5928014795a7a863ddcd8e2f", + "59368a1a95a7a863ddcdd3ab", + "59bb96701350e8329301120a", + "5eb9a81d499b85dcc7086b7e", + "5d9f0b6cabc8ea6d1c6b2667", + "59e8a3a5d8141396fe978202", + "595278dc95a7a863ddcdf32f", + "590af53895a7a863ddcd6938", + "5aa697bff07aee697745c6ea", + "5fb62e87a637ee11e3ec10f8", + "5952997a95a7a863ddce0559", + "5a21793fd8141396fe9a2b83", + "5ab0fd80f07aee697737f884", + "5e709d684b3890eb0788c6c6", + "5c7e410385ea3c16f9e3f34f", + "591429c395a7a863ddcd7e57", + "5f4cfae6a637ee11e3483568", + "59b7a5641350e8329300f1f9", + "59158b0295a7a863ddcd8638", + "5dcbca229fea0cc374fd7b10", + "5e6f787f4b3890eb0719d0bc", + "5da058e8abc8ea6d1ce7bd7a", + "591589ab95a7a863ddcd848d", + "5f982488a637ee11e3a1779f", + "5aa6afa7f07aee697778e1b8", + "5ed0ddff499b85dcc7274a10", + "592fd68895a7a863ddcdb9a2", + "5f34dcb3a637ee11e32dc2aa", + "5e45421a1cc98b350acda05c", + "592d1bf795a7a863ddcd995d", + "5f982c36a637ee11e3cb4807", + "5d4a9458cf657b21ef4fcbaf", + "5d9c94eeabc8ea6d1cdfb0b6", + "5e4121af9fea0cc3748bd98f", + "5ce2966f7d4459dfe1248cd4", + "5952998195a7a863ddce0560", + "5e28090f9fea0cc3748fc62a", + "5cd58d4f7d4459dfe114a339", + "5cdeaeea7d4459dfe13cbfbd", + "592d211c95a7a863ddcd9e61", + "595276ac95a7a863ddcdf18f", + "5cd69ab27d4459dfe14320d8", + "5c26505c133a7853926220a8", + "5e6a3440b04a3d1f19b1f59f", + "5da719ebabc8ea6d1c8c55a3", + "5e5f6528b04a3d1f19cb337b", + "5d6927ffabc8ea6d1c54e7f1", + "5e7a36214b3890eb072fb652", + "59008beb95a7a863ddcd26e5", + "5da6d797abc8ea6d1c0d3369", + "5bd1c85078e1194aa6186300", + "5930135495a7a863ddcdc0ac", + "59526e3a95a7a863ddcdeb06", + "5bd1e93f78e1194aa6b847de", + "590afa8c95a7a863ddcd6e16", + "5d08f3708cba87f943ec4e3f", + "5b2e0d731eb1c99e2a0ece14", + "5b51f1d400f9c6103ae2fda2", + "591581c995a7a863ddcd7fc1", + "5bd9cf849259f9ba54b04221", + "5c373bed048d064dbc1efbe3", + "5e95a153499b85dcc705f282", + "59bb8ae11350e83293010e42", + "5c0ab1ad133a785392d48c9b", + "5931120895a7a863ddcdc51a", + "5cf14cf58cba87f9434f1d6f", + "591582b395a7a863ddcd80b2", + "5e995ecc499b85dcc75eb401", + "5dad78a8abc8ea6d1c984dc9", + "5dbbfe15abc8ea6d1c140152", + "5931402695a7a863ddcdcb00", + "5fc11d19a637ee11e39d5946", + "58ab1aaa95a7a863ddcc78d8", + "5e0d99499fea0cc374a71bcc", + "59bb93fc1350e8329301114c", + "5e8c76b54b3890eb0755caec", + "59c8e4751350e83293014cec", + "5909b86d95a7a863ddcd309c", + "595278a495a7a863ddcdf2f0", + "5952756d95a7a863ddcdf0a9", + "5888d7a795a7a863ddcc2981", + "590b114395a7a863ddcd74bc", + "5db2addfabc8ea6d1c333fbc", + "5f041f26499b85dcc7b20357", + "5f2ac6bba637ee11e3afb3f4", + "59b13af81350e8329300c0e7", + "5f9698cfa637ee11e3be0527", + "591d6af695a7a863ddcd89ad", + "5cf146fc8cba87f943453d8f", + "593019da95a7a863ddcdc477", + "592c223195a7a863ddcd967c", + "5f9917eaa637ee11e317522b", + "5889bc9495a7a863ddcc3bff", + "5fb65d79a637ee11e3d6c486", + "59142a2a95a7a863ddcd7ec7", + "5952653a95a7a863ddcde888", + "5cab658423c829c821856c5b", + "5d2365a58cba87f94353decc", + "5a2187d5d8141396fe9a358d", + "595293f495a7a863ddcdffe7", + "5d960598abc8ea6d1c34cc4a", + "58affe7195a7a863ddcc8f0e", + "5e6f773d4b3890eb0717acd2", + "591589eb95a7a863ddcd84d7", + "588a10a595a7a863ddcc4636", + "5fbfb285a637ee11e33deff5", + "5fbbb00ea637ee11e314772d", + "5888d8fb95a7a863ddcc2a40", + "5b756cd11cc8aa5429b99555", + "5a21762cd8141396fe9a28c2", + "5b61db9b00f9c6103ac28282", + "58d138ae95a7a863ddcccf02", + "59bb95331350e83293011189", + "5e68da79b04a3d1f19a34366", + "5a22e2b4d8141396fe9a76f2", + "5da05facabc8ea6d1cf74019", + "5c9502bb85ea3c16f9ed8b4c", + "58ac656495a7a863ddcc7d79", + "5f85a10da637ee11e33bb68f", + "59526a6495a7a863ddcdead9", + "5e4170299fea0cc37440e6ef", + "5b76eca81cc8aa5429c3bf58", + "595328cb95a7a863ddce0b29", + "589d8ca795a7a863ddcc5783", + "5e72455e4b3890eb07bcc0fa", + "59b7efc71350e8329300fa78", + "5b856b601cc8aa54294702eb", + "5fbf5b4aa637ee11e3a82536", + "5c7fa9c885ea3c16f900c0de", + "59b2651d1350e8329300cef1", + "58ab17ba95a7a863ddcc77bf", + "592d6f1395a7a863ddcda3b1", + "5b080da41e2cc446e7813b12", + "5d9720b1abc8ea6d1c37b8d8", + "58ab1d4c95a7a863ddcc7997", + "5dd3c5c19fea0cc3746fd35c", + "5996ffca1350e83293006997", + "5c62857485ea3c16f95c3393", + "5db2b821abc8ea6d1c441469", + "5dd3b9e19fea0cc37458d95f", + "59f7435cd8141396fe9800f7", + "58b6d2f895a7a863ddccaba6", + "592d194695a7a863ddcd96ed", + "5da03ef0abc8ea6d1caf807c", + "5f562c10a637ee11e36d83d1", + "5e8599254b3890eb0785a28a", + "5ec55750499b85dcc765840b", + "5f4630bfa637ee11e3c439dd", + "59e8b4bcd8141396fe9786da", + "5e4faa211cc98b350ae9f58d", + "58dbb71395a7a863ddccf79a", + "5c260c50133a785392a5699f", + "58b437ff95a7a863ddcca095", + "5c1e1134133a78539229763d", + "5b76dd7f1cc8aa5429408e03", + "5e0d9a7a9fea0cc374a816c4", + "5bdc5b2e9259f9ba5486025e", + "5b97a41518654940f771c659", + "58aef0e195a7a863ddcc8b96", + "5b2e12d91eb1c99e2a182b41", + "5f56075fa637ee11e31044fa", + "5de0eeb09fea0cc374a9071f", + "5a240260d8141396fe9a9de3", + "5e7a35064b3890eb072c981e", + "5c77d70985ea3c16f9716278", + "5888dd6095a7a863ddcc2e6d", + "5f5f5032a637ee11e35cb88e", + "590079c695a7a863ddcd25e2", + "59b13d1d1350e8329300c1b9", + "5fbf8a41a637ee11e36e01f4", + "5f3bb9d9a637ee11e3a6a85f", + "5930184395a7a863ddcdc36f", + "5c1e0993133a785392180f66", + "5cde9f537d4459dfe11e9dd5", + "5f980530a637ee11e30ce6ec", + "5c6c147785ea3c16f98dd907", + "5ef309aa499b85dcc731cc93", + "5e908795499b85dcc707c6a5", + "5914238395a7a863ddcd77d3", + "5df3ac9a9fea0cc3741cc29d", + "5ea2a19f499b85dcc7253f3a", + "5a6079518c32ec6f8b7eeaa9", + "58b4335795a7a863ddcc9c92", + "592d6a6e95a7a863ddcd9f83", + "5e2024a89fea0cc37439a7c1", + "5c3f5475048d064dbcf96378", + "5dbbfc2cabc8ea6d1c11035b", + "5952720b95a7a863ddcdedee", + "5eec8cf7499b85dcc7dae4b2", + "5c7fa3cd85ea3c16f9e8de2a", + "5e81ca524b3890eb071093a2", + "59528f7295a7a863ddcdfc2c", + "592e7b7095a7a863ddcda840", + "5de10f859fea0cc374fa1ef5", + "5df211c29fea0cc374abbbba", + "593686a395a7a863ddcdd16f", + "5c1e078d133a78539213eb7a", + "599ecb061350e83293007738", + "5bc09c4b78e1194aa64b5ffd", + "59158b9d95a7a863ddcd86d9", + "5dbc2153abc8ea6d1c4e3c45", + "5cb89d8aadbc796055f970af", + "5bffb4aa8caf671e1c0e9c8e", + "5cdd7fc47d4459dfe19fcd52", + "5c178421133a785392275f83", + "5c1769f3133a785392916c66", + "5ea99740499b85dcc7466d10", + "5a4ba6f18c32ec6f8b5f3208", + "5ec5562f499b85dcc76269f1", + "5953616195a7a863ddce1425", + "5bc61a7d78e1194aa6f815f5", + "5e68de9cb04a3d1f19ab7ab6", + "5d108ed78cba87f94390f593", + "5d08efd78cba87f943e540e6", + "5bdb00fd9259f9ba54502465", + "5952991195a7a863ddce04fd", + "595274e195a7a863ddcdf01c", + "5c5b0a5a048d064dbc7f6e17", + "5da708afabc8ea6d1c6867f6", + "5fc67550a637ee11e3103694", + "5fbe7165a637ee11e34e654b", + "5e8596d64b3890eb078227f9", + "59c8b8471350e83293014a4e", + "5c41f383048d064dbcc2866b", + "592d1a2b95a7a863ddcd97aa", + "5909cfb695a7a863ddcd37cb", + "595276d295a7a863ddcdf1a9", + "5fb66a6fa637ee11e32095b0", + "593011fc95a7a863ddcdbf9a", + "5bfffe1e8caf671e1c6ad81f", + "5be94b6f41fdeab19f3e8000", + "5e68dc56b04a3d1f19a724f1", + "5889bb0b95a7a863ddcc3968", + "59368aa995a7a863ddcdd424", + "59b26cee1350e8329300d679", + "5d2c8e918cba87f943ff28d3", + "5f644f40a637ee11e3669a1c", + "5b891fb318654940f7db9ed9", + "5915821995a7a863ddcd8015", + "5a034321d8141396fe9897ee", + "5bdc42cd9259f9ba541e9bfd", + "5ea996a3499b85dcc7441a28", + "5d68df79e79a2a634ea55321", + "5f4e0040a637ee11e3bec594", + "5acf77784b568b8eec317748", + "592c213595a7a863ddcd95da", + "595299cb95a7a863ddce059d", + "5e2808939fea0cc3748ee95d", + "5952690795a7a863ddcde9ee", + "5889bc3695a7a863ddcc3b63", + "5f4798fca637ee11e3cbdc84", + "5d234eaf8cba87f94322b763", + "5888cded95a7a863ddcc2397", + "5d2d91e38cba87f9435f92e7", + "598be0d11350e8329300406f", + "5928015095a7a863ddcd8e38", + "5dad776aabc8ea6d1c965bb2", + "5df3964b9fea0cc374dbe707", + "58ac545c95a7a863ddcc7ab8", + "590b0efb95a7a863ddcd72c6", + "5e95927e499b85dcc7e91de0", + "58ff3a6f95a7a863ddcd2430", + "5be97b9241fdeab19f985504", + "58aed44f95a7a863ddcc89dc", + "5b97a76918654940f77b93b2", + "59158b4f95a7a863ddcd8675", + "5dbbf802abc8ea6d1c0afb92", + "5acf73d94b568b8eec2793b1", + "5952747995a7a863ddcdef9a", + "5b76e97a1cc8aa5429a96181", + "5bbcb74978e1194aa685f999", + "5954bef795a7a863ddce15f7", + "5b27b9bd1eb1c99e2abc2a8c", + "595290a795a7a863ddcdfcde", + "5a71ca788c32ec6f8b14e73f", + "5889aa9b95a7a863ddcc3627", + "5952684995a7a863ddcde950", + "5c0aae72133a785392bd458d", + "5da071b5abc8ea6d1c1f1d6f", + "5888daea95a7a863ddcc2cb0", + "5cb89cb2adbc796055f801ef", + "590b0b6495a7a863ddcd6f28", + "5d67e85acf657b21ef774b04", + "5da8210aabc8ea6d1cedfdc2", + "5fa8f71ca637ee11e3cc935b", + "5d973119abc8ea6d1c603048", + "5de8dd4a9fea0cc374135e4f", + "5d1c667f8cba87f9433747bc", + "589dd59d95a7a863ddcc5c02", + "590af9cd95a7a863ddcd6d69", + "5dc3ebe9abc8ea6d1cf4b6f4", + "5952645b95a7a863ddcde7c9", + "58a417b295a7a863ddcc6fb4", + "5be94c7e41fdeab19f45b1e8", + "58ac681795a7a863ddcc7e8b", + "5a3783865b3acffff7dbd02d", + "5be9669741fdeab19ffa4a0e", + "595287f295a7a863ddcdf683", + "5e8d966a4b3890eb071bb665", + "5fc0b87ba637ee11e3a49e4c", + "5df3ae369fea0cc3742150a6", + "589df9cc95a7a863ddcc5f43", + "5c88e9d785ea3c16f943c675", + "5de8d9339fea0cc37408c695", + "58898d8695a7a863ddcc31fc", + "590af4e595a7a863ddcd68e9", + "5bdc41399259f9ba54178456", + "5952784b95a7a863ddcdf2b1", + "5ca5cf0023c829c821fceeaf", + "5952943095a7a863ddce0026", + "5e81c9bc4b3890eb070f8fc3", + "590afa8795a7a863ddcd6e10", + "5f96895da637ee11e38af581", + "5c62905d85ea3c16f989b71e", + "588a0fb695a7a863ddcc4501", + "5a219b45d8141396fe9a3be5", + "5c61a37185ea3c16f9da35b5", + "5c0e4c80133a7853927a2617", + "5d95ef60abc8ea6d1cf28038", + "5db2bb16abc8ea6d1c49456b", + "5c3c6f8b048d064dbc3f90c0", + "59528f8d95a7a863ddcdfc3d", + "589d7bd995a7a863ddcc5560", + "5914266595a7a863ddcd7b70", + "5dc1670eabc8ea6d1c24d441", + "588a109895a7a863ddcc461b", + "590af87295a7a863ddcd6c1e", + "59b7a91f1350e8329300f326", + "593142b595a7a863ddcdcccf", + "5fbfbd0fa637ee11e37e30f5", + "5e81cf774b3890eb071851bc", + "5b76cac81cc8aa542999a893", + "592fd96c95a7a863ddcdbb21", + "5b71544c1cc8aa542927c42f", + "5e2aa10f9fea0cc374b8fb74", + "59158b8195a7a863ddcd86ba", + "5e6753d6b04a3d1f194b0959", + "5c77eda885ea3c16f9f29101", + "5fb7b29ca637ee11e34eaad2", + "58ac639f95a7a863ddcc7c46", + "59529f0995a7a863ddce08c2", + "5e0621999fea0cc3748584ad", + "5c0aa222133a785392616854", + "5bd878089259f9ba54c07345", + "58b02de495a7a863ddcc9353", + "5ea847b2499b85dcc7f4bfdd", + "5c3c8d96048d064dbc9a3019", + "5b6ab3e01cc8aa542994ee9d", + "5f5748ada637ee11e3b182b6", + "58aed08d95a7a863ddcc8733", + "590af8a195a7a863ddcd6c54", + "5d6909e8abc8ea6d1c0cda03", + "5e985654499b85dcc7a1df44", + "5da7332dabc8ea6d1cc17247", + "595269ac95a7a863ddcdea66", + "5c94fa6085ea3c16f9ca91a2", + "5f9815e2a637ee11e3589676", + "58a441bb95a7a863ddcc7232", + "5c0a98a4133a785392183786", + "5f4f5e15a637ee11e3e0fc5b", + "5b9b789318654940f7c339ba", + "5c348092048d064dbc2e9f6b", + "5b51eab900f9c6103ac42b73", + "5b6da9001cc8aa542948b10e", + "5cebedcc7d4459dfe12ba578", + "5c5b0913048d064dbc785e7c", + "5bf28f6041fdeab19fa44a63", + "5888dd4395a7a863ddcc2e42", + "5f048092499b85dcc7962a94", + "595260fe95a7a863ddcde633", + "5f982002a637ee11e389baf0", + "5888c54095a7a863ddcc2082", + "5e98506d499b85dcc794e364", + "59368ac495a7a863ddcdd435", + "5e15f0179fea0cc374daa00a", + "5a3288d4d8141396fe9b8539", + "58b5677e95a7a863ddcca4a9", + "59368a1695a7a863ddcdd3a2", + "5b855e7a1cc8aa5429da23d2", + "5d2c8fec8cba87f943024bc5", + "59526a2495a7a863ddcdea9e", + "5e6f7e1c4b3890eb07240f9b", + "5aba5a40f07aee6977608f0f", + "5df39c869fea0cc374ee6695", + "5b855cf71cc8aa5429cccf0d", + "595293ee95a7a863ddcdffe0", + "5e99701d499b85dcc77c6b1d", + "5a22cb87d8141396fe9a692a", + "59524ee195a7a863ddcde237", + "5b86a3a31cc8aa5429e5c5b5", + "5c459ce5048d064dbca8bc68", + "5aa6ae49f07aee697775db29", + "59142a6195a7a863ddcd7f1b", + "5d692c12abc8ea6d1c619709", + "5a3789a05b3acffff7dbd1e5", + "5f4ce55da637ee11e3ecc40a", + "5b0d431e1eb1c99e2a8014bb", + "5952704d95a7a863ddcdecb5", + "5cd697867d4459dfe13feb9f", + "5e8ef9fb4b3890eb0760bade", + "5be407e241fdeab19fff2cfe", + "58e264cf95a7a863ddcd0543", + "5e6f77454b3890eb0717bf79", + "5dbbff2eabc8ea6d1c15c382", + "5e0621989fea0cc3748583f6", + "5aa95574f07aee6977ba9cf7", + "5ea2a28b499b85dcc726d7d6", + "5888ceb795a7a863ddcc24c1", + "59526f2b95a7a863ddcdebee", + "59529a1b95a7a863ddce0604", + "5cf4df3a8cba87f943602cda", + "5f631425a637ee11e3b460a5", + "593143fa95a7a863ddcdcda5", + "59bb95b31350e832930111bf", + "58e3691c95a7a863ddcd06bc", + "59526e7a95a7a863ddcdeb46", + "59535bbb95a7a863ddce0f4b", + "5ca5e9eb23c829c82154d340", + "5eec925b499b85dcc7e50220", + "589b37fe95a7a863ddcc4dbc", + "5de8d8179fea0cc37405fef5", + "593013d995a7a863ddcdc130", + "5df9fcaa9fea0cc37404d2d2", + "5c1786e0133a7853923820d8", + "58a440f195a7a863ddcc71c9", + "595360ff95a7a863ddce13b9", + "5b07f0851e2cc446e7203c84", + "5f8433b2a637ee11e3c9ba0c", + "592fbbbb95a7a863ddcdb7a0", + "5952689495a7a863ddcde990", + "593010d195a7a863ddcdbebb", + "5d4ab788cf657b21ef93c354", + "5f968b52a637ee11e391152b", + "59158b9495a7a863ddcd86d0", + "5e0213489fea0cc3741755fb", + "58aeb41795a7a863ddcc846d", + "59b280711350e8329300dbaf", + "58b013b395a7a863ddcc92f8", + "5fbbb0c3a637ee11e3183776", + "5da732dcabc8ea6d1cc0dcc2", + "590b0ff895a7a863ddcd73b7", + "5e8762404b3890eb0782ad22", + "5e8d96cb4b3890eb071c683d", + "5c77d73785ea3c16f9727e57", + "5e4170299fea0cc37440e657", + "590af5b395a7a863ddcd69b1", + "592d6ef095a7a863ddcda37e", + "5936882a95a7a863ddcdd226", + "5888dd2795a7a863ddcc2e33", + "5e8d7e744b3890eb07f5068b", + "595277ca95a7a863ddcdf20f", + "5c1e30ae133a7853926adb78", + "5c013c608caf671e1c12e570", + "5b7a72fc1cc8aa54295f1086", + "58ada45395a7a863ddcc8287", + "5a4e0e518c32ec6f8b930119", + "5a216201d8141396fe9a234f", + "5b4cbdb100f9c6103ab792e6", + "5fa157eba637ee11e309840c", + "59b27d131350e8329300d87e", + "5a217811d8141396fe9a2a7a", + "5c62963585ea3c16f9a4803e", + "5a3a8b7c5b3acffff7dc0f5c", + "5c1e235d133a78539251c177", + "5f96de4aa637ee11e3f23147", + "5d6fa7aaabc8ea6d1c1cb1ed", + "5952757b95a7a863ddcdf0b8", + "59b269e01350e8329300d320", + "5da715a3abc8ea6d1c835ab2", + "5c7e41ba85ea3c16f9e6630c", + "59b2809c1350e8329300dbe4", + "5a13f948d8141396fe9967ab", + "5a379a2f5b3acffff7dbd4e6", + "59158a7195a7a863ddcd8572", + "5dc2e11cabc8ea6d1c7d6cb3", + "5952998c95a7a863ddce056a", + "588a0c4095a7a863ddcc3f10", + "5953614995a7a863ddce1417", + "595275c795a7a863ddcdf0d6", + "58d1351d95a7a863ddcccc8d", + "5bdc57b99259f9ba5476cba2", + "5f886765a637ee11e385d2ed", + "5efdd4a3499b85dcc7603b2c", + "592d6a7f95a7a863ddcd9f9a", + "5931414095a7a863ddcdcbcc", + "5e021a3d9fea0cc37428a2fd", + "5d9f0af2abc8ea6d1c6a0f60", + "595299f295a7a863ddce05df", + "589dd69895a7a863ddcc5c93", + "59b264c91350e8329300ce98", + "5ea9784c499b85dcc7da155d", + "5a5cc79c8c32ec6f8b29904a", + "5d1c60d78cba87f9432e29f6", + "5e0219159fea0cc37425a627", + "5931435595a7a863ddcdcd4b", + "5abd0af44b568b8eec968c46", + "5df3aece9fea0cc37422f39b", + "593013c795a7a863ddcdc127", + "5fbf5c99a637ee11e3acc3d0", + "5a2fdb2dd8141396fe9b56db", + "5c5af52d048d064dbc12b7e3", + "58ac52a495a7a863ddcc79e0", + "592e7b0195a7a863ddcda7ed", + "5954bdf495a7a863ddce14fc", + "5de51f659fea0cc374ae59e8", + "5eec6d34499b85dcc7a03404", + "5fbcece6a637ee11e3fe5be4", + "589d7e8995a7a863ddcc5642", + "5e0216ee9fea0cc3742096c2", + "5df396499fea0cc374dbe202", + "59b7ff5b1350e8329300fd6d", + "592fdcc595a7a863ddcdbde1", + "592d219f95a7a863ddcd9ebf", + "5a82f6ddf07aee69770e9447", + "5fb686f5a637ee11e3cab05e", + "590b0e1395a7a863ddcd71dc", + "58a416a895a7a863ddcc6df1", + "5e1c28099fea0cc3744d8210", + "5fb50288a637ee11e335e18f", + "5e74852b4b3890eb0793b775", + "58b9492595a7a863ddccb59d", + "599fef501350e83293008044", + "58e38af995a7a863ddcd08d1", + "5c6d19e085ea3c16f9d525a9", + "592fd73895a7a863ddcdb9e7", + "5c179393133a785392874557", + "5a6f31568c32ec6f8bcc5e19", + "5ad8aeb24b568b8eecf9fed5", + "5b1e58251eb1c99e2a5f2a52", + "5b979c2a18654940f75b8ac9", + "5f6af7baa637ee11e3909ab1", + "5ad8a4d74b568b8eecd98471", + "5ce2b21b7d4459dfe16073ee", + "5b2919ac1eb1c99e2a84d1b7", + "5eec99e9499b85dcc7f3c8bc", + "5fb7a537a637ee11e30cd754", + "5aaa9bb8f07aee6977ee0f76", + "5a218244d8141396fe9a31ef", + "5f4799b9a637ee11e3cda600", + "5f1feb15a637ee11e36d9e98", + "5c00025d8caf671e1c787a73", + "5d95f275abc8ea6d1cfb27c1", + "5b758bae1cc8aa542983a4be", + "5d692009abc8ea6d1c3c8c0e", + "5ce2971b7d4459dfe125d6d4", + "5ea9a2fb499b85dcc770e691", + "5b51f1a600f9c6103ae23ae3", + "5947a93c95a7a863ddcdd95c", + "5cd68c8b7d4459dfe1341b4b", + "5a24a5e2d8141396fe9aa363", + "5a4bab528c32ec6f8b61da23", + "5c7e881085ea3c16f9031528", + "5a032842d8141396fe98907a", + "5c88efb785ea3c16f95ab8c3", + "5bf569998caf671e1c5b44c8", + "589dcf6a95a7a863ddcc5a05", + "593112f495a7a863ddcdc5a7", + "5bc60ba878e1194aa6b55faf", + "5952921695a7a863ddcdfe1f", + "592e7adb95a7a863ddcda79e", + "5e04ba7f9fea0cc3749733ea", + "5f4e134ea637ee11e3ea717e", + "5996aac11350e832930064ab", + "58b4382295a7a863ddcca0c3", + "5e21b4169fea0cc3749a38c4", + "5f991554a637ee11e3105fb3", + "5952789795a7a863ddcdf2e0", + "5d2357258cba87f94335d8e2", + "58e264f695a7a863ddcd055e", + "5e8ece9e4b3890eb0711d46f", + "5e15f8a89fea0cc374ed14b8", + "58ab0a6395a7a863ddcc737e", + "5c0145148caf671e1c3014d8", + "5f96aca7a637ee11e30bb517", + "58dbb6eb95a7a863ddccf792", + "5d4a8c1ccf657b21ef417600", + "59b7a7a71350e8329300f2dc", + "5f4cf9d0a637ee11e3431a3f", + "5d09050d8cba87f9430e74d3", + "5953296f95a7a863ddce0b6e", + "595274be95a7a863ddcdeff3", + "5ba8bc14ebe74117be1aff3e", + "5909b8e195a7a863ddcd30f0", + "5c178c40133a78539258ee89", + "5b2e09221eb1c99e2a0821a9", + "5df395ba9fea0cc374da3cec", + "5b8d551918654940f7f58106", + "591428c195a7a863ddcd7d39", + "5952616395a7a863ddcde69c", + "5d67e1aecf657b21ef70e46e", + "591426c795a7a863ddcd7bed", + "5e4a90f21cc98b350adaf03e", + "5fbe1dc6a637ee11e37e4eed", + "59535cfe95a7a863ddce1026", + "5a2304a0d8141396fe9a8461", + "5d4ae6facf657b21efffdf67", + "592801a995a7a863ddcd8e70", + "595297cf95a7a863ddce039e", + "5bf28d0641fdeab19f978b10", + "5b89222318654940f7e9121e", + "5bd1e99778e1194aa6b9dfc1", + "58aed36995a7a863ddcc88aa", + "5b891ad418654940f7c1548b", + "5aab8c95f07aee69776b2742", + "5e7caf544b3890eb07809d3f", + "5f23d114a637ee11e35f5c9e", + "590af83d95a7a863ddcd6be4", + "5df7606b9fea0cc374d3721f", + "5952897195a7a863ddcdf79b", + "5da715e0abc8ea6d1c83dd10", + "5bffb6bf8caf671e1c1a4cb8", + "5b89206918654940f7dfb404", + "5bdc66479259f9ba54b72bb5", + "592fd67f95a7a863ddcdb999", + "5e202fd99fea0cc3744d32c9", + "592c21ac95a7a863ddcd9611", + "5bc09d0878e1194aa64cf88d", + "5928147995a7a863ddcd936d", + "589b102e95a7a863ddcc47c2", + "5c34ba99048d064dbccf0247", + "5952678895a7a863ddcde8ab", + "5952710f95a7a863ddcded4b", + "5952741695a7a863ddcdef74", + "58b85d9995a7a863ddccb3a3", + "59006d2395a7a863ddcd250b", + "5c1e0b39133a7853921ba51a", + "5ce3cea27d4459dfe1f3e8e4", + "58aed2aa95a7a863ddcc8811", + "5cc03cb80d983d4303fecaa0", + "5bffffad8caf671e1c6fda89", + "5bc0aa8b78e1194aa66ed33e", + "5ce2b3727d4459dfe1637e3b", + "5889baee95a7a863ddcc3930", + "5e5f5d2bb04a3d1f19b84e3b", + "5c95085885ea3c16f9051739", + "5f885a9aa637ee11e3498504", + "5936895895a7a863ddcdd31f", + "5f57485ea637ee11e3b0af98", + "5ab4dd26f07aee697708fd73", + "5a034189d8141396fe989747", + "5bc60aee78e1194aa6b2338a", + "5db2bcf8abc8ea6d1c4c9cb8", + "5889aa4a95a7a863ddcc35dc", + "5abcf4be4b568b8eec5b4e01", + "5ca5bfea23c829c821cd9290", + "5952605495a7a863ddcde5a2", + "5dd7b9db9fea0cc374d13bc1", + "59b268f51350e8329300d285", + "5888dcf495a7a863ddcc2deb", + "589b38a095a7a863ddcc4e83", + "5c3c8975048d064dbc8cb2a0", + "5f2a8590a637ee11e3fcfdc3", + "5f47b0fba637ee11e30c4d8e", + "5d4accbacf657b21efc2584b", + "5ba0dbee18654940f7e579b6", + "5a22883ed8141396fe9a4e73", + "5947c49295a7a863ddcddb38", + "5952924a95a7a863ddcdfe3a", + "5952946495a7a863ddce0052", + "5d94b489abc8ea6d1c92f49f", + "5c6d2fcb85ea3c16f93bd58b", + "5e81dc7a4b3890eb072b5be1", + "5bd1cc0578e1194aa62a8e9f", + "589d8c5495a7a863ddcc5753", + "5df3af489fea0cc3742457a9", + "5bb488ea78e1194aa6365f98", + "5b63087d1cc8aa54296a99c4", + "5e737b594b3890eb073d4ee2", + "5df3964e9fea0cc374dbf3a0", + "590af6a995a7a863ddcd6ab6", + "5f96bfe0a637ee11e35beb30", + "5a733f3d8c32ec6f8b5193fc", + "58b8228995a7a863ddccad8f", + "5cb89ccdadbc796055f83079", + "5cfe4cea8cba87f943155c48", + "5d9c82a1abc8ea6d1cae1dff", + "5952925795a7a863ddcdfe43", + "5e984f83499b85dcc792f6be", + "590afa9895a7a863ddcd6e25", + "5b716ba01cc8aa5429815a82", + "5ea01126499b85dcc781e710", + "5fbcece6a637ee11e3fe5bc6", + "5c45a3df048d064dbcbe1709", + "5f80480ea637ee11e3c57754", + "5f5b5a3da637ee11e3e5adbf", + "58b4331395a7a863ddcc9c55", + "5e201f8f9fea0cc374313d9d", + "5db2b93aabc8ea6d1c460a33", + "590af8d695a7a863ddcd6c7b", + "5f464b6fa637ee11e3023d22", + "591425c495a7a863ddcd7aa3", + "599eccbb1350e83293007890", + "5f4c9d6fa637ee11e34ab88c", + "590b0eeb95a7a863ddcd72b5", + "5d234fcd8cba87f94325280c", + "599ecd931350e83293007937", + "5f48b9b9a637ee11e341870b", + "5f4cea60a637ee11e3ff4c88", + "591589a695a7a863ddcd8487", + "5937e69395a7a863ddcdd6d0", + "5b71641d1cc8aa5429639539", + "5dcbc6a09fea0cc374f72869", + "5d94c5bbabc8ea6d1cc51bc9", + "5df38e5f9fea0cc374c488c4", + "5e5f707ab04a3d1f19e6d56c", + "5d6f9c19abc8ea6d1c01db5c", + "5e847cf64b3890eb07c00737", + "5d9f147eabc8ea6d1c829ef2", + "5e5f6528b04a3d1f19cb328f", + "5909cf3095a7a863ddcd3754", + "592e7c7d95a7a863ddcda9b2", + "5b97a2ee18654940f76eb876", + "5c94fb2a85ea3c16f9cddf6c", + "5c34af69048d064dbcaf6517", + "5aaa5022f07aee6977429062", + "5df38d399fea0cc374c1537f", + "5a22792dd8141396fe9a46a4", + "58ac63e895a7a863ddcc7c85", + "5a2322bcd8141396fe9a94ec", + "5e5f7079b04a3d1f19e6d299", + "5b9a4b5818654940f73a5590", + "591581c395a7a863ddcd7faf", + "5f114599499b85dcc796da51", + "58e6447895a7a863ddcd1696", + "5914234b95a7a863ddcd7788", + "58b5655395a7a863ddcca3a6", + "5bdc3b889259f9ba54008a3b", + "58b0315395a7a863ddcc954d", + "5e0d9a7b9fea0cc374a816ef", + "5e7380974b3890eb0747d5c4", + "5da0672fabc8ea6d1c07f503", + "5d9c8fa2abc8ea6d1cd0d3e7", + "5e202d829fea0cc3744908a8", + "59535ba395a7a863ddce0f2d", + "5bc60a7d78e1194aa6b0384b", + "5c5af7a1048d064dbc1f0d67", + "5e847d8a4b3890eb07c136c2", + "5e9eefaf499b85dcc7909828", + "5952a22e95a7a863ddce0a6c", + "5a96bc4ef07aee6977c864cb", + "5d108aa38cba87f94389b4e4", + "5c3c992e048d064dbcc2f681", + "5f02e4b0499b85dcc75f8952", + "5dcad2499fea0cc3749f99d1", + "589b3e9495a7a863ddcc4f3d", + "5889aa4f95a7a863ddcc35e2", + "5e90704d499b85dcc7d7114d", + "599ecac21350e832930076f1", + "595287a895a7a863ddcdf636", + "5ea99741499b85dcc74670c4", + "59158b7095a7a863ddcd869c", + "5928171b95a7a863ddcd9562", + "5df38a979fea0cc374ba07ce", + "5da04604abc8ea6d1cbe2935", + "59535e2595a7a863ddce113b", + "5bd0754678e1194aa6931dba", + "5f99543fa637ee11e3fd170e", + "59b7ecda1350e8329300f9f2", + "5a22e2bfd8141396fe9a76f9", + "58b4374495a7a863ddcc9f9d", + "5b62ffeb1cc8aa542947b0ca", + "5e5e3619b04a3d1f19faa564", + "58dbb6e695a7a863ddccf791", + "591426a995a7a863ddcd7bce", + "5ea9605d499b85dcc7925846", + "5a21a23ad8141396fe9a3dc2", + "5e33f6b89fea0cc374526ee6", + "589b37b795a7a863ddcc4d72", + "5e997386499b85dcc78256c0", + "58ff09fb95a7a863ddcd1ff4", + "5b8567591cc8aa5429259e67", + "5952774f95a7a863ddcdf1d1", + "5f6376eba637ee11e3c286b5", + "59158b1f95a7a863ddcd864b", + "58adb02495a7a863ddcc830f", + "5e15f91c9fea0cc374ee0915", + "5d960231abc8ea6d1c2a7ab9", + "5c49ccb1048d064dbc1df08b", + "5f96b711a637ee11e3360589", + "595275dc95a7a863ddcdf0e8", + "5931187395a7a863ddcdc919", + "5f881e9fa637ee11e348d19b", + "5c77dad985ea3c16f98822d9", + "590b0eab95a7a863ddcd7279", + "5df3a7259fea0cc3740d8211", + "58898fe895a7a863ddcc32b5", + "59b143a31350e8329300c34e", + "5e2808939fea0cc3748ee9ce", + "5f1febdda637ee11e36fc6e0", + "5e2033229fea0cc374534a3c", + "5e7c74d04b3890eb07235984", + "58ab0a9b95a7a863ddcc7397", + "595327fe95a7a863ddce0ad0", + "5e8d97274b3890eb071d01fc", + "5b2a07dc1eb1c99e2ac15b0b", + "588991f195a7a863ddcc3552", + "59b267641350e8329300d123", + "5e6a3438b04a3d1f19b1e4ea", + "593684f195a7a863ddcdd061", + "5df3a8ff9fea0cc37412b382", + "58e264ef95a7a863ddcd0559", + "59527b6495a7a863ddcdf507", + "5e9596ea499b85dcc7f22770", + "5bf29cf541fdeab19fedad0e", + "5df38d389fea0cc374c15178", + "58a43f4095a7a863ddcc7187", + "5c77e18c85ea3c16f9ae49b5", + "5a0335fdd8141396fe98917b", + "5b714f3a1cc8aa542913ca1d", + "5bc0b0ea78e1194aa67f6ab4", + "592d201795a7a863ddcd9dd1", + "591d5df595a7a863ddcd87f6", + "5f880072a637ee11e3da60d3", + "5a21a25cd8141396fe9a3ddd", + "5a22e318d8141396fe9a773c", + "5e9eef54499b85dcc78facb4", + "59b26b291350e8329300d483", + "5a215fc2d8141396fe9a218f", + "5ea97608499b85dcc7d2ec78", + "5fb52c7ca637ee11e310a67a", + "5f92dc7ea637ee11e341b058", + "58dbb63195a7a863ddccf77a", + "59b26c501350e8329300d5cd", + "59b7af6e1350e8329300f5ac", + "5da04ac7abc8ea6d1cc8645b", + "5a21a051d8141396fe9a3c88", + "5a562a1f8c32ec6f8bafaa55", + "5928027595a7a863ddcd8f23", + "5f4cf5dba637ee11e3316e6a", + "5cd59b7c7d4459dfe131f3f8", + "593688a695a7a863ddcdd28f", + "5e709c644b3890eb07872f65", + "5888d01295a7a863ddcc26a4", + "5f6df489a637ee11e334eb74", + "5dbc0176abc8ea6d1c198aa7", + "5e15f0179fea0cc374daa046", + "5d94abababc8ea6d1c75c375", + "5889bc5995a7a863ddcc3b97", + "5bb5d58578e1194aa6f0d97f", + "5da06020abc8ea6d1cf83f7e", + "5e7484214b3890eb07926eb6", + "5936882595a7a863ddcdd223", + "59527b2495a7a863ddcdf4c5", + "5fbb6616a637ee11e3d6532b", + "5888a54d95a7a863ddcc1d0c", + "58b012f495a7a863ddcc926d", + "589b246895a7a863ddcc49e5", + "5e4121709fea0cc3748b5349", + "58cbc44595a7a863ddccc20b", + "5bd9d0209259f9ba54b29c99", + "5952960c95a7a863ddce01b4", + "5ca73f3523c829c82188842b", + "5a227705d8141396fe9a4657", + "592fbb4895a7a863ddcdb757", + "5f982980a637ee11e3bbc43a", + "5d4aaa56cf657b21ef79d475", + "5c0aab41133a785392a5e0aa", + "5c628ceb85ea3c16f97afe5c", + "5f969bfca637ee11e3c9bdad", + "5de0ee829fea0cc374a88e45", + "59e8da23d8141396fe978a97", + "5f9913dfa637ee11e30ca02f", + "595292df95a7a863ddcdfea5", + "5f466a65a637ee11e3572fe4", + "5c7e87de85ea3c16f90241c9", + "5fbe7166a637ee11e34e6634", + "5c89156985ea3c16f90c9a65", + "5dcbcc729fea0cc37401a3ef", + "5f4f5a77a637ee11e3d842be", + "5bffc9178caf671e1c83374f", + "58affeb595a7a863ddcc8f4a", + "59313f3595a7a863ddcdca8a", + "5d4aa16dcf657b21ef68d8d3", + "5b76ea0c1cc8aa5429ae4234", + "5f636329a637ee11e38387f1", + "58a30a2a95a7a863ddcc684d", + "5954bde095a7a863ddce14da", + "5e4121ae9fea0cc3748bd900", + "5947b6ff95a7a863ddcdda09", + "5bd9d2fe9259f9ba54bd1d39", + "5e847c8b4b3890eb07bf3a59", + "58b4378e95a7a863ddcc9ffe", + "591423b195a7a863ddcd7809", + "5f9a82b1a637ee11e3554b89", + "589b457b95a7a863ddcc5331", + "5aaa34b4f07aee697711d8fe", + "59535e2a95a7a863ddce1142", + "5c5b0796048d064dbc708a38", + "5ea2d990499b85dcc7aaeb92", + "5a15626ed8141396fe997fe6", + "5b8923f718654940f7f2e576", + "5979afa895a7a863ddce1731", + "5dad7628abc8ea6d1c943572", + "5c8fbd0585ea3c16f96be241", + "5f041a9d499b85dcc7aa2528", + "595269d495a7a863ddcdea73", + "5a2160ccd8141396fe9a2279", + "5a0342f7d8141396fe9897d3", + "5a21848dd8141396fe9a33eb", + "5f154115499b85dcc75cb8a6", + "5952934395a7a863ddcdff21", + "59535d0a95a7a863ddce102d", + "5fc11bd6a637ee11e39649c3", + "5be58ca841fdeab19f976cfd", + "59bb8fb61350e83293010f07", + "5b9bc6a018654940f781b996", + "5c6d295585ea3c16f91c4d26", + "58b432be95a7a863ddcc9bcf", + "5b2e13361eb1c99e2a18c565", + "5cab682523c829c8218e6115", + "5952794195a7a863ddcdf36a", + "5dcbc70a9fea0cc374f7ead3", + "5a4104d58c32ec6f8b197259", + "5c7e88ce85ea3c16f9065e88", + "5ea9732e499b85dcc7c9a633", + "5ca5d15a23c829c82104d913", + "5928170b95a7a863ddcd9558", + "5e8479c74b3890eb07b961fc", + "5d973505abc8ea6d1c6a49bd", + "58b56a0a95a7a863ddcca609", + "5a9968cff07aee6977a29a68", + "5aaa9dfcf07aee6977f36df2", + "5dbc055eabc8ea6d1c1fe558", + "5dc93d439fea0cc3740e81b7", + "5d9f2175abc8ea6d1ca4bf57", + "5fb4fdd3a637ee11e31fa1a2", + "5da8259eabc8ea6d1cf522b1", + "5ca5bb0123c829c821bea9f1", + "5db9919cabc8ea6d1c968df9", + "5db2ba85abc8ea6d1c48520f", + "5936865895a7a863ddcdd152", + "5ae994754b568b8eec00f220", + "58b563c495a7a863ddcca252", + "5d0ceb1d8cba87f943498e8f", + "5888cbf695a7a863ddcc214f", + "5a996902f07aee6977a321a5", + "5a0342dad8141396fe9897b0", + "592fbce195a7a863ddcdb82e", + "5a6078dc8c32ec6f8b7e7e09", + "5f1041fc499b85dcc7782033", + "58b822b995a7a863ddccade5", + "58e264ae95a7a863ddcd0528", + "58a4156895a7a863ddcc6dde", + "5d09011b8cba87f94306b562", + "5937e7da95a7a863ddcdd787", + "5f475606a637ee11e33e6892", + "5eec99b2499b85dcc7f35f33", + "5aab8a99f07aee6977678c43", + "5fb7ec31a637ee11e3b81624", + "5b7588251cc8aa54296ba55d", + "5fbe1dc7a637ee11e37e5003", + "5de7cad69fea0cc3741f9a3c", + "5dbbfe7babc8ea6d1c14a4e5", + "5e9eeddb499b85dcc78c453d", + "5f85b205a637ee11e3882108", + "5c7e887d85ea3c16f904f689", + "5e7c74f84b3890eb07239266", + "5ea2d5f9499b85dcc7a075ea", + "5c4f1d10048d064dbc98288f", + "5c0aad9d133a785392b7197c", + "5cdeaf2c7d4459dfe13d4959", + "595293da95a7a863ddcdffcc", + "58cfb46e95a7a863ddcccbb0", + "5fc664a8a637ee11e38d0b83", + "5b407f331eb1c99e2a9c842a", + "5d9f2ad6abc8ea6d1cbed784", + "58a40a4595a7a863ddcc6d37", + "5ea97752499b85dcc7d70236", + "595296e995a7a863ddce029b", + "5f916b5da637ee11e3057ccc", + "5ea99ea3499b85dcc76169eb", + "5e875d084b3890eb0776a036", + "5f3b7a68a637ee11e31aafd3", + "592fd54295a7a863ddcdb8e3", + "58ab15e295a7a863ddcc7666", + "598be11a1350e832930040b2", + "58b83cf795a7a863ddccb0a5", + "5a215dc5d8141396fe9a1ffb", + "592e7c0995a7a863ddcda91e", + "58aed0dc95a7a863ddcc8769", + "5b855e341cc8aa5429d7c653", + "5fb66464a637ee11e3fc90cb", + "5f55fa71a637ee11e3f06a29", + "59b7af7e1350e8329300f5c2", + "5f5731d0a637ee11e37b2476", + "5952923595a7a863ddcdfe2f", + "5bbcaed078e1194aa6632a8b", + "5fa16796a637ee11e359dafd", + "588a0c7595a7a863ddcc3f77", + "5952694195a7a863ddcdea1b", + "58dbb73d95a7a863ddccf79e", + "589df80995a7a863ddcc5d5f", + "58a309ce95a7a863ddcc67ee", + "5cc046150d983d43031c0ded", + "5f563c5fa637ee11e39adff9", + "5da6dde1abc8ea6d1c1a3583", + "5d5ebf83cf657b21effd6f4c", + "58891e7b95a7a863ddcc2f75", + "5f9a80a4a637ee11e34d411f", + "59bb92b91350e83293011088", + "5d67e0e4cf657b21ef700392", + "5dc934b79fea0cc374fd68e9", + "5bdb01379259f9ba54514787", + "5eb3b027499b85dcc7ffbd88", + "5e16e7ae9fea0cc3741ba77a", + "5fb53253a637ee11e331961f", + "5ee9c4f3499b85dcc7a02007", + "5c1e2e71133a78539266d649", + "5db1a55dabc8ea6d1cd871aa", + "58a3088995a7a863ddcc66c6", + "5c99f9fa85ea3c16f95330e1", + "5e959759499b85dcc7f30615", + "5c264eee133a7853925e7e20", + "59bb8a2a1350e83293010e29", + "5fb51a4aa637ee11e3acf1e0", + "58cfb24d95a7a863ddccca8e", + "5bffb9f98caf671e1c2c8518", + "5888dd6795a7a863ddcc2e74", + "599ecda11350e83293007945", + "5e68dc56b04a3d1f19a72557", + "5c34ac6e048d064dbca6c54d", + "5de0ee4f9fea0cc374a80b03", + "589dd1fb95a7a863ddcc5b74", + "5f560883a637ee11e3131868", + "5e737d894b3890eb07419011", + "5f929ccba637ee11e335507f", + "59368c8995a7a863ddcdd57a", + "5888d70595a7a863ddcc2885", + "5b97c92518654940f7ef15a1", + "595272a795a7a863ddcdee6d", + "595297d695a7a863ddce03a7", + "5bdc3b4d9259f9ba54ff8b8f", + "5fa9191ca637ee11e35548b1", + "5e01cb059fea0cc37471e7c5", + "5dd3e0c09fea0cc374a8d6d2", + "5fb53967a637ee11e35aa465", + "5b6aadee1cc8aa5429813505", + "591423c195a7a863ddcd781c", + "5914287e95a7a863ddcd7d0f", + "5d234fbf8cba87f943250964", + "5c62929f85ea3c16f9940e2a", + "5b8565521cc8aa542914f3a0", + "58898fce95a7a863ddcc328e", + "5a156387d8141396fe99808d", + "5b9bb77618654940f7593c58", + "5bd1c53378e1194aa609548d", + "58ac666695a7a863ddcc7e27", + "5b51ebd700f9c6103ac94c1f", + "58e263e095a7a863ddcd0488", + "59b26aee1350e8329300d44e", + "58a1e58f95a7a863ddcc617b", + "5b75884e1cc8aa54296cc2d6", + "5f981a71a637ee11e36e9de2", + "5a218251d8141396fe9a31fb", + "5db1a1f8abc8ea6d1ccf1bf9", + "5db2dac5abc8ea6d1c80b699", + "5952a1ee95a7a863ddce0a50", + "5bb4861578e1194aa62ec8a4", + "5fbf8b06a637ee11e37194e2", + "59c225d21350e83293012df5", + "58b00d5a95a7a863ddcc90dc", + "5df3ad999fea0cc3741fa156", + "5c0fd091133a785392536a13", + "5b9a538818654940f75073dd", + "5c373ef6048d064dbc2824a1", + "5889bb4495a7a863ddcc39c9", + "5ee9f2d7499b85dcc7fb86b7", + "590b0ee295a7a863ddcd72af", + "5e7c74394b3890eb07228fcb", + "59b27df41350e8329300d95d", + "592d1c4f95a7a863ddcd99a0", + "5d1c73e98cba87f9434ee162", + "5a22d471d8141396fe9a6ec6", + "5eba7bc4499b85dcc7d4508f", + "5f4cedafa637ee11e30d5639", + "5e8f0039499b85dcc77d42f6", + "59b7a8b01350e8329300f31a", + "5bb5d0d378e1194aa6e08c43", + "5f96de4aa637ee11e3f2339b", + "5ef311ff499b85dcc7412cf9", + "589b130695a7a863ddcc4876", + "5cab667b23c829c82188baab", + "5e8d86e94b3890eb0701b002", + "58a3099695a7a863ddcc67a5", + "5e6f763d4b3890eb0715fc61", + "58a4176f95a7a863ddcc6f46", + "5e845ecd4b3890eb0784b016", + "5da71a56abc8ea6d1c8d3c6c", + "5c0e50de133a785392916258", + "58b5643195a7a863ddcca2ad", + "5b979b4e18654940f75917e9", + "5aaa464ef07aee697730ccba", + "5b9bb4e218654940f7527c2f", + "5e5f6e8eb04a3d1f19e1d306", + "5bb4859478e1194aa62d5e4f", + "58aed49195a7a863ddcc8a59", + "5bbc9fc778e1194aa627c636", + "58b02e5595a7a863ddcc9392", + "5dc28ef2abc8ea6d1cdcccc4", + "59529a6195a7a863ddce0650", + "5930177f95a7a863ddcdc313", + "5f475449a637ee11e33aabb9", + "5aaf7943f07aee6977c79100", + "5928159c95a7a863ddcd9424", + "58adb00395a7a863ddcc82e0", + "5b6aaf851cc8aa542986ad50", + "59524d7695a7a863ddcde128", + "5da735deabc8ea6d1cc70d09", + "589dd1b895a7a863ddcc5b40", + "5c1b648a133a7853926203ec", + "5f9297cba637ee11e321c00e", + "592d6cd295a7a863ddcda1f8", + "59524e4395a7a863ddcde1bc", + "5ad8a9554b568b8eece82ddf", + "58a30b0395a7a863ddcc695e", + "5bb4888f78e1194aa6356be2", + "5abd03f84b568b8eec85656a", + "58e2502695a7a863ddcd007f", + "5d4bd597cf657b21ef3c4cd6", + "5888dd5195a7a863ddcc2e57", + "5df218709fea0cc374bd7e9f", + "595288a095a7a863ddcdf709", + "5de10f159fea0cc374f8efa3", + "5bdc6b7c9259f9ba54d09a1f", + "5f3a63f1a637ee11e3d600fc", + "5931180295a7a863ddcdc8da", + "5f844a8aa637ee11e31c2578", + "5bf812c78caf671e1c97746d", + "5e4176a49fea0cc374515314", + "5889ae9c95a7a863ddcc37a9", + "5e0d99499fea0cc374a71c22", + "5b9bbc3818654940f765e773", + "5bdc5e229259f9ba5492df50", + "595360e195a7a863ddce13a3", + "5f96895da637ee11e38af71a", + "590af64e95a7a863ddcd6a47", + "5d5eba76cf657b21eff2f0d7", + "592e782b95a7a863ddcda4d0", + "5f991554a637ee11e3105fcd", + "5cfe2ad78cba87f943da4ec5", + "593142cb95a7a863ddcdccec", + "5e4a90c01cc98b350ada7aee", + "5f4cfb34a637ee11e3499843", + "5f893fafa637ee11e314a8f8", + "5889922195a7a863ddcc3583", + "5e04c0ee9fea0cc374a3e279", + "590b0f3f95a7a863ddcd72f9", + "5c629f3085ea3c16f9ce0146", + "595295b395a7a863ddce0140", + "5e81dbcc4b3890eb072a4588", + "5e4540361cc98b350ac8e761", + "5c0fcbdc133a7853923e1d27", + "5bf826ea8caf671e1c1b4044", + "5a240287d8141396fe9a9df8", + "593112a395a7a863ddcdc577", + "5c0a8413133a7853927c7ea5", + "5e8d87224b3890eb07020c6d", + "5ea9a41f499b85dcc774e490", + "5e847c264b3890eb07be679f", + "59b26b981350e8329300d505", + "5e4a90521cc98b350ad98e88", + "5ae472d64b568b8eec2ca106", + "5dc938829fea0cc37404c1aa", + "5f85a006a637ee11e33755be", + "5d2c8ca38cba87f943faf694", + "5b06924a4b568b8eec5d3d7c", + "5f3b7921a637ee11e3188a08", + "5952730695a7a863ddcdeead", + "5aa915dbf07aee697739f98b", + "58b822ad95a7a863ddccadc9", + "5d972a36abc8ea6d1c4ea54a", + "5c64158a85ea3c16f9060502", + "58a4178695a7a863ddcc6f68", + "5952938495a7a863ddcdff6c", + "5947c48595a7a863ddcddb2e", + "58b013c595a7a863ddcc9316", + "5dbbfa51abc8ea6d1c0e4395", + "5c5b0d35048d064dbc8d58f2", + "590b0e6e95a7a863ddcd723f", + "5c77ed7b85ea3c16f9f1a0f8", + "5d0cf30b8cba87f94359542b", + "58898c4a95a7a863ddcc30c7", + "5952447195a7a863ddcdddd7", + "5eea246a499b85dcc7719eb5", + "5a034425d8141396fe9898fa", + "5be1764b15d5cddfd058acf9", + "5931159f95a7a863ddcdc76c", + "59c8e2b41350e83293014c2a", + "5e1c36049fea0cc37463d1ff", + "5c5b0c1c048d064dbc87fb7d", + "59b146c01350e8329300c43e", + "5bf828a38caf671e1c2632e9", + "5fbb72baa637ee11e3fe021c", + "5a3d1cf28c32ec6f8b3e639f", + "5b48808800f9c6103a252b3d", + "5c88e41885ea3c16f92c4cb2", + "589b28d195a7a863ddcc4c2d", + "58b3f0d095a7a863ddcc9961", + "595288f095a7a863ddcdf745", + "59524efd95a7a863ddcde25a", + "5aab8b36f07aee697768b07e", + "5c34acde048d064dbca8094e", + "5b891d4c18654940f7ce96d7", + "588a0edb95a7a863ddcc4389", + "5e81d0554b3890eb0719b148", + "5f85a97fa637ee11e360ac15", + "5947c4ad95a7a863ddcddb3b", + "58a309aa95a7a863ddcc67bb", + "5f200209a637ee11e3aa88d5", + "5db16c13abc8ea6d1c62b46f", + "5b855d491cc8aa5429cfba88", + "5e33f4009fea0cc3744b56d1", + "5928031a95a7a863ddcd8fc1", + "5c41f7a3048d064dbccfae94", + "5bc60b2e78e1194aa6b34b8d", + "589dfc0d95a7a863ddcc60e5", + "5c5b07c0048d064dbc715c46", + "5fbfcda4a637ee11e3e8d304", + "5f98305ba637ee11e3e40f12", + "5c3c6c27048d064dbc34ffc5", + "5c8fac2785ea3c16f91fd3a8", + "5e416f729fea0cc3743f04dc", + "588a0df095a7a863ddcc41aa", + "5bd05c0e78e1194aa6210e31", + "5ea2d700499b85dcc7a388a7", + "5d68dd6ce79a2a634ea111b8", + "5f9a8be0a637ee11e37a8a88", + "5b891fce18654940f7dc346f", + "5b4cbf5f00f9c6103abe277c", + "592d707695a7a863ddcda4ae", + "590af51f95a7a863ddcd691c", + "5b76eb201cc8aa5429b755e6", + "59bbdd301350e83293011695", + "5a217d71d8141396fe9a2f44", + "5fbb8a6ba637ee11e35e5df7", + "5c7fc28185ea3c16f96b7a0b", + "5dad9af2abc8ea6d1cd3c8f7", + "5a218ae4d8141396fe9a370d", + "589b39f395a7a863ddcc4e8d", + "58a30a4695a7a863ddcc6872", + "5952690f95a7a863ddcde9f5", + "5bf2b2c441fdeab19f6d55a4", + "5e997385499b85dcc78256a4", + "5eec7b19499b85dcc7b8c3a2", + "5b9a550e18654940f754c07c", + "589d79f195a7a863ddcc5475", + "59bb931f1350e83293011104", + "5888a28d95a7a863ddcc1c82", + "5888dd7995a7a863ddcc2e86", + "5a82c1f8f07aee6977ba61c2", + "59528c5995a7a863ddcdf9c2", + "5c0aafc9133a785392c6d063", + "5f6de1c6a637ee11e3fffaf1", + "58ff0d7995a7a863ddcd2145", + "5cb585c923c829c821271229", + "592e79d795a7a863ddcda681", + "592e7b8895a7a863ddcda864", + "5b9a7cdc18654940f7cb88f4", + "5fa91920a637ee11e3555a35", + "5ea97afb499b85dcc7e25995", + "5d2d85008cba87f94346a0d6", + "5952687a95a7a863ddcde97e", + "5a219b05d8141396fe9a3bdd", + "59bb913c1350e83293010fe3", + "5f3bbac8a637ee11e3a8e312", + "5d972353abc8ea6d1c3e001e", + "5b9bb86d18654940f75bf003", + "5c374446048d064dbc380092", + "5e4fac801cc98b350aeef053", + "591d70b495a7a863ddcd8a64", + "58aed05795a7a863ddcc86f2", + "5cc045e80d983d43031b7d13", + "5c1e1fb6133a7853924aa3bc", + "5e8474ad4b3890eb07af19b2", + "5c264336133a7853923fea00", + "5f50b4e8a637ee11e3531d2b", + "58a409c095a7a863ddcc6c79", + "5f631425a637ee11e3b4637c", + "5e847b3e4b3890eb07bc8c6c", + "5952969895a7a863ddce0237", + "5da71a19abc8ea6d1c8cb3db", + "59b26b751350e8329300d4e1", + "5d37174d8cba87f94397b615", + "5952983095a7a863ddce03f5", + "5e416ef79fea0cc3743dc06b", + "59b26c641350e8329300d5e7", + "5888ccd895a7a863ddcc227c", + "5c6c12ae85ea3c16f9846c10", + "5da054a3abc8ea6d1cde6621", + "5c7fbc1485ea3c16f94eb7ee", + "5b85593f1cc8aa5429aa9da8", + "5e33fb199fea0cc3745c5ad6", + "5d9c9fcdabc8ea6d1cffdceb", + "5cd686627d4459dfe12e8ac1", + "5b756ba61cc8aa5429b24fb9", + "59535b9995a7a863ddce0f26", + "5df3a00d9fea0cc374f870f5", + "592d6f8395a7a863ddcda42a", + "5dc9369d9fea0cc374012b40", + "5bf7ec838caf671e1c9f2da7", + "5d37146e8cba87f9439167d9", + "5b3f3c461eb1c99e2a11414a", + "5c90ce8d85ea3c16f952ac20", + "5bc0ac6978e1194aa673953f", + "5fb7ec30a637ee11e3b81316", + "5cfe2aae8cba87f943da0b2e", + "5a230172d8141396fe9a8246", + "5df219169fea0cc374bf4d9a", + "5f3b7c43a637ee11e31dd17f", + "5f718be2a637ee11e33eb689", + "58b6d2bb95a7a863ddccab82", + "5eec91f8499b85dcc7e446f8", + "5d95f10babc8ea6d1cf72826", + "5ea00e00499b85dcc77b6181", + "5c263de4133a785392318ba9", + "592d20cc95a7a863ddcd9e30", + "5a033738d8141396fe9891bf", + "5d108c098cba87f9438c122e", + "5be9749341fdeab19f607853", + "5c5b095c048d064dbc7a0ede", + "591424fb95a7a863ddcd79a1", + "5bbcc06a78e1194aa6a948bb", + "5bb5d02b78e1194aa6de26dd", + "592d1d1595a7a863ddcd9abb", + "5c1b8b7f133a78539209357d", + "5b9ba2bf18654940f723c245", + "5b979f3f18654940f764417a", + "5bf56aaa8caf671e1c60ce4b", + "589dcfa695a7a863ddcc5a20", + "5d94c70eabc8ea6d1cc8b7cf", + "58b56a3b95a7a863ddcca62c", + "59535ef495a7a863ddce11ce", + "5b27b8ae1eb1c99e2ab83eda", + "5c0aa609133a7853927ed64b", + "5c77d83a85ea3c16f97885af", + "5909babd95a7a863ddcd3231", + "593140a995a7a863ddcdcb34", + "5a4e16358c32ec6f8b98590f", + "5ebd5f4f499b85dcc7a9df85", + "5e996e07499b85dcc778e04a", + "5bf7ea9f8caf671e1c92a3df", + "5bf823e88caf671e1c07e8f0", + "5952781695a7a863ddcdf26e", + "5e8d7e0a4b3890eb07f47128", + "5f041df9499b85dcc7afe4e3", + "5df3adef9fea0cc374209a0e", + "5de8c0789fea0cc374ce931b", + "5ea973c6499b85dcc7cb8173", + "58affed095a7a863ddcc8f6a", + "590b0bc495a7a863ddcd6f81", + "5e995e60499b85dcc75e0eab", + "5952911c95a7a863ddcdfd3a", + "593011d195a7a863ddcdbf7b", + "5c3732ea048d064dbc053728", + "5de10e5e9fea0cc374f7255a", + "589b431595a7a863ddcc5214", + "5db170bbabc8ea6d1c6b599d", + "588991ea95a7a863ddcc3546", + "589b422895a7a863ddcc5106", + "5a328987d8141396fe9b856b", + "5db19426abc8ea6d1cb34cd5", + "5a4e36758c32ec6f8baf3bde", + "5c3c7aee048d064dbc6188e3", + "5d972ba6abc8ea6d1c524609", + "5e872eb04b3890eb0711742b", + "5df3a9069fea0cc37412c906", + "5c178467133a785392290642", + "5ce2afc87d4459dfe15b417b", + "5a2188c4d8141396fe9a35f0", + "5fbb700ea637ee11e3f4bf84", + "5909ae1095a7a863ddcd2e32", + "588991fc95a7a863ddcc3566", + "592d6ce495a7a863ddcda20f", + "5fb542f1a637ee11e3911dbf", + "5bdc59ba9259f9ba547fab4b", + "5e2553d09fea0cc37450bb3a", + "5c3c9888048d064dbcc08c50", + "5ab90801f07aee69770fe5cf", + "59535be595a7a863ddce0f6a", + "5b7a815b1cc8aa54299bfbb3", + "5fa10b6aa637ee11e3c3f065", + "589b295495a7a863ddcc4c9f", + "5ea2e142499b85dcc7c305f3", + "5a033a1bd8141396fe989267", + "5c3c74b5048d064dbc4eb8b8", + "592e7d1b95a7a863ddcdaa2d", + "5bd1e22778e1194aa697a507", + "58ab163b95a7a863ddcc76a3", + "5889918e95a7a863ddcc34dd", + "5952590095a7a863ddcde4e4", + "5c628e0585ea3c16f97fad93", + "599a8fe41350e83293006d92", + "5d67dd7fcf657b21ef694cf1", + "59b7f2cf1350e8329300fb02", + "5a1449f0d8141396fe997112", + "5f981d45a637ee11e37c538f", + "5954bda495a7a863ddce149b", + "5f65c162a637ee11e31c7a80", + "5adf29964b568b8eec8c7d33", + "5aedcb8c4b568b8eec627258", + "5a03424cd8141396fe98979a", + "59b27e1d1350e8329300d995", + "5a215f3fd8141396fe9a2107", + "5de7cf0c9fea0cc3742cced8", + "5a37a8f55b3acffff7dbd700", + "592fdb0595a7a863ddcdbcb0", + "5f2ac874a637ee11e3b518d5", + "5f994d42a637ee11e3dddca6", + "5cebcb707d4459dfe1e546fb", + "59524d2e95a7a863ddcde0e5", + "5915828395a7a863ddcd806e", + "5c77dc9b85ea3c16f992531e", + "5928006a95a7a863ddcd8db9", + "589b43c795a7a863ddcc5289", + "5d95eda9abc8ea6d1cedb3c7", + "5af02c394b568b8eecc23d5b", + "58ad65ad95a7a863ddcc7f9c", + "59bb8c6a1350e83293010e77", + "5fb77b26a637ee11e35420db", + "5888d6f095a7a863ddcc2865", + "5df216b89fea0cc374b8d341", + "5f464f4ca637ee11e30b84b2", + "5e5f643fb04a3d1f19c8ec2b", + "5f02e4b0499b85dcc75f8922", + "5f4e06c2a637ee11e3cd8aaf", + "5e8efa394b3890eb076135e1", + "5f4dff27a637ee11e3bc86ad", + "58a4178995a7a863ddcc6f6f", + "59009cc595a7a863ddcd2866", + "5ca5ea6b23c829c821566b60", + "58b85eb495a7a863ddccb433", + "5bf827a78caf671e1c20098f", + "5dd3b76d9fea0cc37453f5fe", + "58b031ab95a7a863ddcc9590", + "5f9a85d3a637ee11e361ae97", + "5a5c914d8c32ec6f8bf685d1", + "5bbcbd1778e1194aa69c3232", + "5d36f2338cba87f94345a005", + "5fb65edaa637ee11e3de078a", + "5cab554023c829c8214ab6a6", + "592fbc2895a7a863ddcdb7dc", + "5ba0c7db18654940f7b6c3bc", + "5953280695a7a863ddce0ad2", + "5d0ceced8cba87f9434d2da9", + "58aef78d95a7a863ddcc8d3d", + "5e8d96b74b3890eb071c43d6", + "5d95fa77abc8ea6d1c12a634", + "58898cbf95a7a863ddcc312b", + "5cb89d0dadbc796055f8979f", + "5b9a620118654940f77aafda", + "5e8c77134b3890eb07569c0e", + "5a033ab5d8141396fe9892c2", + "5df7606b9fea0cc374d37295", + "592d205595a7a863ddcd9e0f", + "58ab189395a7a863ddcc7847", + "5ba8b598ebe74117be0792c9", + "592fd60d95a7a863ddcdb960", + "5da72151abc8ea6d1c9bfd81", + "5e81dbcb4b3890eb072a452f", + "5e6f7bec4b3890eb071fad8c", + "592d1dd995a7a863ddcd9b7d", + "5e0213489fea0cc374175712", + "59e8acf5d8141396fe97847b", + "5a733dd48c32ec6f8b501bd7", + "5a034147d8141396fe989703", + "5b51ea5c00f9c6103ac28116", + "5c89040985ea3c16f9b71287", + "59e8d212d8141396fe978875", + "5a22cc3fd8141396fe9a69d2", + "5f23c8b9a637ee11e34e8d0a", + "592fbbae95a7a863ddcdb793", + "5df3afc19fea0cc37425e36e", + "5ea01126499b85dcc781e788", + "595270b895a7a863ddcded18", + "5da709b3abc8ea6d1c6a6d12", + "5e86d9124b3890eb0788e268", + "5eea2b35499b85dcc7831756", + "58aed05b95a7a863ddcc86fa", + "5e04b9a19fea0cc374957edc", + "593017c595a7a863ddcdc327", + "592d6e8595a7a863ddcda32f", + "5930199295a7a863ddcdc462", + "5ea9a2fa499b85dcc770e419", + "5f48b5bfa637ee11e339b80c", + "5c2643a9133a785392411b7c", + "592d1edf95a7a863ddcd9c91", + "58a309e295a7a863ddcc6806", + "5f50d8e7a637ee11e3b3d584", + "58b4321995a7a863ddcc9b05", + "5f4c9be9a637ee11e34888bf", + "5889bb4795a7a863ddcc39d0", + "589dd40e95a7a863ddcc5bdf", + "5f96a513a637ee11e3edadc7", + "5a79d0048c32ec6f8b205381", + "5f885f81a637ee11e360a0ca", + "5d9cad82abc8ea6d1c23ebf1", + "5f842afba637ee11e3aa919e", + "5d0cf79f8cba87f943616ca6", + "59b266ce1350e8329300d08e", + "5aba3fb6f07aee69771b82ba", + "5a231e10d8141396fe9a92a6", + "5bb4e7c278e1194aa6689dc8", + "592e799f95a7a863ddcda638", + "5db16f87abc8ea6d1c691cbb", + "5f6e0180a637ee11e35aa918", + "592e7a8095a7a863ddcda719", + "5f27f167a637ee11e353cffb", + "5947dd6795a7a863ddcddb93", + "589b418a95a7a863ddcc5079", + "5bf8264d8caf671e1c175e19", + "5fc118e3a637ee11e385fba9", + "5e0da8279fea0cc374b54a19", + "5d4ac826cf657b21efb7953b", + "5889aec695a7a863ddcc37e7", + "5b7a7f6c1cc8aa542993a745", + "5914298195a7a863ddcd7e0e", + "5bf4228f41fdeab19f438894", + "592e78e295a7a863ddcda547", + "595298e195a7a863ddce04c2", + "5954be6695a7a863ddce1560", + "5eec8f7c499b85dcc7df9182", + "5a5cc6f18c32ec6f8b28e2a0", + "595360c995a7a863ddce138b", + "5b9a51ce18654940f74bf296", + "591425ae95a7a863ddcd7a8a", + "5fbf9ca6a637ee11e3c42061", + "5e8b2b464b3890eb0748bb34", + "5ea97187499b85dcc7c45e3d", + "588991d295a7a863ddcc3530", + "5d4aa2e0cf657b21ef6ba5b9", + "5fb7a6cda637ee11e31472eb", + "5b76cb441cc8aa54299df374", + "58b9425b95a7a863ddccb54b", + "58a4091a95a7a863ddcc6c59", + "59b27e3f1350e8329300d9c7", + "59b14bb11350e8329300c5f6", + "5d95d46cabc8ea6d1cae2161", + "5952987d95a7a863ddce0454", + "5e317aac9fea0cc374372867", + "5f23d732a637ee11e36c0f12", + "5c7fc42b85ea3c16f972f905", + "5c17b35a133a78539257b0ae", + "5f8958fca637ee11e35d0a69", + "5f4e119da637ee11e3e63e96", + "5b85707d1cc8aa542972823c", + "58a1e55695a7a863ddcc6147", + "5de0ee579fea0cc374a81c58", + "5e8ece9d4b3890eb0711d458", + "5ea011f2499b85dcc783737d", + "5bdc3ee39259f9ba540db170", + "590af47495a7a863ddcd686c", + "5cfe555d8cba87f94325cfcd", + "5f4c9d6fa637ee11e34ab88b", + "5b7a72941cc8aa54295d5607", + "5d4bd3aacf657b21ef38d681", + "5cd67f1f7d4459dfe12714cf", + "5a184009d8141396fe99b0da", + "5fbf8699a637ee11e35d582d", + "59b26a7e1350e8329300d3cb", + "5a017416d8141396fe987885", + "5bec503341fdeab19f15ed2d", + "5c49d036048d064dbc2c27d8", + "5ce3ba947d4459dfe1cebd75", + "59b27d871350e8329300d8e8", + "5f3b9945a637ee11e35b31aa", + "5b61d61c00f9c6103aac4060", + "5a24023ed8141396fe9a9dd1", + "59535ea395a7a863ddce1193", + "5e1c2b529fea0cc374529db3", + "58aefb3e95a7a863ddcc8ec4", + "591d6cc495a7a863ddcd8a2d", + "595276e695a7a863ddcdf1b6", + "5e84764f4b3890eb07b27b52", + "5dcbc84b9fea0cc374fa22c7", + "59b264ae1350e8329300ce73", + "5d2c88498cba87f943f0cb14", + "5ce3b0597d4459dfe1bc9fd3", + "589dfb1995a7a863ddcc6033", + "5c4f235b048d064dbcb1a8bc", + "58dbb70095a7a863ddccf795", + "5888bb2995a7a863ddcc1f74", + "5bdc41b09259f9ba5419add1", + "5d691f60abc8ea6d1c3aae5f", + "5c0fbc4e133a785392f6b825", + "5909b14395a7a863ddcd2fbe", + "5a30e48ad8141396fe9b663b", + "5e9591b5499b85dcc7e78f6a", + "5f47aeb9a637ee11e3058186", + "5c4f1b1f048d064dbc90b24a", + "5e95a1f8499b85dcc7072f35", + "5fbb62b5a637ee11e3cce210", + "58b563ff95a7a863ddcca279", + "5a22763fd8141396fe9a45b6", + "5fc4a73aa637ee11e335eb3e", + "5da82591abc8ea6d1cf509af", + "589d904495a7a863ddcc594c", + "5eb9a6ca499b85dcc703c2ba", + "5b9a52bf18654940f74e6d3b", + "5aa915e0f07aee69773a0214", + "5bd82c0978e1194aa654f608", + "5d4aa424cf657b21ef6ddd7b", + "59532cac95a7a863ddce0cb8", + "5947c39595a7a863ddcddaea", + "5df7606b9fea0cc374d371db", + "589d8dd995a7a863ddcc587a", + "5e41700e9fea0cc37440961e", + "5db2b939abc8ea6d1c460919", + "5da7156fabc8ea6d1c82e947", + "5f3b9afaa637ee11e35f1111", + "5df7436b9fea0cc3748d96b3", + "5aedcc7b4b568b8eec64124c", + "5e5f5d2bb04a3d1f19b84ebd", + "5a1563a2d8141396fe9980a4", + "5db2ba06abc8ea6d1c4770b7", + "58a416d595a7a863ddcc6e28", + "5b51e7a300f9c6103ab68f78", + "592d6d4095a7a863ddcda26a", + "5914271f95a7a863ddcd7c33", + "5d94aa59abc8ea6d1c714710", + "5ba10dbc18654940f76c37f6", + "5b7150d91cc8aa542919d6ff", + "5a3289cdd8141396fe9b858a", + "5a329e71d8141396fe9b879b", + "592d6c1d95a7a863ddcda131", + "5e984f83499b85dcc792f65b", + "5d67ed46cf657b21ef7bdad9", + "5ea9a0ae499b85dcc768bb3a", + "5d08eacb8cba87f943da88b5", + "5bc0aeed78e1194aa67a02f1", + "5952a26c95a7a863ddce0a90", + "5df399629fea0cc374e54e05", + "5a033a83d8141396fe9892b2", + "5931132c95a7a863ddcdc5d3", + "5947e22895a7a863ddcddbe2", + "59535d2f95a7a863ddce1050", + "5f97e7fea637ee11e3877c93", + "5eb9a6ca499b85dcc703c38e", + "5fbfcf4ca637ee11e3f22e3a", + "592d700295a7a863ddcda454", + "5d69068eabc8ea6d1c077938", + "5ba8b7ddebe74117be0e5a7f", + "5952498f95a7a863ddcddfe5", + "5e6f770e4b3890eb07175aee", + "592d1da895a7a863ddcd9b66", + "5e9855a8499b85dcc7a04af5", + "59529ad295a7a863ddce0693", + "5b76e8c31cc8aa5429a373ba", + "5bc09e2c78e1194aa64f905f", + "5c7e4eb885ea3c16f919271a", + "5aa915fef07aee69773a3ef4", + "5bd6f2dc78e1194aa66d5538", + "5909cf1995a7a863ddcd3742", + "592fbd3e95a7a863ddcdb852", + "58ac67fc95a7a863ddcc7e70", + "5e6753a7b04a3d1f194ab98f", + "590af50495a7a863ddcd6902", + "5b07efff1e2cc446e71ecc21", + "5f4cfc78a637ee11e34f5678", + "58b4328e95a7a863ddcc9b9c", + "5e5655fe1cc98b350abcaa7d", + "59b287a31350e8329300dd42", + "5954bf3c95a7a863ddce1651", + "5c5b099a048d064dbc7b64a1", + "5c1b6fdc133a785392916275", + "5c3c6ed8048d064dbc3d79a3", + "5e5f71b1b04a3d1f19e9f6a8", + "5bd9d2b79259f9ba54bc01e0", + "5cd59dad7d4459dfe135f8e0", + "5e16e7af9fea0cc3741ba7dc", + "5c41f1f1048d064dbcbd957f", + "5fc11dbda637ee11e3a127f7", + "58b0311c95a7a863ddcc9522", + "5b97a74218654940f77b1b74", + "59528bd495a7a863ddcdf953", + "58cfb1b795a7a863ddccc9f5", + "58a30a2495a7a863ddcc6841", + "5ef30aa6499b85dcc7339c6d", + "5b9ba5e718654940f72b637a", + "59b266461350e8329300cffe", + "5d6903b8abc8ea6d1c0305fd", + "5f9feefda637ee11e3f04b24", + "592fbda695a7a863ddcdb868", + "5cd6984b7d4459dfe140c0b4", + "5a37866c5b3acffff7dbd0ee", + "5da708bdabc8ea6d1c6883bb", + "5ea97a10499b85dcc7df7aeb", + "5e8d7ece4b3890eb07f57f79", + "593689d895a7a863ddcdd375", + "5ea95fca499b85dcc790c5b3", + "5dada4f3abc8ea6d1ce6b5f0", + "5a033fe0d8141396fe9895e8", + "592d6d5c95a7a863ddcda279", + "5abcf6f94b568b8eec611a50", + "5df3880b9fea0cc374b2d334", + "5ce6d6a47d4459dfe1cd2b44", + "5f88022aa637ee11e3dfc003", + "58a307b495a7a863ddcc65ce", + "5c5afad6048d064dbc2ee507", + "5c1e3079133a7853926a74a1", + "592fdcb795a7a863ddcdbdda", + "59b27d5f1350e8329300d8bd", + "5952776895a7a863ddcdf1ed", + "592d1ef595a7a863ddcd9ca4", + "59b26dd21350e8329300d763", + "5e15f1af9fea0cc374ddf98f", + "59b146b81350e8329300c43b", + "58e36ad695a7a863ddcd0735", + "5d9c83f8abc8ea6d1cb19081", + "589b0e9a95a7a863ddcc472e", + "5a215d73d8141396fe9a1fb3", + "5e8eff4a499b85dcc77b8951", + "59b7fb5d1350e8329300fc44", + "58b6d25a95a7a863ddccab44", + "5b8d554818654940f7f6384d", + "5f9815e3a637ee11e3589a48", + "5cebcbb07d4459dfe1e5b5cf", + "5d09027f8cba87f9430979cb", + "5e2031da9fea0cc37450dd01", + "5fb542f1a637ee11e3911dc2", + "5e7c71244b3890eb071e6e40", + "5e81c9d54b3890eb070fcf6b", + "5a017648d8141396fe98792d", + "5928033b95a7a863ddcd8fde", + "5df398469fea0cc374e21041", + "5c1e15f3133a78539233fb0e", + "589b281695a7a863ddcc4b8e", + "5e42687d9fea0cc37499314e", + "5a4cf7ed8c32ec6f8b0ceb70", + "5ba0d45018654940f7d421de", + "5c3c8d51048d064dbc994316", + "5c263090133a7853920c2a70", + "5a218728d8141396fe9a3529", + "5f9a85d4a637ee11e361b088", + "5d5fb10fcf657b21ef44607b", + "5bbc950178e1194aa6fed246", + "5b2a07361eb1c99e2abf8923", + "58b85c6095a7a863ddccb265", + "58b6d5a995a7a863ddccabf8", + "5e737d234b3890eb0740c7ff", + "59526eab95a7a863ddcdeb6c", + "5a230512d8141396fe9a84a3", + "5a22e26ed8141396fe9a76b3", + "5f3b84c8a637ee11e32ee4c9", + "5f85b16ea637ee11e3851aec", + "5df398469fea0cc374e21063", + "5fc4a82ca637ee11e3396453", + "5bf55e578caf671e1c2272f0", + "5f34ddbfa637ee11e32f6d12", + "5add937c4b568b8eecbe8a06", + "5c1e2af7133a785392603221", + "5be5853e41fdeab19f70ecad", + "592e7e2095a7a863ddcdab22", + "5df212b79fea0cc374ae0f65", + "5e68e28db04a3d1f19b3c445", + "5d5ec3c5cf657b21ef068e8d", + "5952a16595a7a863ddce0a11", + "591582c295a7a863ddcd80ca", + "5e04bd5b9fea0cc3749cdb79", + "58aefab895a7a863ddcc8e40", + "5de7cdc19fea0cc37428e229", + "5888d7b795a7a863ddcc299d", + "588991b795a7a863ddcc34fd", + "59b7e99b1350e8329300f972", + "5e847c8b4b3890eb07bf3ac9", + "58adb00a95a7a863ddcc82ec", + "5b714f7b1cc8aa542914b74d", + "5e875fa84b3890eb077cdbde", + "5f92cf79a637ee11e3055170", + "5e8d87284b3890eb070215cf", + "5a5cc5998c32ec6f8b278b75", + "59535caa95a7a863ddce0fed", + "5ba1134618654940f77d16c2", + "5f8958fca637ee11e35d0750", + "5c373565048d064dbc0c0df7", + "5fbf8a42a637ee11e36e0472", + "592800e695a7a863ddcd8df0", + "5e5f755bb04a3d1f19f38efe", + "590b111f95a7a863ddcd7492", + "589b10aa95a7a863ddcc47e9", + "5f896c3ba637ee11e3a02595", + "5c49c701048d064dbc08d0c2", + "588a103a95a7a863ddcc45a7", + "5ea2e053499b85dcc7c007ba", + "592d197595a7a863ddcd96ff", + "5b2a01e91eb1c99e2ab2a7c5", + "5e5e34e0b04a3d1f19f74539", + "5d23570d8cba87f943359d60", + "58aed11295a7a863ddcc87c4", + "5f4e5304a637ee11e3928aa6", + "599ff4801350e83293008438", + "5e8b2b454b3890eb0748ba51", + "5d4ae4aecf657b21effa9831", + "5e9597fa499b85dcc7f44923", + "592e7e4195a7a863ddcdab32", + "5dc27c32abc8ea6d1cbf115a", + "5c265074133a785392625e76", + "5c9a00c885ea3c16f970c0b9", + "5c6d2c5a85ea3c16f92af509", + "58b010d395a7a863ddcc91d9", + "5dada59fabc8ea6d1ce7f9ba", + "5a217a2cd8141396fe9a2c81", + "5e7484bf4b3890eb07933412", + "58a4172995a7a863ddcc6eb8", + "5f3b9afaa637ee11e35f1172", + "5e0da6a29fea0cc374b389a1", + "5f200082a637ee11e3a6afad", + "58891e6395a7a863ddcc2f57", + "5f466c31a637ee11e35c8f35", + "5a2304e8d8141396fe9a848b", + "592d1bf395a7a863ddcd9953", + "59b7afa01350e8329300f5e2", + "592d6e9d95a7a863ddcda335", + "5e0216ee9fea0cc37420967d", + "590b0d2195a7a863ddcd70ee", + "5d37155c8cba87f943936f1a", + "5d4ae64dcf657b21effe78e1", + "5eec9b34499b85dcc7f66df4", + "5c348882048d064dbc42da3d", + "5d9f2b87abc8ea6d1cc0aa1e", + "5bbc9b3a78e1194aa616041e", + "58a4184395a7a863ddcc7022", + "5b8d559518654940f7f780c3", + "591428b695a7a863ddcd7d30", + "5fb66d81a637ee11e331eff7", + "5ea968c3499b85dcc7aa3828", + "592c222b95a7a863ddcd9675", + "5f50b4f1a637ee11e35331dc", + "5f041ebf499b85dcc7b151b7", + "58b83ddd95a7a863ddccb137", + "5e8c76874b3890eb0755632b", + "5fbfa227a637ee11e3df4473", + "5da732a8abc8ea6d1cc0755d", + "5f92d306a637ee11e3159f4a", + "589df8fd95a7a863ddcc5e6c", + "5a686e448c32ec6f8b69a4ef", + "5bd0598078e1194aa61642b1", + "590b0d8f95a7a863ddcd714e", + "5be174d215d5cddfd04fd1a2", + "5888b64795a7a863ddcc1d6d", + "5d6910ccabc8ea6d1c190a36", + "592d1ebe95a7a863ddcd9c89", + "5ca73e7a23c829c821868ef4", + "5fbf5f72a637ee11e3b6df54", + "5889bc1295a7a863ddcc3b29", + "5d67e9e4cf657b21ef782b39", + "595329da95a7a863ddce0b9d", + "592d6d0a95a7a863ddcda233", + "5d234b9c8cba87f9431bf572", + "58ab077b95a7a863ddcc72b8", + "58aeb46795a7a863ddcc84a5", + "589b0f8c95a7a863ddcc4795", + "5a26bcecd8141396fe9ac474", + "5db19debabc8ea6d1cc6ad38", + "5bf56d588caf671e1c6e62f3", + "58e262f195a7a863ddcd0435", + "5e2a9d2f9fea0cc374b35358", + "5dad79afabc8ea6d1c9a14ad", + "5a03376ed8141396fe9891c8", + "5cd68b5c7d4459dfe1330505", + "5952610395a7a863ddcde636", + "5b7160471cc8aa54295455e8", + "5cde64e47d4459dfe1b81863", + "5bb485f278e1194aa62e6a19", + "5d108d688cba87f9438e85f7", + "5bd1c5f178e1194aa60ce914", + "59c9fc651350e832930151ae", + "5a219a5cd8141396fe9a3b97", + "59c9fd561350e83293015204", + "5c1792c9133a78539282377f", + "5a034328d8141396fe9897f3", + "5c41f55b048d064dbcc85b80", + "59528fb295a7a863ddcdfc63", + "5a230470d8141396fe9a843d", + "5d08f71b8cba87f943f37caf", + "5dad9b0babc8ea6d1cd3f4d9", + "5888d8c795a7a863ddcc2a0f", + "592fdbde95a7a863ddcdbd4f", + "5e68e281b04a3d1f19b3ab85", + "5de0eecc9fea0cc374a9510b", + "5d36eca58cba87f9433b0bc4", + "5de519bc9fea0cc3749d8e12", + "592fd90595a7a863ddcdbab3", + "5d4ab51dcf657b21ef8ed3b7", + "58ac638c95a7a863ddcc7c2b", + "58b032a995a7a863ddcc9615", + "59c9fd0a1350e832930151ef", + "5889904595a7a863ddcc3325", + "5e8effce499b85dcc77c87d3", + "5d692c01abc8ea6d1c616114", + "592fdd7e95a7a863ddcdbe67", + "58b56aca95a7a863ddcca69f", + "5b6c552d1cc8aa5429294e05", + "5af06dce4b568b8eec939453", + "5f5638b7a637ee11e38fd661", + "5f916d22a637ee11e30c6f61", + "588a0fd395a7a863ddcc4517", + "58b941d595a7a863ddccb4e3", + "5f994d42a637ee11e3dddddd", + "5dbbf802abc8ea6d1c0afb62", + "5bf2cab441fdeab19f016c88", + "5dad77cbabc8ea6d1c96f2bf", + "58ac657a95a7a863ddcc7d8c", + "5eea3290499b85dcc7962b80", + "5b62fc991cc8aa54293a0b2b", + "5914233f95a7a863ddcd777c", + "58b6d16295a7a863ddccaad1", + "5e0da62e9fea0cc374b2fd7f", + "5a21785cd8141396fe9a2aaf", + "5f19368fa637ee11e377ba6a", + "59b26c751350e8329300d604", + "5ee9dfdb499b85dcc7d472a9", + "5cb5858c23c829c82126ac24", + "58b565d095a7a863ddcca433", + "5eb9a717499b85dcc704d42c", + "5c1e3d76133a7853928a24a2", + "590af5c995a7a863ddcd69bc", + "5f4c9398a637ee11e33ceb3f", + "5d94a871abc8ea6d1c6b5966", + "5889aa8395a7a863ddcc361a", + "5b51e41700f9c6103aa8642e", + "595295b895a7a863ddce0148", + "5d9726b1abc8ea6d1c460b8c", + "5cd686a67d4459dfe12ecd52", + "5aaa53f5f07aee697749bb44", + "5e317b779fea0cc374391655", + "5b07ef901e2cc446e71d937f", + "5d08f7a08cba87f943f48a6d", + "5c5b0a29048d064dbc7e5d53", + "5b993af218654940f75b12f6", + "5b76e8381cc8aa54299ef785", + "59313e5495a7a863ddcdc9ac", + "5da7158fabc8ea6d1c83329d", + "59529b1d95a7a863ddce06be", + "5b28c7f51eb1c99e2a585581", + "5f96aecaa637ee11e313f2d9", + "5c7fbb0785ea3c16f94a594e", + "58a1e89e95a7a863ddcc65ad", + "599ecbfc1350e832930077ec", + "5fc11b13a637ee11e3924a24", + "5e68e06cb04a3d1f19af5e5a", + "5a0173f8d8141396fe987874", + "5889915495a7a863ddcc3485", + "5ab0f6f7f07aee69772a1f1d", + "589d7dc495a7a863ddcc55d3", + "5930147395a7a863ddcdc188", + "5ee9cd6b499b85dcc7af75ac", + "5e4facaa1cc98b350aef58bb", + "5909ad9995a7a863ddcd2de4" +] diff --git a/layout_agent/sample_ids/a3_gateab_pilot_n20.json b/layout_agent/sample_ids/a3_gateab_pilot_n20.json new file mode 100644 index 000000000..37395a0db --- /dev/null +++ b/layout_agent/sample_ids/a3_gateab_pilot_n20.json @@ -0,0 +1 @@ +["5888bb2995a7a863ddcc1f74", "5888c54095a7a863ddcc2082", "5888dd7995a7a863ddcc2e86", "5889bc5995a7a863ddcc3b97", "589b457b95a7a863ddcc5331", "58ab17ba95a7a863ddcc77bf", "58ab189395a7a863ddcc7847", "58cbc44595a7a863ddccc20b", "5909cfb695a7a863ddcd37cb", "5914233f95a7a863ddcd777c", "592d1a2b95a7a863ddcd97aa", "592fdd7e95a7a863ddcdbe67", "5930177f95a7a863ddcdc313", "5931132c95a7a863ddcdc5d3", "59313e5495a7a863ddcdc9ac", "5952704d95a7a863ddcdecb5", "5952934395a7a863ddcdff21", "59b2809c1350e8329300dbe4", "59bb96701350e8329301120a", "5a21848dd8141396fe9a33eb"] diff --git a/layout_agent/sample_ids/a3_gatec_n20.json b/layout_agent/sample_ids/a3_gatec_n20.json new file mode 100644 index 000000000..9f2a22b7c --- /dev/null +++ b/layout_agent/sample_ids/a3_gatec_n20.json @@ -0,0 +1 @@ +["589b10aa95a7a863ddcc47e9", "5888dd7995a7a863ddcc2e86", "589b130695a7a863ddcc4876", "5cf14cf58cba87f9434f1d6f", "5e45421a1cc98b350acda05c", "589dcf6a95a7a863ddcc5a05", "5889aa4f95a7a863ddcc35e2", "59bb95331350e83293011189", "5888daea95a7a863ddcc2cb0", "5889ae9c95a7a863ddcc37a9", "588a0fd395a7a863ddcc4517", "58898c4a95a7a863ddcc30c7", "5888cbf695a7a863ddcc214f", "5888d01295a7a863ddcc26a4", "5888dcf495a7a863ddcc2deb", "5889bc5995a7a863ddcc3b97", "5889bb4495a7a863ddcc39c9", "58898fe895a7a863ddcc32b5", "5889904595a7a863ddcc3325", "589b102e95a7a863ddcc47c2"] diff --git a/layout_agent/sample_ids/a3_general_n100.json b/layout_agent/sample_ids/a3_general_n100.json new file mode 100644 index 000000000..e6dce47c8 --- /dev/null +++ b/layout_agent/sample_ids/a3_general_n100.json @@ -0,0 +1,102 @@ +[ + "59526eab95a7a863ddcdeb6c", + "5e7380974b3890eb0747d5c4", + "5da04604abc8ea6d1cbe2935", + "5f4799b9a637ee11e3cda600", + "595298e195a7a863ddce04c2", + "592fdcc595a7a863ddcdbde1", + "5d68df79e79a2a634ea55321", + "5c1e2e71133a78539266d649", + "5fbe1dc7a637ee11e37e5003", + "5a21a25cd8141396fe9a3ddd", + "5a21793fd8141396fe9a2b83", + "5c1e235d133a78539251c177", + "589b10aa95a7a863ddcc47e9", + "592d1c4f95a7a863ddcd99a0", + "5cd6984b7d4459dfe140c0b4", + "5db2addfabc8ea6d1c333fbc", + "5a328987d8141396fe9b856b", + "5f96895da637ee11e38af71a", + "59158b7095a7a863ddcd869c", + "5f881e9fa637ee11e348d19b", + "58b031ab95a7a863ddcc9590", + "58a4176f95a7a863ddcc6f46", + "58dbb63195a7a863ddccf77a", + "592fd54295a7a863ddcdb8e3", + "5f4e0040a637ee11e3bec594", + "5d4ae4aecf657b21effa9831", + "5e8f0039499b85dcc77d42f6", + "5b856b601cc8aa54294702eb", + "5aba3fb6f07aee69771b82ba", + "5fc4a73aa637ee11e335eb3e", + "5b407f331eb1c99e2a9c842a", + "5f50b4f1a637ee11e35331dc", + "5bf823e88caf671e1c07e8f0", + "5947c48595a7a863ddcddb2e", + "58ab189395a7a863ddcc7847", + "58ab0a6395a7a863ddcc737e", + "5cb89d0dadbc796055f8979f", + "5b8d554818654940f7f6384d", + "5bc0ac6978e1194aa673953f", + "5f85a97fa637ee11e360ac15", + "5b2e12d91eb1c99e2a182b41", + "5ca5cf0023c829c821fceeaf", + "5888dd7995a7a863ddcc2e86", + "5e7a36214b3890eb072fb652", + "592d1dd995a7a863ddcd9b7d", + "59527b2495a7a863ddcdf4c5", + "5e68e281b04a3d1f19b3ab85", + "5f718be2a637ee11e33eb689", + "589b130695a7a863ddcc4876", + "5b855d491cc8aa5429cfba88", + "5f96de4aa637ee11e3f23147", + "5bd1e93f78e1194aa6b847de", + "5df9fcaa9fea0cc37404d2d2", + "589dd69895a7a863ddcc5c93", + "5df218709fea0cc374bd7e9f", + "5ab0f6f7f07aee69772a1f1d", + "5bc09e2c78e1194aa64f905f", + "5fa157eba637ee11e309840c", + "591589eb95a7a863ddcd84d7", + "5c89040985ea3c16f9b71287", + "5cf14cf58cba87f9434f1d6f", + "5930135495a7a863ddcdc0ac", + "5ea2a28b499b85dcc726d7d6", + "5f994d42a637ee11e3dddca6", + "5dbbff2eabc8ea6d1c15c382", + "5db2bcf8abc8ea6d1c4c9cb8", + "5df211c29fea0cc374abbbba", + "5cd68c8b7d4459dfe1341b4b", + "5e8ece9d4b3890eb0711d458", + "5a3288d4d8141396fe9b8539", + "5f5b5a3da637ee11e3e5adbf", + "5931159f95a7a863ddcdc76c", + "5e45421a1cc98b350acda05c", + "5d234fcd8cba87f94325280c", + "58a4172995a7a863ddcc6eb8", + "5f6af7baa637ee11e3909ab1", + "5f48b9b9a637ee11e341870b", + "5abd0af44b568b8eec968c46", + "5aab8c95f07aee69776b2742", + "5fbb62b5a637ee11e3cce210", + "589dcf6a95a7a863ddcc5a05", + "5ce6d6a47d4459dfe1cd2b44", + "5df38d389fea0cc374c15178", + "5bd1c85078e1194aa6186300", + "58b5643195a7a863ddcca2ad", + "5a227705d8141396fe9a4657", + "5dbc2153abc8ea6d1c4e3c45", + "5e6f7e1c4b3890eb07240f9b", + "5e86d9124b3890eb0788e268", + "5cde64e47d4459dfe1b81863", + "5e8b2b454b3890eb0748ba51", + "5b855e7a1cc8aa5429da23d2", + "58e264ae95a7a863ddcd0528", + "5f23d114a637ee11e35f5c9e", + "58affed095a7a863ddcc8f6a", + "5cab554023c829c8214ab6a6", + "5e41700e9fea0cc37440961e", + "5fb77b26a637ee11e35420db", + "5b714f7b1cc8aa542914b74d", + "58ab0a9b95a7a863ddcc7397" +] diff --git a/layout_agent/sample_ids/a3_general_n100.provenance.json b/layout_agent/sample_ids/a3_general_n100.provenance.json new file mode 100644 index 000000000..6b2ba58bc --- /dev/null +++ b/layout_agent/sample_ids/a3_general_n100.provenance.json @@ -0,0 +1,26 @@ +{ + "algorithm": "sorted-local-cache-shuffle-prefix.v1", + "asset_count_filter": null, + "cached_directory_count": 1902, + "candidate_meta_snapshot_sha256": "bdf877e748699ff7d8a7b4b4acc03c411a8cb8036cfa868def20bb29bffc3796", + "candidate_pool_count": 1902, + "candidate_pool_sha256": "52e97ceda2d76c4c77dcc2d99573245e1a4dc2a5829538c918b817bf8897d34b", + "dataset": "cyberagent/crello", + "documented_raw_test_count": 1971, + "exclusions": { + "id_mismatch": 0, + "invalid_json": 0, + "missing_meta": 0, + "non_object_meta": 0 + }, + "geometry_filter": null, + "notes": "Selection is frozen before A3 generation and never inspects designer geometry, semantic richness, model output, candidate renders, or evaluation scores. The difference from the documented raw split is an explicit local-cache availability limitation.", + "requested_count": 100, + "schema_version": "a3.general-selection.v1", + "seed": 42, + "selected_count": 100, + "selected_ids_sha256": "0e5401fb45cb83c573c82be458508e6ace003482b027b667556dfd876aed052c", + "selection_universe": "locally cached test snapshots with readable matching meta.json", + "semantic_filter": null, + "split": "test" +} diff --git a/layout_agent/sample_ids/a3_relation_annot_n80.json b/layout_agent/sample_ids/a3_relation_annot_n80.json new file mode 100644 index 000000000..2523b816d --- /dev/null +++ b/layout_agent/sample_ids/a3_relation_annot_n80.json @@ -0,0 +1 @@ +["5952794195a7a863ddcdf36a", "599ecb061350e83293007738", "5a034425d8141396fe9898fa", "5a240260d8141396fe9a9de3", "5a26bcecd8141396fe9ac474", "5a9968cff07aee6977a29a68", "5aa915fef07aee69773a3ef4", "5b6aaf851cc8aa542986ad50", "5b6ab3e01cc8aa542994ee9d", "5b85707d1cc8aa542972823c", "5b9a550e18654940f754c07c", "5b9bc6a018654940f781b996", "5ba8b598ebe74117be0792c9", "5bbc9b3a78e1194aa616041e", "5bbcbdfd78e1194aa69fe067", "5bd05c0e78e1194aa6210e31", "5bd9d0209259f9ba54b29c99", "5be174d215d5cddfd04fd1a2", "5be97b9241fdeab19f985504", "5bf55e578caf671e1c2272f0", "5bf828a38caf671e1c2632e9", "5c263de4133a785392318ba9", "5c41f55b048d064dbcc85b80", "5c41f7a3048d064dbccfae94", "5c5af7a1048d064dbc1f0d67", "5c5b0913048d064dbc785e7c", "5c5b095c048d064dbc7a0ede", "5c6c147785ea3c16f98dd907", "5c77eda885ea3c16f9f29101", "5ca5faf823c829c8218ffb10", "5cb89d8aadbc796055f970af", "5cd67f1f7d4459dfe12714cf", "5cd6984b7d4459dfe140c0b4", "5cde64e47d4459dfe1b81863", "5ce3ba947d4459dfe1cebd75", "5cfe2ad78cba87f943da4ec5", "5d08f3708cba87f943ec4e3f", "5d08f7a08cba87f943f48a6d", "5d0cf79f8cba87f943616ca6", "5d234eaf8cba87f94322b763", "5d4ae4aecf657b21effa9831", "5d67ed46cf657b21ef7bdad9", "5d68dd6ce79a2a634ea111b8", "5d6903b8abc8ea6d1c0305fd", "5d6909e8abc8ea6d1c0cda03", "5d9c8fa2abc8ea6d1cd0d3e7", "5d9cad82abc8ea6d1c23ebf1", "5d9cadb1abc8ea6d1c246dc8", "5da04604abc8ea6d1cbe2935", "5da071b5abc8ea6d1c1f1d6f", "5dbbff2eabc8ea6d1c15c382", "5dc27c32abc8ea6d1cbf115a", "5df211c29fea0cc374abbbba", "5df216b89fea0cc374b8d341", "5df3af489fea0cc3742457a9", "5df7606b9fea0cc374d371db", "5e0213489fea0cc374175712", "5e0219159fea0cc37425a627", "5e04ba7f9fea0cc3749733ea", "5e0621989fea0cc3748583f6", "5e0d99499fea0cc374a71bcc", "5e202d829fea0cc3744908a8", "5e2031da9fea0cc37450dd01", "5e28090f9fea0cc3748fc62a", "5e6f770e4b3890eb07175aee", "5e8762404b3890eb0782ad22", "5e8d96cb4b3890eb071c683d", "5e8ef9fb4b3890eb0760bade", "5e90704d499b85dcc7d7114d", "5e984f83499b85dcc792f6be", "5ea01126499b85dcc781e788", "5ea2d990499b85dcc7aaeb92", "5ea97187499b85dcc7c45e3d", "5f114599499b85dcc796da51", "5f3b84c8a637ee11e32ee4c9", "5f4c9d6fa637ee11e34ab88b", "5f5b5a3da637ee11e3e5adbf", "5f644f40a637ee11e3669a1c", "5f96aca7a637ee11e30bb517", "5fbf5b4aa637ee11e3a82536"] diff --git a/layout_agent/sample_ids/a3_relation_n100.json b/layout_agent/sample_ids/a3_relation_n100.json new file mode 100644 index 000000000..db4c70e07 --- /dev/null +++ b/layout_agent/sample_ids/a3_relation_n100.json @@ -0,0 +1 @@ +["5888bb2995a7a863ddcc1f74", "5888c54095a7a863ddcc2082", "5888dd7995a7a863ddcc2e86", "5889bc5995a7a863ddcc3b97", "589b457b95a7a863ddcc5331", "58ab17ba95a7a863ddcc77bf", "58ab189395a7a863ddcc7847", "58cbc44595a7a863ddccc20b", "5909cfb695a7a863ddcd37cb", "5914233f95a7a863ddcd777c", "592d1a2b95a7a863ddcd97aa", "592fdd7e95a7a863ddcdbe67", "5930177f95a7a863ddcdc313", "5931132c95a7a863ddcdc5d3", "59313e5495a7a863ddcdc9ac", "5952704d95a7a863ddcdecb5", "5952794195a7a863ddcdf36a", "5952934395a7a863ddcdff21", "599ecb061350e83293007738", "59b2809c1350e8329300dbe4", "59bb96701350e8329301120a", "5a034425d8141396fe9898fa", "5a21848dd8141396fe9a33eb", "5a240260d8141396fe9a9de3", "5a26bcecd8141396fe9ac474", "5a9968cff07aee6977a29a68", "5aa915fef07aee69773a3ef4", "5b6aaf851cc8aa542986ad50", "5b6ab3e01cc8aa542994ee9d", "5b85707d1cc8aa542972823c", "5b9a550e18654940f754c07c", "5b9bc6a018654940f781b996", "5ba8b598ebe74117be0792c9", "5bbc9b3a78e1194aa616041e", "5bbcbdfd78e1194aa69fe067", "5bd05c0e78e1194aa6210e31", "5bd9d0209259f9ba54b29c99", "5be174d215d5cddfd04fd1a2", "5be97b9241fdeab19f985504", "5bf55e578caf671e1c2272f0", "5bf828a38caf671e1c2632e9", "5c263de4133a785392318ba9", "5c41f55b048d064dbcc85b80", "5c41f7a3048d064dbccfae94", "5c5af7a1048d064dbc1f0d67", "5c5b0913048d064dbc785e7c", "5c5b095c048d064dbc7a0ede", "5c6c147785ea3c16f98dd907", "5c77eda885ea3c16f9f29101", "5ca5faf823c829c8218ffb10", "5cb89d8aadbc796055f970af", "5cd67f1f7d4459dfe12714cf", "5cd6984b7d4459dfe140c0b4", "5cde64e47d4459dfe1b81863", "5ce3ba947d4459dfe1cebd75", "5cfe2ad78cba87f943da4ec5", "5d08f3708cba87f943ec4e3f", "5d08f7a08cba87f943f48a6d", "5d0cf79f8cba87f943616ca6", "5d234eaf8cba87f94322b763", "5d4ae4aecf657b21effa9831", "5d67ed46cf657b21ef7bdad9", "5d68dd6ce79a2a634ea111b8", "5d6903b8abc8ea6d1c0305fd", "5d6909e8abc8ea6d1c0cda03", "5d9c8fa2abc8ea6d1cd0d3e7", "5d9cad82abc8ea6d1c23ebf1", "5d9cadb1abc8ea6d1c246dc8", "5da04604abc8ea6d1cbe2935", "5da071b5abc8ea6d1c1f1d6f", "5dbbff2eabc8ea6d1c15c382", "5dc27c32abc8ea6d1cbf115a", "5df211c29fea0cc374abbbba", "5df216b89fea0cc374b8d341", "5df3af489fea0cc3742457a9", "5df7606b9fea0cc374d371db", "5e0213489fea0cc374175712", "5e0219159fea0cc37425a627", "5e04ba7f9fea0cc3749733ea", "5e0621989fea0cc3748583f6", "5e0d99499fea0cc374a71bcc", "5e202d829fea0cc3744908a8", "5e2031da9fea0cc37450dd01", "5e28090f9fea0cc3748fc62a", "5e6f770e4b3890eb07175aee", "5e8762404b3890eb0782ad22", "5e8d96cb4b3890eb071c683d", "5e8ef9fb4b3890eb0760bade", "5e90704d499b85dcc7d7114d", "5e984f83499b85dcc792f6be", "5ea01126499b85dcc781e788", "5ea2d990499b85dcc7aaeb92", "5ea97187499b85dcc7c45e3d", "5f114599499b85dcc796da51", "5f3b84c8a637ee11e32ee4c9", "5f4c9d6fa637ee11e34ab88b", "5f5b5a3da637ee11e3e5adbf", "5f644f40a637ee11e3669a1c", "5f96aca7a637ee11e30bb517", "5fbf5b4aa637ee11e3a82536"] diff --git a/layout_agent/sample_ids/a3_smoke_n5.json b/layout_agent/sample_ids/a3_smoke_n5.json new file mode 100644 index 000000000..d299645e9 --- /dev/null +++ b/layout_agent/sample_ids/a3_smoke_n5.json @@ -0,0 +1 @@ +["5888a28d95a7a863ddcc1c82", "5888a54d95a7a863ddcc1d0c", "5888b64795a7a863ddcc1d6d", "5888bb2995a7a863ddcc1f74", "5888c54095a7a863ddcc2082"] diff --git a/layout_agent/select_a3_general.py b/layout_agent/select_a3_general.py new file mode 100644 index 000000000..2b3654c6e --- /dev/null +++ b/layout_agent/select_a3_general.py @@ -0,0 +1,191 @@ +"""Freeze a model-blind random Crello-General sample before generation. + +The selection universe is the locally cached Crello test snapshots. No +semantic, element-count, asset-type, geometry, or model-output filter is used. +Only unreadable/missing metadata and cache-directory/metadata ID disagreement +are excluded as unavailable source records, and those exclusions are recorded. +""" +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import random +from pathlib import Path +from typing import Dict, List, Tuple + + +SCHEMA_VERSION = "a3.general-selection.v1" +ALGORITHM = "sorted-local-cache-shuffle-prefix.v1" + + +class GeneralSelectionError(ValueError): + """The frozen General selection cannot be created or reproduced.""" + + +def _canonical_json(value: object) -> bytes: + return ( + json.dumps(value, ensure_ascii=False, indent=2, sort_keys=True) + "\n" + ).encode("utf-8") + + +def _sha256(payload: bytes) -> str: + return hashlib.sha256(payload).hexdigest() + + +def discover_cached_test_pool( + crello_root: Path, +) -> Tuple[List[str], List[Dict[str, str]], Dict[str, int]]: + """Return sorted IDs plus a frozen aggregate of their metadata bytes.""" + if not crello_root.is_dir(): + raise GeneralSelectionError(f"Crello root does not exist: {crello_root}") + + pool: List[str] = [] + meta_records: List[Dict[str, str]] = [] + exclusions = { + "missing_meta": 0, + "invalid_json": 0, + "non_object_meta": 0, + "id_mismatch": 0, + } + for sample_dir in sorted(crello_root.glob("crello_*")): + if not sample_dir.is_dir(): + continue + sample_id = sample_dir.name.removeprefix("crello_") + meta_path = sample_dir / "meta.json" + if not meta_path.is_file(): + exclusions["missing_meta"] += 1 + continue + payload = meta_path.read_bytes() + try: + meta = json.loads(payload) + except (UnicodeDecodeError, json.JSONDecodeError): + exclusions["invalid_json"] += 1 + continue + if not isinstance(meta, dict): + exclusions["non_object_meta"] += 1 + continue + if str(meta.get("id", "")) != sample_id: + exclusions["id_mismatch"] += 1 + continue + pool.append(sample_id) + meta_records.append({"sample_id": sample_id, "meta_sha256": _sha256(payload)}) + + if len(pool) != len(set(pool)): + raise GeneralSelectionError("cached Crello sample IDs must be unique") + return pool, meta_records, exclusions + + +def build_selection( + crello_root: Path, + *, + count: int, + seed: int, + documented_raw_test_count: int, +) -> Tuple[List[str], Dict[str, object]]: + """Build the deterministic selected IDs and their provenance record.""" + if count <= 0: + raise GeneralSelectionError("count must be positive") + pool, meta_records, exclusions = discover_cached_test_pool(crello_root) + if len(pool) < count: + raise GeneralSelectionError( + f"requested {count} samples but only {len(pool)} cached records are available" + ) + + shuffled = list(pool) + random.Random(seed).shuffle(shuffled) + selected = shuffled[:count] + selected_payload = _canonical_json(selected) + provenance: Dict[str, object] = { + "schema_version": SCHEMA_VERSION, + "algorithm": ALGORITHM, + "dataset": "cyberagent/crello", + "split": "test", + "documented_raw_test_count": documented_raw_test_count, + "selection_universe": "locally cached test snapshots with readable matching meta.json", + "semantic_filter": None, + "geometry_filter": None, + "asset_count_filter": None, + "seed": seed, + "requested_count": count, + "cached_directory_count": sum(1 for path in crello_root.glob("crello_*") if path.is_dir()), + "candidate_pool_count": len(pool), + "candidate_pool_sha256": _sha256(_canonical_json(pool)), + "candidate_meta_snapshot_sha256": _sha256(_canonical_json(meta_records)), + "exclusions": exclusions, + "selected_ids_sha256": _sha256(selected_payload), + "selected_count": len(selected), + "notes": ( + "Selection is frozen before A3 generation and never inspects designer geometry, " + "semantic richness, model output, candidate renders, or evaluation scores. The " + "difference from the documented raw split is an explicit local-cache availability " + "limitation." + ), + } + return selected, provenance + + +def _write_once_or_verify(path: Path, payload: bytes) -> str: + path.parent.mkdir(parents=True, exist_ok=True) + try: + descriptor = os.open(path, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o644) + except FileExistsError: + if path.read_bytes() != payload: + raise GeneralSelectionError(f"refusing to overwrite different file: {path}") + return "verified-existing" + with os.fdopen(descriptor, "wb") as handle: + handle.write(payload) + return "created" + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--crello-root", type=Path, required=True) + parser.add_argument("--ids-output", type=Path, required=True) + parser.add_argument("--provenance-output", type=Path, required=True) + parser.add_argument("--count", type=int, default=100) + parser.add_argument("--seed", type=int, default=42) + parser.add_argument("--documented-raw-test-count", type=int, default=1971) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + selected, provenance = build_selection( + args.crello_root, + count=args.count, + seed=args.seed, + documented_raw_test_count=args.documented_raw_test_count, + ) + ids_payload = _canonical_json(selected) + if provenance["selected_ids_sha256"] != _sha256(ids_payload): + raise AssertionError("selected ID payload hash changed before publication") + ids_status = _write_once_or_verify(args.ids_output, ids_payload) + provenance_status = _write_once_or_verify( + args.provenance_output, _canonical_json(provenance) + ) + print( + json.dumps( + { + "schema_version": SCHEMA_VERSION, + "selected_count": len(selected), + "selected_ids_sha256": provenance["selected_ids_sha256"], + "candidate_pool_count": provenance["candidate_pool_count"], + "ids_output": str(args.ids_output.resolve()), + "ids_status": ids_status, + "provenance_output": str(args.provenance_output.resolve()), + "provenance_status": provenance_status, + "api_calls": 0, + "paid_cost_usd": 0.0, + }, + ensure_ascii=False, + indent=2, + sort_keys=True, + ) + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/metagpt/ext/agentlayout/a3_config.py b/metagpt/ext/agentlayout/a3_config.py new file mode 100644 index 000000000..6b2a69e33 --- /dev/null +++ b/metagpt/ext/agentlayout/a3_config.py @@ -0,0 +1,74 @@ +"""Versioned, explicit configuration contract for AgentLayout A3 runs. + +This module contains provenance-bearing configuration only. It deliberately +does not change the legacy pipeline yet; later A3 phases must consume this +contract instead of relying on ambient defaults. +""" +from __future__ import annotations + +from typing import Dict, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, model_validator + + +A3_CONFIG_SCHEMA_VERSION = "a3.run-config.v1" + + +class ModelCallConfig(BaseModel): + """Resolved settings for one model-backed A3 stage.""" + + model_config = ConfigDict(extra="forbid") + + model: str = Field(..., min_length=1) + reasoning_effort: Optional[str] = None + temperature: Optional[float] = None + max_tokens: Optional[int] = Field(default=None, ge=1) + image_detail: Optional[Literal["low", "high", "auto", "original"]] = None + structured_output: bool = True + + +class ImageNormalizationConfig(BaseModel): + model_config = ConfigDict(extra="forbid") + + text_long_edge_px: int = Field(default=512, ge=1) + text_padding_px: int = Field(default=8, ge=0) + alpha_threshold: int = Field(default=1, ge=0, le=255) + resize_filter: Literal["lanczos"] = "lanczos" + + +class A3RunConfig(BaseModel): + """Frozen experimental configuration included verbatim in every manifest.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.run-config.v1"] = A3_CONFIG_SCHEMA_VERSION + architecture: Literal["A3-MLLM"] = "A3-MLLM" + foreground_protocol: Literal["P-Full"] = "P-Full" + renderer: Literal["R3"] = "R3" + loop: Literal["L0", "L1-Gated"] + internal_judge: str = Field(..., min_length=1) + evaluation_judge: Optional[str] = None + dataset_split: str = Field(..., min_length=1) + seed: int = 42 + models: Dict[str, ModelCallConfig] + image_normalization: ImageNormalizationConfig = Field( + default_factory=ImageNormalizationConfig + ) + schema_versions: Dict[str, str] = Field(default_factory=dict) + price_table_version: Optional[str] = None + + @model_validator(mode="after") + def _require_system_stages(self) -> "A3RunConfig": + required = { + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "judge_select", + } + if self.loop == "L1-Gated": + required.add("judge_critic") + missing = sorted(required - set(self.models)) + if missing: + raise ValueError(f"models is missing required A3 stages: {missing}") + return self diff --git a/metagpt/ext/agentlayout/a3_paid_budget.py b/metagpt/ext/agentlayout/a3_paid_budget.py new file mode 100644 index 000000000..9fb73e640 --- /dev/null +++ b/metagpt/ext/agentlayout/a3_paid_budget.py @@ -0,0 +1,636 @@ +"""Fail-closed paid-call budget enforcement for A3 generation.""" +from __future__ import annotations + +import asyncio +import base64 +import fcntl +import hashlib +import io +import json +import math +import os +import threading +from dataclasses import dataclass +from decimal import Decimal +from pathlib import Path +from types import SimpleNamespace +from typing import Any, Dict, Iterable, Mapping, Optional + +from PIL import Image + + +AUTH_SCHEMA = "a3.paid-authorization.v1" +LEDGER_SCHEMA = "a3.paid-budget-ledger.v1" +INPUT_USD_PER_M = Decimal("0.75") +OUTPUT_USD_PER_M = Decimal("4.50") +IMAGE_PATCH_BUDGET = 1_536 +IMAGE_TOKEN_MULTIPLIER = Decimal("1.62") +REQUEST_MARGIN_TOKENS = 1_024 + + +class A3AuthorizationError(RuntimeError): + pass + + +class A3AuthorizationCapReached(RuntimeError): + pass + + +class A3ProviderCallError(RuntimeError): + pass + + +@dataclass(frozen=True) +class A3PaidAuthorization: + path: Path + sha256: str + run_id: str + model: str + tree_arm: str + analyst_arm: str + max_http_calls: int + max_input_tokens: int + max_output_tokens: int + max_usd: Decimal + stage_max_completion_tokens: Mapping[str, int] + image_detail: str + reasoning_effort: str + service_tier: str + + def public_dict(self) -> dict: + return { + "schema_version": AUTH_SCHEMA, + "authorization_sha256": self.sha256, + "run_id": self.run_id, + "model": self.model, + "tree_arm": self.tree_arm, + "analyst_arm": self.analyst_arm, + "max_http_calls": self.max_http_calls, + "max_input_tokens": self.max_input_tokens, + "max_output_tokens": self.max_output_tokens, + "max_usd": str(self.max_usd), + "stage_max_completion_tokens": dict( + self.stage_max_completion_tokens + ), + "image_detail": self.image_detail, + "reasoning_effort": self.reasoning_effort, + "service_tier": self.service_tier, + } + + +def _sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as stream: + for chunk in iter(lambda: stream.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _positive_int(value: Any, field: str) -> int: + if isinstance(value, bool) or not isinstance(value, int) or value <= 0: + raise A3AuthorizationError(f"invalid_{field}") + return value + + +def load_authorization( + path: Path, + *, + expected_run_id: str, + expected_model: str, + expected_tree_arm: str, + expected_analyst_arm: str, +) -> A3PaidAuthorization: + try: + payload = json.loads(path.read_text()) + except Exception: + raise A3AuthorizationError("authorization_receipt_unreadable") from None + if not isinstance(payload, dict) or payload.get("schema_version") != AUTH_SCHEMA: + raise A3AuthorizationError("authorization_schema_mismatch") + if payload.get("authorized") is not True or payload.get("authorized_by") != "user": + raise A3AuthorizationError("authorization_not_explicit") + expected = { + "run_id": expected_run_id, + "model": expected_model, + "tree_arm": expected_tree_arm, + "analyst_arm": expected_analyst_arm, + } + for key, value in expected.items(): + if payload.get(key) != value: + raise A3AuthorizationError(f"authorization_{key}_mismatch") + limits = payload.get("limits") + stage_caps = payload.get("stage_max_completion_tokens") + if not isinstance(limits, dict) or not isinstance(stage_caps, dict): + raise A3AuthorizationError("authorization_limits_missing") + required_stages = { + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "judge_select", + } + if set(stage_caps) != required_stages: + raise A3AuthorizationError("authorization_stage_caps_mismatch") + parsed_stage_caps = { + key: _positive_int(value, f"{key}_completion_cap") + for key, value in stage_caps.items() + } + try: + max_usd = Decimal(str(limits["max_usd"])) + except Exception: + raise A3AuthorizationError("invalid_max_usd") from None + if max_usd <= 0: + raise A3AuthorizationError("invalid_max_usd") + if Decimal(str(payload.get("input_usd_per_m"))) != INPUT_USD_PER_M: + raise A3AuthorizationError("input_price_mismatch") + if Decimal(str(payload.get("output_usd_per_m"))) != OUTPUT_USD_PER_M: + raise A3AuthorizationError("output_price_mismatch") + if payload.get("image_detail") != "high": + raise A3AuthorizationError("image_detail_mismatch") + if payload.get("reasoning_effort") != "none": + raise A3AuthorizationError("reasoning_effort_mismatch") + if payload.get("service_tier") != "default": + raise A3AuthorizationError("service_tier_mismatch") + return A3PaidAuthorization( + path=path, + sha256=_sha256(path), + run_id=expected_run_id, + model=expected_model, + tree_arm=expected_tree_arm, + analyst_arm=expected_analyst_arm, + max_http_calls=_positive_int(limits.get("max_http_calls"), "max_http_calls"), + max_input_tokens=_positive_int( + limits.get("max_input_tokens"), "max_input_tokens" + ), + max_output_tokens=_positive_int( + limits.get("max_output_tokens"), "max_output_tokens" + ), + max_usd=max_usd, + stage_max_completion_tokens=parsed_stage_caps, + image_detail="high", + reasoning_effort="none", + service_tier="default", + ) + + +@dataclass(frozen=True) +class Reservation: + reservation_id: int + input_tokens: int + output_tokens: int + + +class A3PaidBudget: + """Reserve every cap before one HTTP call and settle fail-closed.""" + + def __init__( + self, + authorization: A3PaidAuthorization, + ledger_path: Path, + *, + code_paths: Iterable[Path] = (), + resume: bool = False, + ) -> None: + self.authorization = authorization + self.ledger_path = ledger_path + self.calls = 0 + self.input_tokens = 0 + self.output_tokens = 0 + self.usage_reported_calls = 0 + self._next_id = 1 + self._active: Dict[int, Reservation] = {} + self._reserved_input = 0 + self._reserved_output = 0 + self._lock = threading.RLock() + ledger_path.parent.mkdir(parents=True, exist_ok=True) + if ledger_path.exists(): + # Cumulative resume: replay the append-only ledger so the original + # authorization envelope keeps binding across interrupted runs. + # Caps are NEVER reset; reserve() sees prior spend in the counters. + if not resume: + raise A3AuthorizationError("paid_budget_ledger_already_exists") from None + self._replay_ledger() + self._append( + { + "schema_version": LEDGER_SCHEMA, + "event": "resume", + "authorization": authorization.public_dict(), + "prior_calls": self.calls, + "prior_input_tokens": self.input_tokens, + "prior_output_tokens": self.output_tokens, + "code_sha256": {str(path): _sha256(path) for path in code_paths}, + } + ) + return + header = { + "schema_version": LEDGER_SCHEMA, + "event": "header", + "authorization": authorization.public_dict(), + "code_sha256": { + str(path): _sha256(path) for path in code_paths + }, + } + flags = os.O_CREAT | os.O_EXCL | os.O_WRONLY | getattr(os, "O_CLOEXEC", 0) + try: + descriptor = os.open(ledger_path, flags, 0o600) + except FileExistsError: + raise A3AuthorizationError("paid_budget_ledger_already_exists") from None + try: + os.write( + descriptor, + (json.dumps(header, sort_keys=True) + "\n").encode("utf-8"), + ) + os.fsync(descriptor) + finally: + os.close(descriptor) + + def _replay_ledger(self) -> None: + """Rebuild cumulative spend from the existing append-only ledger.""" + header_authorization = None + open_reservations: Dict[int, dict] = {} + max_reservation_id = 0 + for line in self.ledger_path.read_text(encoding="utf-8").splitlines(): + if not line.strip(): + continue + event = json.loads(line) + kind = event.get("event") + if kind == "header": + header_authorization = event.get("authorization") + elif kind == "resume": + if event.get("authorization") != self.authorization.public_dict(): + raise A3AuthorizationError("paid_budget_ledger_authorization_mismatch") + elif kind == "reserve": + reservation_id = int(event["reservation_id"]) + open_reservations[reservation_id] = event + max_reservation_id = max(max_reservation_id, reservation_id) + elif kind == "settle": + if open_reservations.pop(int(event["reservation_id"]), None) is None: + raise A3AuthorizationError("paid_budget_ledger_orphan_settlement") + self.calls += 1 + self.input_tokens += int(event["input_tokens"]) + self.output_tokens += int(event["output_tokens"]) + if event.get("usage_reported"): + self.usage_reported_calls += 1 + else: + raise A3AuthorizationError("paid_budget_ledger_unknown_event") + if header_authorization != self.authorization.public_dict(): + raise A3AuthorizationError("paid_budget_ledger_authorization_mismatch") + if open_reservations: + # An unsettled reservation means unknown in-flight spend; a human + # must reconcile the ledger before any further paid call. + raise A3AuthorizationError("paid_budget_ledger_unsettled_reservations") + self._next_id = max_reservation_id + 1 + + @staticmethod + def usd(input_tokens: int, output_tokens: int) -> Decimal: + return ( + Decimal(input_tokens) * INPUT_USD_PER_M + + Decimal(output_tokens) * OUTPUT_USD_PER_M + ) / Decimal(1_000_000) + + def _append(self, event: dict) -> None: + with self.ledger_path.open("a", encoding="utf-8") as handle: + handle.write(json.dumps(event, sort_keys=True) + "\n") + handle.flush() + os.fsync(handle.fileno()) + + def reserve(self, input_tokens: int, output_tokens: int) -> Optional[Reservation]: + if input_tokens < 0 or output_tokens <= 0: + raise ValueError("invalid_reservation") + with self._lock: + projected_calls = self.calls + len(self._active) + 1 + projected_input = self.input_tokens + self._reserved_input + input_tokens + projected_output = ( + self.output_tokens + self._reserved_output + output_tokens + ) + limits = self.authorization + if ( + projected_calls > limits.max_http_calls + or projected_input > limits.max_input_tokens + or projected_output > limits.max_output_tokens + or self.usd(projected_input, projected_output) > limits.max_usd + ): + return None + reservation = Reservation(self._next_id, input_tokens, output_tokens) + self._append( + { + "event": "reserve", + "reservation_id": reservation.reservation_id, + "input_tokens": input_tokens, + "output_tokens": output_tokens, + } + ) + self._next_id += 1 + self._active[reservation.reservation_id] = reservation + self._reserved_input += input_tokens + self._reserved_output += output_tokens + return reservation + + @staticmethod + def _usage_value(usage: Any, name: str) -> Optional[int]: + try: + value = getattr(usage, name, None) + except Exception: + return None + if isinstance(value, bool) or not isinstance(value, int) or value < 0: + return None + return value + + def _settle( + self, + reservation: Reservation, + *, + input_tokens: int, + output_tokens: int, + usage_reported: bool, + ) -> dict: + with self._lock: + active = self._active.pop(reservation.reservation_id, None) + if active != reservation: + raise RuntimeError("invalid_or_settled_reservation") + exceeded_reservation = ( + input_tokens > reservation.input_tokens + or output_tokens > reservation.output_tokens + ) + self._append( + { + "event": "settle", + "reservation_id": reservation.reservation_id, + "input_tokens": input_tokens, + "output_tokens": output_tokens, + "usage_reported": usage_reported, + "reservation_bound_exceeded": exceeded_reservation, + } + ) + self._reserved_input -= reservation.input_tokens + self._reserved_output -= reservation.output_tokens + self.calls += 1 + self.input_tokens += input_tokens + self.output_tokens += output_tokens + if usage_reported: + self.usage_reported_calls += 1 + return { + "input_tokens": input_tokens, + "output_tokens": output_tokens, + "usage_reported": usage_reported, + "reservation_bound_exceeded": exceeded_reservation, + } + + def settle_response(self, reservation: Reservation, response: Any) -> dict: + try: + usage = response.usage + except Exception: + usage = None + input_tokens = self._usage_value(usage, "prompt_tokens") + output_tokens = self._usage_value(usage, "completion_tokens") + if input_tokens is None or output_tokens is None: + return self.settle_failure(reservation) + return self._settle( + reservation, + input_tokens=input_tokens, + output_tokens=output_tokens, + usage_reported=True, + ) + + def settle_failure(self, reservation: Reservation) -> dict: + return self._settle( + reservation, + input_tokens=reservation.input_tokens, + output_tokens=reservation.output_tokens, + usage_reported=False, + ) + + def exceeded(self) -> bool: + limits = self.authorization + return ( + self.calls > limits.max_http_calls + or self.input_tokens > limits.max_input_tokens + or self.output_tokens > limits.max_output_tokens + or self.usd(self.input_tokens, self.output_tokens) > limits.max_usd + ) + + def snapshot(self) -> dict: + return { + "calls": self.calls, + "input_tokens": self.input_tokens, + "output_tokens": self.output_tokens, + "usage_reported_calls": self.usage_reported_calls, + "estimated_usd": str( + self.usd(self.input_tokens, self.output_tokens).quantize( + Decimal("0.000001") + ) + ), + "active_reservations": len(self._active), + "limits": self.authorization.public_dict(), + } + + +def acquire_paid_run_lock(path: Path) -> int: + path.parent.mkdir(parents=True, exist_ok=True) + flags = os.O_CREAT | os.O_RDWR | getattr(os, "O_CLOEXEC", 0) + flags |= getattr(os, "O_NOFOLLOW", 0) + descriptor = os.open(path, flags, 0o600) + os.fchmod(descriptor, 0o600) + try: + fcntl.flock(descriptor, fcntl.LOCK_EX | fcntl.LOCK_NB) + except BlockingIOError: + os.close(descriptor) + raise A3AuthorizationError("paid_run_lock_contended") from None + return descriptor + + +def release_paid_run_lock(descriptor: int) -> None: + try: + fcntl.flock(descriptor, fcntl.LOCK_UN) + finally: + os.close(descriptor) + + +def _image_token_bound(data_url: str) -> int: + try: + _prefix, encoded = data_url.split(",", 1) + raw = base64.b64decode(encoded, validate=True) + with Image.open(io.BytesIO(raw)) as image: + width, height = image.size + image.verify() + except Exception: + raise A3AuthorizationError("invalid_image_payload") from None + patches = math.ceil(width / 32) * math.ceil(height / 32) + return math.ceil( + Decimal(min(patches, IMAGE_PATCH_BUDGET)) * IMAGE_TOKEN_MULTIPLIER + ) + + +def _without_image_payload(value: Any) -> Any: + if isinstance(value, list): + return [_without_image_payload(item) for item in value] + if isinstance(value, dict): + return {key: _without_image_payload(item) for key, item in value.items()} + if isinstance(value, str) and value.startswith("data:") and ";base64," in value: + prefix, _sep, _payload = value.partition(",") + return f"{prefix}," + return value + + +def request_input_token_bound(model: str, messages: list[dict], kwargs: dict) -> int: + image_tokens = 0 + for message in messages: + content = message.get("content") + if not isinstance(content, list): + continue + for item in content: + if not isinstance(item, dict) or item.get("type") != "image_url": + continue + image = item.get("image_url") + if not isinstance(image, dict) or not isinstance(image.get("url"), str): + raise A3AuthorizationError("invalid_image_message") + image_tokens += _image_token_bound(image["url"]) + request = { + "model": model, + "messages": _without_image_payload(messages), + **kwargs, + } + text_bound = len( + json.dumps( + request, ensure_ascii=False, sort_keys=True, separators=(",", ":") + ).encode("utf-8") + ) + return text_bound + REQUEST_MARGIN_TOKENS + image_tokens + + +class A3BudgetedLLM: + """A one-request-per-aask adapter with explicit A3 authorization caps.""" + + def __init__( + self, + underlying: Any, + *, + budget: A3PaidBudget, + stage: str, + max_completion_tokens: int, + ) -> None: + self.model = str(underlying.model) + self.system_prompt = getattr( + underlying, "system_prompt", "You are a helpful assistant." + ) + self.use_system_prompt = bool( + getattr(underlying, "use_system_prompt", True) + ) + self._budget = budget + self._stage = stage + self._max_completion_tokens = max_completion_tokens + self._authorization = budget.authorization + self._client = underlying.aclient.with_options(max_retries=0) + self._timeout = getattr(underlying.config, "timeout", 600) + self.cost_manager = SimpleNamespace( + total_prompt_tokens=0, + total_completion_tokens=0, + total_cost=0.0, + ) + + def support_image_input(self) -> bool: + return True + + @staticmethod + def _messages( + prompt: str, + images: Optional[Iterable[str]], + *, + system_prompt: str, + use_system_prompt: bool, + image_detail: str, + ) -> list[dict]: + messages = ( + [{"role": "system", "content": system_prompt}] + if use_system_prompt + else [] + ) + if images: + content = [{"type": "text", "text": prompt}] + content.extend( + { + "type": "image_url", + "image_url": { + "url": f"data:image/png;base64,{image}", + "detail": image_detail, + }, + } + for image in images + ) + messages.append({"role": "user", "content": content}) + else: + messages.append({"role": "user", "content": prompt}) + return messages + + async def aask( + self, + prompt: str, + system_msgs: Optional[list[str]] = None, + format_msgs: Optional[list[dict]] = None, + images: Optional[Iterable[str]] = None, + **_kwargs: Any, + ) -> str: + if system_msgs or format_msgs or not isinstance(prompt, str): + raise A3AuthorizationError("unsupported_a3_message_shape") + auth = self._authorization + messages = self._messages( + prompt, + images, + system_prompt=self.system_prompt, + use_system_prompt=self.use_system_prompt, + image_detail=auth.image_detail, + ) + kwargs = { + "max_completion_tokens": self._max_completion_tokens, + "reasoning_effort": auth.reasoning_effort, + "service_tier": auth.service_tier, + "timeout": self._timeout, + } + input_bound = request_input_token_bound(self.model, messages, kwargs) + reservation = self._budget.reserve( + input_bound, self._max_completion_tokens + ) + if reservation is None: + raise A3AuthorizationCapReached("authorization_cap_reached") + try: + response = await self._client.chat.completions.create( + model=self.model, + messages=messages, + **kwargs, + ) + except asyncio.CancelledError: + self._budget.settle_failure(reservation) + raise + except Exception as error: + self._budget.settle_failure(reservation) + safe = { + "APIConnectionError": "provider_connection_error", + "APITimeoutError": "provider_timeout", + "AuthenticationError": "provider_authentication_error", + "BadRequestError": "provider_bad_request", + "RateLimitError": "provider_rate_limit", + }.get(type(error).__name__, "provider_error") + raise A3ProviderCallError(safe) from None + settlement = self._budget.settle_response(reservation, response) + if not settlement["usage_reported"]: + raise A3ProviderCallError("provider_usage_missing") + if settlement["reservation_bound_exceeded"] or self._budget.exceeded(): + raise A3AuthorizationCapReached("authorization_cap_exceeded") + self.cost_manager.total_prompt_tokens += settlement["input_tokens"] + self.cost_manager.total_completion_tokens += settlement["output_tokens"] + self.cost_manager.total_cost += float( + A3PaidBudget.usd( + settlement["input_tokens"], settlement["output_tokens"] + ) + ) + try: + content = response.choices[0].message.content + except Exception: + content = None + if not isinstance(content, str): + raise A3ProviderCallError("provider_content_missing") + return content + + async def aclose(self) -> None: + result = self._client.close() + if hasattr(result, "__await__"): + await result diff --git a/metagpt/ext/agentlayout/a3_pipeline.py b/metagpt/ext/agentlayout/a3_pipeline.py new file mode 100644 index 000000000..8f7ad0adb --- /dev/null +++ b/metagpt/ext/agentlayout/a3_pipeline.py @@ -0,0 +1,339 @@ +"""Canonical A3 L0 orchestrator: best-of-3 selection, then unconditional stop. + +This is the only sanctioned A3 execution boundary; A3 runs must never fall +back to the legacy multi-round ``pipeline.LayoutPipeline``. The L0 flow is: + + Analyst (once, frozen) + -> Asset Planner (once, frozen; only for the T2 arm) + -> Composition Director (exactly 3 concepts) + -> Coordinate Mapper (one candidate per concept) + -> deterministic QC (recorded per candidate, never silently dropped) + -> Judge-Select picks B0 + -> stop unconditionally. + +Judge-Critic is intentionally not wired here: L0 ends at selection. The one +gated revision that consumes critic output lives in +``a3_pipeline_l1.A3L1GatedPipeline``, which reuses this module's R0 phase. + +Stages are injected as callables so the orchestration contract can be +verified offline with fake Actions and zero API calls. +""" +from __future__ import annotations + +from pathlib import Path +from typing import Any, Awaitable, Callable, ClassVar, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field + +from metagpt.ext.agentlayout.a3_config import A3RunConfig +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + TreeCondition, + make_tree_condition, +) +from metagpt.ext.agentlayout.run_manifest import ( + ErrorRecord, + sha256_file, + write_json_once, +) +from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput +from metagpt.ext.agentlayout.tools.judge_select import ( + JUDGE_SELECT_CANDIDATE_COUNT, + JudgeSelectCandidate, + JudgeSelectResult, + validate_selection, +) + + +A3_L0_PIPELINE_VERSION = "a3.l0-pipeline.v1" +A3_R0_BUNDLE_SCHEMA_VERSION = "a3.r0-bundle.v1" +A3_L0_CANDIDATE_POLICY_VERSION = "a3.l0-candidate-policy.v1" +R0_SLOT_IDS = ("r0_candidate_01", "r0_candidate_02", "r0_candidate_03") +DEGRADATION_ALL_QC_FAILED = "all_qc_failed" + +TreeArm = Literal["T0", "T1", "T2", "T3"] + + +class QCVerdict(BaseModel): + """Deterministic QC outcome for one candidate.""" + + model_config = ConfigDict(extra="forbid") + + passed: bool + violations: List[str] = Field(default_factory=list) + completeness: Optional[float] = Field(default=None, ge=0.0) + + +class R0SlotRecord(BaseModel): + """Provenance for one of the exactly three R0 candidate slots.""" + + model_config = ConfigDict(extra="forbid") + + slot_id: str + status: Literal["completed", "failed"] + concept_summary: Optional[str] = None + candidate: Optional[Dict[str, Any]] = None + render_ref: Optional[str] = None + render_sha256: Optional[str] = None + qc_passed: Optional[bool] = None + qc_violations: List[str] = Field(default_factory=list) + qc_completeness: Optional[float] = None + error: Optional[str] = None + + +class R0Bundle(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.r0-bundle.v1"] = A3_R0_BUNDLE_SCHEMA_VERSION + policy_version: Literal["a3.l0-candidate-policy.v1"] = A3_L0_CANDIDATE_POLICY_VERSION + slots: List[R0SlotRecord] = Field( + ..., + min_length=JUDGE_SELECT_CANDIDATE_COUNT, + max_length=JUDGE_SELECT_CANDIDATE_COUNT, + ) + + +class A3L0Result(BaseModel): + model_config = ConfigDict(extra="forbid") + + pipeline_version: Literal["a3.l0-pipeline.v1"] = A3_L0_PIPELINE_VERSION + loop: Literal["L0"] = "L0" + tree_arm: TreeArm + degradations: List[str] = Field(default_factory=list) + bundle: R0Bundle + judge_select: JudgeSelectResult + b0_slot_id: str + stop_reason: Literal["l0_unconditional_stop"] = "l0_unconditional_stop" + + +class A3L0PipelineError(RuntimeError): + """Fail-closed pipeline failure carrying its versioned error record.""" + + def __init__(self, record: ErrorRecord): + super().__init__(f"{record.error_type}: {record.message}") + self.record = record + + +class R0PhaseOutcome(BaseModel): + """Everything the shared R0 phase produces up to and including B0 selection.""" + + model_config = ConfigDict(extra="forbid") + + analyst_output: A3AnalystOutput + condition: TreeCondition + bundle: R0Bundle + degradations: List[str] + selection: JudgeSelectResult + + +class A3L0Pipeline: + """L0 orchestrator; every stage runs at most once per sample.""" + + LOOP: ClassVar[str] = "L0" + + def __init__( + self, + *, + config: A3RunConfig, + analyst: Callable[[str], Awaitable[A3AnalystOutput]], + planner: Callable[[A3AnalystOutput], Awaitable[A3LayoutTree]], + director: Callable[[A3AnalystOutput, TreeCondition], Awaitable[List[Any]]], + mapper: Callable[[Any, TreeCondition], Awaitable[Dict[str, Any]]], + renderer: Callable[[Dict[str, Any], str], Awaitable[str]], + qc: Callable[[Dict[str, Any]], QCVerdict], + judge_select: Callable[[List[JudgeSelectCandidate]], Awaitable[JudgeSelectResult]], + artifacts_dir: Optional[Path] = None, + ): + if config.loop != self.LOOP: + raise ValueError( + f"{type(self).__name__} implements loop={self.LOOP!r}, got " + f"{config.loop!r}; use the A3 pipeline class matching the " + "configured loop" + ) + self.config = config + self.analyst = analyst + self.planner = planner + self.director = director + self.mapper = mapper + self.renderer = renderer + self.qc = qc + self.judge_select = judge_select + self.artifacts_dir = artifacts_dir + self._error_count = 0 + if artifacts_dir is not None: + artifacts_dir.mkdir(parents=True, exist_ok=False) + (artifacts_dir / "errors").mkdir() + + def _save(self, filename: str, payload: Any) -> None: + if self.artifacts_dir is not None: + write_json_once(self.artifacts_dir / filename, payload) + + def _record_error( + self, *, stage: str, error_type: str, message: str, details: Dict[str, Any] + ) -> ErrorRecord: + record = ErrorRecord( + stage=stage, + error_type=error_type, + message=message, + details={"policy_version": A3_L0_CANDIDATE_POLICY_VERSION, **details}, + ) + if self.artifacts_dir is not None: + path = self.artifacts_dir / "errors" / f"error_{self._error_count:04d}.json" + self._error_count += 1 + write_json_once(path, record.model_dump(mode="json")) + return record + + def _fail( + self, *, stage: str, error_type: str, message: str, details: Dict[str, Any] + ) -> A3L0PipelineError: + return A3L0PipelineError( + self._record_error( + stage=stage, error_type=error_type, message=message, details=details + ) + ) + + async def _resolve_tree_condition( + self, + analyst_output: A3AnalystOutput, + tree_arm: TreeArm, + oracle_tree: Optional[A3LayoutTree], + ) -> TreeCondition: + """T2 plans once and freezes; T0/T1/T3 never invoke the Planner.""" + if tree_arm == "T2": + tree = await self.planner(analyst_output) + return make_tree_condition("T2", analyst_output, tree=tree) + if tree_arm == "T3": + if oracle_tree is None: + raise ValueError("T3 requires an externally provided human oracle tree") + return make_tree_condition("T3", analyst_output, tree=oracle_tree) + if oracle_tree is not None: + raise ValueError(f"{tree_arm} must not receive a tree") + return make_tree_condition(tree_arm, analyst_output) + + async def _run_r0_phase( + self, + *, + user_brief: str, + tree_arm: TreeArm = "T2", + oracle_tree: Optional[A3LayoutTree] = None, + ) -> R0PhaseOutcome: + analyst_output = await self.analyst(user_brief) + self._save("analyst_output.json", analyst_output.model_dump(mode="json")) + + condition = await self._resolve_tree_condition(analyst_output, tree_arm, oracle_tree) + self._save("tree_condition.json", condition.model_dump(mode="json")) + + concepts = await self.director(analyst_output, condition) + if len(concepts) != len(R0_SLOT_IDS): + raise self._fail( + stage="composition_director", + error_type="ConceptCountMismatch", + message=( + f"Director must return exactly {len(R0_SLOT_IDS)} concepts, " + f"got {len(concepts)}" + ), + details={"expected": len(R0_SLOT_IDS), "actual": len(concepts)}, + ) + + slots: List[R0SlotRecord] = [] + for slot_id, concept in zip(R0_SLOT_IDS, concepts): + summary = str(concept)[:500] + try: + candidate = await self.mapper(concept, condition) + render_ref = await self.renderer(candidate, slot_id) + slots.append( + R0SlotRecord( + slot_id=slot_id, + status="completed", + concept_summary=summary, + candidate=candidate, + render_ref=render_ref, + render_sha256=sha256_file(Path(render_ref)), + ) + ) + except Exception as error: # noqa: BLE001 -- per-slot failure is provenance + slots.append( + R0SlotRecord( + slot_id=slot_id, + status="failed", + concept_summary=summary, + error=f"{type(error).__name__}: {error}", + ) + ) + + completed = [slot for slot in slots if slot.status == "completed"] + if len(completed) != len(R0_SLOT_IDS): + self._save( + "r0_bundle.json", R0Bundle(slots=slots).model_dump(mode="json") + ) + raise self._fail( + stage="r0_candidates", + error_type="CandidateShortfall", + message=( + f"only {len(completed)}/{len(R0_SLOT_IDS)} R0 candidates completed; " + "Judge-Select requires exactly three complete renders" + ), + details={ + "failed_slots": [ + {"slot_id": slot.slot_id, "error": slot.error} + for slot in slots + if slot.status == "failed" + ] + }, + ) + + for slot in slots: + verdict = self.qc(slot.candidate) + slot.qc_passed = verdict.passed + slot.qc_violations = list(verdict.violations) + slot.qc_completeness = verdict.completeness + + degradations: List[str] = [] + if not any(slot.qc_passed for slot in slots): + # Candidates keep their explicit QC-failed marks all the way into + # the result; nothing is promoted to an unmarked official candidate. + degradations.append(DEGRADATION_ALL_QC_FAILED) + + bundle = R0Bundle(slots=slots) + self._save("r0_bundle.json", bundle.model_dump(mode="json")) + + judge_candidates = [ + JudgeSelectCandidate( + candidate_id=slot.slot_id, + render_ref=slot.render_ref, + qc_passed=slot.qc_passed, + qc_violations=slot.qc_violations, + ) + for slot in slots + ] + selection = await self.judge_select(judge_candidates) + validate_selection(selection, [slot.slot_id for slot in slots]) + self._save("judge_select_result.json", selection.model_dump(mode="json")) + + return R0PhaseOutcome( + analyst_output=analyst_output, + condition=condition, + bundle=bundle, + degradations=degradations, + selection=selection, + ) + + async def run( + self, + *, + user_brief: str, + tree_arm: TreeArm = "T2", + oracle_tree: Optional[A3LayoutTree] = None, + ) -> A3L0Result: + outcome = await self._run_r0_phase( + user_brief=user_brief, tree_arm=tree_arm, oracle_tree=oracle_tree + ) + result = A3L0Result( + tree_arm=tree_arm, + degradations=outcome.degradations, + bundle=outcome.bundle, + judge_select=outcome.selection, + b0_slot_id=outcome.selection.selected_candidate_id, + ) + self._save("l0_result.json", result.model_dump(mode="json")) + return result diff --git a/metagpt/ext/agentlayout/a3_pipeline_l1.py b/metagpt/ext/agentlayout/a3_pipeline_l1.py new file mode 100644 index 000000000..574d77e9d --- /dev/null +++ b/metagpt/ext/agentlayout/a3_pipeline_l1.py @@ -0,0 +1,231 @@ +"""A3 L1-Gated orchestrator: one gated, verified revision on top of L0. + +Extends the canonical L0 flow (new_plam.md section 4.3): + + + -> Judge-Critic inspects B0 only + -> repair gate + no actionable issue -> output B0 + actionable issue -> ONE routed targeted revision -> B1 + -> deterministic verifier per gated issue + -> B0/B1 guard (issues improved, no new hard violation, + completeness kept; optional single pairwise internal selection) + -> keep B0 or B1 + -> stop unconditionally. + +A failed revision never fails the sample: B0 already exists, so the guard +falls back to it and the failure is recorded. There is exactly one critic +call and at most one revision per sample by construction; no second round +exists in this module. +""" +from __future__ import annotations + +from pathlib import Path +from typing import Any, Awaitable, Callable, ClassVar, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field + +from metagpt.ext.agentlayout.a3_pipeline import ( + A3L0Pipeline, + R0Bundle, + R0PhaseOutcome, + R0SlotRecord, + TreeArm, +) +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree, TreeCondition +from metagpt.ext.agentlayout.run_manifest import sha256_file +from metagpt.ext.agentlayout.tools.judge_critic import ( + JudgeCriticResult, + validate_critic_targets, +) +from metagpt.ext.agentlayout.tools.judge_select import JudgeSelectResult +from metagpt.ext.agentlayout.tools.repair_gate import ( + B0B1GuardResult, + IssueVerification, + RepairDecision, + check_b1_against_b0, + evaluate_repair_gate, + resolve_winner, +) + + +A3_L1_PIPELINE_VERSION = "a3.l1-pipeline.v1" +B1_SLOT_ID = "b1_candidate" + + +class A3L1Result(BaseModel): + model_config = ConfigDict(extra="forbid") + + pipeline_version: Literal["a3.l1-pipeline.v1"] = A3_L1_PIPELINE_VERSION + loop: Literal["L1-Gated"] = "L1-Gated" + tree_arm: TreeArm + degradations: List[str] = Field(default_factory=list) + bundle: R0Bundle + judge_select: JudgeSelectResult + b0_slot_id: str + critic: JudgeCriticResult + repair_decision: RepairDecision + repair_attempted: bool + b1: Optional[R0SlotRecord] = None + verifications: Optional[List[IssueVerification]] = None + guard: Optional[B0B1GuardResult] = None + final_slot_id: str + stop_reason: Literal["l1_unconditional_stop"] = "l1_unconditional_stop" + + +class A3L1GatedPipeline(A3L0Pipeline): + """L0 plus at most one verified revision; then an unconditional stop.""" + + LOOP: ClassVar[str] = "L1-Gated" + + def __init__( + self, + *, + judge_critic: Callable[[R0SlotRecord, List[str]], Awaitable[JudgeCriticResult]], + repair: Callable[[R0SlotRecord, RepairDecision, TreeCondition], Awaitable[Dict[str, Any]]], + verifier: Callable[[RepairDecision, R0SlotRecord, R0SlotRecord], List[IssueVerification]], + pairwise_select: Optional[ + Callable[[R0SlotRecord, R0SlotRecord], Awaitable[Literal["B0", "B1"]]] + ] = None, + **kwargs, + ): + super().__init__(**kwargs) + self.judge_critic = judge_critic + self.repair = repair + self.verifier = verifier + self.pairwise_select = pairwise_select + + async def _revise_once( + self, + b0: R0SlotRecord, + decision: RepairDecision, + condition: TreeCondition, + ) -> R0SlotRecord: + candidate = await self.repair(b0, decision, condition) + render_ref = await self.renderer(candidate, B1_SLOT_ID) + verdict = self.qc(candidate) + return R0SlotRecord( + slot_id=B1_SLOT_ID, + status="completed", + concept_summary=b0.concept_summary, + candidate=candidate, + render_ref=render_ref, + render_sha256=sha256_file(Path(render_ref)), + qc_passed=verdict.passed, + qc_violations=list(verdict.violations), + qc_completeness=verdict.completeness, + ) + + async def run( + self, + *, + user_brief: str, + tree_arm: TreeArm = "T2", + oracle_tree: Optional[A3LayoutTree] = None, + ) -> A3L1Result: + outcome = await self._run_r0_phase( + user_brief=user_brief, tree_arm=tree_arm, oracle_tree=oracle_tree + ) + return await self.run_from_r0(outcome=outcome, tree_arm=tree_arm) + + async def run_from_r0( + self, + *, + outcome: "R0PhaseOutcome", + tree_arm: TreeArm = "T2", + ) -> A3L1Result: + """Execute only the gated single-revision tail on a finished R0 phase. + + This is the Gate C contract (new_plam.md section 8): the L1 arm must + reuse the L0 arm's exact R0 candidates and B0 selection, so the two + arms differ by the revision stage alone. ``outcome`` may come from a + live ``_run_r0_phase`` call or be rehydrated from a persisted L0 run. + """ + b0 = next( + slot + for slot in outcome.bundle.slots + if slot.slot_id == outcome.selection.selected_candidate_id + ) + known_asset_ids = [asset.asset_id for asset in outcome.analyst_output.assets] + + critic = await self.judge_critic(b0, known_asset_ids) + validate_critic_targets(critic, known_asset_ids) + self._save("judge_critic_result.json", critic.model_dump(mode="json")) + + decision = evaluate_repair_gate(critic, known_asset_ids) + self._save("repair_decision.json", decision.model_dump(mode="json")) + + b1: Optional[R0SlotRecord] = None + verifications: Optional[List[IssueVerification]] = None + guard: Optional[B0B1GuardResult] = None + repair_attempted = decision.outcome == "one_targeted_repair" + + if repair_attempted: + try: + b1 = await self._revise_once(b0, decision, outcome.condition) + except Exception as error: # noqa: BLE001 -- B0 already exists; fall back + record = self._record_error( + stage="l1_targeted_revision", + error_type="RepairExecutionFailed", + message=f"{type(error).__name__}: {error}", + details={"b0_slot_id": b0.slot_id, "route": decision.route}, + ) + b1 = R0SlotRecord( + slot_id=B1_SLOT_ID, + status="failed", + concept_summary=b0.concept_summary, + error=record.message, + ) + guard = B0B1GuardResult( + deterministic_passed=False, + reasons=[f"repair_execution_failed: {record.message}"], + winner="B0", + ) + if guard is None: + verifications = self.verifier(decision, b0, b1) + self._save( + "issue_verifications.json", + [verification.model_dump(mode="json") for verification in verifications], + ) + check = check_b1_against_b0( + verifications=verifications, + issue_count=len(decision.issues), + b0_violations=b0.qc_violations, + b1_violations=b1.qc_violations, + b0_completeness=b0.qc_completeness, + b1_completeness=b1.qc_completeness, + ) + pairwise_winner: Optional[Literal["B0", "B1"]] = None + pairwise_used = False + if check.passed and self.pairwise_select is not None: + pairwise_winner = await self.pairwise_select(b0, b1) + pairwise_used = True + guard = B0B1GuardResult( + deterministic_passed=check.passed, + reasons=list(check.reasons) + + (["pairwise_internal_selection"] if pairwise_used else []), + pairwise_used=pairwise_used, + winner=resolve_winner(check, pairwise_winner), + ) + self._save("b1_candidate.json", b1.model_dump(mode="json")) + self._save("b0b1_guard.json", guard.model_dump(mode="json")) + + final_slot_id = ( + B1_SLOT_ID if guard is not None and guard.winner == "B1" else b0.slot_id + ) + result = A3L1Result( + tree_arm=tree_arm, + degradations=outcome.degradations, + bundle=outcome.bundle, + judge_select=outcome.selection, + b0_slot_id=b0.slot_id, + critic=critic, + repair_decision=decision, + repair_attempted=repair_attempted, + b1=b1, + verifications=verifications, + guard=guard, + final_slot_id=final_slot_id, + ) + self._save("l1_result.json", result.model_dump(mode="json")) + return result diff --git a/metagpt/ext/agentlayout/a3_stage_binding.py b/metagpt/ext/agentlayout/a3_stage_binding.py new file mode 100644 index 000000000..f0de64f59 --- /dev/null +++ b/metagpt/ext/agentlayout/a3_stage_binding.py @@ -0,0 +1,288 @@ +"""Bind real A3 Actions, renderer and QC to the pipeline stage callables. + +One binding instance serves one sample. It owns the per-sample state the +pipeline contract keeps implicit — the frozen Analyst output, the derived +rendering DesignSpec, the R0 concept order — and it records one call record +per stage invocation (wall time plus, when the LLM exposes a usage/cost +manager, the token deltas), so a run can persist an honest per-sample cost +trail even when the provider reports nothing. + +Import-light on purpose: the LLM-backed Action instances arrive duck-typed +(anything with the matching ``async run``), so offline tests can wire fakes +without pulling the ``metagpt.actions`` dependency chain. +""" +from __future__ import annotations + +import time +from pathlib import Path +from typing import Any, Dict, List, Optional + +from PIL import Image +from pydantic import BaseModel, ConfigDict, Field + +from metagpt.ext.agentlayout.a3_pipeline import QCVerdict, R0_SLOT_IDS, R0SlotRecord +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree, TreeCondition +from metagpt.ext.agentlayout.run_manifest import write_json_once +from metagpt.ext.agentlayout.schema import Candidate, CompositionConcept, DesignSpec +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + analyst_output_to_design_spec, + image_to_base64, +) +from metagpt.ext.agentlayout.tools.issue_verifier import verify_issues +from metagpt.ext.agentlayout.tools.judge_critic import JudgeCriticResult +from metagpt.ext.agentlayout.tools.judge_select import ( + JudgeSelectCandidate, + JudgeSelectResult, +) +from metagpt.ext.agentlayout.tools.quality_checker import check_candidate +from metagpt.ext.agentlayout.tools.renderer import render_to_file +from metagpt.ext.agentlayout.tools.repair_gate import IssueVerification, RepairDecision +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + +A3_STAGE_CALL_RECORD_VERSION = "a3.stage-call-record.v1" + + +class StageCallRecord(BaseModel): + """Wall time and (when available) token usage for one stage call.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: str = A3_STAGE_CALL_RECORD_VERSION + stage: str + seconds: float = Field(..., ge=0.0) + usage: Optional[Dict[str, Any]] = None + + +def _usage_snapshot(action: Any) -> Optional[Dict[str, Any]]: + """Best-effort token totals from a MetaGPT cost manager; None if absent.""" + manager = getattr(getattr(action, "llm", None), "cost_manager", None) + if manager is None: + return None + snapshot = { + key: getattr(manager, key) + for key in ("total_prompt_tokens", "total_completion_tokens", "total_cost") + if hasattr(manager, key) + } + return snapshot or None + + +def _usage_delta( + before: Optional[Dict[str, Any]], after: Optional[Dict[str, Any]] +) -> Optional[Dict[str, Any]]: + if before is None or after is None: + return None + return {key: after[key] - before.get(key, 0) for key in after} + + +class A3StageBinding: + """Per-sample factory for the A3L0Pipeline / A3L1GatedPipeline callables.""" + + def __init__( + self, + *, + r3_manifest: R3AssetManifest, + background_overview_path: Path, + renders_dir: Path, + stages_dir: Path, + analyst_action: Any, + planner_action: Any, + director_action: Any, + mapper_action: Any, + judge_select_action: Any, + judge_critic_action: Optional[Any] = None, + ): + self.r3_manifest = r3_manifest + self.background_overview_path = Path(background_overview_path) + self.renders_dir = Path(renders_dir) + self.stages_dir = Path(stages_dir) + self.analyst_action = analyst_action + self.planner_action = planner_action + self.director_action = director_action + self.mapper_action = mapper_action + self.judge_select_action = judge_select_action + self.judge_critic_action = judge_critic_action + self.call_records: List[StageCallRecord] = [] + self._analyst_output: Optional[A3AnalystOutput] = None + self._design_spec: Optional[DesignSpec] = None + self._concepts: List[CompositionConcept] = [] + self._mapper_calls = 0 + self._background_b64: Optional[str] = None + + def _record(self, stage: str, started: float, action: Any, usage_before) -> None: + self.call_records.append( + StageCallRecord( + stage=stage, + seconds=time.monotonic() - started, + usage=_usage_delta(usage_before, _usage_snapshot(action)), + ) + ) + + def _background_image_b64(self) -> str: + if self._background_b64 is None: + with Image.open(self.background_overview_path) as image: + self._background_b64 = image_to_base64(image) + return self._background_b64 + + def _spec(self) -> DesignSpec: + if self._design_spec is None: + raise RuntimeError("Analyst has not run yet; DesignSpec is unavailable") + return self._design_spec + + def hydrate_from_r0( + self, + *, + analyst_output: A3AnalystOutput, + concepts: List[CompositionConcept], + ) -> None: + """Restore the per-sample state a persisted L0 run already produced. + + Gate C's L1 arm reuses the L0 arm's frozen Analyst output and R0 + concepts instead of re-running those stages; only the revision tail + makes new model calls. + """ + self._analyst_output = analyst_output + self._design_spec = analyst_output_to_design_spec(analyst_output, self.r3_manifest) + self._concepts = list(concepts) + + # ---- pipeline callables ------------------------------------------------- + + async def analyst(self, user_brief: str) -> A3AnalystOutput: + started, usage = time.monotonic(), _usage_snapshot(self.analyst_action) + output = await self.analyst_action.run( + user_brief=user_brief, + manifest=self.r3_manifest, + artifacts_dir=self.stages_dir / "analyst", + ) + self._record("analyst", started, self.analyst_action, usage) + self._analyst_output = output + self._design_spec = analyst_output_to_design_spec(output, self.r3_manifest) + return output + + async def planner(self, analyst_output: A3AnalystOutput) -> A3LayoutTree: + started, usage = time.monotonic(), _usage_snapshot(self.planner_action) + tree = await self.planner_action.run( + analyst=analyst_output, artifacts_dir=self.stages_dir / "planner" + ) + self._record("asset_planner", started, self.planner_action, usage) + return tree + + async def director( + self, analyst_output: A3AnalystOutput, condition: TreeCondition + ) -> List[CompositionConcept]: + started, usage = time.monotonic(), _usage_snapshot(self.director_action) + concept_set = await self.director_action.run( + analyst=analyst_output, + condition=condition, + canvas=f"{self.r3_manifest.canvas_width}x{self.r3_manifest.canvas_height}", + background_image_b64=self._background_image_b64(), + artifacts_dir=self.stages_dir / "director", + ) + self._record("composition_director", started, self.director_action, usage) + self._concepts = list(concept_set.concepts) + return self._concepts + + async def mapper( + self, concept: CompositionConcept, condition: TreeCondition + ) -> Dict[str, Any]: + self._mapper_calls += 1 + started, usage = time.monotonic(), _usage_snapshot(self.mapper_action) + candidate = await self.mapper_action.run( + concept=concept, + condition=condition, + manifest=self.r3_manifest, + background_image_b64=self._background_image_b64(), + artifacts_dir=self.stages_dir / f"mapper_{self._mapper_calls:02d}", + ) + self._record("coordinate_mapper", started, self.mapper_action, usage) + return candidate.model_dump(mode="json") + + async def renderer(self, candidate: Dict[str, Any], slot_id: str) -> str: + path = render_to_file( + Candidate.model_validate(candidate), self._spec(), self.renders_dir / f"{slot_id}.png" + ) + return str(path) + + def qc(self, candidate: Dict[str, Any]) -> QCVerdict: + parsed = Candidate.model_validate(candidate) + spec = self._spec() + result = check_candidate(parsed, spec) + expected = { + element.id for element in spec.elements if element.semantic_type != "background_image" + } + present = {element.id for element in parsed.elements} & expected + return QCVerdict( + passed=result.passed, + violations=[ + f"{violation.type.value}: {violation.detail}" + for violation in result.violations + ], + completeness=len(present) / len(expected) if expected else 1.0, + ) + + async def judge_select( + self, candidates: List[JudgeSelectCandidate] + ) -> JudgeSelectResult: + started, usage = time.monotonic(), _usage_snapshot(self.judge_select_action) + result = await self.judge_select_action.run( + candidates=candidates, + context={"design_intent": self._analyst_output.design_intent} + if self._analyst_output + else None, + artifacts_dir=self.stages_dir / "judge_select", + ) + self._record("judge_select", started, self.judge_select_action, usage) + return result + + async def judge_critic( + self, b0: R0SlotRecord, known_asset_ids: List[str] + ) -> JudgeCriticResult: + if self.judge_critic_action is None: + raise RuntimeError("judge_critic_action was not provided for an L1 run") + started, usage = time.monotonic(), _usage_snapshot(self.judge_critic_action) + result = await self.judge_critic_action.run( + b0_candidate_id=b0.slot_id, + render_ref=b0.render_ref, + known_asset_ids=known_asset_ids, + artifacts_dir=self.stages_dir / "judge_critic", + ) + self._record("judge_critic", started, self.judge_critic_action, usage) + return result + + async def repair( + self, b0: R0SlotRecord, decision: RepairDecision, condition: TreeCondition + ) -> Dict[str, Any]: + slot_index = R0_SLOT_IDS.index(b0.slot_id) + if slot_index >= len(self._concepts): + raise RuntimeError("B0 concept is unavailable for the revision call") + started, usage = time.monotonic(), _usage_snapshot(self.mapper_action) + candidate = await self.mapper_action.run( + concept=self._concepts[slot_index], + condition=condition, + manifest=self.r3_manifest, + background_image_b64=self._background_image_b64(), + revision_instruction=decision.revision_instruction, + base_elements=(b0.candidate or {}).get("elements", []), + artifacts_dir=self.stages_dir / "repair", + ) + self._record("coordinate_mapper_revision", started, self.mapper_action, usage) + return candidate.model_dump(mode="json") + + def verifier( + self, decision: RepairDecision, b0: R0SlotRecord, b1: R0SlotRecord + ) -> List[IssueVerification]: + return verify_issues( + decision, + Candidate.model_validate(b0.candidate), + Candidate.model_validate(b1.candidate), + canvas_width=self.r3_manifest.canvas_width, + canvas_height=self.r3_manifest.canvas_height, + ) + + # ---- persistence -------------------------------------------------------- + + def write_call_records(self, path: Path) -> None: + write_json_once( + path, [record.model_dump(mode="json") for record in self.call_records] + ) diff --git a/metagpt/ext/agentlayout/actions/analyze_a3.py b/metagpt/ext/agentlayout/actions/analyze_a3.py new file mode 100644 index 000000000..f7e6bff4a --- /dev/null +++ b/metagpt/ext/agentlayout/actions/analyze_a3.py @@ -0,0 +1,80 @@ +"""Vision-required A3 Analyst action.""" +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + build_vision_packet, + image_to_base64, + parse_analyst_output, + save_vision_packet, + validate_asset_coverage, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest +from metagpt.logs import logger + + +A3_ANALYST_MAX_RETRIES = 3 + + +class AnalyzeA3Brief(Action): + """Inspect background + all foregrounds and return stable-ID semantics.""" + + name: str = "AnalyzeA3Brief" + desc: str = "A3 multimodal semantic analysis before tree planning or coordinates." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + user_brief: str, + manifest: R3AssetManifest, + artifacts_dir: Optional[Path] = None, + ) -> A3AnalystOutput: + if not self.llm.support_image_input(): + raise RuntimeError("A3 Analyst requires image input; text-only fallback is forbidden") + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Analyst model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + + packet = build_vision_packet(manifest, user_brief) + if artifacts_dir is not None: + save_vision_packet(packet, artifacts_dir) + images = [image_to_base64(image) for image in packet.images] + prompt = packet.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_ANALYST_MAX_RETRIES + 1): + response = await self.llm.aask(prompt, images=images) + try: + output = self._parse(response) + validate_asset_coverage(output, manifest) + return output + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"AnalyzeA3Brief attempt {attempt}/{A3_ANALYST_MAX_RETRIES} failed: {error}" + ) + prompt = ( + packet.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"AnalyzeA3Brief failed after {A3_ANALYST_MAX_RETRIES} attempts: {last_error}" + ) + + @staticmethod + def _parse(response: str) -> A3AnalystOutput: + return parse_analyst_output(response) diff --git a/metagpt/ext/agentlayout/actions/analyze_a3_text_only.py b/metagpt/ext/agentlayout/actions/analyze_a3_text_only.py new file mode 100644 index 000000000..3d25f7f4f --- /dev/null +++ b/metagpt/ext/agentlayout/actions/analyze_a3_text_only.py @@ -0,0 +1,94 @@ +"""Gate A ablation arm: the A3 Analyst with zero visual access. + +Same output contract, validation, exact-model guard and retry policy as +``AnalyzeA3Brief``; the only difference is that no images are attached and +the prompt says so. Comparing this arm against the vision arm isolates the +causal contribution of Analyst vision (new_plam.md section 8, Gate A). +""" +from __future__ import annotations + +import hashlib +from pathlib import Path +from typing import Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + build_text_only_analyst_prompt, + parse_analyst_output, + validate_asset_coverage, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest +from metagpt.logs import logger + + +A3_TEXT_ONLY_ANALYST_MAX_RETRIES = 3 + + +class AnalyzeA3TextOnly(Action): + """Text/metadata-only Analyst; never attaches images by design.""" + + name: str = "AnalyzeA3TextOnly" + desc: str = "A3 Gate A ablation: Analyst without foreground/background vision." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + user_brief: str, + manifest: R3AssetManifest, + artifacts_dir: Optional[Path] = None, + ) -> A3AnalystOutput: + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 text-only Analyst model mismatch: expected " + f"{self.expected_model!r}, got {actual_model!r}" + ) + prompt = build_text_only_analyst_prompt(manifest, user_brief) + if artifacts_dir is not None: + artifacts_dir.mkdir(parents=True, exist_ok=False) + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "analyst_request.json", + { + "version": "a3.analyst-text-only-request.v1", + "prompt": prompt, + "prompt_sha256": hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + "image_labels": [], + }, + ) + attempt_prompt = prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_TEXT_ONLY_ANALYST_MAX_RETRIES + 1): + response = await self.llm.aask(attempt_prompt) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + output = parse_analyst_output(response) + validate_asset_coverage(output, manifest) + return output + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"AnalyzeA3TextOnly attempt {attempt}/" + f"{A3_TEXT_ONLY_ANALYST_MAX_RETRIES} failed: {error}" + ) + attempt_prompt = ( + prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"AnalyzeA3TextOnly failed after {A3_TEXT_ONLY_ANALYST_MAX_RETRIES} " + f"attempts: {last_error}" + ) diff --git a/metagpt/ext/agentlayout/actions/analyze_brief.py b/metagpt/ext/agentlayout/actions/analyze_brief.py index fab359966..8b3cad096 100644 --- a/metagpt/ext/agentlayout/actions/analyze_brief.py +++ b/metagpt/ext/agentlayout/actions/analyze_brief.py @@ -35,22 +35,26 @@ class AssetInput(BaseModel): """A single raw asset before Analyst processes it. - Exactly one of ``asset_ref`` (image file path) or ``content`` (text string) - must be set. The CLIP preprocessor independently produces an embedding key - for each asset; that key is *not* surfaced to the Analyst — Analyst always - outputs ``embedding_key: null`` per the spec. + At least one of ``asset_ref`` (image file path) or ``content`` (text + string) must be set. Step 80 (2026-07-03) allows BOTH simultaneously for + pre-rendered text assets (``*_text.png``): the image carries the + designer's typography verbatim, while ``content`` carries the text string + so the Director can still reason about semantics. The CLIP preprocessor + independently produces an embedding key for each asset; that key is *not* + surfaced to the Analyst — Analyst always outputs ``embedding_key: null`` + per the spec. """ asset_ref: Optional[str] = None content: Optional[str] = None @model_validator(mode="after") - def _exactly_one_payload(self) -> "AssetInput": + def _at_least_one_payload(self) -> "AssetInput": has_ref = self.asset_ref is not None and self.asset_ref != "" has_content = self.content is not None and self.content != "" - if has_ref == has_content: + if not has_ref and not has_content: raise ValueError( - "AssetInput must set exactly one of 'asset_ref' or 'content'." + "AssetInput must set at least one of 'asset_ref' or 'content'." ) return self @@ -134,7 +138,7 @@ def _exactly_one_payload(self) -> "AssetInput": # Context User brief: {user_brief} -Asset list (each item has asset_ref or content, and embedding_key): {asset_list} +Asset list (each item has asset_ref, content, or BOTH for pre-rendered text): {asset_list} Previous feedback from Aesthetic Judge (if any): {feedback} # Constraint extraction rules @@ -218,6 +222,25 @@ def _exactly_one_payload(self) -> "AssetInput": `z_order` hard_constraint with hint "above_background" on the underlay so the Layout Generator stacks it correctly. +# Pre-rendered text assets (asset filename heuristic, Step 80) +ATTENTION: Any asset whose `asset_ref` ends with the suffix `_text.png` is a +PRE-RENDERED TEXT layer: the designer's typography (font, colour, effects) +already baked into a transparent PNG. Its `content` field carries the text +string it displays. + +Rules for `_text.png` assets: +- The element you emit MUST have: + visual_type: "image" (it is placed as a bitmap, never re-typeset) + asset_ref: + content: + semantic_type: judged from the CONTENT string -- "title" for the main + heading, "subtitle" / "body_text" / "cta" / "caption" as + appropriate (same judgement as for plain text snippets). +- Do NOT additionally emit a plain text element for the same string -- the + bitmap IS the text. +- Do NOT mark these as `decorative_image` / `product_image` -- they carry the + design's message. + # Format example {format_example} diff --git a/metagpt/ext/agentlayout/actions/compose_concept.py b/metagpt/ext/agentlayout/actions/compose_concept.py new file mode 100644 index 000000000..20324b64d --- /dev/null +++ b/metagpt/ext/agentlayout/actions/compose_concept.py @@ -0,0 +1,386 @@ +"""Composition Director -- imagine the layout BEFORE any pixel is placed. + +"先想再畫" refactor (2026-06-25). The old monolithic ``GenerateLayout`` decided +the composition *and* emitted coordinates in one 400-line-prompt call. A 20-sample +demo proved its five "distinct candidates" were the same centred template shifted +on the y-axis (center_x == canvas_width / 2 for every text element). Root cause: +20+ hard constraints crammed into one prompt drove the LLM into survival mode -- +the only layout that never trips a constraint is "centre everything". + +This Action takes over the *thinking* half of that work. It outputs ONLY natural +language: 3 fundamentally different composition concepts, no bbox, no JSON layout. +Each concept is then handed to ``GenerateLayout`` (now the CoordinateMapper) which +turns a single concept into one candidate under a short, low-temperature prompt. + +It deliberately replaces the Step 62 ``ComposeSketch``: that action picked a +template from a GT-calibrated menu and stored a structured ``CompositionDirective`` +that became *yet another* constraint on the Generator prompt. The lesson there was +that menu-picking still routes the creative decision through the constraint-laden +Generator. Here the Director creates freely and the directive IS the concept. +""" + +from __future__ import annotations + +import json +from typing import List, Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + BackgroundAnalysis, + CompositionConcept, + ConceptBatch, + DesignSpec, + SemanticType, +) +from metagpt.logs import logger +from metagpt.utils.common import CodeParser + +MAX_RETRIES: int = 3 +TARGET_CONCEPTS: int = 3 + +# Step 81 (2026-07-03): GT-calibrated text hierarchy. Computed over the 1,746 +# cached Crello designer layouts with >= 2 text elements ("title" = the +# largest-area text). The Step 80 smoke showed the last remaining blind gap is +# text ARRANGEMENT (typography axis judged 0/9 even with pixel-identical +# fonts); these stats ground the Director's hierarchy instincts in data. +TEXT_HIERARCHY_GT = { + "title_cy_p25": 0.349, # dominant text center-y, fraction of canvas height + "title_cy_p50": 0.475, + "title_cy_p75": 0.570, + "title_above_rate": 0.662, # dominant text sits above supporting text + "info_on_underlay_rate": 0.524, # supporting text >= 50% on an underlay +} + +# High temperature is the whole point: we WANT divergent ideas here, unlike the +# coordinate stage which wants deterministic JSON. Kept as a module constant so a +# live experiment can sweep it without touching the call sites. +COMPOSE_TEMPERATURE: float = 0.9 + + +PROMPT_TEMPLATE = """Role: You are the art director of a poster design studio. +You are looking at a blank {canvas_width}x{canvas_height} canvas with a background +image attached (trust the image over any text description). You decide WHERE things +go -- not exact pixels, just the spatial concept a junior designer will execute. + +# Elements to place +{element_list} + +# Style direction +{style_keywords} +{underlay_block} +# Your task +Describe {n} fundamentally DIFFERENT composition concepts. For each, think like a +designer about: where the focal element sits, where the text group sits, how the +eye flows, how whitespace breathes, and the typography mood. + +RULES: +- The {n} concepts MUST be spatially different: different quadrants, different + alignments, different text-photo relationships. Do NOT give {n} variations of + "everything centred". +- TEXT HIERARCHY (from 1,746 designer layouts): the DOMINANT text (the title) + usually anchors the upper-middle band of the canvas and sits ABOVE the + supporting text in 2 of 3 designs -- give it the most prominent spot your + concept allows, and do not bury it below minor info lines. About half of all + supporting/info text rides ON an underlay panel when one exists: prefer + assigning info lines (not necessarily the title) to panels. Order + text_assignments in semantic reading order: title first, then + subtitle / body / CTA following your visual flow. +- At least 1 concept MUST be ASYMMETRIC: the text group's horizontal centre is + clearly off the canvas midline (e.g. right-aligned column, left bleed). +- Think about the FEELING of the layout, not coordinates. Never output numbers. +- It is good to let text ride ON the photo when an underlay or strong contrast + protects readability -- designers do this constantly. +- In text_assignments, assign EVERY text element id to a destination: use + "panel N" when a pre-placed underlay panel (listed above, if any) fits the + concept, otherwise a 3x3 region word like "bottom-left" or "middle-center". + +# Output (JSON only, no commentary, no markdown fences) +A JSON array of exactly {n} objects, each with these keys: +[ + {{ + "name": "2-4 word concept name", + "focal_element": "", + "focal_placement": "where the focal element goes (natural language)", + "text_placement": "where the text group goes (natural language)", + "visual_flow": "how the eye moves across the design", + "whitespace": "whitespace / breathing-room strategy", + "typography_mood": "font and colour direction", + "text_photo_relation": "beside | overlay | above | below | mixed", + "text_assignments": {{"": "panel N | - region"}} + }} +] +""" + + +class ComposeConcept(Action): + """Agent 2.5 -- Composition Director (DesignSpec -> ConceptBatch). + + Output is purely natural-language composition concepts. No coordinates leave + this Action; the CoordinateMapper (GenerateLayout) does the pixel work. + """ + + name: str = "ComposeConcept" + desc: str = ( + "Imagine 3 spatially diverse composition concepts in natural language, " + "before any pixel-level layout. Replaces the Step 62 template-menu sketch." + ) + + async def run( + self, + *, + spec: DesignSpec, + bg: Optional[BackgroundAnalysis] = None, + n: int = TARGET_CONCEPTS, + feedback: Optional["AestheticFeedback"] = None, + prev_concepts: Optional[ConceptBatch] = None, + ) -> ConceptBatch: + """Build the prompt, call the LLM (with the background image if vision is + available), and parse into a ``ConceptBatch``. + + Step 84: ``feedback`` + ``prev_concepts`` close the design-reject loop. + The Step 83 trace showed rejected rounds regenerating near-identical + concepts because the Director re-imagined BLIND -- the judge's concrete + criticisms were discarded on the CompositionDirector routing path. Now + the rejected concept and the judge's reasons enter the prompt and the + Director must revise against them. + + Never raises on a bad LLM response: after ``MAX_RETRIES`` parse failures it + falls back to a single safe concept so the pipeline can still proceed. + """ + prompt = self._build_prompt(spec, n, bg, feedback, prev_concepts) + + images: List[str] = [] + if self.llm.support_image_input(): + # Reuse the Generator's background-render helper verbatim so the two + # stages literally see the same downscaled PNG. (Same import pattern + # the old ComposeSketch used.) + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + + bg_b64 = GenerateLayout._render_bg_image(spec) + if bg_b64 is not None: + images = [bg_b64] + + last_err: Optional[Exception] = None + for attempt in range(1, MAX_RETRIES + 1): + rsp = await self._aask(prompt, images) + try: + batch = self._parse(rsp, spec) + logger.info( + f"ComposeConcept: parsed {len(batch.concepts)} concept(s) " + f"on attempt {attempt}/{MAX_RETRIES}." + ) + return batch + except (ValueError, ValidationError) as err: + last_err = err + logger.warning( + f"ComposeConcept attempt {attempt}/{MAX_RETRIES} failed: {err}" + ) + + logger.warning( + f"ComposeConcept: falling back to a single safe centred concept after " + f"{MAX_RETRIES} failures ({last_err})." + ) + return ConceptBatch(concepts=[self._fallback_concept(spec)]) + + async def _aask(self, prompt: str, images: List[str]) -> str: + """Single LLM call. Tries to pass the high compose temperature; degrades + to a plain call if the provider's ``aask`` does not accept it.""" + try: + if images: + return await self.llm.aask(prompt, images=images, temperature=COMPOSE_TEMPERATURE) + return await self.llm.aask(prompt, temperature=COMPOSE_TEMPERATURE) + except TypeError: + # Some providers' aask() signature has no temperature kwarg. + if images: + return await self.llm.aask(prompt, images=images) + return await self.llm.aask(prompt) + + @staticmethod + def _format_rejection_block( + feedback: Optional["AestheticFeedback"], + prev_concepts: Optional[ConceptBatch], + ) -> str: + """Step 84: show the Director WHAT was rejected and WHY. + + Without this the design-reject path regenerated the same concept every + round (Step 83 trace R0-R3). The instruction asks for a REVISION that + addresses each criticism -- not a random different concept, and not the + same one again. + """ + if feedback is None and prev_concepts is None: + return "" + parts = ["\n# Your previous concept was REJECTED"] + if prev_concepts is not None and prev_concepts.concepts: + prev = prev_concepts.concepts[0] + parts.append( + f"Rejected concept: '{prev.name}' -- focal: {prev.focal_placement}; " + f"text: {prev.text_placement}; assignments: " + f"{json.dumps(prev.text_assignments, ensure_ascii=False)}" + ) + if feedback is not None: + if feedback.common_issues: + parts.append(f"Judge's overall issue: {feedback.common_issues}") + for s in feedback.suggestions[:4]: + parts.append(f"- {s}") + for obs in feedback.visual_observations[:4]: + parts.append(f"- [{obs.kind.value}] {obs.target_id}: {obs.note}") + # Step 88: ledger targets are LOCKED -- the revised concept must + # assign these elements consistently with them, or the mapper's + # override will contradict the concept and waste the round. + locked = [o for o in feedback.visual_observations if o.target_bbox] + if locked: + parts.append( + "LEDGER CONSTRAINTS (locked targets -- your revised concept's " + "text_assignments MUST place these elements consistently):" + ) + for obs in locked[:4]: + parts.append( + f" - {obs.target_id} must end up INSIDE bbox {obs.target_bbox}" + ) + parts.append( + "Produce a REVISED concept that directly addresses EACH criticism " + "above. Keep what was not criticised. Do NOT resubmit the same " + "spatial arrangement under a new name." + ) + return "\n".join(parts) + "\n" + + @staticmethod + def _build_prompt( + spec: DesignSpec, + n: int, + bg: Optional[BackgroundAnalysis] = None, + feedback: Optional["AestheticFeedback"] = None, + prev_concepts: Optional[ConceptBatch] = None, + ) -> str: + element_lines = [] + for el in spec.elements: + if el.semantic_type == SemanticType.BACKGROUND_IMAGE: + # The background is the attached image, not a placeable element. + continue + desc = f"- {el.id} ({el.semantic_type.value}/{el.visual_type.value})" + if el.content: + preview = el.content.strip().replace("\n", " ") + desc += f': "{preview[:60]}" (~{len(el.content)} chars)' + element_lines.append(desc) + element_list = "\n".join(element_lines) if element_lines else "(no foreground elements)" + style = ", ".join(spec.style_keywords) if spec.style_keywords else "(none specified)" + return PROMPT_TEMPLATE.format( + canvas_width=spec.canvas.width, + canvas_height=spec.canvas.height, + element_list=element_list, + style_keywords=style, + underlay_block=ComposeConcept._format_underlay_block(spec, bg), + n=n, + ) + ComposeConcept._format_rejection_block(feedback, prev_concepts) + + @staticmethod + def _region_position_words(bbox: List[int], cw: int, ch: int) -> str: + """Human words for a bbox centre on a 3x3 grid, e.g. 'middle-left'. + + The Director is told to never output numbers, so its input describes + panel positions in the same natural language it thinks in; the exact + bbox goes to the CoordinateMapper instead (Step 76 dual-form design). + """ + cx = (bbox[0] + bbox[2]) / 2.0 / max(1, cw) + cy = (bbox[1] + bbox[3]) / 2.0 / max(1, ch) + col = "left" if cx < 1 / 3 else ("center" if cx < 2 / 3 else "right") + row = "top" if cy < 1 / 3 else ("middle" if cy < 2 / 3 else "bottom") + return f"{row}-{col}" + + @staticmethod + def _format_underlay_block(spec: DesignSpec, bg: Optional[BackgroundAnalysis]) -> str: + """Step 76 feed-forward: describe baked underlay panels in words only. + + Empty string when the SEGA preprocessor did not run, keeping the prompt + byte-identical to the pre-Step-76 shape for non-Crello briefs. Panels + are framed as invitations, not hard rules -- Step 62 showed that + stacking a second binding constraint on the creative stage pushes the + model back into survival mode. + """ + if bg is None or not bg.underlay_regions: + return "" + cw, ch = spec.canvas.width, spec.canvas.height + lines = [] + for i, region in enumerate(bg.underlay_regions, 1): + w_pct = round(100.0 * (region.bbox[2] - region.bbox[0]) / max(1, cw)) + h_pct = round(100.0 * (region.bbox[3] - region.bbox[1]) / max(1, ch)) + pos = ComposeConcept._region_position_words(region.bbox, cw, ch) + if region.panel_type == "frame": + # Step 79: an outlined transparent box -- the backdrop behind + # text is the background showing through, not a plate fill. + desc = ( + f"- panel {i}: a transparent outlined frame at the {pos} of " + f"the canvas (the background shows through it, backdrop " + f"~{region.dominant_color}), spanning about {w_pct}% of its " + f"width and {h_pct}% of its height" + ) + else: + desc = ( + f"- panel {i}: a {region.dominant_color} panel at the {pos} " + f"of the canvas, spanning about {w_pct}% of its width and " + f"{h_pct}% of its height" + ) + lines.append( + f"{desc}; {region.recommended_text_color} text reads well on " + f"it. Reference it as 'panel {i}' in text_assignments." + ) + panels = "\n".join(lines) + return ( + "\n# Pre-placed underlay panels\n" + "The background image ALREADY contains solid panel(s) the original\n" + "designer put there to hold text -- they are part of the attached\n" + "image, not elements you control:\n" + f"{panels}\n" + "Treat these panels as strong invitations: at least one concept\n" + "should anchor its text group ON a panel, in a colour that\n" + "contrasts with the panel fill.\n" + ) + + @staticmethod + def _parse(rsp: str, spec: DesignSpec) -> ConceptBatch: + """Strip optional markdown fences, JSON-parse a list of concept objects, + and validate against ``ConceptBatch``.""" + text = (rsp or "").strip() + if "```" in text: + try: + text = CodeParser.parse_code(text=text, lang="json") or text + except Exception: + pass + data = json.loads(text) + if isinstance(data, dict): + # Tolerate {"concepts": [...]} as well as a bare array. + data = data.get("concepts", data) + if not isinstance(data, list) or not data: + raise ValueError( + f"ComposeConcept expected a non-empty JSON array; got {type(data).__name__}" + ) + # ConceptBatch enforces 1..5; clamp defensively so an over-eager model that + # returns 6 ideas does not hard-fail the whole parse. + return ConceptBatch(concepts=[CompositionConcept(**obj) for obj in data[:5]]) + + @staticmethod + def _fallback_concept(spec: DesignSpec) -> CompositionConcept: + """A guaranteed-valid, deliberately conservative concept (centred symmetry, + text below the focal image). Only used when every LLM attempt fails.""" + focal = next( + (e.id for e in spec.elements if e.semantic_type == SemanticType.PRODUCT_IMAGE), + None, + ) + if focal is None: + focal = next( + (e.id for e in spec.elements if e.semantic_type != SemanticType.BACKGROUND_IMAGE), + spec.elements[0].id if spec.elements else "element_1", + ) + return CompositionConcept( + name="Centred safe", + focal_element=focal, + focal_placement="centred in the upper half of the canvas", + text_placement="centred below the focal element", + visual_flow="top-to-bottom: focal image then text stack", + whitespace="even margins on all sides", + typography_mood="clean, legible, high contrast against the background", + text_photo_relation="below", + ) diff --git a/metagpt/ext/agentlayout/actions/compose_concept_a3.py b/metagpt/ext/agentlayout/actions/compose_concept_a3.py new file mode 100644 index 000000000..842bcfb43 --- /dev/null +++ b/metagpt/ext/agentlayout/actions/compose_concept_a3.py @@ -0,0 +1,94 @@ +"""Vision-required A3 Composition Director action (contract in tools/director_contract).""" +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.layout_tree_v3 import TreeCondition +from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput +from metagpt.ext.agentlayout.tools.director_contract import ( + A3ConceptSet, + build_director_request, + parse_concept_set, + validate_concepts_against_assets, +) +from metagpt.logs import logger + + +A3_DIRECTOR_MAX_RETRIES = 3 + + +class ComposeConceptA3(Action): + """Produce exactly three distinct concepts from frozen Analyst semantics.""" + + name: str = "ComposeConceptA3" + desc: str = "A3 Composition Director: three spatially distinct concepts." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + analyst: A3AnalystOutput, + condition: TreeCondition, + canvas: str, + background_image_b64: str, + artifacts_dir: Optional[Path] = None, + ) -> A3ConceptSet: + if not self.llm.support_image_input(): + raise RuntimeError( + "A3 Director requires image input; text-only fallback is forbidden" + ) + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Director model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + request = build_director_request(analyst, condition, canvas) + if artifacts_dir is not None: + artifacts_dir.mkdir(parents=True, exist_ok=False) + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "director_request.json", request.model_dump(mode="json") + ) + attempt_prompt = request.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_DIRECTOR_MAX_RETRIES + 1): + response = await self.llm.aask(attempt_prompt, images=[background_image_b64]) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + concept_set = parse_concept_set(response) + validate_concepts_against_assets(concept_set, condition) + if artifacts_dir is not None: + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "concept_set.json", + concept_set.model_dump(mode="json"), + ) + return concept_set + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"ComposeConceptA3 attempt {attempt}/{A3_DIRECTOR_MAX_RETRIES} " + f"failed: {error}" + ) + attempt_prompt = ( + request.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"ComposeConceptA3 failed after {A3_DIRECTOR_MAX_RETRIES} attempts: {last_error}" + ) diff --git a/metagpt/ext/agentlayout/actions/generate_layout.py b/metagpt/ext/agentlayout/actions/generate_layout.py index 2d578cceb..cf7265805 100644 --- a/metagpt/ext/agentlayout/actions/generate_layout.py +++ b/metagpt/ext/agentlayout/actions/generate_layout.py @@ -29,9 +29,10 @@ from __future__ import annotations import json +import re from io import BytesIO from pathlib import Path -from typing import Any, Dict, List, Optional, Tuple +from typing import Dict, List, Optional, Tuple import base64 @@ -43,9 +44,11 @@ AestheticFeedback, BackgroundAnalysis, CandidatesBatch, + CompositionConcept, DesignSpec, LayoutTree, SemanticType, + VisualType, ) from metagpt.logs import logger from metagpt.utils.common import CodeParser @@ -67,14 +70,29 @@ PHOTO_AREA_GT = {"p25": 0.063, "p50": 0.213, "p75": 0.445, "p90": 0.619} PHOTO_AREA_TARGET = (0.20, 0.45) +# Step 76c (2026-07-02): GT-calibrated TEXT union-coverage prior. Computed over +# all 1,902 cached Crello designer layouts (text elements only, same +# _union_coverage_ratio math as the Step 57 QC guardrail). The Step 76 A/B +# run showed the old size-timidity resurfacing on the text axis: 96% of +# SEGA-arm rounds fell below QC while designer text-only layouts pass 16/19. +TEXT_AREA_GT = {"p25": 0.103, "p50": 0.152, "p75": 0.213, "p90": 0.289} +# Target is GT p25-p75 shifted slightly up: the bias being corrected is +# downward (candidates cluster small), so aiming at the designer median-to- +# upper range lands them inside the distribution, not at its floor. +TEXT_AREA_TARGET = (0.12, 0.25) + # ============================================================ -# Prompt template (verbatim port of layout_agent/layout_generator.md) +# Prompt template (CoordinateMapper -- "先想再畫" refactor 2026-06-25) # ============================================================ -# Two candidates with deliberately different compositions, so the LLM -# understands "5 distinct compositional approaches" is the goal. +# "先想再畫" refactor (2026-06-25): the CoordinateMapper emits exactly ONE +# candidate per call (one per composition concept). The example is deliberately +# ASYMMETRIC -- product image on the left half, text right-aligned in the right +# third -- so the model does not imitate the old "everything centred" pattern. +# The previous two-candidate example had every headline's left at +# (540 - width/2), i.e. perfectly centred; the LLM copied that bias. FORMAT_EXAMPLE_JSON = """{ "candidates": [ { @@ -86,44 +104,19 @@ "angle": 0, "z_index": 1 }, { - "id": "logo_1", - "left": 900, "top": 40, "width": 120, "height": 120, - "angle": 0, "z_index": 4 + "id": "product_image_1", + "left": 0, "top": 200, "width": 650, "height": 800, + "angle": 0, "z_index": 2 }, { "id": "headline_1", - "left": 100, "top": 800, "width": 880, "height": 600, + "left": 680, "top": 300, "width": 360, "height": 200, "angle": 0, "z_index": 3, - "font_family": "sans-serif", - "font_size": 96, + "font_family": "display", + "font_size": 72, "font_weight": "bold", "color": "#1B3A6B", - "text_align": "center" - } - ] - }, - { - "candidate_id": "cand_02", - "elements": [ - { - "id": "bg_1", - "left": 0, "top": 0, "width": 1080, "height": 1920, - "angle": 0, "z_index": 1 - }, - { - "id": "logo_1", - "left": 900, "top": 40, "width": 120, "height": 120, - "angle": 0, "z_index": 4 - }, - { - "id": "headline_1", - "left": 80, "top": 1200, "width": 920, "height": 480, - "angle": 0, "z_index": 3, - "font_family": "cursive", - "font_size": 84, - "font_weight": "bold", - "color": "#C2547B", - "text_align": "left" + "text_align": "right" } ] } @@ -131,423 +124,66 @@ }""" -# DELIBERATE PROMPT/QC ASYMMETRY (Step 67 audit, 2026-06-14): -# The "size reference" block below quotes 'prominent >=20%' and -# 'medium >=15%' as STRETCH TARGETS. The downstream QC acceptance floor -# (tools/quality_checker.py SIZE_HINT_LOWER_BOUND) is LOWER -- 0.10 and -# 0.08 respectively. Combined with the prompt's "aim for value .. value*1.2; -# do NOT exceed by huge margins" rule, this 1.5-2x gap counters the LLM -# size-timidity surfaced in Step 58/60 ([[project_step58_coverage_qc_live]], -# [[project_step60_photo_size_prior]]): anchoring the prompt to the QC -# floor would land actual outputs *below* the floor and crater acceptance. -# All Step 22..66 calibration was done against this gap; do NOT align the -# two numbers without re-running headline experiments. -PROMPT_TEMPLATE = """Role: You are a professional graphic layout designer. -Your goal is to arrange the given design elements on a canvas -by assigning precise pixel coordinates to each element. - -# Context -Design Spec: {design_spec} -Safe zones: {safe_zones} -Saliency landscape (F2, Step 72): {saliency_landscape} -Dominant palette: {dominant_palette} -Recommended text color (default, override if needed): {recommended_text_color} -Feedback from previous round (if any): {feedback} - -# Designer exemplars (Step 67, 2026-06-13; "None" when retrieval is off) -# Real human-designer layouts for structurally similar briefs, normalised to -# [0,1]. Study their composition language -- where they place text relative to -# photos, how large photos are, asymmetry -- and produce candidates in that -# language. Do NOT copy coordinates; they are a different brief. -{exemplars} - -# Aesthetic objective (Step 33, 2026-06-09) -Every candidate you emit will be judged on these four axes (each 1-10, total -of 4 axes is the headline score). Treat them as design objectives, not as -post-hoc criteria. Push for 8+ on every axis when laying out elements. - -A. Design and Layout - Clean, balanced, consistent layout with a clear hierarchy. The Layout - Tree's depth order tells you which element is most important; mirror that - in visual weight (size, position, prominence). Avoid clutter, dead-space - bands, or arbitrary placement. Maximize readability and visual flow. - -B. Content Relevance and Effectiveness - The layout must SERVE the brief and the design_spec. Every hard_constraint - must be respected. Elements should be positioned so they communicate the - brief's intent (e.g. headline dominates, CTA is prominent, supporting - details are visually subordinate). A layout that ignores the brief is a - guaranteed low score on this axis. - -C. Typography and Color Scheme - Font sizes must form a clear typographic hierarchy (title >> subtitle >> - body). Colors must harmonize with `dominant_palette`; default text color - to `recommended_text_color` unless a hard_constraint says otherwise. - Avoid clashing colors, illegible size/contrast pairings, or two text - elements competing at the same visual weight. - -D. Innovation and Originality - The 5 candidates MUST take distinctly different compositional approaches - (different focal anchors, different alignments, different white-space - strategies). Do not output 5 minor variations of the same composition. - Avoid trend-following generic placement (everything centered, or - everything top-aligned) unless the brief explicitly demands it. - -# Previous Attempt (only act on this block when it is NOT "None") -{previous_attempt} - -When this block is non-empty you are in REFINEMENT MODE, not cold-start mode. -Behaviour required in refinement mode: - - Anchor every candidate to the previous best layout. Each element's - (left, top, width, height) must stay within +/-10% of its previous value - unless a structured_suggestion in `feedback` explicitly demands a larger - change for that element id. - - Reuse element ids verbatim from `prev_best_layout` (which equals the spec - element ids). Do NOT rename or invent ids. - - The 5 candidates may still explore distinct refinement directions - (different elements emphasised, different drift orientations), but ALL - candidates must remain in the neighbourhood of prev_best_layout. Do not - treat refinement mode as an excuse to relocate elements to entirely new - regions. - - Use prev_best_subscores to prioritise which dimension to push: - the lowest-scoring sub-dimension is the one your edits should improve. - -# How to read `feedback` (only when it is not "None") -The feedback object has two parts: - - `suggestions`: free-text human notes; use them for *context* only. - - `structured_suggestions`: a JSON list of typed constraints. PREFER these - over the free text. Each entry has the shape - {{"kind": ..., "target_id": ..., "metric": ..., "op": ..., "value": ...}} - -Translate each structured suggestion into a concrete adjustment as follows: - - | kind | what to change | - | -------------- | -------------------------------------------------------------------- | - | place_in_bbox | OVERRIDE the element's (left,top,width,height) to | - | | (target_bbox[0], target_bbox[1], | - | | target_bbox[2]-target_bbox[0], target_bbox[3]-target_bbox[1]). | - | | This kind BYPASSES the +/-10% refinement drift cap for target_id | - | | because the Judge looked at the rendered image and decided the | - | | exact region this element should occupy. | - | resize | the element's `width` and/or `height` | - | move | the element's `left` / `top` (or `right` / `bottom` derived) | - | spacing | the gap between `target_id` and the element named in `metric` | - | | (metric format: 'gap_to:OTHER_ID') | - | typography | One of FOUR text-style metrics on the target element: | - | | metric=font_size -> set `font_size` (int pixels, e.g. 96) | - | | metric=font_weight -> set `font_weight` (int 100-900 or named | - | | string like "bold" / "regular") | - | | metric=font_family -> set `font_family` (string e.g. "serif", | - | | "Inter", "Playfair Display") | - | | metric=text_align -> set `text_align` (one of "left" / | - | | "center" / "right" / "justify") | - | | Apply each typography suggestion verbatim; do NOT skip. These are | - | | how the Judge closes the visual gap to the reference once layout | - | | positions are correct. Apply to AT LEAST 4 of 5 candidates. | - | color | the element's `color` (use the exact hex string in `value`) | - | zorder | the element's `z_index` (integer) | - | other | apply the operator/value to the named `metric` field | - -Operators: - ">=" -> the field MUST be at least `value`. Aim for value to value*1.2; - do NOT exceed by huge margins, that creates overlap and fails QC. - "<=" -> the field MUST be at most `value`. Aim for value*0.8 to value. - "==" -> set the field to exactly `value`. - "set_to" -> same as "==". - "increase_by" / "decrease_by" -> shift the current value by that amount. - -If two structured suggestions conflict with each other or with a -hard_constraint, prefer the one that better serves design_layout -(the Layout Tree's depth order tells you which element is more important; -a clean, balanced, hierarchy-respecting design wins). - -# Layout Tree -{layout_tree} - -Elements in the same branch are semantically related. -Elements closer to the leaves have lower visual importance. - -# size reference (element_area / canvas_area, must satisfy lower bound) -full-canvas: >=95% | hero: >=60% | large: >=30% -prominent: >=20% | medium: >=15% | small: >=8% | caption: >=3% -photo-prominent: >=20% (GT-calibrated photo floor, Step 60) -(If hard_constraints contain a size_preference for a target with hint H, - that target's width*height divided by canvas_width*canvas_height MUST be - at or above the lower bound of H.) - -# GT-calibrated photo size prior (Step 60, 2026-06-11) -{photo_size_prior} - -# Composition directive (Step 62, 2026-06-12; "None" when no director ran) -{composition_directive} - -# Layout constraints (Step 37 hard rules, 2026-06-09) -The Quality Checker downstream WILL reject candidates that violate any of -these. Generate candidates that already comply so retries are not wasted: - -1. DECORATIVE elements (semantic_type = "decorative_image") MUST occupy - STRICTLY LESS than 40% of the canvas area each. Underlays are accents, - not the main visual. Full-canvas plates are background_image, not - decorative_image. - -2. TITLE elements (semantic_type = "title") MUST satisfy ALL of: - a) area_ratio = title.width * title.height / canvas_area >= 0.025 - (titles must be large enough to read as the design's anchor) - b) horizontal centre cx = (left + width/2) / canvas_width - must lie in [0.10, 0.90] - c) vertical centre cy = (top + height/2) / canvas_height - must lie in [0.05, 0.85] - Titles in corners or pinned to canvas edges are rejected. - -3. TEXT elements (semantic_type in {{title, subtitle, body_text, caption}}) - MUST NOT have any non-text element with z_index GREATER THAN OR EQUAL - to the text's z_index covering >= 20% of the text bbox. Place text - ABOVE decorative shapes in z order, and avoid placing it directly on - top of high-coverage image elements. - -4. TEXT colours MUST have WCAG 2.1 AA contrast (>= 4.5) against the canvas - background colour. White text on white bg / black text on black bg are - rejected. When in doubt prefer the spec's recommended_text_color. - -5. SEQUENTIAL text from the asset_list MUST be placed in top-to-bottom - y-order MATCHING the asset_list sequence. If the asset list contains - text snippets in the order [A, B, C], the rendered A must sit above B - and B above C (smaller top values). This preserves the designer's - reading-order intent. NEVER reverse a multi-line heading (e.g. do not - render "RESOURCES" above "HUMAN" when the source had "HUMAN" before - "RESOURCES"). - -6. PRIMARY ELEMENTS (semantic_type in title / subtitle / body_text / - product_image / logo) MUST overlap >= 50% with at least one of the - provided `safe_zones`. The safe_zones list is the CV-derived - background-saliency-low regions; everything OUTSIDE them is occupied - by the background subject (faces, products, focal imagery). Placing a - primary element outside the safe_zones means obscuring the background - subject AND making the element hard to read. - - bbox format inside `safe_zones` is [left, top, RIGHT, BOTTOM] - (absolute pixel coords; NOT width/height). To verify rule 6, test: - primary.left >= safe_left AND primary.left + primary.width <= safe_right - primary.top >= safe_top AND primary.top + primary.height <= safe_bottom - A primary fully inside a safe zone passes; partial overlap counts the - intersection-over-element-area which must be >= 0.50. - - Decorative elements may straddle safe / unsafe boundaries since their - job is to anchor text, but the primary text/photo MUST sit inside a - safe zone. Use the provided safe zones; do not invent your own. - -6b. SALIENCY-AWARE TEXT PLACEMENT (F2, Step 72). The `Saliency landscape` - block above (3x3 grid + top-K low-saliency rectangles) is a pixel-finer - signal than `safe_zones`. When the saliency block is populated (not - "None"): - - For TEXT primaries (title / subtitle / body_text): the bbox should - have a mean saliency <= 0.50. Use the listed low-saliency rectangles - as PREFERRED placement targets -- they are explicitly the calmest - regions in the whole canvas (ranked by 1 - mean_saliency). - - The 3x3 grid tells you the gross subject layout: a cell with - saliency > 0.6 has a face/product/focal subject in it -- do NOT cover - it with text. - - Hero IMAGE primaries (product_image, large image) may sit on high- - saliency cells (those ARE the subject); this rule targets text only. - - QC rule TEXT_ON_HIGH_SALIENCY (tau=0.5) will reject violators. - -7. COVERAGE / DEAD SPACE (Step 57, 2026-06-11). Counting every element - EXCEPT background_image as foreground: - a) the union of foreground bounding boxes MUST cover >= 10% of the - canvas area. Do not shrink all content into one small sliver. - b) no contiguous blank band (a horizontal strip or vertical strip - containing NO foreground element, canvas margins included) may - exceed 60% of the canvas height or width. Do not stack every - element in one third of the canvas and leave the rest empty. - Distribute elements so the composition engages the whole canvas; use - the safe_zones across the canvas, not just the first one. - -# Reasoning checklist (Step 42, 2026-06-10): walk through these steps -# mentally BEFORE you emit the JSON. The checklist is your scratchpad -- -# do NOT include the reasoning in your output, just produce the -# candidates that satisfy what you concluded. - - Step 1 -- SAFE-ZONE PLAN: - Read `safe_zones`. For each safe zone note: region label, bbox - (left, top, width, height), area_ratio = w*h / (canvas_w * canvas_h). - Decide which safe_zone will host the title, which will host the body - text, which will host any logo / product image. The hero element - goes in the largest safe zone. - - Step 2 -- ASSET INVENTORY: - From the spec, list every element id + semantic_type + the asset - behind it (text content for text elements, image asset_ref for image - elements). Decide which element is THE focal point of this - composition. - - Step 3 -- HIERARCHY: - Set sizes so the importance ordering is visually obvious: - title.font_size >= 1.5 * subtitle.font_size - title area_ratio >= 0.025 (rule 2 above) - decorative_image area_ratio < 0.40 (rule 1 above) - - Step 4 -- COLOR: - Default text color = `recommended_text_color`. Override only if a - hard_constraint demands it OR if dominant_palette suggests a clearly - better choice. Mentally check WCAG AA contrast vs canvas - background_color. - - Step 5 -- FEEDBACK APPLICATION (only when feedback != None): - For every structured_suggestion, write down (mentally) the EXACT - target_id and the EXACT new value you will apply. Do not paraphrase - suggestions; apply them verbatim. - - Step 6 -- DIVERSITY CHECK: - Plan 5 candidates that each anchor the title in a different - safe_zone (or vary the focal element's safe_zone if only one - text exists). Different safe_zone anchors = "5 distinct - compositional approaches" as required below. - -# Format example -{format_example} - -# Instruction -ATTENTION: Output exactly 5 candidates, each containing ALL element IDs from the spec. -ATTENTION: Use element IDs EXACTLY as they appear in the spec -- do NOT rename or - translate them. If the spec says id='headline_1', output id='headline_1' - (not 'title_1', not 'header_1'). The set of ids in your output MUST - equal the set of ids in spec.elements. -ATTENTION: All coordinates must satisfy: - left >= 0, top >= 0, - left + width <= canvas_width, - top + height <= canvas_height. -ATTENTION: Strictly obey all hard_constraints. -ATTENTION: For text elements, also output font_family, font_size, font_weight, color, text_align. -ATTENTION: Typography direction (Step 49a, 2026-06-10). Designer ground truths - almost never use default black sans-serif titles; a layout that does - loses the typography_color axis automatically. Choose font_family - DELIBERATELY per text element: - - The renderer supports four families; pick via these tokens: - "sans-serif" | "serif" | "cursive" (flowing script) | - "display" (heavy decorative headline face) - - Map the design mood (style_keywords + the attached background - image) to a TITLE family: - festive / floral / feminine / wedding / thank-you -> "cursive" - promo / sale / sporty / loud / youthful -> "display" - editorial / luxury / classic / formal -> "serif" - corporate / tech / minimal / clean -> "sans-serif" - - Body/caption text stays "sans-serif" or "serif" for legibility; - reserve "cursive"/"display" for title / subtitle / cta. - - Title color MUST come from the design's palette: pick a dominant - or complementary hue from the background image / dominant - palette. Use near-black (#000000-#222222) ONLY when the mood is - corporate/minimal AND the background is a light neutral. - Across the 5 candidates use at least TWO different (title - font_family, title color) combinations -- five identical black - sans-serif titles is an automatic fail. -ATTENTION: For image elements, output geometry only -- no visual style fields needed. -ATTENTION: Photo sizing (Step 60, 2026-06-11). Every element under a - `size_preference: photo-prominent` hard constraint MUST have - width * height >= 0.20 * canvas_width * canvas_height. This floor - is the designer-ground-truth MEDIAN photo size -- producing a - 1/3 x 1/3 tile (area_ratio 0.11) or smaller is the single most - common amateur tell and fails QC immediately. Compute the math - per photo BEFORE emitting JSON: on a 1080x1920 canvas the photo - needs >= 414,720 px^2 (e.g. 720x576, 648x640, 1080x384). Anchor - the enlarged photo in the LARGEST safe zone; do NOT shrink it - below the floor to dodge other constraints. -ATTENTION: Composition directive (Step 62, 2026-06-12). When the - "# Composition directive" block above is not "None", it is the - art director's decision and OUTRANKS your own compositional - taste. ALL 5 candidates MUST satisfy its numeric contract - (photo-center cell, photo area range, text-mass cell, photo-text - relation) -- the Quality Checker verifies every bound and rejects - violators immediately. Compute the math per candidate BEFORE - emitting JSON. The "distinctly different approaches" rule applies - WITHIN the directive: vary alignment, typography, exact positions - and spacing -- never the coarse composition itself. -ATTENTION: Each candidate must take a distinctly different compositional approach. - Do not repeat similar layouts across candidates. -ATTENTION: Canvas vertical coverage. The layout MUST occupy the full canvas - height -- a poster with the bottom 30% empty looks unfinished and - gets penalised on design_layout / typography_color. Concretely: - max(top + height) across all elements >= 0.85 * canvas_height - min(top) <= 0.10 * canvas_height - Worked example for an 800x1200 canvas: the lowest element's bottom - edge MUST reach y >= 1020, and at least one element MUST start at - y <= 120. If you only have 3 elements and the natural total height - is short, distribute them with larger inter-element gaps so the - bottom edge still hits 0.85 of canvas_height -- do NOT cluster - everything in the top half and leave a giant white band below. -ATTENTION: Horizontal balance / dead-space (Step 49b, 2026-06-11). Vertical - coverage alone is not enough -- a layout where all elements hug - one half of the canvas and leave a full-height empty band on the - other side reads as unbalanced dead space and loses design_layout. - Either: - a) the union of non-background elements spans most of the width - (min(left) <= 0.15 * canvas_width AND - max(left + width) >= 0.85 * canvas_width), OR - b) you deliberately build a single text column beside the - background's focal subject (photo / product). In that case - centre the column inside its safe zone and keep the column's - own left/right margins within 2x of each other -- do NOT - push an off-centre cluster against one edge while a wide - empty band sits next to it. -ATTENTION: Decorative-image underlays. An element with - semantic_type=="decorative_image" is a pre-classified shape plate - (low colour complexity / transparent edges, not a photo). Treat - it as a middle stacking layer: - - z_index MUST be strictly LESS THAN the z_index of every title, - subtitle, body_text, caption, product_image, logo, icon, cta - and pricetag element. A typical good assignment is - background_image=1, decorative_image=2, image/logo/text=3+. - - PAIRING IS MANDATORY (Step 49b, 2026-06-11): every - decorative_image MUST fully contain the bbox of at least one - text element (title / subtitle / body_text / caption / cta), - with the underlay extending 10-20% beyond that text on each - side (so the underlay frames the text, not the reverse). - A free-floating plate with no text on top of it reads as - random clutter and loses design_layout. - - Do NOT make decorative_image cover >=95% of the canvas; that is - background territory. Keep its area below 60% of canvas. -ATTENTION: If feedback is provided, satisfy every structured_suggestion in at - least 4 of 5 candidates. Use the suggestions[] free text only as - supplementary context. Do not ignore the structured list, but also - do not over-apply: a ">=" constraint is a LOWER bound, not a target - you must exceed by 2x. -ATTENTION: Step 46 (2026-06-10) -- ATTACHED IMAGE IS THE CANVAS BACKGROUND. - The FIRST attached image is the literal background PNG - the renderer will composite your layout on top of. The numeric - `safe_zones` you see in this prompt are a COARSE summary computed - from that image. WHEN YOUR EYE AND THE NUMBERS DISAGREE, BELIEVE - THE IMAGE. Look at the image and decide: - - where is the focal subject (face / product / hero element)? - - which negative-space regions are actually empty? - - what colour band sits behind your candidate text positions - (this affects WCAG contrast)? - - is there a vertical / horizontal axis the composition naturally - wants you to align to? - Use these visual observations to pick concrete (left, top, width, - height) values. HOWEVER (Step 49b clarification, 2026-06-11): the - automated Quality Checker enforces rule 6 NUMERICALLY against the - listed safe_zones -- a primary element overlapping < 50% with - every listed safe_zone is rejected no matter how good it looks - visually. So use the image to decide WHICH listed safe_zone hosts - each primary element and to fine-position WITHIN it, NOT as a - licence to abandon the listed zones. Only decorative / secondary - elements may occupy image-revealed empty regions outside the - listed safe_zones. If the image shows a face or focal element - inside what the safe_zones call "safe", pick a different listed - safe_zone for your primary -- do NOT cover the face. -{self_render} -ATTENTION: If the "# Previous Attempt" block is non-empty (refinement mode), - every element's (left, top, width, height) must stay within +/-10% - of its previous value unless a structured_suggestion explicitly - demands a larger change for that element id. Element ids must be - reused verbatim. The 5 candidates must remain anchored to - prev_best_layout; do NOT relocate elements to entirely new regions. - EXCEPTION: any element appearing in a kind="place_in_bbox" - structured_suggestion has its drift cap LIFTED for that element - only. Set its (left,top,width,height) directly from target_bbox - verbatim, even if the move exceeds +/-10%. The Judge saw the - image and made this call deliberately; do not partially apply. -Output carefully referenced "format example" in JSON format, nothing else. -""" +PROMPT_TEMPLATE = """Role: You are a layout technician. An art director has already decided the +composition concept (below). Your job is to translate that ONE concept into +exact pixel coordinates for every element -- faithfully, not creatively. Do NOT +invent a different composition; realise the art director's intent. + +# Composition concept from the art director +{concept_block} + +# Canvas +{canvas_width} x {canvas_height} px. Background color: {bg_color}. + +# Elements to place +{element_list} + +# Background analysis +Safe zones (calm, low-saliency regions -- PREFER text here, but this is a +preference, not a hard rule; follow the art director's concept first): +{safe_zones} +Dominant background palette: {dominant_palette} +Recommended text color for contrast: {recommended_text_color} +Baked underlay panels (Step 76 preprocessing -- solid panels the original +designer placed to hold text, ALREADY part of the background image): +{underlay_panels} + +# Rules (only the essentials -- everything else is the art director's call) +1. Coordinates stay on canvas: left >= 0, top >= 0, left+width <= {canvas_width}, + top+height <= {canvas_height}. +2. Every element id from the list above must appear exactly once. +3. Text elements MUST include font_family, font_size, font_weight, color, + text_align. +4. A decorative underlay that protects a text element must have a LOWER z_index + than that text (photo < underlay < text). +5. The title's area must be >= 2.5% of the canvas area (it is the focal text). +6. Text color must contrast with whatever sits behind it (WCAG AA, ratio >= + 4.5). If text rides a busy photo, either put a decorative underlay behind it + or choose a high-contrast color. +7. Elements with a natural reading order (title -> subtitle -> body -> CTA) + should flow top to bottom: an earlier element's top < a later element's top. + GT calibration (N=1,746 designer layouts): the DOMINANT text's center-y + falls in [0.35, 0.57] of canvas height (median 0.475) and it sits ABOVE + the supporting text in 66% of designs -- do not bury the title below + minor info lines. + +# Typography +font_family must be one of: display, serif, sans-serif, script. +Size text by role: the title is the largest, body text the smallest. Match the +art director's typography_mood. + +# GT-calibrated text size prior +{text_area_prior} + +{feedback_block} + +# How to respond +First write 2-3 short sentences describing how you will turn THIS concept into +coordinates -- which element goes where, and how the concept's asymmetry / flow +is preserved. Then output exactly ONE candidate as JSON inside a ```json fenced +block, following this shape exactly (one candidate, real element ids): + +{format_example}""" MAX_RETRIES: int = 3 @@ -612,9 +248,8 @@ class GenerateLayout(Action): name: str = "GenerateLayout" desc: str = ( - "Arrange every design element on the canvas with concrete pixel " - "coordinates and (for text elements) visual style. Produce 5 " - "compositionally distinct candidates per call." + "CoordinateMapper: translate ONE art-director composition concept into " + "exact pixel coordinates for a single layout candidate." ) async def run( @@ -623,82 +258,58 @@ async def run( spec: DesignSpec, tree: LayoutTree, bg: BackgroundAnalysis, + concept: CompositionConcept, feedback: Optional[AestheticFeedback] = None, prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None, prev_best_subscores: Optional[Dict[str, int]] = None, - prev_render_path: Optional[Path] = None, exemplars: Optional[str] = None, + revision: bool = False, ) -> CandidatesBatch: - """Build prompt, call LLM, parse and validate. + """Translate ONE art-director concept into a single coordinatised candidate. + + "先想再畫" refactor (2026-06-25): the composition decision now lives in + ``concept`` (a CompositionConcept from ComposeConcept). This Action no + longer invents the layout -- it faithfully maps the concept to pixels and + returns a one-candidate batch. The pipeline calls it once per concept. + + ``feedback`` / ``prev_best_layout`` / ``prev_best_subscores`` stay for the + typography/colour micro-adjust retry path: when the Judge's worst axis is + typography/colour it routes feedback to the CoordinateMapper without + asking the Director to re-imagine the composition. Pre-condition: ``spec`` must be enriched (Asset Analyzer ran). - Returns one batch of *raw* candidates -- the K_valid = 5 top-up loop - is the pipeline driver's responsibility, not this Action's. - - Refinement Loop (2026-05-20): when ``prev_best_layout`` is non-empty - the prompt activates the ``# Previous Attempt`` block, switching the - Generator from cold-start to anchored refinement mode (+/-10% drift - per element unless a structured_suggestion demands a larger edit). - - Visual self-correction (Step 65, 2026-06-12): when - ``prev_render_path`` points at the previous attempt's rendered PNG, - it is attached as the LAST image and the prompt gains the - self-render ATTENTION block. Callers that never render between - retries simply omit it and get the pre-Step-65 behaviour. """ spec.assert_enriched() - # Step 46: attach the canvas background image so the LLM can see the - # focal subject and the real empty regions, not just the coarse - # safe_zones summary. Silently fall back to text-only when the model - # lacks vision support or the background asset is missing/unreadable. - # Step 65: optionally attach the previous attempt's render as the - # LAST image. Images are collected BEFORE the prompt is built because - # the prompt must only describe images that are actually attached. + # Attach the canvas background so the LLM sees the focal subject and the + # real empty regions. Step 65's self-render channel is intentionally NOT + # re-introduced here -- it was a negative result (doubled refusal rate). images: List[str] = [] - self_render_attached = False if self.llm.support_image_input(): bg_b64 = self._render_bg_image(spec) if bg_b64 is not None: images.append(bg_b64) else: - logger.debug( - "GenerateLayout: no usable background image; using text-only call." - ) - if prev_render_path is not None: - pr_b64 = self._load_image_b64(Path(prev_render_path)) - if pr_b64 is not None: - images.append(pr_b64) - self_render_attached = True - else: - logger.debug( - f"GenerateLayout: previous render {prev_render_path!r} " - f"unreadable; proceeding without self-render." - ) + logger.debug("GenerateLayout: no usable background image; text-only call.") else: logger.debug( - f"GenerateLayout: LLM '{getattr(self.llm, 'model', '?')}' lacks " - f"vision support; using text-only call." + f"GenerateLayout: LLM '{getattr(self.llm, 'model', '?')}' lacks vision; text-only." ) prompt = self._build_prompt( spec, tree, bg, - feedback, - prev_best_layout, - prev_best_subscores, - self_render_attached=self_render_attached, + concept, + feedback=feedback, + prev_best_layout=prev_best_layout, + prev_best_subscores=prev_best_subscores, exemplars=exemplars, + revision=revision, ) if images: - # INFO so live-run logs can decompose refusal rates by payload: - # bg-only calls vs calls that also carry the self-render. - logger.info( - f"GenerateLayout: attaching {len(images)} image(s) " - f"(self_render={self_render_attached})." - ) + logger.info(f"GenerateLayout: attaching {len(images)} background image(s).") last_err: Optional[Exception] = None attempt = 0 @@ -712,41 +323,21 @@ async def run( try: return self._parse_response(rsp) except (ValueError, ValidationError) as err: - # Step 65: refusal detection moved AFTER the parse attempt -- - # a parseable batch is always accepted, so head-scanning for - # refusal markers can never discard a good response. + # Refusal detection runs AFTER the parse attempt so a parseable + # batch is never misclassified as a refusal. if images and self._looks_like_refusal(rsp): - # Step 64: informed degradation -- drop the images and - # fall back to the pre-step46 text-only mode (the numeric - # safe_zones summary is still in the prompt). Grant one - # replacement attempt so a refusal cannot burn the whole - # budget. The `images and` guard makes this fire at most - # once. Step 65: the prompt is rebuilt so it no longer - # claims a self-render is attached. + # Informed degradation: drop the image and retry text-only + # (the `images` guard makes this fire at most once). logger.warning( - f"GenerateLayout attempt {attempt}/{budget}: vision " - f"refusal detected ({rsp.strip()[:60]!r}); retrying " - f"without image(s)." + f"GenerateLayout attempt {attempt}/{budget}: vision refusal " + f"({rsp.strip()[:60]!r}); retrying without image." ) images = [] - if self_render_attached: - self_render_attached = False - prompt = self._build_prompt( - spec, - tree, - bg, - feedback, - prev_best_layout, - prev_best_subscores, - self_render_attached=False, - ) budget += 1 last_err = ValueError(f"vision refusal: {rsp.strip()[:120]}") continue last_err = err - logger.warning( - f"GenerateLayout attempt {attempt}/{budget} failed: {err}" - ) + logger.warning(f"GenerateLayout attempt {attempt}/{budget} failed: {err}") raise ValueError( f"GenerateLayout: could not produce a valid CandidatesBatch after " @@ -810,54 +401,284 @@ def _build_prompt( spec: DesignSpec, tree: LayoutTree, bg: BackgroundAnalysis, - feedback: Optional[AestheticFeedback], + concept: CompositionConcept, + feedback: Optional[AestheticFeedback] = None, prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None, prev_best_subscores: Optional[Dict[str, int]] = None, - self_render_attached: bool = False, exemplars: Optional[str] = None, + revision: bool = False, ) -> str: - """Render PROMPT_TEMPLATE with all 11 substitutions. + """Render the lean CoordinateMapper PROMPT_TEMPLATE. - ``previous_attempt`` is the new Refinement Loop block. It is "None" - on cold-start (Round 0) and a compact JSON-ish description in - refinement mode (Round 1+). ``self_render_attached`` (Step 65) - activates the self-render ATTENTION block and must be True only when - the previous attempt's render is actually in the image payload. + "先想再畫" refactor: the prompt is built around ONE ``concept`` (the + art-director's intent) plus the minimal context the coordinate stage + needs. ``tree`` is accepted for signature compatibility with the + pipeline but no longer injected verbatim -- the concept + element list + carry the structure now. """ - spec_str = json.dumps(spec.model_dump(), indent=2, ensure_ascii=False) - # Wrap tree as {"layout_tree": ...} so the LLM sees the same shape it - # produced as Asset Planner output. - tree_dump: Dict[str, Any] = {"layout_tree": tree.root.model_dump()} - tree_str = json.dumps(tree_dump, indent=2, ensure_ascii=False) safe_zones_str = json.dumps( - [sz.model_dump() for sz in bg.safe_zones], indent=2, ensure_ascii=False + [sz.model_dump() for sz in bg.safe_zones], ensure_ascii=False ) - saliency_landscape_str = self._format_saliency_landscape(bg) palette_str = json.dumps(bg.dominant_palette, ensure_ascii=False) - feedback_str = ( - "None" - if feedback is None - else json.dumps(feedback.model_dump(), indent=2, ensure_ascii=False) - ) - previous_attempt_str = self._format_previous_attempt( - prev_best_layout, prev_best_subscores - ) + bg_color = spec.canvas.background_color or "(image background; see attached)" return PROMPT_TEMPLATE.format( - design_spec=spec_str, + concept_block=self._format_concept_block(concept, bg, feedback), + canvas_width=spec.canvas.width, + canvas_height=spec.canvas.height, + bg_color=bg_color, + element_list=self._format_element_list(spec), safe_zones=safe_zones_str, - saliency_landscape=saliency_landscape_str, dominant_palette=palette_str, recommended_text_color=bg.recommended_text_color, - feedback=feedback_str, - previous_attempt=previous_attempt_str, - layout_tree=tree_str, + underlay_panels=self._format_underlay_panels(bg), + text_area_prior=self._format_text_area_prior(spec), + feedback_block=self._format_feedback_block( + feedback, prev_best_layout, prev_best_subscores, exemplars, + revision=revision, + ), format_example=FORMAT_EXAMPLE_JSON, - photo_size_prior=self._format_area_hints(spec), - composition_directive=self._format_composition_directive(spec), - self_render=_SELF_RENDER_NOTE if self_render_attached else "None", - exemplars=exemplars or "None", ) + @staticmethod + def _format_concept_block( + concept: CompositionConcept, + bg: Optional[BackgroundAnalysis] = None, + feedback: Optional[AestheticFeedback] = None, + ) -> str: + """Render the art-director concept as the binding design brief. + + Step 77: when the concept carries ``text_assignments``, each one is + rendered as a BINDING per-element destination; 'panel N' references + resolve to that panel's exact bbox from ``bg.underlay_regions`` so the + mapper gets concrete pixels, not prose. + + Step 88 precedence rule: an OPEN LEDGER TARGET (a judge observation + with a target_bbox) OVERRIDES the concept's assignment for that + element. The Step 87 trace showed the mapper obeying the concept's + BINDING line over the ledger for three straight rounds -- the loop + deadlocks unless the ledger outranks the concept. + """ + block = ( + f"Name: {concept.name}\n" + f"Focal element: {concept.focal_element} -> {concept.focal_placement}\n" + f"Text placement: {concept.text_placement}\n" + f"Visual flow: {concept.visual_flow}\n" + f"Whitespace: {concept.whitespace}\n" + f"Typography mood: {concept.typography_mood}\n" + f"Text-photo relation: {concept.text_photo_relation}\n" + ) + overrides = {} + if feedback is not None: + for obs in feedback.visual_observations: + if obs.target_bbox is not None: + overrides.setdefault(obs.target_id, obs) + + def _override_line(elem_id: str) -> str: + obs = overrides[elem_id] + left, top, right, bottom = obs.target_bbox + return ( + f" - {elem_id} -> LEDGER OVERRIDE ({obs.kind.value}): place " + f"{elem_id} INSIDE bbox [left={left}, top={top}, right={right}, " + f"bottom={bottom}]. This target comes from the judge's review " + f"and SUPERSEDES the concept's placement for this element." + ) + + if concept.text_assignments or overrides: + lines = [] + regions = bg.underlay_regions if bg is not None else [] + for elem_id, dest in concept.text_assignments.items(): + if elem_id in overrides: + lines.append(_override_line(elem_id)) + continue + resolved = dest + m = re.match(r"panel\s*(\d+)", dest.strip(), re.IGNORECASE) + if m and 1 <= int(m.group(1)) <= len(regions): + region = regions[int(m.group(1)) - 1] + left, top, right, bottom = region.bbox + surface = ( + f"transparent frame over ~{region.dominant_color} backdrop" + if region.panel_type == "frame" + else f"fill {region.dominant_color}" + ) + resolved = ( + f"{dest} = bbox [left={left}, top={top}, right={right}, " + f"bottom={bottom}], {surface}: place " + f"{elem_id} INSIDE this bbox, colour ~" + f"{region.recommended_text_color}" + ) + lines.append(f" - {elem_id} -> {resolved}") + for elem_id in overrides: + if elem_id not in concept.text_assignments: + lines.append(_override_line(elem_id)) + header = "Text assignments (BINDING -- realise each destination exactly" + if overrides: + header += "; LEDGER OVERRIDE lines outrank everything else" + block += header + "):\n" + "\n".join(lines) + "\n" + return block + ( + "\nTranslate THIS concept into exact pixels. If the concept is " + "asymmetric, your coordinates must be asymmetric too -- do not " + "silently re-centre everything." + ) + + @staticmethod + def _format_element_list(spec: DesignSpec) -> str: + """Compact one-line-per-element listing (id, semantic/visual type, text). + + Step 80: elements backed by a pre-rendered text bitmap (asset_ref + ``*_text.png``) get their NATURAL size appended -- the designer's own + typography at its intended scale. The mapper should place them at that + size (mild rescale allowed, aspect locked), which removes both the + font-fidelity gap and the size-timidity failure in one move. + """ + lines = [] + for el in spec.elements: + desc = f"- {el.id} ({el.semantic_type.value}/{el.visual_type.value})" + if el.content: + preview = el.content.strip().replace("\n", " ") + desc += f': "{preview[:80]}"' + from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + is_r3_text_bitmap, + r3_prompt_descriptor, + ) + + if is_r3_text_bitmap(el.asset_ref): + desc += r3_prompt_descriptor(el.asset_ref) + elif el.asset_ref and el.asset_ref.endswith("_text.png"): + try: + with Image.open(el.asset_ref) as img: + nat_w, nat_h = img.size + desc += ( + f" [pre-rendered text bitmap, natural size {nat_w}x{nat_h}px:" + f" place at this size (0.8x-1.2x rescale allowed, KEEP the" + f" aspect ratio); its font/colour are final -- omit" + f" font_family/font_size/color for this element]" + ) + except (OSError, IOError): + pass + lines.append(desc) + return "\n".join(lines) if lines else "(no elements)" + + @staticmethod + def _format_text_area_prior(spec: DesignSpec) -> str: + """Render the `# GT-calibrated text size prior` block (Step 76c). + + Anti-timidity prior for TEXT, mirroring the Step 60 photo prior that + fixed the same bias on the photo axis. Tail-end position + concrete + per-canvas pixel math + an executable instruction is the pattern + Step 60 measured as effective. Returns "None" when the spec has no + text elements so non-text briefs keep the prompt shape unchanged. + """ + text_ids = [ + el.id for el in spec.elements if el.visual_type == VisualType.TEXT + ] + if not text_ids: + return "None" + lo, hi = TEXT_AREA_TARGET + canvas_px = spec.canvas.width * spec.canvas.height + lo_px = int(canvas_px * lo) + hi_px = int(canvas_px * hi) + id_lines = "\n".join(f" - {tid}" for tid in text_ids) + return ( + f"ATTENTION: designer ground truths (N=1,902 Crello layouts) place TEXT\n" + f"so its combined union covers median {TEXT_AREA_GT['p50']:.0%} of the canvas " + f"(p25 {TEXT_AREA_GT['p25']:.0%},\np75 {TEXT_AREA_GT['p75']:.0%}, " + f"p90 {TEXT_AREA_GT['p90']:.0%}). Machine layouts that cluster small text\n" + f"(union < 10%) read as TIMID and fail both QC and the design_layout axis.\n" + f"For THIS {spec.canvas.width}x{spec.canvas.height} canvas, the text " + f"elements below must together\ncover {lo:.0%}-{hi:.0%} of the canvas = " + f"{lo_px:,}-{hi_px:,} px^2 total:\n" + f"{id_lines}\n" + f"Reach the target by ENLARGING font sizes (the title takes the largest\n" + f"share and may exceed 10% alone), NOT by stretching boxes around tiny\n" + f"text or overlapping text blocks." + ) + + @staticmethod + def _format_underlay_panels(bg: BackgroundAnalysis) -> str: + """Render the Step 76 baked-underlay feed-forward block. + + Exact pixel bboxes on purpose: the CoordinateMapper responds to + explicit math-and-constraint instructions (Step 60), unlike the + Director which gets the same panels described in words only. + Returns "None." when the preprocessor did not run (non-SEGA inputs). + """ + if not bg.underlay_regions: + return "None." + lines = [] + for i, region in enumerate(bg.underlay_regions, 1): + left, top, right, bottom = region.bbox + if region.panel_type == "frame": + surface = ( + f"a transparent outlined frame; the backdrop showing " + f"through is ~{region.dominant_color}" + ) + else: + surface = f"fill {region.dominant_color}" + lines.append( + f"- panel {i}: bbox [left={left}, top={top}, right={right}, " + f"bottom={bottom}], {surface}. Text placed on " + f"this panel must fit INSIDE the bbox and use a contrasting " + f"colour (recommended {region.recommended_text_color})." + ) + return "\n".join(lines) + + def _format_feedback_block( + self, + feedback: Optional[AestheticFeedback], + prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]], + prev_best_subscores: Optional[Dict[str, int]], + exemplars: Optional[str], + revision: bool = False, + ) -> str: + """Render the optional retry block. + + Empty string on the cold first pass. Two modes (Step 84): + * micro-adjust (``revision=False``): typography/colour feedback -- + keep the composition, nudge what the judge flagged. + * revision (``revision=True``): the concept was re-imagined after a + design reject. The previous layout is included as the REJECTED + baseline so the mapper has a contrast reference -- the user's + observation: without seeing the old coordinates, "fix it" has + nothing to fix against. + """ + if feedback is None and not prev_best_layout and not exemplars: + return "" + if revision: + parts = [ + "# Previous REJECTED layout (contrast reference -- do NOT keep it)\n" + "The concept above is a REVISION written against the judge's " + "criticisms below. The coordinates below are the rejected " + "attempt: your NEW layout must VISIBLY differ wherever a " + "criticism points at it. Re-submitting near-identical geometry " + "is a failure." + ] + else: + parts = ["# Adjust the previous attempt (keep the composition; fix what the judge flagged)"] + if feedback is not None: + if feedback.keep_constraints: + keep_lines = "\n".join( + f" - {obs.target_id} must STAY INSIDE bbox {obs.target_bbox}" + f" ({obs.kind.value} -- already fixed)" + for obs in feedback.keep_constraints + if obs.target_bbox is not None + ) + if keep_lines: + parts.append( + "KEEP constraints (already satisfied by the previous " + "round -- do NOT undo these while adjusting anything " + "else):\n" + keep_lines + ) + parts.append(json.dumps( + feedback.model_dump(exclude={"keep_constraints"}), + indent=2, ensure_ascii=False, + )) + prev = self._format_previous_attempt(prev_best_layout, prev_best_subscores) + if prev != "None": + parts.append(prev) + if exemplars: + parts.append(f"Reference exemplars:\n{exemplars}") + return "\n".join(parts) + @staticmethod def _format_saliency_landscape(bg: BackgroundAnalysis) -> str: """Render the F2 saliency block. @@ -1116,11 +937,26 @@ def _format_previous_attempt( @staticmethod def _parse_response(rsp: str) -> CandidatesBatch: - """Strip markdown fences if present, then validate against CandidatesBatch.""" + """Extract the candidate JSON and validate against CandidatesBatch. + + The CoordinateMapper prompt asks the model to write 2-3 sentences of + reasoning before the JSON. Three extraction layers handle that: + 1. a ```json fenced block (the requested format) -> CodeParser; + 2. otherwise, the substring from the first '{' to the last '}' + (strips a bare reasoning prefix/suffix around raw JSON); + 3. otherwise, the whole stripped text. + """ text = rsp.strip() if "```" in text: try: - text = CodeParser.parse_code(text=text, lang="json") or text + fenced = CodeParser.parse_code(text=text, lang="json") + if fenced: + text = fenced except Exception: pass + if not text.lstrip().startswith("{"): + lo = text.find("{") + hi = text.rfind("}") + if lo != -1 and hi != -1 and hi > lo: + text = text[lo : hi + 1] return CandidatesBatch.model_validate_json(text) diff --git a/metagpt/ext/agentlayout/actions/generate_layout_a3.py b/metagpt/ext/agentlayout/actions/generate_layout_a3.py new file mode 100644 index 000000000..0a0fa8825 --- /dev/null +++ b/metagpt/ext/agentlayout/actions/generate_layout_a3.py @@ -0,0 +1,111 @@ +"""Vision-required A3 Coordinate Mapper action (contract in tools/mapper_contract). + +Also carries the single L1 revision call: the same action re-runs once with +the gate's revision instruction and the B0 elements as the editing base. +""" +from __future__ import annotations + +from pathlib import Path +from typing import Dict, List, Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.layout_tree_v3 import TreeCondition +from metagpt.ext.agentlayout.schema import Candidate, CompositionConcept +from metagpt.ext.agentlayout.tools.mapper_contract import ( + build_mapper_request, + parse_candidate, + validate_candidate_coverage, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest +from metagpt.logs import logger + + +A3_MAPPER_MAX_RETRIES = 3 + + +class GenerateLayoutA3(Action): + """Map one concept (or one gated revision) to exact pixel coordinates.""" + + name: str = "GenerateLayoutA3" + desc: str = "A3 Coordinate Mapper: concept plus tree condition to pixel bboxes." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + concept: CompositionConcept, + condition: TreeCondition, + manifest: R3AssetManifest, + background_image_b64: str, + revision_instruction: Optional[str] = None, + base_elements: Optional[List[Dict]] = None, + artifacts_dir: Optional[Path] = None, + ) -> Candidate: + if not self.llm.support_image_input(): + raise RuntimeError( + "A3 Mapper requires image input; text-only fallback is forbidden" + ) + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Mapper model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + if (revision_instruction is None) != (base_elements is None): + raise ValueError( + "revision_instruction and base_elements must be provided together" + ) + request = build_mapper_request( + concept=concept, + condition=condition, + manifest=manifest, + revision_instruction=revision_instruction, + base_elements=base_elements, + ) + if artifacts_dir is not None: + artifacts_dir.mkdir(parents=True, exist_ok=False) + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "mapper_request.json", request.model_dump(mode="json") + ) + asset_ids = [asset.asset_id for asset in manifest.foreground_assets()] + attempt_prompt = request.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_MAPPER_MAX_RETRIES + 1): + response = await self.llm.aask(attempt_prompt, images=[background_image_b64]) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + candidate = parse_candidate(response) + validate_candidate_coverage(candidate, asset_ids) + if artifacts_dir is not None: + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "candidate.json", + candidate.model_dump(mode="json"), + ) + return candidate + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"GenerateLayoutA3 attempt {attempt}/{A3_MAPPER_MAX_RETRIES} " + f"failed: {error}" + ) + attempt_prompt = ( + request.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"GenerateLayoutA3 failed after {A3_MAPPER_MAX_RETRIES} attempts: {last_error}" + ) diff --git a/metagpt/ext/agentlayout/actions/judge_aesthetic.py b/metagpt/ext/agentlayout/actions/judge_aesthetic.py index a0e44d216..e68f5fd33 100644 --- a/metagpt/ext/agentlayout/actions/judge_aesthetic.py +++ b/metagpt/ext/agentlayout/actions/judge_aesthetic.py @@ -43,7 +43,9 @@ BackgroundAnalysis, Candidate, DesignSpec, + JudgeDecision, LayoutTree, + VisualObservation, ) from metagpt.ext.agentlayout.tools.renderer import image_to_base64, render from metagpt.logs import logger @@ -383,6 +385,29 @@ class _JudgementValidationError(ValueError): MAX_RETRIES: int = 3 +# Step 78 decoupled observer: parse retries for the reject-only inspector +# call. Kept small -- a failed observer degrades to "no observations", it +# must never burn the main judgement budget. +_OBSERVE_MAX_RETRIES: int = 2 + +# Step 83: anchored scoring + concreteness contract. Step 82's trace showed +# unanchored absolute scores collapse into a 34-39 band with "minor +# adjustments needed" boilerplate; anchors + a cite-your-evidence rule force +# discrimination. Appended AFTER the template so pinned-string tests on +# PROMPT_TEMPLATE stay valid. +_SCORING_ANCHORS: str = """ + +# Scoring anchors (calibrate every 1-10 axis score to these) + 9-10 = professional designer quality; could ship as-is + 7-8 = competent but generic; visible non-blocking flaws + 5-6 = obvious amateur errors (broken grouping, orphaned elements, dead zones) + 1-4 = structurally broken +Spread your scores: candidates with visible differences must NOT all land on +the same total. Every `weaknesses` entry MUST cite at least one element id AND +one concrete measured fact (from the geometry block below or exact pixel +evidence you can see in the render). Generic phrases like "minor adjustments +needed" or "could be more prominent" are INVALID weaknesses.""" + # ============================================================ # Action @@ -435,6 +460,16 @@ async def run( judgement = self._parse_response(rsp) self._validate_against_input(judgement, candidates) self._attach_best_candidate_layout(judgement, candidates) + # Step 78: reject-only decoupled observer. The verdict above + # was produced by the unmodified prompt (no contamination); + # only AFTER it exists do we ask a separate call what defects + # are visible on the best candidate's render. + from metagpt.ext.agentlayout.feature_flags import visual_loop_enabled + + if visual_loop_enabled() and judgement.decision == JudgeDecision.REJECT: + judgement.feedback.visual_observations = await self._observe( + judgement, candidates, spec, bg + ) return judgement except (ValueError, ValidationError) as err: last_err = err @@ -497,7 +532,263 @@ def _build_prompt( candidate_ids=cand_ids_str, format_example_accept=FORMAT_EXAMPLE_ACCEPT, format_example_reject=FORMAT_EXAMPLE_REJECT, + ) + _SCORING_ANCHORS + self._geometry_facts_block(candidates, spec, bg) + ( + "\n\n# Canvas resources (panels + placeable background regions)\n" + + self._canvas_resources_block(bg) + ) + + @staticmethod + def _canvas_resources_block(bg: BackgroundAnalysis) -> str: + """Step 86 (user): panels + CV-derived placeable regions for the judge. + + The observer estimates target_bbox by eye; these are the terrain + facts that ground the estimate -- exact panel bboxes (with the Step 79 + frame/solid distinction) and the background's calm regions. The main + judgement call gets the same block so an unused panel or an ignored + calm area is visible to the verdict, not just to the repair loop. + """ + lines = [] + if bg.underlay_regions: + lines.append("Baked panels (designer-placed text holders, exact bboxes):") + for i, region in enumerate(bg.underlay_regions, 1): + left, top, right, bottom = region.bbox + surface = ( + f"transparent frame, backdrop ~{region.dominant_color}" + if region.panel_type == "frame" + else f"solid fill {region.dominant_color}" + ) + lines.append( + f" panel {i}: bbox [{left}, {top}, {right}, {bottom}], " + f"{surface}, readable text colour {region.recommended_text_color}" + ) + if bg.safe_zones: + lines.append( + "Background placeable regions (CV-derived calm areas -- good " + "anchors for target_bbox estimates):" + ) + for zone in bg.safe_zones[:5]: + lines.append( + f" {zone.region}: bbox {zone.bbox} (confidence {zone.confidence:.2f})" + ) + if bg.low_saliency_regions: + lines.append("Quietest background rectangles (lowest visual noise):") + for zone in bg.low_saliency_regions[:5]: + lines.append(f" {zone.region}: bbox {zone.bbox}") + return "\n".join(lines) if lines else "(no panel / region data available)" + + @staticmethod + def _geometry_facts_block(candidates: List[Candidate], spec: DesignSpec, + bg: BackgroundAnalysis) -> str: + """Step 83: neutral machine measurements per candidate. + + The judge cannot resolve 20-200px geometry on downscaled renders; + these descriptors give it the evidence. They are explicitly neutral + (e.g. full centering is a legitimate style in ~22% of designer + layouts) -- the verdict stays with the judge. + """ + from metagpt.ext.agentlayout.tools.layout_metrics import ( + format_metrics_block, + measure_layout, + ) + + parts = ["\n\n# Machine-measured geometry (neutral descriptors, per candidate)"] + for cand in candidates: + try: + block = format_metrics_block( + measure_layout(cand, spec, bg.underlay_regions or None) + ) + except Exception: # noqa: BLE001 -- measurement must never kill judging + continue + parts.append(f"\nCandidate {cand.candidate_id}:\n{block}") + return "\n".join(parts) if len(parts) > 1 else "" + + # ------------------------------------------------------------------ + # Step 78: decoupled visual observer (second pass, reject-only) + # ------------------------------------------------------------------ + # Step 77d post-mortem: putting the defect catalogue INSIDE the judgement + # prompt contaminated the verdict itself -- round-0 acceptance collapsed + # 7 -> 1 on identical candidate distributions (observer effect), while + # compliance proved execution works (88.9%). The fix: the judgement + # prompt stays byte-identical, and observations come from a SEPARATE + # small call made only after a reject verdict already exists. + + @staticmethod + def _build_observe_prompt(candidate: Candidate, spec: DesignSpec, + bg: BackgroundAnalysis) -> str: + """Prompt for the reject-only render-inspector call (Step 78). + + Step 86: the panel list grew into the full canvas-resources block + (panels with frame/solid semantics + CV placeable regions), and each + text element line carries its natural bitmap size -- the terrain the + observer needs to estimate target_bbox with, instead of pure eyeball. + """ + panel_lines = JudgeAesthetic._canvas_resources_block(bg) + spec_by_id = {el.id: el for el in spec.elements} + layout_rows = [] + for el in candidate.elements: + row = ( + f" {el.id}: bbox [{el.left}, {el.top}, {el.left + el.width}, " + f"{el.top + el.height}], color {getattr(el, 'color', None)}, " + f"angle {el.angle}" + ) + spec_el = spec_by_id.get(el.id) + from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + is_r3_text_bitmap, + ) + + if spec_el and (spec_el.asset_ref or "").endswith("_text.png") \ + and not is_r3_text_bitmap(spec_el.asset_ref): + try: + from PIL import Image as _PILImage + + with _PILImage.open(spec_el.asset_ref) as img: + row += f" (pre-rendered text, natural size {img.size[0]}x{img.size[1]}px)" + except (OSError, IOError): + pass + layout_rows.append(row) + layout_lines = "\n".join(layout_rows) + from metagpt.ext.agentlayout.tools.layout_metrics import ( + format_metrics_block, + measure_layout, + ) + + try: + metrics_block = format_metrics_block( + measure_layout(candidate, spec, bg.underlay_regions or None) + ) + except Exception: # noqa: BLE001 + metrics_block = "(measurement unavailable)" + return f"""Role: You are a render inspector. The attached image is a poster candidate +that was ALREADY rejected by a separate quality review -- your job is NOT to +judge it, only to report concrete visible defects so the next attempt can fix +them. + +# Candidate layout (element id -> bbox [L, T, R, B] in canvas pixels) +Canvas: {spec.canvas.width}x{spec.canvas.height}. +{layout_lines} + +# Canvas resources (panels + placeable background regions) +{panel_lines} + +# Machine-measured geometry (neutral descriptors) +{metrics_block} + +# Per-element review (Step 87 -- one entry for EVERY element above) +Review each element IN THE ORDER LISTED while LOOKING at the render. No +element may be skipped. For each, give a verdict: + - "ok" when the element is well placed and legible. 'ok' is a valid and + COMMON verdict -- do NOT invent defects to fill space. + - otherwise the element's PRIMARY issue, classified by this priority rubric: + 1. "title_misplaced": the DOMINANT text is in the wrong spot for THIS + background (designer prior: center-y in [0.35, 0.57] of canvas height + -- but judge by eye). REQUIRED: target_bbox = the range it SHOULD occupy. + 2. "lockup_broken": secondary/subtitle text drifted from the dominant text + (designer gap p90 = 0.122 of canvas height). REQUIRED: target_bbox. + 3. "text_off_panel": this info text should sit ON a baked panel but does + not. REQUIRED: target_bbox = that panel's bbox (exact values above). + 4. "text_overlap": collides with another element. REQUIRED: second_id. + 5. "text_too_small" / "text_too_large": REQUIRED: target_area_px (int px^2). + 6. "text_illegible": unreadable. REQUIRED: target_color (concrete hex) + AND/OR target_bbox (a calmer region). + ("text_tilted": unintended rotation, any position.) +Fixes must be CONCRETE: every positional fix is a bbox range the element +should move INTO. If your instinct is "move it AWAY from X", express it as +the concrete range it should occupy instead. target_bbox values are YOUR +visual estimates for THIS image -- the references are priors, not rules. + +# Output (JSON array only, ONE object per element, no commentary, no fences) +[{{"element_id": "...", "verdict": "ok" | "", "second_id": null, +"target_bbox": [L, T, R, B] | null, "target_color": "#RRGGBB" | null, +"target_area_px": 12345 | null, "comment": "one line"}}]""" + + @staticmethod + def _parse_observations( + rsp: str, expected_ids: Optional[set] = None + ) -> List[VisualObservation]: + """Parse the inspector response; invalid entries are dropped, never fatal. + + Step 87 per-element form: entries carry ``element_id`` + ``verdict`` + (+ ``comment``); verdict "ok" entries are coverage confirmations and + produce no observation. The pre-87 form (``kind``/``target_id``/ + ``note``) still parses. When ``expected_ids`` is given, elements the + inspector failed to review are logged -- vague coverage is visible. + """ + text = (rsp or "").strip() + if "```" in text: + start = text.find("[") + end = text.rfind("]") + if start == -1 or end <= start: + return [] + text = text[start:end + 1] + try: + data = json.loads(text) + except json.JSONDecodeError: + return [] + if isinstance(data, dict): + data = data.get("visual_observations", data.get("reviews", [])) + if not isinstance(data, list): + return [] + out: List[VisualObservation] = [] + reviewed: set = set() + for item in data[:16]: + if not isinstance(item, dict): + continue + target_id = item.get("element_id") or item.get("target_id") + if target_id: + reviewed.add(target_id) + verdict = item.get("verdict", item.get("kind")) + if verdict is None or str(verdict).lower() == "ok": + continue + try: + out.append(VisualObservation( + kind=verdict, + target_id=target_id, + second_id=item.get("second_id"), + target_bbox=item.get("target_bbox"), + target_color=item.get("target_color"), + target_area_px=item.get("target_area_px"), + note=item.get("comment") or item.get("note") or "", + )) + except (ValidationError, TypeError): + continue + if expected_ids: + missing = set(expected_ids) - reviewed + if missing: + logger.warning( + f"JudgeAesthetic observer skipped {len(missing)} element(s): " + f"{sorted(missing)}" + ) + return out[:8] + + async def _observe(self, judgement: AestheticJudgement, + candidates: List[Candidate], spec: DesignSpec, + bg: BackgroundAnalysis) -> List[VisualObservation]: + """Second-pass inspector call on the reject verdict's best candidate.""" + best = next( + (c for c in candidates if c.candidate_id == judgement.best_candidate_id), + None, ) + if best is None: + return [] + prompt = self._build_observe_prompt(best, spec, bg) + images = self._render_images([best], spec) + for attempt in range(1, _OBSERVE_MAX_RETRIES + 1): + try: + rsp = await self.llm.aask(prompt, images=images) + except Exception as err: # noqa: BLE001 -- observer must never kill the run + logger.warning(f"JudgeAesthetic observer call failed: {err}") + return [] + obs = self._parse_observations( + rsp, expected_ids={el.id for el in best.elements} + ) + if obs or (rsp or "").strip().startswith("["): + # A parseable (possibly all-ok) array is a final answer. + return obs + logger.warning( + f"JudgeAesthetic observer parse failed (attempt {attempt}/" + f"{_OBSERVE_MAX_RETRIES})." + ) + return [] @staticmethod def _render_images(candidates: List[Candidate], spec: DesignSpec) -> List[str]: diff --git a/metagpt/ext/agentlayout/actions/judge_critic_a3.py b/metagpt/ext/agentlayout/actions/judge_critic_a3.py new file mode 100644 index 000000000..044632add --- /dev/null +++ b/metagpt/ext/agentlayout/actions/judge_critic_a3.py @@ -0,0 +1,104 @@ +"""Vision-required A3 Judge-Critic action: actionable issues for B0 only.""" +from __future__ import annotations + +from pathlib import Path +from typing import Any, Dict, List, Optional + +from PIL import Image +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.tools.analyst_vision import image_to_base64 +from metagpt.ext.agentlayout.tools.judge_critic import ( + JUDGE_CRITIC_RESULT_FILENAME, + JudgeCriticResult, + build_judge_critic_request, + parse_judge_critic_result, + save_judge_critic_request, + validate_critic_targets, +) +from metagpt.logs import logger + + +A3_JUDGE_CRITIC_MAX_RETRIES = 3 + + +class JudgeCriticA3(Action): + """Inspect the selected B0 render alone and emit at most two issues. + + This action never ranks, scores or re-selects; selection belongs to the + separate JudgeSelectA3 call that already happened. It only produces the + gate-ready actionable-issue contract consumed by the A3-07 repair gate. + """ + + name: str = "JudgeCriticA3" + desc: str = "A3 internal Judge-Critic: element-level actionable issues on B0." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + b0_candidate_id: str, + render_ref: str, + known_asset_ids: List[str], + context: Optional[Dict[str, Any]] = None, + artifacts_dir: Optional[Path] = None, + ) -> JudgeCriticResult: + if not self.llm.support_image_input(): + raise RuntimeError( + "A3 Judge-Critic requires image input; text-only fallback is forbidden" + ) + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Judge-Critic model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + + request = build_judge_critic_request( + b0_candidate_id=b0_candidate_id, + render_ref=render_ref, + known_asset_ids=known_asset_ids, + context=context, + ) + if artifacts_dir is not None: + save_judge_critic_request(request, artifacts_dir) + with Image.open(render_ref) as render: + images = [image_to_base64(render)] + prompt = request.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_JUDGE_CRITIC_MAX_RETRIES + 1): + response = await self.llm.aask(prompt, images=images) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + result = parse_judge_critic_result(response) + validate_critic_targets(result, known_asset_ids) + if artifacts_dir is not None: + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / JUDGE_CRITIC_RESULT_FILENAME, + result.model_dump(mode="json"), + ) + return result + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"JudgeCriticA3 attempt {attempt}/{A3_JUDGE_CRITIC_MAX_RETRIES} " + f"failed: {error}" + ) + prompt = ( + request.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"JudgeCriticA3 failed after {A3_JUDGE_CRITIC_MAX_RETRIES} attempts: {last_error}" + ) diff --git a/metagpt/ext/agentlayout/actions/judge_select_a3.py b/metagpt/ext/agentlayout/actions/judge_select_a3.py new file mode 100644 index 000000000..d2121b435 --- /dev/null +++ b/metagpt/ext/agentlayout/actions/judge_select_a3.py @@ -0,0 +1,106 @@ +"""Vision-required A3 Judge-Select action: rank three R0 renders, pick B0.""" +from __future__ import annotations + +from pathlib import Path +from typing import Any, Dict, List, Optional + +from PIL import Image +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.tools.analyst_vision import image_to_base64 +from metagpt.ext.agentlayout.tools.judge_select import ( + JUDGE_SELECT_CANDIDATE_COUNT, + JUDGE_SELECT_RESULT_FILENAME, + JudgeSelectCandidate, + JudgeSelectResult, + build_judge_select_request, + parse_judge_select_result, + save_judge_select_request, + validate_selection, +) +from metagpt.logs import logger + + +A3_JUDGE_SELECT_MAX_RETRIES = 3 + + +class JudgeSelectA3(Action): + """Compare exactly three rendered R0 candidates and select B0. + + This action only ranks. It never emits critique, feedback or verdicts; + critique belongs to the separate JudgeCriticA3 call on B0 alone. + """ + + name: str = "JudgeSelectA3" + desc: str = "A3 internal Judge-Select: best-of-3 ranking without critique." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + candidates: List[JudgeSelectCandidate], + context: Optional[Dict[str, Any]] = None, + artifacts_dir: Optional[Path] = None, + ) -> JudgeSelectResult: + if not self.llm.support_image_input(): + raise RuntimeError( + "A3 Judge-Select requires image input; text-only fallback is forbidden" + ) + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Judge-Select model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + if len(candidates) != JUDGE_SELECT_CANDIDATE_COUNT: + raise ValueError( + f"A3 Judge-Select requires exactly {JUDGE_SELECT_CANDIDATE_COUNT} " + f"rendered candidates, got {len(candidates)}" + ) + + request = build_judge_select_request(candidates, context) + if artifacts_dir is not None: + save_judge_select_request(request, artifacts_dir) + images = [] + for candidate in candidates: + with Image.open(candidate.render_ref) as render: + images.append(image_to_base64(render)) + candidate_ids = [candidate.candidate_id for candidate in candidates] + prompt = request.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_JUDGE_SELECT_MAX_RETRIES + 1): + response = await self.llm.aask(prompt, images=images) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + result = parse_judge_select_result(response) + validate_selection(result, candidate_ids) + if artifacts_dir is not None: + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / JUDGE_SELECT_RESULT_FILENAME, + result.model_dump(mode="json"), + ) + return result + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"JudgeSelectA3 attempt {attempt}/{A3_JUDGE_SELECT_MAX_RETRIES} " + f"failed: {error}" + ) + prompt = ( + request.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError( + f"JudgeSelectA3 failed after {A3_JUDGE_SELECT_MAX_RETRIES} attempts: {last_error}" + ) diff --git a/metagpt/ext/agentlayout/actions/plan_assets_a3.py b/metagpt/ext/agentlayout/actions/plan_assets_a3.py new file mode 100644 index 000000000..962194daa --- /dev/null +++ b/metagpt/ext/agentlayout/actions/plan_assets_a3.py @@ -0,0 +1,78 @@ +"""Structured A3 Asset Planner producing the versioned Layout Tree.""" +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +from pydantic import ValidationError + +from metagpt.actions import Action +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + apply_analyst_semantics, + build_tree_request, + parse_layout_tree, + save_tree_request, + validate_tree_against_analyst, +) +from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput +from metagpt.logs import logger + + +A3_PLANNER_MAX_RETRIES = 3 + + +class PlanAssetsA3(Action): + name: str = "PlanAssetsA3" + desc: str = "Produce a versioned explicit Layout Tree before coordinate placement." + + def __init__(self, *, expected_model: str, **kwargs): + super().__init__(**kwargs) + self.expected_model = expected_model + + async def run( + self, + *, + analyst: A3AnalystOutput, + artifacts_dir: Optional[Path] = None, + ) -> A3LayoutTree: + actual_model = str(getattr(self.llm, "model", "")) + if actual_model != self.expected_model: + raise RuntimeError( + f"A3 Planner model mismatch: expected {self.expected_model!r}, " + f"got {actual_model!r}" + ) + request = build_tree_request(analyst) + if artifacts_dir is not None: + save_tree_request(request, artifacts_dir) + prompt = request.prompt + last_error: Optional[Exception] = None + for attempt in range(1, A3_PLANNER_MAX_RETRIES + 1): + response = await self.llm.aask(prompt) + if artifacts_dir is not None: + response_path = artifacts_dir / f"attempt_{attempt:02d}_response.txt" + with response_path.open("x", encoding="utf-8") as handle: + handle.write(response) + try: + tree = parse_layout_tree(response) + tree = apply_analyst_semantics(tree, analyst) + validate_tree_against_analyst(tree, analyst) + if artifacts_dir is not None: + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once( + artifacts_dir / "layout_tree.json", tree.model_dump(mode="json") + ) + return tree + except (ValueError, ValidationError) as error: + last_error = error + logger.warning( + f"PlanAssetsA3 attempt {attempt}/{A3_PLANNER_MAX_RETRIES} failed: {error}" + ) + prompt = ( + request.prompt + + "\n\n# Previous response validation error\n" + + str(error) + + "\nReturn a corrected complete JSON object." + ) + raise ValueError(f"PlanAssetsA3 failed after {A3_PLANNER_MAX_RETRIES} attempts: {last_error}") diff --git a/metagpt/ext/agentlayout/evaluation/a3_relation_stats.py b/metagpt/ext/agentlayout/evaluation/a3_relation_stats.py new file mode 100644 index 000000000..0c173a20a --- /dev/null +++ b/metagpt/ext/agentlayout/evaluation/a3_relation_stats.py @@ -0,0 +1,557 @@ +"""Statistical reanalysis of Relation N=100 T0/T2/T3 SGC/TLC/PCA. + +Zero-cost, read-only: recomputes the deterministic per-sample human-reference +layout-realization metrics from frozen run artifacts (final selected candidate +in ``pipeline/l0_result.json`` + P-Full canvas dimensions + the merged human +oracle trees) — no layout is regenerated and no API is called. Generation +failures come from ``a3_run_summary.json`` and stay explicit rows. + +For each of the nine paired comparisons ({T2-T0, T3-T0, T3-T2} x {SGC, TLC, +PCA}) on the both-arms-successful intersection it reports wins/losses/ties, +the exact two-sided sign-test p (ties excluded), the paired mean difference +with a sample-level percentile-bootstrap 95% CI (fixed seed, fresh generator +per comparison), and Holm plus Bonferroni adjustments across the nine tests. + +Non-significant results must be read as "no difference detected", never as +equivalence; the rendered Results paragraph encodes that wording. +""" +from __future__ import annotations + +import json +import sys +from math import comb +from pathlib import Path +from typing import Any, Dict, List, Optional, Sequence, Tuple + +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import ( + BOOTSTRAP_RESAMPLES, + BOOTSTRAP_SEED, + CONFIDENCE_LEVEL, + bootstrap_ci, + write_bytes_once, +) +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree +from metagpt.ext.agentlayout.run_manifest import ( + canonical_json_bytes, + load_sample_ids, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.schema import Candidate +from metagpt.ext.agentlayout.tools.human_tree_metrics import evaluate_layout_realization + +A3_RELATION_STATS_SCHEMA_VERSION = "a3.relation-stats.v1" +METRICS = ("sgc", "tlc", "pca") +COMPARISONS = (("T2", "T0"), ("T3", "T0"), ("T3", "T2")) + +_CODE_FILES = ( + "metagpt/ext/agentlayout/evaluation/a3_relation_stats.py", + "metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py", + "metagpt/ext/agentlayout/tools/human_tree_metrics.py", + "metagpt/ext/agentlayout/layout_tree_v3.py", +) + + +def sign_test_two_sided(wins: int, losses: int) -> Optional[float]: + """Exact two-sided binomial sign test with ties excluded. + + ``p = min(1, 2 * P(X <= min(wins, losses)))`` for X ~ Binomial(n, 0.5). + Returns None when every pair is a tie (no informative pairs). + """ + n = wins + losses + if n == 0: + return None + k = min(wins, losses) + tail = sum(comb(n, i) for i in range(k + 1)) / (2**n) + return min(1.0, 2.0 * tail) + + +def holm_adjust(p_values: Sequence[Optional[float]]) -> List[Optional[float]]: + """Holm step-down adjustment; ``None`` entries pass through untouched.""" + indexed = [(i, p) for i, p in enumerate(p_values) if p is not None] + m = len(indexed) + adjusted: List[Optional[float]] = [None] * len(p_values) + running_max = 0.0 + for rank, (index, p) in enumerate(sorted(indexed, key=lambda item: item[1])): + value = min(1.0, (m - rank) * p) + running_max = max(running_max, value) + adjusted[index] = running_max + return adjusted + + +def bonferroni_adjust(p_values: Sequence[Optional[float]]) -> List[Optional[float]]: + m = sum(1 for p in p_values if p is not None) + return [None if p is None else min(1.0, m * p) for p in p_values] + + +def load_arm_per_sample( + *, run_dir: Path, oracle_dir: Path, arm: str +) -> Tuple[List[Dict[str, Any]], List[str]]: + """Recompute per-sample SGC/TLC/PCA for one arm from frozen artifacts. + + Returns (rows, sample_ids). Failed generations become explicit + ``status='generation_failure'`` rows sourced from ``a3_run_summary.json``. + """ + run_dir = run_dir.resolve() + sample_ids = load_sample_ids(run_dir / "sample_ids.json") + summary = json.loads((run_dir / "a3_run_summary.json").read_text()) + failed_info = { + entry["sample_id"]: entry + for entry in summary["samples"] + if entry["status"] != "completed" + } + + rows: List[Dict[str, Any]] = [] + for sample_id in sample_ids: + row: Dict[str, Any] = { + "schema_version": A3_RELATION_STATS_SCHEMA_VERSION, + "arm": arm, + "sample_id": sample_id, + } + if sample_id in failed_info: + row.update( + status="generation_failure", + error_type=failed_info[sample_id].get("error_type"), + sgc=None, + tlc=None, + pca=None, + skip_reasons=[], + ) + rows.append(row) + continue + + sample_dir = run_dir / "samples" / sample_id + l0_path = sample_dir / "pipeline" / "l0_result.json" + l0 = json.loads(l0_path.read_text()) + slot_id = l0["b0_slot_id"] + slot = next(s for s in l0["bundle"]["slots"] if s["slot_id"] == slot_id) + candidate = Candidate.model_validate(slot["candidate"]) + manifest = json.loads( + (sample_dir / "inputs" / "pfull" / "asset_manifest.json").read_text() + ) + oracle_path = oracle_dir / f"{sample_id}.json" + oracle = A3LayoutTree.model_validate_json(oracle_path.read_text()) + metrics = evaluate_layout_realization( + tree=oracle, + candidate=candidate, + canvas_width=manifest["canvas_width"], + canvas_height=manifest["canvas_height"], + sample_id=sample_id, + method=arm, + ) + row.update( + status="completed", + error_type=None, + sgc=metrics.sgc, + tlc=metrics.tlc, + pca=metrics.pca, + skip_reasons=metrics.skip_reasons, + l0_result_sha256=sha256_file(l0_path), + oracle_sha256=sha256_file(oracle_path), + ) + rows.append(row) + return rows, sample_ids + + +def compare_arms( + rows_a: Sequence[Dict[str, Any]], + rows_b: Sequence[Dict[str, Any]], + metric: str, +) -> Dict[str, Any]: + """Paired stats for arm_a - arm_b on the both-successful intersection.""" + by_id_a = {row["sample_id"]: row for row in rows_a} + by_id_b = {row["sample_id"]: row for row in rows_b} + paired_ids = sorted( + sample_id + for sample_id in by_id_a + if sample_id in by_id_b + and by_id_a[sample_id]["status"] == "completed" + and by_id_b[sample_id]["status"] == "completed" + and by_id_a[sample_id][metric] is not None + and by_id_b[sample_id][metric] is not None + ) + diffs = [by_id_a[s][metric] - by_id_b[s][metric] for s in paired_ids] + wins = sum(1 for d in diffs if d > 0) + losses = sum(1 for d in diffs if d < 0) + ties = len(diffs) - wins - losses + mean_diff = sum(diffs) / len(diffs) if diffs else None + return { + "metric": metric, + "paired_n": len(diffs), + "paired_sample_ids_excluded": sorted( + set(by_id_a) & set(by_id_b) - set(paired_ids) + ), + "wins": wins, + "losses": losses, + "ties": ties, + "sign_test_p_raw": sign_test_two_sided(wins, losses), + "mean_diff": mean_diff, + "mean_diff_ci95": bootstrap_ci( + diffs, lambda values: sum(values) / len(values) + ), + } + + +def analyze( + *, + run_dirs: Dict[str, Path], + oracle_dir: Path, + repo_root: Path, +) -> Dict[str, Any]: + """Full reanalysis over the three arms; returns aggregate + per-sample rows.""" + oracle_dir = oracle_dir.resolve() + arm_rows: Dict[str, List[Dict[str, Any]]] = {} + arm_meta: Dict[str, Any] = {} + frozen_ids: Optional[List[str]] = None + for arm, run_dir in run_dirs.items(): + rows, sample_ids = load_arm_per_sample( + run_dir=run_dir, oracle_dir=oracle_dir, arm=arm + ) + if frozen_ids is None: + frozen_ids = sample_ids + elif frozen_ids != sample_ids: + raise ValueError(f"arm {arm} uses a different frozen sample-ID list") + arm_rows[arm] = rows + failures = [r for r in rows if r["status"] == "generation_failure"] + arm_meta[arm] = { + "run_dir": str(run_dir.resolve()), + "sample_ids_sha256": sha256_file(run_dir / "sample_ids.json"), + "run_summary_sha256": sha256_file(run_dir / "a3_run_summary.json"), + "n_frozen": len(sample_ids), + "n_completed": sum(1 for r in rows if r["status"] == "completed"), + "n_generation_failures": len(failures), + "generation_failures": [ + {"sample_id": r["sample_id"], "error_type": r["error_type"]} + for r in failures + ], + "metric_valid_n": { + metric: sum( + 1 + for r in rows + if r["status"] == "completed" and r[metric] is not None + ) + for metric in METRICS + }, + "metric_mean": { + metric: ( + lambda values: sum(values) / len(values) if values else None + )( + [ + r[metric] + for r in rows + if r["status"] == "completed" and r[metric] is not None + ] + ) + for metric in METRICS + }, + } + + comparisons: List[Dict[str, Any]] = [] + for arm_a, arm_b in COMPARISONS: + for metric in METRICS: + entry = compare_arms(arm_rows[arm_a], arm_rows[arm_b], metric) + entry["comparison"] = f"{arm_a}_vs_{arm_b}" + entry["direction"] = f"{arm_a} - {arm_b}" + comparisons.append(entry) + + raw_ps = [entry["sign_test_p_raw"] for entry in comparisons] + for entry, holm, bonferroni in zip( + comparisons, holm_adjust(raw_ps), bonferroni_adjust(raw_ps) + ): + entry["sign_test_p_holm"] = holm + entry["sign_test_p_bonferroni"] = bonferroni + + total_failures = sum( + arm_meta[arm]["n_generation_failures"] for arm in run_dirs + ) + return { + "schema_version": A3_RELATION_STATS_SCHEMA_VERSION, + "oracle_dir": str(oracle_dir), + "frozen_sample_n": len(frozen_ids or []), + "arms": arm_meta, + "total_generation_failures": total_failures, + "total_generation_attempts": len(frozen_ids or []) * len(run_dirs), + "family_size": len([p for p in raw_ps if p is not None]), + "comparisons": comparisons, + "bootstrap": { + "seed": BOOTSTRAP_SEED, + "resamples": BOOTSTRAP_RESAMPLES, + "confidence": CONFIDENCE_LEVEL, + "method": "percentile", + "note": "fresh np.random.default_rng(seed) per comparison", + }, + "code_sha256": {rel: sha256_file(repo_root / rel) for rel in _CODE_FILES}, + "per_sample": [row for arm in run_dirs for row in arm_rows[arm]], + } + + +def _fmt_p(p: Optional[float]) -> str: + if p is None: + return "--" + if p < 1e-4: + return f"{p:.1e}" + return f"{p:.4f}" + + +def _fmt_ci(ci: Optional[Dict[str, Any]]) -> str: + if ci is None: + return "--" + return f"[{ci['low']:+.4f}, {ci['high']:+.4f}]" + + +def render_markdown(aggregate: Dict[str, Any]) -> str: + lines = [ + "# Relation N=100 SGC/TLC/PCA statistical reanalysis", + "", + f"Schema `{aggregate['schema_version']}`; sign test = exact two-sided binomial " + "(ties excluded); Holm adjustment over all " + f"{aggregate['family_size']} tests; Bonferroni shown as sensitivity analysis; " + f"bootstrap CI = sample-level percentile, seed {aggregate['bootstrap']['seed']}, " + f"{aggregate['bootstrap']['resamples']:,} resamples.", + "", + "## Arm summary", + "", + "| Arm | Frozen N | Completed | Failures | SGC mean (n) | TLC mean (n) | PCA mean (n) |", + "| --- | ---: | ---: | ---: | ---: | ---: | ---: |", + ] + for arm, meta in aggregate["arms"].items(): + cells = [ + arm, + str(meta["n_frozen"]), + str(meta["n_completed"]), + str(meta["n_generation_failures"]), + ] + for metric in METRICS: + mean = meta["metric_mean"][metric] + n = meta["metric_valid_n"][metric] + cells.append(f"{mean:.4f} ({n})" if mean is not None else "--") + lines.append("| " + " | ".join(cells) + " |") + failures = [ + f"{arm} `{f['sample_id']}` ({f['error_type']})" + for arm, meta in aggregate["arms"].items() + for f in meta["generation_failures"] + ] + lines += [ + "", + f"Generation failures: {aggregate['total_generation_failures']}/" + f"{aggregate['total_generation_attempts']} — " + "; ".join(failures) + ".", + "", + "## Paired comparisons", + "", + "| Comparison | Metric | Paired N | W/L/T | Mean diff | 95% CI | p raw | p Holm | p Bonf |", + "| --- | --- | ---: | --- | ---: | --- | ---: | ---: | ---: |", + ] + for entry in aggregate["comparisons"]: + lines.append( + "| " + + " | ".join( + [ + entry["comparison"].replace("_vs_", " vs "), + entry["metric"].upper(), + str(entry["paired_n"]), + f"{entry['wins']}/{entry['losses']}/{entry['ties']}", + f"{entry['mean_diff']:+.4f}" if entry["mean_diff"] is not None else "--", + _fmt_ci(entry["mean_diff_ci95"]), + _fmt_p(entry["sign_test_p_raw"]), + _fmt_p(entry["sign_test_p_holm"]), + _fmt_p(entry["sign_test_p_bonferroni"]), + ] + ) + + " |" + ) + lines += ["", "## Conservative Results paragraph", "", render_results_paragraph(aggregate), ""] + return "\n".join(lines) + + +def render_latex(aggregate: Dict[str, Any]) -> str: + rows = [] + for entry in aggregate["comparisons"]: + rows.append( + " & ".join( + [ + entry["comparison"].replace("_vs_", " vs "), + entry["metric"].upper(), + str(entry["paired_n"]), + f"{entry['wins']}/{entry['losses']}/{entry['ties']}", + f"{entry['mean_diff']:+.4f}" if entry["mean_diff"] is not None else "--", + _fmt_ci(entry["mean_diff_ci95"]).replace("[", "$[").replace("]", "]$"), + _fmt_p(entry["sign_test_p_raw"]), + _fmt_p(entry["sign_test_p_holm"]), + _fmt_p(entry["sign_test_p_bonferroni"]), + ] + ) + + r" \\" + ) + body = "\n".join(rows) + seed = aggregate["bootstrap"]["seed"] + resamples = aggregate["bootstrap"]["resamples"] + return "\n".join( + [ + r"\begin{table}[t]", + r"\centering", + r"\small", + r"\caption{Relation $N{=}100$ paired reanalysis of human-reference" + r" SGC/TLC/PCA. Exact two-sided sign tests (ties excluded) with" + r" Holm adjustment across all nine tests (Bonferroni as sensitivity" + r" analysis); mean paired differences with sample-level percentile" + rf" bootstrap 95\% CIs (seed {seed}, {resamples:,} resamples).}}", + r"\label{tab:relation100-stats}", + r"\begin{tabular}{llrlrlrrr}", + r"\toprule", + r"Comparison & Metric & $N$ & W/L/T & $\Delta$ mean & 95\% CI" + r" & $p$ & $p_{\mathrm{Holm}}$ & $p_{\mathrm{Bonf}}$ \\", + r"\midrule", + body, + r"\bottomrule", + r"\end{tabular}", + r"\end{table}", + ] + ) + + +def render_results_paragraph(aggregate: Dict[str, Any]) -> str: + """One conservative paragraph; never claims equivalence from null results.""" + significant = [ + entry + for entry in aggregate["comparisons"] + if entry["sign_test_p_holm"] is not None and entry["sign_test_p_holm"] < 0.05 + ] + non_significant = [ + entry + for entry in aggregate["comparisons"] + if entry["sign_test_p_holm"] is None or entry["sign_test_p_holm"] >= 0.05 + ] + + def _describe(entry: Dict[str, Any]) -> str: + return ( + f"{entry['comparison'].replace('_vs_', ' vs ')} {entry['metric'].upper()} " + f"({entry['wins']}W/{entry['losses']}L/{entry['ties']}T, " + f"mean diff {entry['mean_diff']:+.4f}, " + f"95% CI {_fmt_ci(entry['mean_diff_ci95'])}, " + f"Holm p={_fmt_p(entry['sign_test_p_holm'])})" + ) + + parts = [ + f"Across {aggregate['frozen_sample_n']} frozen Relation samples per arm " + f"({aggregate['total_generation_failures']}/" + f"{aggregate['total_generation_attempts']} generation failures excluded " + "pairwise, so each comparison uses the intersection of samples that " + "completed in both arms), we ran nine paired two-sided sign tests with " + "Holm correction." + ] + if significant: + parts.append( + "After Holm adjustment, the following comparisons remained " + "significant at alpha=0.05: " + "; ".join(_describe(e) for e in significant) + "." + ) + else: + parts.append("No comparison remained significant after Holm adjustment.") + if non_significant: + names = ", ".join( + f"{e['comparison'].replace('_vs_', ' vs ')} {e['metric'].upper()}" + for e in non_significant + ) + parts.append( + f"For the remaining comparisons ({names}) no difference was detected; " + "because no equivalence test was performed, these null results must " + "not be interpreted as evidence that the arms are equivalent." + ) + return " ".join(parts) + + +def publish_bundle( + *, + aggregate: Dict[str, Any], + output_dir: Path, + evaluation_id: str, + command_argv: Sequence[str], +) -> Dict[str, Path]: + aggregate = dict(aggregate) + per_sample = aggregate.pop("per_sample") + aggregate["evaluation_id"] = evaluation_id + + # canonical_json_bytes already terminates each payload with "\n". + per_sample_bytes = b"".join(canonical_json_bytes(row) for row in per_sample) + aggregate_bytes = canonical_json_bytes(aggregate) + markdown_bytes = render_markdown(aggregate).encode("utf-8") + latex_bytes = render_latex(aggregate).encode("utf-8") + + manifest = { + "schema_version": A3_RELATION_STATS_SCHEMA_VERSION, + "evaluation_id": evaluation_id, + "created_at": utc_now(), + "command_argv": list(command_argv), + "arms": { + arm: { + key: meta[key] + for key in ("run_dir", "sample_ids_sha256", "run_summary_sha256") + } + for arm, meta in aggregate["arms"].items() + }, + "oracle_dir": aggregate["oracle_dir"], + "code_sha256": aggregate["code_sha256"], + "bootstrap": aggregate["bootstrap"], + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + "results.md": sha256_bytes(markdown_bytes), + "results.tex": sha256_bytes(latex_bytes), + }, + "write_once": True, + } + + paths = { + "aggregate": output_dir / "aggregate.json", + "per_sample": output_dir / "per_sample.jsonl", + "results_md": output_dir / "results.md", + "results_tex": output_dir / "results.tex", + "manifest": output_dir / "evaluation_manifest.json", + } + write_bytes_once(paths["aggregate"], aggregate_bytes) + write_bytes_once(paths["per_sample"], per_sample_bytes) + write_bytes_once(paths["results_md"], markdown_bytes) + write_bytes_once(paths["results_tex"], latex_bytes) + write_json_once(paths["manifest"], manifest) + return paths + + +def main(argv: Optional[Sequence[str]] = None) -> int: + import argparse + + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--t0-run-dir", required=True, type=Path) + parser.add_argument("--t2-run-dir", required=True, type=Path) + parser.add_argument("--t3-run-dir", required=True, type=Path) + parser.add_argument("--oracle-dir", required=True, type=Path) + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[4]) + args = parser.parse_args(argv) + + aggregate = analyze( + run_dirs={ + "T0": args.t0_run_dir, + "T2": args.t2_run_dir, + "T3": args.t3_run_dir, + }, + oracle_dir=args.oracle_dir, + repo_root=args.repo_root, + ) + output_dir = ( + args.output_root / A3_RELATION_STATS_SCHEMA_VERSION / args.evaluation_id + ) + paths = publish_bundle( + aggregate=aggregate, + output_dir=output_dir, + evaluation_id=args.evaluation_id, + command_argv=list(sys.argv) if argv is None else ["", *argv], + ) + for name, path in paths.items(): + print(f"{name}: {path}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py b/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py new file mode 100644 index 000000000..2ea7cdc45 --- /dev/null +++ b/metagpt/ext/agentlayout/evaluation/a3_sega_evaluator.py @@ -0,0 +1,1714 @@ +"""Read-only, zero-LLM SEGA/PKU metric evaluation for persisted A3 runs. + +The evaluator consumes the selected B0 candidate recorded in each A3 +``pipeline/l0_result.json``. It never renders a new candidate and never writes +inside a run directory. Results are written by the companion CLI to a +versioned evaluation directory. + +Underlay metrics are deliberately conservative: P-Full v1 has no legal +underlay class. Raster assets are therefore *not* guessed to be underlays and +current A3 samples report Und_l/Und_s as not applicable. +""" +from __future__ import annotations + +import hashlib +import io +import importlib.metadata +import json +import math +import platform +import shlex +import statistics +import sys +from pathlib import Path +from typing import Any, Callable, Dict, Iterable, List, Literal, Optional, Sequence, Tuple + +import numpy as np +from PIL import Image +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( + CLS_IMAGE_LOGO, + CLS_TEXT, + CLS_UNDERLAY, + Layout, + metric_alignment, + metric_occlusion, + metric_overlay, + metric_readability, + metric_underlay_loose, + metric_underlay_strict, + to_xyxy, +) + +SCHEMA_VERSION = "a3.sega-evaluation.v1" +PROTOCOL_VERSION = "a3.sega-pku-protocol.v1" +VALID_AREA_FRACTION = 0.001 +METRIC_KEYS = ("Ali", "Ove", "Und_l", "Und_s", "Rea", "Occ") +TEXT_MEDIA_TYPES = frozenset({"text", "text_bitmap"}) +BLANK_BACKGROUND_RGB = (255, 255, 255) +SALIENCY_MODE_FROZEN = "basnet-isnet" +SALIENCY_MODE_SKIP = "skip" + + +class _StrictModel(BaseModel): + model_config = ConfigDict( + extra="forbid", strict=True, protected_namespaces=(), populate_by_name=True + ) + + +class MetricValue(_StrictModel): + status: Literal["ok", "not_applicable", "skipped"] + value: Optional[float] + reason: Optional[str] + + @model_validator(mode="after") + def validate_status_value(self): + if self.status == "ok": + if self.value is None or not math.isfinite(self.value): + raise ValueError("ok metric requires a finite value") + elif self.value is not None: + raise ValueError(f"{self.status} metric must have a null value") + return self + + +class SixMetrics(_StrictModel): + Ali: MetricValue + Ove: MetricValue + Und_l: MetricValue + Und_s: MetricValue + Rea: MetricValue + Occ: MetricValue + + +class AggregateMetric(_StrictModel): + value: Optional[float] + applicable_n: int = Field(ge=0) + valid_n: int = Field(ge=0) + skipped_n: int = Field(ge=0) + metric_skipped_n: int = Field(ge=0) + source_skipped_n: int = Field(ge=0) + not_applicable_n: int = Field(ge=0) + zero_contribution_n: int = Field(ge=0) + + @model_validator(mode="after") + def validate_counts(self): + if self.skipped_n != self.metric_skipped_n + self.source_skipped_n: + raise ValueError("skipped_n must equal metric_skipped_n + source_skipped_n") + if self.applicable_n != self.valid_n + self.metric_skipped_n: + raise ValueError("applicable_n must equal valid_n + metric_skipped_n") + if self.zero_contribution_n > self.valid_n: + raise ValueError("zero_contribution_n cannot exceed valid_n") + if self.valid_n == 0: + if self.value is not None: + raise ValueError("aggregate without valid rows must have a null value") + elif self.value is None or not math.isfinite(self.value): + raise ValueError("aggregate with valid rows requires a finite value") + return self + + +class SixAggregates(_StrictModel): + Ali: AggregateMetric + Ove: AggregateMetric + Und_l: AggregateMetric + Und_s: AggregateMetric + Rea: AggregateMetric + Occ: AggregateMetric + + +class ArtifactRecord(_StrictModel): + path: str = Field(min_length=1) + sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + size_bytes: int = Field(ge=0) + + +class CanvasRecord(_StrictModel): + width: int = Field(gt=0) + height: int = Field(gt=0) + + +class ElementRecord(_StrictModel): + asset_id: str = Field(min_length=1) + class_code: Literal[1, 2, 3] + class_source: str = Field(min_length=1) + bbox_lwh_raw: List[float] = Field(min_length=4, max_length=4) + bbox_xyxy_clipped: Optional[List[float]] = Field( + default=None, min_length=4, max_length=4 + ) + valid: bool + + @model_validator(mode="after") + def validate_bbox_state(self): + if self.valid != (self.bbox_xyxy_clipped is not None): + raise ValueError("valid must agree with bbox_xyxy_clipped presence") + for value in self.bbox_lwh_raw + (self.bbox_xyxy_clipped or []): + if not math.isfinite(value): + raise ValueError("element bbox values must be finite") + return self + + +class ElementCountsRecord(_StrictModel): + raw: int = Field(ge=0) + valid: int = Field(ge=0) + invalid_below_0_1pct: int = Field(ge=0) + + @model_validator(mode="after") + def conserve_elements(self): + if self.raw != self.valid + self.invalid_below_0_1pct: + raise ValueError("raw element count must equal valid + invalid") + return self + + +class UnderlayProtocolRecord(_StrictModel): + label_source: str = Field(min_length=1) + applicable: bool + valid_underlay_ids: List[str] + raster_inference_forbidden: Literal[True] + + @model_validator(mode="after") + def validate_applicability(self): + if self.applicable != bool(self.valid_underlay_ids): + raise ValueError("underlay applicability must agree with valid IDs") + return self + + +class BackgroundRecord(_StrictModel): + kind: Literal["blank_canvas", "asset"] + rgb: Optional[List[int]] + renderer_contract: str = Field(min_length=1) + asset_id: Optional[str] + asset_ref: Optional[str] + asset_sha256: Optional[str] + asset_size_bytes: Optional[int] + pfull_asset_sha256: Optional[str] = None + r3_asset_sha256: Optional[str] = None + + @model_validator(mode="after") + def validate_background_variant(self): + hashes = ( + self.asset_sha256, + self.pfull_asset_sha256, + self.r3_asset_sha256, + ) + if self.kind == "blank_canvas": + if self.rgb != list(BLANK_BACKGROUND_RGB): + raise ValueError("blank canvas must use frozen RGB") + if any( + value is not None + for value in ( + self.asset_id, + self.asset_ref, + self.asset_sha256, + self.asset_size_bytes, + self.pfull_asset_sha256, + self.r3_asset_sha256, + ) + ): + raise ValueError("blank canvas cannot carry asset provenance") + else: + if self.rgb is not None: + raise ValueError("asset background RGB must be null") + if not self.asset_id or not self.asset_ref or self.asset_size_bytes is None: + raise ValueError("asset background provenance is incomplete") + if any(value is None for value in hashes): + raise ValueError("asset background hashes are required") + if any( + not isinstance(value, str) + or len(value) != 64 + or any(char not in "0123456789abcdef" for char in value) + for value in hashes + ): + raise ValueError("asset background hashes must be SHA-256") + if len(set(hashes)) != 1: + raise ValueError("asset background producer hashes must agree") + return self + + +class SaliencyRecord(_StrictModel): + status: Literal["computed", "skipped_explicit"] + map_sha256: Optional[str] + + @model_validator(mode="after") + def validate_map_hash(self): + if self.status == "computed": + if ( + not isinstance(self.map_sha256, str) + or len(self.map_sha256) != 64 + or any(char not in "0123456789abcdef" for char in self.map_sha256) + ): + raise ValueError("computed saliency requires a SHA-256 map hash") + elif self.map_sha256 is not None: + raise ValueError("skipped saliency cannot have a map hash") + return self + + +class CompletedSampleBase(_StrictModel): + run_id: str = Field(min_length=1) + sample_id: str = Field(min_length=1) + canvas: CanvasRecord + b0_slot_id: str = Field(min_length=1) + b0_render_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + elements: List[ElementRecord] + element_counts: ElementCountsRecord + underlay_protocol: UnderlayProtocolRecord + background: BackgroundRecord + source_artifacts: List[ArtifactRecord] = Field(min_length=4) + + @model_validator(mode="after") + def validate_completed_sample(self): + if self.element_counts.raw != len(self.elements): + raise ValueError("element_counts.raw must equal element rows") + if self.element_counts.valid != sum(element.valid for element in self.elements): + raise ValueError("element_counts.valid must equal valid element rows") + paths = [artifact.path for artifact in self.source_artifacts] + if len(paths) != len(set(paths)): + raise ValueError("source artifact paths must be unique per sample") + expected_artifact_n = 4 if self.background.kind == "blank_canvas" else 5 + if len(self.source_artifacts) != expected_artifact_n: + raise ValueError("completed sample source artifact set is incomplete") + hashes = {artifact.sha256 for artifact in self.source_artifacts} + if self.b0_render_sha256 not in hashes: + raise ValueError("B0 render hash is absent from source artifacts") + if self.background.kind == "asset": + by_path = {artifact.path: artifact for artifact in self.source_artifacts} + background_artifact = by_path.get(self.background.asset_ref or "") + if ( + background_artifact is None + or background_artifact.sha256 != self.background.asset_sha256 + or background_artifact.size_bytes != self.background.asset_size_bytes + ): + raise ValueError("background artifact provenance mismatch") + return self + + +class EvaluatedSampleRecord(CompletedSampleBase): + status: Literal["evaluated"] + background_array_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + metrics: SixMetrics + saliency: SaliencyRecord + + +class ValidatedSampleRecord(CompletedSampleBase): + status: Literal["validated"] + metrics: Dict[str, Any] + + @model_validator(mode="after") + def metrics_must_be_empty(self): + if self.metrics: + raise ValueError("validated-only metrics must be empty") + return self + + +class FailedSummaryEntry(_StrictModel): + error_type: str = Field(min_length=1) + message: str = Field(min_length=1) + sample_id: str = Field(min_length=1) + status: Literal["failed"] + + +class SourceSkippedRecord(_StrictModel): + run_id: str = Field(min_length=1) + sample_id: str = Field(min_length=1) + status: Literal["source_skipped"] + source_status: Literal["failed"] + reason: str = Field(min_length=1) + summary_entry: FailedSummaryEntry + metrics: Dict[str, Any] + source_artifacts: List[Any] + + @model_validator(mode="after") + def validate_skipped(self): + if self.metrics or self.source_artifacts: + raise ValueError("source-skipped metrics/artifacts must be empty") + if self.sample_id != self.summary_entry.sample_id: + raise ValueError("source-skipped sample ID mismatch") + return self + + +class RunCounts(_StrictModel): + selected_n: int = Field(ge=0) + source_valid_n: int = Field(ge=0) + source_skipped_n: int = Field(ge=0) + evaluated_n: int = Field(ge=0) + validated_only_n: int = Field(ge=0) + + @model_validator(mode="after") + def conserve(self): + if self.selected_n != self.source_valid_n + self.source_skipped_n: + raise ValueError("selected count is not conserved") + if self.source_valid_n != self.evaluated_n + self.validated_only_n: + raise ValueError("source-valid count is not conserved") + return self + + +class SummaryCounts(_StrictModel): + reported_total: int = Field(ge=0) + reported_completed: Optional[int] = Field(default=None, ge=0) + reported_failed: int = Field(ge=0) + reported_sample_n: int = Field(ge=0) + completed_n: int = Field(ge=0) + failed_n: int = Field(ge=0) + other_status_n: int = Field(ge=0) + formal_complete: bool + + @model_validator(mode="after") + def conserve(self): + if self.reported_total != self.reported_sample_n: + raise ValueError("reported sample count mismatch") + if self.reported_sample_n != self.completed_n + self.failed_n + self.other_status_n: + raise ValueError("summary terminal counts are not conserved") + if self.reported_failed != self.failed_n: + raise ValueError("reported failed count mismatch") + if self.reported_completed is not None and self.reported_completed != self.completed_n: + raise ValueError("reported completed count mismatch") + if self.formal_complete != (self.other_status_n == 0): + raise ValueError("formal_complete flag mismatch") + return self + + +class RunSelection(_StrictModel): + max_samples: Optional[int] = Field(default=None, gt=0) + selected_n: int = Field(ge=0) + formal_complete_run: bool + + +class SourceRunRecord(_StrictModel): + run_id: str = Field(min_length=1) + run_dir: str = Field(min_length=1) + summary: ArtifactRecord + manifest: ArtifactRecord + sample_ids: ArtifactRecord + summary_counts: SummaryCounts + selection: RunSelection + observed_counts: RunCounts + + @model_validator(mode="after") + def validate_selection(self): + if self.selection.selected_n != self.observed_counts.selected_n: + raise ValueError("source-run selection/observed count mismatch") + if self.selection.selected_n > self.summary_counts.reported_total: + raise ValueError("selected rows exceed source summary total") + expected_formal = ( + self.selection.max_samples is None and self.summary_counts.formal_complete + ) + if self.selection.formal_complete_run != expected_formal: + raise ValueError("formal complete selection flag mismatch") + return self + + +class MatchedSamplesRecord(_StrictModel): + count: int = Field(ge=0) + ordered_sample_ids: List[str] + ordered_sample_ids_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + + +class PythonRuntime(_StrictModel): + version: str = Field(min_length=1) + implementation: str = Field(min_length=1) + executable: str = Field(min_length=1) + + +class PlatformRuntime(_StrictModel): + system: str = Field(min_length=1) + release: str = Field(min_length=1) + machine: str = Field(min_length=1) + platform: str = Field(min_length=1) + + +class DependencyRuntime(_StrictModel): + python: PythonRuntime + platform: PlatformRuntime + numpy: str = Field(min_length=1) + cv2: str = Field(min_length=1) + Pillow: str = Field(min_length=1) + torch: str = Field(min_length=1) + torchvision: str = Field(min_length=1) + transformers: str = Field(min_length=1) + rembg: str = Field(min_length=1) + onnxruntime: str = Field(min_length=1) + pydantic: str = Field(min_length=1) + pooch: str = Field(min_length=1) + onnxruntime_available_providers: List[str] = Field(min_length=1) + + +class CodeSources(_StrictModel): + sega_metrics_py: ArtifactRecord = Field(alias="sega_metrics.py") + a3_sega_evaluator_py: ArtifactRecord = Field(alias="a3_sega_evaluator.py") + evaluate_a3_sega_py: ArtifactRecord = Field(alias="evaluate_a3_sega.py") + saliency_basnet_isnet_py: ArtifactRecord = Field(alias="saliency_basnet_isnet.py") + + +class CodeRuntimeLineage(_StrictModel): + sources: CodeSources + runtime: DependencyRuntime + + +class BasnetArtifacts(_StrictModel): + config_json: ArtifactRecord = Field(alias="config.json") + model_safetensors: ArtifactRecord = Field(alias="model.safetensors") + configuration_basnet_py: ArtifactRecord = Field(alias="configuration_basnet.py") + modeling_basnet_py: ArtifactRecord = Field(alias="modeling_basnet.py") + + +class BasnetLoadContract(_StrictModel): + revision_argument: str = Field(min_length=1) + from_pretrained_path: str = Field(min_length=1) + local_files_only: Literal[True] + trust_remote_code: Literal[True] + force_download: Literal[False] + + +class BasnetLineage(_StrictModel): + model_id: Literal["creative-graphic-design/BASNet"] + revision: str = Field(min_length=1) + load_contract: BasnetLoadContract + snapshot_path: str = Field(min_length=1) + artifacts: BasnetArtifacts + + +class IsnetArtifact(_StrictModel): + path: str = Field(min_length=1) + sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + md5: str = Field(pattern=r"^[0-9a-f]{32}$") + size_bytes: int = Field(gt=0) + + +class IsnetLineage(_StrictModel): + model_id: Literal["rembg/isnet-general-use"] + artifact: IsnetArtifact + provider: Literal["CPUExecutionProvider"] + download_path: Literal["forbidden; direct verified ONNX bytes"] + + +class ExecutedCodeRecord(_StrictModel): + executed_path: str = Field(min_length=1) + executed_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + authoritative_path: str = Field(min_length=1) + authoritative_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + + @model_validator(mode="after") + def hashes_agree(self): + if self.executed_sha256 != self.authoritative_sha256: + raise ValueError("executed and authoritative code hashes differ") + return self + + +class BasnetExecutedCode(_StrictModel): + configuration_basnet_py: ExecutedCodeRecord = Field(alias="configuration_basnet.py") + modeling_basnet_py: ExecutedCodeRecord = Field(alias="modeling_basnet.py") + + +class BasnetRuntimeIdentity(_StrictModel): + model_id: Literal["creative-graphic-design/BASNet"] + requested_revision: str = Field(min_length=1) + resolved_snapshot: str = Field(min_length=1) + from_pretrained_path: str = Field(min_length=1) + local_files_only: Literal[True] + trust_remote_code: Literal[True] + force_download: Literal[False] + model_class_module: str = Field(min_length=1) + model_class_name: str = Field(min_length=1) + config_class_module: str = Field(min_length=1) + config_class_name: str = Field(min_length=1) + torch_version: str = Field(min_length=1) + transformers_version: str = Field(min_length=1) + executed_code: BasnetExecutedCode + + +class IsnetRuntimeIdentity(_StrictModel): + requested_model_name: Literal["isnet-general-use"] + session_model_name: Literal["isnet-general-use"] + session_reported_name: Literal["isnet-general-use"] + session_class_module: Literal["rembg.sessions.dis_general_use"] + session_class_name: Literal["DisSession"] + rembg_version: str = Field(min_length=1) + onnxruntime_version: str = Field(min_length=1) + requested_providers: List[Literal["CPUExecutionProvider"]] + active_providers: List[Literal["CPUExecutionProvider"]] + available_providers: List[str] = Field(min_length=1) + verified_artifact: IsnetArtifact + session_construction: Literal[ + "direct verified bytes; downloader bypassed" + ] + + +class DetectorRuntimeIdentity(_StrictModel): + basnet: BasnetRuntimeIdentity + isnet: IsnetRuntimeIdentity + + +class DetectorLineage(_StrictModel): + contract: Literal["frozen BASNet + ISNet, pixel-wise maximum"] + fusion: Literal["pixelwise_max"] + fail_closed: Literal[True] + network_downloads_allowed: Literal[False] + basnet: BasnetLineage + isnet: IsnetLineage + pku_deviation: str = Field(min_length=1) + implementation_sha256: str = Field(pattern=r"^[0-9a-f]{64}$") + runtime_identity: Optional[DetectorRuntimeIdentity] = None + + +class OcclusionProtocol(_StrictModel): + mode: Literal["basnet-isnet", "skip"] + detector: Optional[DetectorLineage] + sobel_fallback_forbidden: Literal[True] + + +class ValidityFilterProtocol(_StrictModel): + minimum_canvas_fraction: float + comparison: Literal["area >= threshold"] + + @model_validator(mode="after") + def frozen_threshold(self): + if self.minimum_canvas_fraction != VALID_AREA_FRACTION: + raise ValueError("validity threshold differs from frozen protocol") + return self + + +class BlankBackgroundProtocol(_StrictModel): + renderer_contract: Literal["R3"] + rgb: List[int] + + @model_validator(mode="after") + def frozen_rgb(self): + if self.rgb != list(BLANK_BACKGROUND_RGB): + raise ValueError("protocol blank background RGB mismatch") + return self + + +class ProtocolLineageRecord(_StrictModel): + schema_version: Literal["a3.sega-evaluation.v1"] + protocol_version: Literal["a3.sega-pku-protocol.v1"] + bbox_input: str = Field(min_length=1) + bbox_metric_frame: str = Field(min_length=1) + validity_filter: ValidityFilterProtocol + alignment: str = Field(min_length=1) + overlay_denominator: str = Field(min_length=1) + underlay: str = Field(min_length=1) + readability: str = Field(min_length=1) + blank_background: BlankBackgroundProtocol + occlusion: OcclusionProtocol + code_runtime_lineage: CodeRuntimeLineage + + +class WritePolicyRecord(_StrictModel): + source_runs_read_only: Literal[True] + output_is_versioned_sidecar: Literal[True] + existing_output_overwrite: Literal[False] + atomic_staging_publish: Literal[True] + atomic_no_replace_publish: Literal["renameat2(RENAME_NOREPLACE)"] + + +class CostRecord(_StrictModel): + llm_api_calls: int + llm_cost_usd: float + model_downloads: int + + @model_validator(mode="after") + def must_be_zero(self): + if self.llm_api_calls != 0 or self.llm_cost_usd != 0.0 or self.model_downloads != 0: + raise ValueError("zero-cost evaluator must record zero calls/cost/downloads") + return self + + +class EvaluationManifestRecord(_StrictModel): + schema_version: Literal["a3.sega-evaluation.v1"] + protocol_version: Literal["a3.sega-pku-protocol.v1"] + evaluation_id: str = Field(min_length=1) + created_at: str = Field(min_length=1) + mode: Literal["evaluate", "validate-only"] + command: str = Field(min_length=1) + command_argv: List[str] = Field(min_length=1) + source_runs: List[SourceRunRecord] = Field(min_length=1) + matched_samples: MatchedSamplesRecord + protocol_lineage: ProtocolLineageRecord + write_policy: WritePolicyRecord + cost: CostRecord + + +class A3EvaluationError(RuntimeError): + """Raised when persisted A3 evidence is missing, inconsistent, or mutated.""" + + +def _require_finite_tree(value: Any, context: str) -> None: + """Reject JSON-compatible trees containing NaN or infinity.""" + if isinstance(value, bool) or value is None or isinstance(value, (str, int)): + return + if isinstance(value, float): + if not math.isfinite(value): + raise A3EvaluationError(f"{context} contains a non-finite number") + return + if isinstance(value, dict): + for key, item in value.items(): + _require_finite_tree(item, f"{context}.{key}") + return + if isinstance(value, (list, tuple)): + for index, item in enumerate(value): + _require_finite_tree(item, f"{context}[{index}]") + return + + +def _finite_number(value: Any, context: str) -> float: + if isinstance(value, bool): + raise A3EvaluationError(f"{context} must be a finite number") + try: + result = float(value) + except (TypeError, ValueError) as exc: + raise A3EvaluationError(f"{context} must be a finite number") from exc + if not math.isfinite(result): + raise A3EvaluationError(f"{context} must be a finite number") + return result + + +def sha256_file(path: Path) -> str: + """Return the SHA-256 of a file without changing it.""" + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def sha256_array(array: np.ndarray) -> str: + """Hash array dtype, shape, and contiguous bytes for saliency lineage.""" + contiguous = np.ascontiguousarray(array) + digest = hashlib.sha256() + digest.update(str(contiguous.dtype).encode("ascii")) + digest.update(json.dumps(list(contiguous.shape)).encode("ascii")) + digest.update(contiguous.tobytes()) + return digest.hexdigest() + + +def _capture_file(path: Path) -> Tuple[bytes, Dict[str, Any]]: + """Read source bytes once and derive every capture field from those bytes.""" + try: + payload = path.read_bytes() + except OSError as exc: + raise A3EvaluationError(f"cannot capture required artifact {path}: {exc}") from exc + return payload, { + "path": str(path.resolve()), + "sha256": hashlib.sha256(payload).hexdigest(), + "size_bytes": len(payload), + } + + +def _load_json_captured(path: Path) -> Tuple[Dict[str, Any], Dict[str, Any]]: + payload, artifact = _capture_file(path) + try: + data = json.loads(payload.decode("utf-8")) + except (UnicodeDecodeError, json.JSONDecodeError) as exc: + raise A3EvaluationError(f"cannot read JSON artifact {path}: {exc}") from exc + if not isinstance(data, dict): + raise A3EvaluationError(f"JSON artifact must contain an object: {path}") + return data, artifact + + +def _load_json_list_captured(path: Path) -> Tuple[List[Any], Dict[str, Any]]: + payload, artifact = _capture_file(path) + try: + data = json.loads(payload.decode("utf-8")) + except (UnicodeDecodeError, json.JSONDecodeError) as exc: + raise A3EvaluationError(f"cannot read JSON artifact {path}: {exc}") from exc + if not isinstance(data, list): + raise A3EvaluationError(f"JSON artifact must contain an array: {path}") + return data, artifact + + +def _required_nonnegative_int(data: Dict[str, Any], key: str, context: str) -> int: + value = data.get(key) + if isinstance(value, bool) or not isinstance(value, int) or value < 0: + raise A3EvaluationError(f"{context} {key} must be a non-negative integer") + return value + + +def _resolve_artifact_ref(ref: str, run_dir: Path) -> Path: + path = Path(ref).expanduser() + if not path.is_absolute(): + path = run_dir / path + return path.resolve() + + +def _is_relative_to(path: Path, parent: Path) -> bool: + try: + path.relative_to(parent) + except ValueError: + return False + return True + + +def assert_output_is_sidecar(output_dir: Path, run_dirs: Sequence[Path]) -> None: + """Reject output paths inside the A3 source run tree.""" + resolved_output = output_dir.resolve() + canonical_runs_root = ( + Path(__file__).resolve().parents[4] / "layout_agent" / "runs" / "a3" + ) + if _is_relative_to(resolved_output, canonical_runs_root.resolve()): + raise A3EvaluationError( + "evaluation output must be outside layout_agent/runs/a3: " + f"{resolved_output}" + ) + for run_dir in run_dirs: + resolved_run = run_dir.resolve() + if _is_relative_to(resolved_output, resolved_run): + raise A3EvaluationError( + "evaluation output must be outside every source run directory: " + f"{resolved_output}" + ) + + +def clip_and_filter_layout( + layout: Layout, + canvas_w: float, + canvas_h: float, + area_fraction: float = VALID_AREA_FRACTION, +) -> Tuple[Layout, int]: + """Clip xyxy boxes to canvas, then remove intersections below 0.1%. + + The returned layout contains clipped boxes, so every downstream metric + receives one canonical canvas coordinate frame. Boxes exactly at the + threshold remain valid, matching PKU's ``area < threshold`` rejection. + """ + if canvas_w <= 0 or canvas_h <= 0: + raise A3EvaluationError(f"invalid canvas: {canvas_w}x{canvas_h}") + threshold = float(area_fraction) * float(canvas_w) * float(canvas_h) + kept: Layout = [] + dropped = 0 + for cls, (xl, yl, xr, yr) in layout: + cxl = min(float(canvas_w), max(0.0, float(xl))) + cyl = min(float(canvas_h), max(0.0, float(yl))) + cxr = min(float(canvas_w), max(0.0, float(xr))) + cyr = min(float(canvas_h), max(0.0, float(yr))) + area = max(0.0, cxr - cxl) * max(0.0, cyr - cyl) + if area < threshold: + dropped += 1 + continue + kept.append((int(cls), (cxl, cyl, cxr, cyr))) + return kept, dropped + + +def _asset_class(asset: Dict[str, Any]) -> Tuple[int, str]: + """Map a valid P-Full v1 asset without inventing an underlay class.""" + media_type = str(asset.get("media_type") or "").lower() + semantic_hint = str(asset.get("semantic_hint") or "").lower() + if media_type in TEXT_MEDIA_TYPES or semantic_hint in TEXT_MEDIA_TYPES: + return CLS_TEXT, "pfull.text-media" + return CLS_IMAGE_LOGO, "pfull.placeable-raster" + + +def _background_descriptor( + run_dir: Path, + pfull: Dict[str, Any], + r3: Dict[str, Any], +) -> Tuple[Dict[str, Any], Optional[bytes], Optional[Dict[str, Any]]]: + background_id = pfull.get("background_asset_id") + if not background_id: + return ( + { + "kind": "blank_canvas", + "rgb": list(BLANK_BACKGROUND_RGB), + "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", + "asset_id": None, + "asset_ref": None, + "asset_sha256": None, + "asset_size_bytes": None, + }, + None, + None, + ) + + asset = next( + (item for item in r3.get("assets", []) if item.get("asset_id") == background_id), + None, + ) + if asset is None: + raise A3EvaluationError(f"background asset {background_id!r} is absent from manifest") + ref = asset.get("asset_ref") + if not ref: + raise A3EvaluationError(f"background asset {background_id!r} has no asset_ref") + path = _resolve_artifact_ref(str(ref), run_dir) + payload, captured_artifact = _capture_file(path) + actual_sha = captured_artifact["sha256"] + pfull_asset = next( + (item for item in pfull.get("assets", []) if item.get("asset_id") == background_id), + None, + ) + if pfull_asset is None: + raise A3EvaluationError(f"background asset {background_id!r} is absent from P-Full") + r3_sha = str(asset.get("sha256") or "") + pfull_sha = str(pfull_asset.get("sha256") or "") + if not r3_sha or not pfull_sha: + raise A3EvaluationError( + f"background asset {background_id!r} lacks a producer manifest hash" + ) + if r3_sha != actual_sha: + raise A3EvaluationError( + f"R3 background hash mismatch for {background_id}: {actual_sha} != {r3_sha}" + ) + if pfull_sha != actual_sha: + raise A3EvaluationError( + f"P-Full background hash mismatch for {background_id}: " + f"{actual_sha} != {pfull_sha}" + ) + return ( + { + "kind": "asset", + "rgb": None, + "renderer_contract": "R3 background_asset_ref", + "asset_id": background_id, + "asset_ref": captured_artifact["path"], + "asset_sha256": actual_sha, + "asset_size_bytes": captured_artifact["size_bytes"], + "pfull_asset_sha256": pfull_sha, + "r3_asset_sha256": r3_sha, + }, + payload, + captured_artifact, + ) + + +def _validate_source_contracts( + l0: Dict[str, Any], + pfull: Dict[str, Any], + r3: Dict[str, Any], + pfull_sha256: str, +) -> None: + """Validate persisted JSON against the schemas that produced A3 runs.""" + from pydantic import ValidationError + + from metagpt.ext.agentlayout.a3_pipeline import A3L0Result + from metagpt.ext.agentlayout.tools.pfull_preprocessor import PFullAssetManifest + from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + try: + A3L0Result.model_validate(l0) + PFullAssetManifest.model_validate(pfull) + R3AssetManifest.model_validate(r3) + except ValidationError as exc: + raise A3EvaluationError(f"source artifact violates its A3 schema: {exc}") from exc + + expected_pfull_sha = str(r3.get("source_pfull_manifest_sha256") or "") + if expected_pfull_sha != pfull_sha256: + raise A3EvaluationError( + "R3 source_pfull_manifest_sha256 mismatch: " + f"{expected_pfull_sha!r} != {pfull_sha256!r}" + ) + + +def _record_artifact(path: Path) -> Dict[str, Any]: + _, artifact = _capture_file(path) + return artifact + + +def extract_b0_sample( + run_dir: Path, + run_id: str, + summary_entry: Dict[str, Any], +) -> Dict[str, Any]: + """Extract and validate one completed A3 B0 sample from persisted JSON.""" + sample_id = str(summary_entry.get("sample_id") or "") + if not sample_id: + raise A3EvaluationError(f"run {run_id} has a summary entry without sample_id") + sample_dir = run_dir / "samples" / sample_id + l0_path = sample_dir / "pipeline" / "l0_result.json" + pfull_path = sample_dir / "inputs" / "pfull" / "asset_manifest.json" + r3_path = sample_dir / "inputs" / "r3" / "r3_asset_manifest.json" + l0, l0_artifact = _load_json_captured(l0_path) + pfull, pfull_artifact = _load_json_captured(pfull_path) + r3, r3_artifact = _load_json_captured(r3_path) + _validate_source_contracts(l0, pfull, r3, pfull_artifact["sha256"]) + + if pfull.get("sample_id") != sample_id: + raise A3EvaluationError( + f"P-Full sample_id mismatch: {pfull.get('sample_id')!r} != {sample_id!r}" + ) + canvas_w = int(pfull.get("canvas_width") or 0) + canvas_h = int(pfull.get("canvas_height") or 0) + if r3.get("sample_id") != sample_id: + raise A3EvaluationError( + f"R3 sample_id mismatch: {r3.get('sample_id')!r} != {sample_id!r}" + ) + if ( + int(r3.get("canvas_width") or 0) != canvas_w + or int(r3.get("canvas_height") or 0) != canvas_h + or r3.get("background_asset_id") != pfull.get("background_asset_id") + ): + raise A3EvaluationError(f"R3/P-Full canvas or background mismatch for {sample_id}") + + b0_slot_id = str(l0.get("b0_slot_id") or "") + if not b0_slot_id: + raise A3EvaluationError(f"missing b0_slot_id for {run_id}/{sample_id}") + summary_final = summary_entry.get("final") + if not isinstance(summary_final, str) or not summary_final: + raise A3EvaluationError( + f"completed summary row lacks final B0: {run_id}/{sample_id}" + ) + if summary_final != b0_slot_id: + raise A3EvaluationError( + f"summary final {summary_final!r} != B0 {b0_slot_id!r}" + ) + slots = ((l0.get("bundle") or {}).get("slots") or []) + selected = next((slot for slot in slots if slot.get("slot_id") == b0_slot_id), None) + if selected is None or selected.get("status") != "completed": + raise A3EvaluationError(f"selected B0 slot is not completed: {run_id}/{sample_id}") + candidate = selected.get("candidate") or {} + _require_finite_tree(candidate, f"B0 candidate {run_id}/{sample_id}") + elements = candidate.get("elements") or [] + if not isinstance(elements, list): + raise A3EvaluationError(f"B0 elements are not a list: {run_id}/{sample_id}") + + assets = { + str(asset.get("asset_id")): asset + for asset in pfull.get("assets", []) + if asset.get("role") == "placeable" + } + raw_layout: Layout = [] + output_elements: List[Dict[str, Any]] = [] + element_ids = [str(element.get("id") or "") for element in elements] + if not all(element_ids) or len(element_ids) != len(set(element_ids)): + raise A3EvaluationError( + f"B0 element IDs must be non-empty and unique: {run_id}/{sample_id}" + ) + if set(element_ids) != set(assets) or len(element_ids) != len(assets): + missing = sorted(set(assets) - set(element_ids)) + extra = sorted(set(element_ids) - set(assets)) + raise A3EvaluationError( + "B0 must place every P-Full placeable asset exactly once for " + f"{run_id}/{sample_id}; missing={missing}, extra={extra}" + ) + for element in elements: + asset_id = str(element.get("id") or "") + asset = assets.get(asset_id) + if asset is None: + raise A3EvaluationError(f"B0 element {asset_id!r} has no P-Full placeable asset") + cls, class_source = _asset_class(asset) + try: + left = _finite_number(element["left"], f"{asset_id}.left") + top = _finite_number(element["top"], f"{asset_id}.top") + width = _finite_number(element["width"], f"{asset_id}.width") + height = _finite_number(element["height"], f"{asset_id}.height") + bbox = to_xyxy(left, top, width, height) + except (KeyError, TypeError, ValueError) as exc: + raise A3EvaluationError(f"invalid B0 bbox for {asset_id}: {exc}") from exc + raw_layout.append((cls, bbox)) + output_elements.append( + { + "asset_id": asset_id, + "class_code": cls, + "class_source": class_source, + "bbox_lwh_raw": [ + left, + top, + width, + height, + ], + } + ) + layout, invalid_n = clip_and_filter_layout(raw_layout, canvas_w, canvas_h) + # Recompute one-at-a-time so a dropped box cannot shift the asset-to-bbox + # binding of later elements. + valid_by_id = {} + for item, (cls, raw_bbox) in zip(output_elements, raw_layout): + prepared, _ = clip_and_filter_layout([(cls, raw_bbox)], canvas_w, canvas_h) + if prepared: + valid_by_id[item["asset_id"]] = list(prepared[0][1]) + for item in output_elements: + item["bbox_xyxy_clipped"] = valid_by_id.get(item["asset_id"]) + item["valid"] = item["asset_id"] in valid_by_id + + render_ref = selected.get("render_ref") + if not render_ref: + raise A3EvaluationError(f"B0 slot has no render_ref: {run_id}/{sample_id}") + render_path = _resolve_artifact_ref(str(render_ref), run_dir) + _, render_artifact = _capture_file(render_path) + render_sha = render_artifact["sha256"] + stored_render_sha = selected.get("render_sha256") + if not isinstance(stored_render_sha, str) or len(stored_render_sha) != 64: + raise A3EvaluationError( + f"B0 slot lacks an exact render_sha256: {run_id}/{sample_id}" + ) + if stored_render_sha != render_sha: + raise A3EvaluationError(f"B0 render hash mismatch: {run_id}/{sample_id}") + + background, background_payload, background_artifact = _background_descriptor( + run_dir, pfull, r3 + ) + artifacts = [ + l0_artifact, + pfull_artifact, + render_artifact, + r3_artifact, + ] + if background_artifact is not None: + artifacts.append(background_artifact) + valid_underlay_ids = [ + item["asset_id"] + for item in output_elements + if item["valid"] and item["class_code"] == CLS_UNDERLAY + ] + return { + "run_id": run_id, + "sample_id": sample_id, + "status": "source_valid", + "canvas": {"width": canvas_w, "height": canvas_h}, + "b0_slot_id": b0_slot_id, + "b0_render_sha256": render_sha, + "elements": output_elements, + "layout": layout, + "element_counts": { + "raw": len(raw_layout), + "valid": len(layout), + "invalid_below_0_1pct": invalid_n, + }, + "underlay_protocol": { + "label_source": "P-Full v1 has no legal underlay label", + "applicable": bool(valid_underlay_ids), + "valid_underlay_ids": valid_underlay_ids, + "raster_inference_forbidden": True, + }, + "background": background, + "_background_payload": background_payload, + "source_artifacts": artifacts, + } + + +def _load_background(sample: Dict[str, Any]) -> np.ndarray: + canvas = sample["canvas"] + width, height = int(canvas["width"]), int(canvas["height"]) + background = sample["background"] + if background["kind"] == "blank_canvas": + if tuple(background.get("rgb") or ()) != BLANK_BACKGROUND_RGB: + raise A3EvaluationError( + "blank background descriptor disagrees with the R3 renderer contract" + ) + return np.full((height, width, 3), BLANK_BACKGROUND_RGB, dtype=np.uint8) + try: + payload = sample.get("_background_payload") + if not isinstance(payload, bytes): + raise A3EvaluationError("captured background bytes are unavailable") + actual_sha = hashlib.sha256(payload).hexdigest() + if actual_sha != background["asset_sha256"]: + raise A3EvaluationError( + f"background changed after extraction: {actual_sha} != " + f"{background['asset_sha256']}" + ) + with Image.open(io.BytesIO(payload)) as image: + rgb = image.convert("RGB") + if rgb.size != (width, height): + rgb = rgb.resize((width, height), Image.LANCZOS) + return np.asarray(rgb, dtype=np.uint8) + except A3EvaluationError: + raise + except (OSError, ValueError) as exc: + raise A3EvaluationError( + f"cannot load background for {sample['run_id']}/{sample['sample_id']}: {exc}" + ) from exc + + +def _metric( + value: Optional[float], status: str = "ok", reason: Optional[str] = None +) -> Dict[str, Any]: + return {"status": status, "value": None if value is None else float(value), "reason": reason} + + +def _validated_saliency_map(raw: Any, height: int, width: int) -> np.ndarray: + """Enforce the frozen detector's exact 2D canvas-map contract.""" + try: + saliency = np.asarray(raw, dtype=np.float32) + except (TypeError, ValueError) as exc: + raise A3EvaluationError(f"saliency output is not numeric: {exc}") from exc + expected_shape = (height, width) + if saliency.ndim != 2 or saliency.shape != expected_shape: + raise A3EvaluationError( + f"saliency output shape must be exactly {expected_shape}, got {saliency.shape}" + ) + if not np.isfinite(saliency).all(): + raise A3EvaluationError("saliency output contains NaN or infinity") + minimum = float(saliency.min()) + maximum = float(saliency.max()) + if minimum < 0.0 or maximum > 1.0: + raise A3EvaluationError( + f"saliency output must be within [0, 1], got [{minimum}, {maximum}]" + ) + return saliency + + +def evaluate_sample( + sample: Dict[str, Any], + saliency_mode: str, + saliency_fn: Optional[Callable[[np.ndarray, Optional[tuple]], np.ndarray]] = None, +) -> Dict[str, Any]: + """Compute the six per-sample metrics from a validated extracted B0.""" + if saliency_mode not in (SALIENCY_MODE_FROZEN, SALIENCY_MODE_SKIP): + raise A3EvaluationError(f"unsupported saliency mode: {saliency_mode}") + layout = sample["layout"] + width = float(sample["canvas"]["width"]) + height = float(sample["canvas"]["height"]) + background = _load_background(sample) + # Eligibility is determined only after canonical clipping/filtering. A raw + # cls=3 box that was removed by the 0.1% filter must not contribute zero. + underlay_applicable = any(cls == CLS_UNDERLAY for cls, _ in layout) + metrics = { + "Ali": _metric(metric_alignment([layout], width, height)), + "Ove": _metric(metric_overlay([layout])), + "Und_l": ( + _metric(metric_underlay_loose([layout])) + if underlay_applicable + else _metric(None, "not_applicable", "no reliable explicit cls=3 label") + ), + "Und_s": ( + _metric(metric_underlay_strict([layout])) + if underlay_applicable + else _metric(None, "not_applicable", "no reliable explicit cls=3 label") + ), + "Rea": _metric(metric_readability([layout], [background], width, height)), + } + saliency_lineage: Dict[str, Any] + if saliency_mode == SALIENCY_MODE_SKIP: + metrics["Occ"] = _metric(None, "skipped", "explicit --saliency-mode skip") + saliency_lineage = {"status": "skipped_explicit", "map_sha256": None} + else: + if saliency_fn is None: + from metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet import ( + basnet_isnet_saliency, + ) + + saliency_fn = basnet_isnet_saliency + try: + saliency = saliency_fn(background, (int(height), int(width))) + except Exception as exc: # noqa: BLE001 + raise A3EvaluationError( + "frozen BASNet+ISNet failed closed for " + f"{sample['run_id']}/{sample['sample_id']}: {type(exc).__name__}: {exc}" + ) from exc + saliency = _validated_saliency_map(saliency, int(height), int(width)) + metrics["Occ"] = _metric(metric_occlusion([layout], [saliency], width, height)) + saliency_lineage = {"status": "computed", "map_sha256": sha256_array(saliency)} + result = { + key: value + for key, value in sample.items() + if key not in {"layout", "_background_payload"} + } + result.update( + { + "status": "evaluated", + "background_array_sha256": sha256_array(background), + "metrics": metrics, + "saliency": saliency_lineage, + } + ) + return result + + +def aggregate_metric_records(records: Iterable[Dict[str, Any]]) -> Dict[str, Dict[str, Any]]: + """Aggregate evaluated records while preserving eligibility/count lineage.""" + rows = list(records) + source_skipped_n = sum(row.get("status") == "source_skipped" for row in rows) + aggregate: Dict[str, Dict[str, Any]] = {} + for key in METRIC_KEYS: + entries = [] + for row in rows: + if row.get("status") == "source_skipped": + continue + entry = row.get("metrics", {}).get(key) + if not isinstance(entry, dict): + raise A3EvaluationError( + f"record {row.get('run_id')}/{row.get('sample_id')} lacks metric {key}" + ) + entries.append(entry) + applicable = [entry for entry in entries if entry.get("status") != "not_applicable"] + valid = [entry for entry in applicable if entry.get("status") == "ok"] + values = [float(entry["value"]) for entry in valid if entry.get("value") is not None] + metric_skipped = [entry for entry in applicable if entry.get("status") == "skipped"] + aggregate[key] = { + "value": float(statistics.mean(values)) if values else None, + "applicable_n": len(applicable), + "valid_n": len(values), + "skipped_n": len(metric_skipped) + source_skipped_n, + "metric_skipped_n": len(metric_skipped), + "source_skipped_n": source_skipped_n, + "not_applicable_n": len(entries) - len(applicable), + "zero_contribution_n": sum(value == 0.0 for value in values), + } + return aggregate + + +def _expect_exact_keys(value: Dict[str, Any], expected: set, context: str) -> None: + actual = set(value) + if actual != expected: + raise A3EvaluationError( + f"{context} fields mismatch; missing={sorted(expected - actual)}, " + f"extra={sorted(actual - expected)}" + ) + + +def _validate_per_sample_record(record: Dict[str, Any], mode: str) -> None: + status = record.get("status") + try: + if status == "evaluated" and mode == "evaluate": + EvaluatedSampleRecord.model_validate(record) + elif status == "validated" and mode == "validate-only": + ValidatedSampleRecord.model_validate(record) + elif status == "source_skipped": + SourceSkippedRecord.model_validate(record) + elif status in {"evaluated", "validated"}: + raise A3EvaluationError( + f"per-sample status {status!r} is forbidden in mode {mode!r}" + ) + else: + raise A3EvaluationError(f"unknown per-sample status: {status!r}") + except A3EvaluationError: + raise + except Exception as exc: + raise A3EvaluationError(f"per-sample contract violation: {exc}") from exc + _require_finite_tree(record, "per-sample record") + + +def validate_evaluation_bundle( + manifest: Dict[str, Any], + records: Sequence[Dict[str, Any]], + aggregate: Dict[str, Any], +) -> None: + """Validate the complete v1 sidecar contract before it can be published.""" + _require_finite_tree(manifest, "evaluation manifest") + _require_finite_tree(aggregate, "aggregate") + try: + EvaluationManifestRecord.model_validate(manifest) + except Exception as exc: + raise A3EvaluationError(f"manifest contract violation: {exc}") from exc + _expect_exact_keys( + manifest, + { + "schema_version", + "protocol_version", + "evaluation_id", + "created_at", + "mode", + "command", + "command_argv", + "source_runs", + "matched_samples", + "protocol_lineage", + "write_policy", + "cost", + }, + "evaluation manifest", + ) + _expect_exact_keys( + aggregate, + {"schema_version", "protocol_version", "evaluation_id", "runs"}, + "aggregate", + ) + for container_name, container in (("manifest", manifest), ("aggregate", aggregate)): + if container.get("schema_version") != SCHEMA_VERSION: + raise A3EvaluationError(f"{container_name} has wrong schema_version") + if container.get("protocol_version") != PROTOCOL_VERSION: + raise A3EvaluationError(f"{container_name} has wrong protocol_version") + if manifest.get("evaluation_id") != aggregate.get("evaluation_id"): + raise A3EvaluationError("manifest/aggregate evaluation_id mismatch") + if manifest.get("command") != shlex.join(manifest.get("command_argv", [])): + raise A3EvaluationError("manifest command does not match command_argv") + mode = manifest.get("mode") + if mode not in {"evaluate", "validate-only"}: + raise A3EvaluationError(f"unknown evaluation mode: {mode!r}") + occlusion = manifest["protocol_lineage"]["occlusion"] + if mode == "evaluate" and occlusion["mode"] == SALIENCY_MODE_FROZEN: + detector = occlusion.get("detector") + if not detector or not detector.get("runtime_identity"): + raise A3EvaluationError( + "frozen evaluation requires detector and non-null runtime identity" + ) + runtime_identity = detector["runtime_identity"] + basnet = detector["basnet"] + basnet_runtime = runtime_identity["basnet"] + if ( + basnet_runtime["requested_revision"] != basnet["revision"] + or basnet_runtime["resolved_snapshot"] != basnet["snapshot_path"] + or basnet_runtime["from_pretrained_path"] + != basnet["load_contract"]["from_pretrained_path"] + ): + raise A3EvaluationError("BASNet runtime/static lineage mismatch") + for filename in ("configuration_basnet.py", "modeling_basnet.py"): + if ( + basnet_runtime["executed_code"][filename]["authoritative_sha256"] + != basnet["artifacts"][filename]["sha256"] + ): + raise A3EvaluationError("BASNet executed-code lineage mismatch") + if runtime_identity["isnet"]["verified_artifact"] != detector["isnet"]["artifact"]: + raise A3EvaluationError("ISNet runtime/static artifact lineage mismatch") + if occlusion["mode"] == SALIENCY_MODE_SKIP and occlusion.get("detector") is not None: + raise A3EvaluationError("skip mode cannot carry detector lineage") + source_runs = manifest.get("source_runs") + if not isinstance(source_runs, list) or not source_runs: + raise A3EvaluationError("manifest source_runs must be a non-empty array") + runs = aggregate.get("runs") + if not isinstance(runs, dict): + raise A3EvaluationError("aggregate runs must be an object") + run_ids = [source_run.get("run_id") for source_run in source_runs] + if ( + not all(isinstance(run_id, str) and run_id for run_id in run_ids) + or len(run_ids) != len(set(run_ids)) + or set(run_ids) != set(runs) + ): + raise A3EvaluationError("manifest and aggregate run IDs must match uniquely") + matched = manifest.get("matched_samples") + if not isinstance(matched, dict): + raise A3EvaluationError("manifest matched_samples must be an object") + _expect_exact_keys( + matched, + {"count", "ordered_sample_ids", "ordered_sample_ids_sha256"}, + "matched_samples", + ) + matched_ids = matched.get("ordered_sample_ids") + if not isinstance(matched_ids, list) or not all( + isinstance(sample_id, str) and sample_id for sample_id in matched_ids + ): + raise A3EvaluationError("matched ordered_sample_ids must be strings") + if len(matched_ids) != len(set(matched_ids)) or matched.get("count") != len(matched_ids): + raise A3EvaluationError("matched sample ID count/uniqueness mismatch") + encoded_ids = json.dumps( + matched_ids, ensure_ascii=False, separators=(",", ":") + ).encode("utf-8") + if hashlib.sha256(encoded_ids).hexdigest() != matched.get("ordered_sample_ids_sha256"): + raise A3EvaluationError("matched sample ID hash mismatch") + + grouped: Dict[str, List[Dict[str, Any]]] = {run_id: [] for run_id in run_ids} + seen_pairs = set() + for record in records: + if not isinstance(record, dict): + raise A3EvaluationError("per-sample record must be an object") + _validate_per_sample_record(record, mode) + if record.get("status") == "evaluated": + occ = record["metrics"]["Occ"] + saliency = record["saliency"] + if occlusion["mode"] == SALIENCY_MODE_FROZEN and ( + occ["status"] != "ok" or saliency["status"] != "computed" + ): + raise A3EvaluationError( + "frozen evaluation requires computed Occ and saliency hash" + ) + if occlusion["mode"] == SALIENCY_MODE_SKIP and ( + occ["status"] != "skipped" + or saliency["status"] != "skipped_explicit" + ): + raise A3EvaluationError("skip mode requires explicitly skipped Occ") + pair = (record["run_id"], record["sample_id"]) + if pair in seen_pairs or record["run_id"] not in grouped: + raise A3EvaluationError(f"duplicate or unknown per-sample identity: {pair}") + seen_pairs.add(pair) + grouped[record["run_id"]].append(record) + + for source_run in source_runs: + run_id = source_run["run_id"] + run_records = grouped[run_id] + selected_n = source_run.get("selection", {}).get("selected_n") + if selected_n != len(run_records): + raise A3EvaluationError(f"{run_id} selected_n does not match records") + if [record["sample_id"] for record in run_records] != matched_ids[:selected_n]: + raise A3EvaluationError(f"{run_id} record order is not the matched order") + actual_counts = { + "selected_n": len(run_records), + "source_valid_n": sum( + record["status"] in {"validated", "evaluated"} + for record in run_records + ), + "source_skipped_n": sum( + record["status"] == "source_skipped" for record in run_records + ), + "evaluated_n": sum(record["status"] == "evaluated" for record in run_records), + "validated_only_n": sum( + record["status"] == "validated" for record in run_records + ), + } + if source_run.get("observed_counts") != actual_counts: + raise A3EvaluationError(f"{run_id} manifest count conservation failed") + run_aggregate = runs[run_id] + _expect_exact_keys(run_aggregate, {"sample_counts", "metrics"}, f"{run_id} aggregate") + if run_aggregate.get("sample_counts") != actual_counts: + raise A3EvaluationError(f"{run_id} aggregate sample counts mismatch") + metric_aggregates = run_aggregate.get("metrics") + if mode == "validate-only": + if metric_aggregates != {}: + raise A3EvaluationError("validate-only aggregate metrics must be empty") + continue + try: + SixAggregates.model_validate(metric_aggregates) + except Exception as exc: + raise A3EvaluationError( + f"{run_id} aggregate metric contract violation: {exc}" + ) from exc + expected_aggregates = aggregate_metric_records(run_records) + if metric_aggregates != expected_aggregates: + raise A3EvaluationError(f"{run_id} aggregate does not match per-sample rows") + for metric in METRIC_KEYS: + counts = metric_aggregates[metric] + if ( + counts["applicable_n"] + + counts["not_applicable_n"] + + counts["source_skipped_n"] + != len(run_records) + ): + raise A3EvaluationError( + f"{run_id}/{metric} aggregate count conservation failed" + ) + + +def frozen_detector_lineage() -> Dict[str, Any]: + """Verify local frozen detector artifacts and return IDs plus exact hashes.""" + from metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet import ( + _BASNET_REQUIRED_FILES, + _resolve_basnet_snapshot, + _verify_isnet_artifact, + ) + + try: + revision, snapshot = _resolve_basnet_snapshot() + except RuntimeError as exc: + raise A3EvaluationError(str(exc)) from exc + try: + isnet_artifact = _verify_isnet_artifact() + except RuntimeError as exc: + raise A3EvaluationError(str(exc)) from exc + saliency_source = Path(__file__).with_name("saliency_basnet_isnet.py") + basnet_artifacts = { + filename: _record_artifact(snapshot / filename) + for filename in _BASNET_REQUIRED_FILES + } + return { + "contract": "frozen BASNet + ISNet, pixel-wise maximum", + "fusion": "pixelwise_max", + "fail_closed": True, + "network_downloads_allowed": False, + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "revision": revision, + "load_contract": { + "revision_argument": revision, + "from_pretrained_path": str(snapshot.resolve()), + "local_files_only": True, + "trust_remote_code": True, + "force_download": False, + }, + "snapshot_path": str(snapshot.resolve()), + "artifacts": basnet_artifacts, + }, + "isnet": { + "model_id": "rembg/isnet-general-use", + "artifact": isnet_artifact, + "provider": "CPUExecutionProvider", + "download_path": "forbidden; direct verified ONNX bytes", + }, + "pku_deviation": "ISNet replaces the PFPN branch used by PKU PosterLayout", + "implementation_sha256": sha256_file(saliency_source), + } + + +def evaluation_code_runtime_lineage(cli_source: Path) -> Dict[str, Any]: + """Capture executable source hashes and dependency/runtime identities.""" + import cv2 + import onnxruntime + import pooch + import pydantic + import rembg + import torch + import torchvision + import transformers + + metrics_source = Path(__file__).with_name("sega_metrics.py") + evaluator_source = Path(__file__) + saliency_source = Path(__file__).with_name("saliency_basnet_isnet.py") + sources = { + "sega_metrics.py": _record_artifact(metrics_source), + "a3_sega_evaluator.py": _record_artifact(evaluator_source), + "evaluate_a3_sega.py": _record_artifact(cli_source), + "saliency_basnet_isnet.py": _record_artifact(saliency_source), + } + return { + "sources": sources, + "runtime": { + "python": { + "version": platform.python_version(), + "implementation": platform.python_implementation(), + "executable": str(Path(sys.executable).resolve()), + }, + "platform": { + "system": platform.system(), + "release": platform.release(), + "machine": platform.machine(), + "platform": platform.platform(), + }, + "numpy": np.__version__, + "cv2": cv2.__version__, + "Pillow": importlib.metadata.version("Pillow"), + "torch": torch.__version__, + "torchvision": torchvision.__version__, + "transformers": transformers.__version__, + "rembg": rembg.__version__, + "onnxruntime": onnxruntime.__version__, + "pydantic": pydantic.__version__, + "pooch": pooch.__version__, + "onnxruntime_available_providers": onnxruntime.get_available_providers(), + }, + } + + +def protocol_lineage( + saliency_mode: str, + detector: Optional[Dict[str, Any]] = None, + code_runtime: Optional[Dict[str, Any]] = None, +) -> Dict[str, Any]: + """Return the frozen metric/preprocessing contract stored with every result.""" + return { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "bbox_input": "A3 B0 left-top-width-height", + "bbox_metric_frame": "xyxy, clipped to canvas", + "validity_filter": { + "minimum_canvas_fraction": VALID_AREA_FRACTION, + "comparison": "area >= threshold", + }, + "alignment": "PKU layout-wide-min aggregation quirk", + "overlay_denominator": "non-underlay element count", + "underlay": "P-Full v1 has no legal underlay class; current A3 is N/A", + "readability": "background-only float64 Sobel; definition-aligned, not PKU bit-exact", + "blank_background": {"renderer_contract": "R3", "rgb": list(BLANK_BACKGROUND_RGB)}, + "occlusion": { + "mode": saliency_mode, + "detector": detector, + "sobel_fallback_forbidden": True, + }, + "code_runtime_lineage": code_runtime, + } + + +def load_run_summary(run_dir: Path) -> Tuple[Dict[str, Any], List[Dict[str, Any]]]: + """Load the authoritative A3 summary and return its ordered sample entries.""" + summary_path = run_dir / "a3_run_summary.json" + manifest_path = run_dir / "run_manifest.json" + summary, summary_artifact = _load_json_captured(summary_path) + manifest, manifest_artifact = _load_json_captured(manifest_path) + run_id = str(manifest.get("run_id") or "") + if not run_id or run_id != run_dir.name: + raise A3EvaluationError( + f"manifest run_id must match directory name: {run_id!r} != {run_dir.name!r}" + ) + entries = summary.get("samples") + if not isinstance(entries, list): + raise A3EvaluationError(f"summary samples must be a list: {summary_path}") + if not all(isinstance(entry, dict) for entry in entries): + raise A3EvaluationError(f"summary sample rows must be objects: {summary_path}") + reported_total = _required_nonnegative_int(summary, "total", "summary") + reported_failed = _required_nonnegative_int(summary, "failed", "summary") + if reported_total != len(entries): + raise A3EvaluationError( + f"summary total does not match sample rows: {reported_total} != {len(entries)}" + ) + sample_ids = [entry.get("sample_id") for entry in entries] + if ( + not all(isinstance(sample_id, str) and sample_id for sample_id in sample_ids) + or len(sample_ids) != len(set(sample_ids)) + ): + raise A3EvaluationError("summary sample IDs must be non-empty and unique") + failed_n = sum(entry.get("status") == "failed" for entry in entries) + completed_n = sum(entry.get("status") == "completed" for entry in entries) + other_status_n = len(entries) - failed_n - completed_n + if reported_failed != failed_n: + raise A3EvaluationError( + f"summary failed count does not match rows: {reported_failed} != {failed_n}" + ) + reported_completed: Optional[int] = None + if "completed" in summary: + reported_completed = _required_nonnegative_int(summary, "completed", "summary") + if reported_completed != completed_n: + raise A3EvaluationError( + "summary completed count does not match rows: " + f"{reported_completed} != {completed_n}" + ) + + snapshot = manifest.get("sample_ids_snapshot") or {} + stored_ref = snapshot.get("stored_path") + if not stored_ref: + raise A3EvaluationError("manifest sample_ids_snapshot.stored_path is missing") + sample_ids_path = _resolve_artifact_ref(str(stored_ref), run_dir) + if not _is_relative_to(sample_ids_path, run_dir.resolve()): + raise A3EvaluationError("sample ID snapshot must be stored inside the run directory") + stored_ids, sample_ids_artifact = _load_json_list_captured(sample_ids_path) + if ( + not all(isinstance(sample_id, str) and sample_id for sample_id in stored_ids) + or len(stored_ids) != len(set(stored_ids)) + ): + raise A3EvaluationError("sample ID snapshot must contain unique non-empty strings") + expected_snapshot_sha = str(snapshot.get("sha256") or "") + actual_snapshot_sha = sample_ids_artifact["sha256"] + if expected_snapshot_sha != actual_snapshot_sha: + raise A3EvaluationError( + f"sample ID snapshot hash mismatch: {actual_snapshot_sha} != {expected_snapshot_sha}" + ) + snapshot_count = _required_nonnegative_int(snapshot, "count", "sample ID snapshot") + if snapshot_count != len(stored_ids): + raise A3EvaluationError("sample ID snapshot count does not match stored rows") + if stored_ids != sample_ids: + raise A3EvaluationError("summary sample IDs do not match the manifest snapshot") + + formal_complete = other_status_n == 0 and completed_n + failed_n == reported_total + return { + "run_id": run_id, + "run_dir": str(run_dir.resolve()), + "summary": summary_artifact, + "manifest": manifest_artifact, + "sample_ids": sample_ids_artifact, + "summary_counts": { + "reported_total": reported_total, + "reported_completed": reported_completed, + "reported_failed": reported_failed, + "reported_sample_n": len(entries), + "completed_n": completed_n, + "failed_n": failed_n, + "other_status_n": other_status_n, + "formal_complete": formal_complete, + }, + }, entries + + +def verify_source_artifacts_unchanged(records: Iterable[Dict[str, Any]]) -> None: + """Fail if any source artifact changed while evaluation was in progress.""" + seen: Dict[str, Tuple[str, int]] = {} + for record in records: + for artifact in record.get("source_artifacts", []): + path = artifact["path"] + captured_sha = artifact["sha256"] + captured_size = artifact["size_bytes"] + capture = (captured_sha, captured_size) + if path in seen and seen[path] != capture: + raise A3EvaluationError( + f"same source path captured with different hashes/sizes: {path}" + ) + seen[path] = capture + for raw_path, (expected_sha, expected_size) in seen.items(): + path = Path(raw_path) + if ( + not path.is_file() + or path.stat().st_size != expected_size + or sha256_file(path) != expected_sha + ): + raise A3EvaluationError(f"source artifact changed during evaluation: {path}") + + +__all__ = [ + "A3EvaluationError", + "METRIC_KEYS", + "PROTOCOL_VERSION", + "SALIENCY_MODE_FROZEN", + "SALIENCY_MODE_SKIP", + "SCHEMA_VERSION", + "aggregate_metric_records", + "assert_output_is_sidecar", + "clip_and_filter_layout", + "evaluate_sample", + "extract_b0_sample", + "frozen_detector_lineage", + "load_run_summary", + "protocol_lineage", + "sha256_file", + "verify_source_artifacts_unchanged", +] diff --git a/metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py b/metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py new file mode 100644 index 000000000..d9fc41eac --- /dev/null +++ b/metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py @@ -0,0 +1,403 @@ +"""Direct tree-prediction accuracy for one A3 run against human oracle trees. + +Zero-cost, read-only: loads frozen ``stages/planner/layout_tree.json`` +artifacts and the merged human oracle trees, scores each successful pair with +:func:`metagpt.ext.agentlayout.tools.human_tree_metrics.evaluate_tree_prediction`, +and publishes a write-once evaluation bundle (manifest + aggregate JSON + +per-sample JSONL). + +Denominator contract (fail-loud): + +* every frozen sample ID is accounted for exactly once as ``evaluated``, + ``planner_failure`` (no predicted tree on disk) or ``coverage_mismatch`` + (trees load but cover different asset IDs); +* nothing is silently dropped — non-evaluated samples appear in the + per-sample artifact with their status and reason. + +Primary metric is same-group P/R/F1 over confidence-certain oracle nodes; +exact ``semantic_role_accuracy`` is a case-sensitive-string lower bound only. +Bootstrap CIs are sample-level percentile intervals with a fixed seed; each +statistic uses a fresh generator so results do not depend on computation +order. +""" +from __future__ import annotations + +import os +import sys +from pathlib import Path +from typing import Any, Dict, List, Optional, Sequence, Tuple + +import numpy as np + +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree +from metagpt.ext.agentlayout.run_manifest import ( + canonical_json_bytes, + load_sample_ids, + sha256_bytes, + sha256_file, + utc_now, + write_json_once, +) +from metagpt.ext.agentlayout.tools.human_tree_metrics import evaluate_tree_prediction + +A3_TREE_ACCURACY_SCHEMA_VERSION = "a3.tree-accuracy.v1" +BOOTSTRAP_SEED = 20260712 +BOOTSTRAP_RESAMPLES = 10_000 +CONFIDENCE_LEVEL = 0.95 + +_PRF_FIELDS = ("precision", "recall", "f1") +_CODE_FILES = ( + "metagpt/ext/agentlayout/evaluation/a3_tree_accuracy.py", + "metagpt/ext/agentlayout/tools/human_tree_metrics.py", + "metagpt/ext/agentlayout/layout_tree_v3.py", +) + + +def write_bytes_once(path: Path, payload: bytes) -> None: + """Atomically publish raw bytes and refuse to replace an existing file.""" + path.parent.mkdir(parents=True, exist_ok=True) + temp = path.with_name(f".{path.name}.{os.getpid()}.tmp") + try: + with temp.open("xb") as handle: + handle.write(payload) + handle.flush() + os.fsync(handle.fileno()) + if path.exists(): + raise FileExistsError(f"refusing to overwrite existing artifact: {path}") + os.link(temp, path) + finally: + temp.unlink(missing_ok=True) + + +def bootstrap_ci( + values: Sequence[Any], + statistic, + *, + seed: int = BOOTSTRAP_SEED, + resamples: int = BOOTSTRAP_RESAMPLES, + confidence: float = CONFIDENCE_LEVEL, +) -> Optional[Dict[str, Any]]: + """Percentile bootstrap CI over sample-level rows with a fresh, fixed RNG. + + ``values`` may hold any per-sample payload (floats or tuples); ``statistic`` + maps one resampled list to a float. Returns ``None`` when fewer than two + samples exist, because a resampled singleton has no sampling variability. + """ + n = len(values) + if n < 2: + return None + rng = np.random.default_rng(seed) + indices = rng.integers(0, n, size=(resamples, n)) + stats = np.empty(resamples, dtype=float) + for row in range(resamples): + stats[row] = statistic([values[i] for i in indices[row]]) + alpha = (1.0 - confidence) / 2.0 + low, high = np.quantile(stats, [alpha, 1.0 - alpha]) + return { + "low": float(low), + "high": float(high), + "confidence": confidence, + "resamples": resamples, + "seed": seed, + "method": "percentile", + } + + +def _mean(values: Sequence[float]) -> float: + return float(sum(values) / len(values)) + + +def _exact_count(accuracy: Optional[float], denominator: int, label: str) -> int: + """Recover the integer match count behind ``matches/denominator``.""" + if accuracy is None or denominator == 0: + return 0 + count = accuracy * denominator + rounded = round(count) + if abs(count - rounded) > 1e-6: + raise ValueError(f"{label}: accuracy {accuracy} is not a /{denominator} ratio") + return int(rounded) + + +def _pooled_prf(rows: Sequence[Tuple[int, int, int]]) -> Dict[str, float]: + """Micro P/R/F1 from per-sample (true_positive, n_predicted, n_reference).""" + tp = sum(row[0] for row in rows) + n_pred = sum(row[1] for row in rows) + n_ref = sum(row[2] for row in rows) + if n_pred == 0 and n_ref == 0: + precision = recall = f1 = 1.0 + else: + precision = tp / n_pred if n_pred else 0.0 + recall = tp / n_ref if n_ref else 0.0 + f1 = 2 * precision * recall / (precision + recall) if precision + recall else 0.0 + return { + "precision": precision, + "recall": recall, + "f1": f1, + "n_true_positive": tp, + "n_predicted": n_pred, + "n_reference": n_ref, + } + + +def evaluate_tree_accuracy_run( + *, + run_dir: Path, + oracle_dir: Path, + repo_root: Path, +) -> Dict[str, Any]: + """Score every frozen sample of one run; return per-sample rows + aggregate.""" + run_dir = run_dir.resolve() + oracle_dir = oracle_dir.resolve() + sample_ids_path = run_dir / "sample_ids.json" + sample_ids = load_sample_ids(sample_ids_path) + + per_sample: List[Dict[str, Any]] = [] + input_hashes: Dict[str, Dict[str, str]] = {} + evaluated_ids: List[str] = [] + planner_failure_ids: List[str] = [] + coverage_mismatch_ids: List[str] = [] + + for sample_id in sample_ids: + predicted_path = ( + run_dir / "samples" / sample_id / "stages" / "planner" / "layout_tree.json" + ) + oracle_path = oracle_dir / f"{sample_id}.json" + if not oracle_path.exists(): + raise FileNotFoundError(f"missing human oracle tree: {oracle_path}") + row: Dict[str, Any] = { + "schema_version": A3_TREE_ACCURACY_SCHEMA_VERSION, + "sample_id": sample_id, + "oracle_sha256": sha256_file(oracle_path), + } + if not predicted_path.exists(): + planner_failure_ids.append(sample_id) + row.update( + status="planner_failure", + reason="no predicted layout_tree.json on disk (Planner failed)", + predicted_sha256=None, + metrics=None, + ) + per_sample.append(row) + input_hashes[sample_id] = {"oracle": row["oracle_sha256"]} + continue + + row["predicted_sha256"] = sha256_file(predicted_path) + input_hashes[sample_id] = { + "predicted": row["predicted_sha256"], + "oracle": row["oracle_sha256"], + } + predicted = A3LayoutTree.model_validate_json(predicted_path.read_text()) + oracle = A3LayoutTree.model_validate_json(oracle_path.read_text()) + try: + metrics = evaluate_tree_prediction(predicted, oracle) + except ValueError as error: + if "asset coverage mismatch" not in str(error): + raise + coverage_mismatch_ids.append(sample_id) + row.update(status="coverage_mismatch", reason=str(error), metrics=None) + per_sample.append(row) + continue + evaluated_ids.append(sample_id) + row.update(status="evaluated", reason=None, metrics=metrics.model_dump()) + per_sample.append(row) + + evaluated_rows = [row for row in per_sample if row["status"] == "evaluated"] + aggregate_metrics = _aggregate(evaluated_rows) + + denominators = { + "n_sample_ids": len(sample_ids), + "n_evaluated": len(evaluated_ids), + "n_planner_failures": len(planner_failure_ids), + "planner_failure_ids": planner_failure_ids, + "n_coverage_mismatch": len(coverage_mismatch_ids), + "coverage_mismatch_ids": coverage_mismatch_ids, + "n_certain_nodes_total": sum( + row["metrics"]["n_certain_nodes"] for row in evaluated_rows + ), + "n_uncertain_nodes_total": sum( + row["metrics"]["n_uncertain_nodes"] for row in evaluated_rows + ), + "n_samples_with_uncertain_nodes": sum( + 1 for row in evaluated_rows if row["metrics"]["n_uncertain_nodes"] > 0 + ), + } + if ( + denominators["n_evaluated"] + + denominators["n_planner_failures"] + + denominators["n_coverage_mismatch"] + != denominators["n_sample_ids"] + ): + raise RuntimeError("denominator accounting does not cover every sample ID") + + return { + "schema_version": A3_TREE_ACCURACY_SCHEMA_VERSION, + "run_dir": str(run_dir), + "oracle_dir": str(oracle_dir), + "sample_ids_sha256": sha256_file(sample_ids_path), + "code_sha256": { + rel: sha256_file(repo_root / rel) for rel in _CODE_FILES + }, + "bootstrap": { + "seed": BOOTSTRAP_SEED, + "resamples": BOOTSTRAP_RESAMPLES, + "confidence": CONFIDENCE_LEVEL, + "method": "percentile", + "note": "fresh np.random.default_rng(seed) per statistic", + }, + "denominators": denominators, + "metrics": aggregate_metrics, + "per_sample": per_sample, + "input_hashes": input_hashes, + } + + +def _aggregate(evaluated_rows: Sequence[Dict[str, Any]]) -> Dict[str, Any]: + result: Dict[str, Any] = {} + for relation in ("same_group", "parent_child"): + block: Dict[str, Any] = {"macro": {}, "micro": {}} + for field in _PRF_FIELDS: + values = [row["metrics"][relation][field] for row in evaluated_rows] + block["macro"][field] = { + "mean": _mean(values) if values else None, + "n": len(values), + "ci95": bootstrap_ci(values, _mean), + } + counts = [ + ( + row["metrics"][relation]["n_true_positive"], + row["metrics"][relation]["n_predicted"], + row["metrics"][relation]["n_reference"], + ) + for row in evaluated_rows + ] + pooled = _pooled_prf(counts) if counts else None + block["micro"]["pooled"] = pooled + if pooled is not None: + for field in _PRF_FIELDS: + block["micro"][f"{field}_ci95"] = bootstrap_ci( + counts, lambda rows, f=field: _pooled_prf(rows)[f] + ) + result[relation] = block + + for accuracy_field, primary in ( + ("semantic_type_accuracy", True), + ("semantic_role_accuracy", False), + ): + macro_values = [ + row["metrics"][accuracy_field] + for row in evaluated_rows + if row["metrics"][accuracy_field] is not None + ] + pooled_counts = [] + for row in evaluated_rows: + n_nodes = row["metrics"]["n_certain_nodes"] + matches = _exact_count( + row["metrics"][accuracy_field], n_nodes, + f"{row['sample_id']}:{accuracy_field}", + ) + pooled_counts.append((matches, n_nodes)) + total_nodes = sum(count[1] for count in pooled_counts) + result[accuracy_field] = { + "role": "primary" if primary else "lower_bound_only", + "macro": { + "mean": _mean(macro_values) if macro_values else None, + "n": len(macro_values), + "n_excluded_all_uncertain": len(evaluated_rows) - len(macro_values), + "ci95": bootstrap_ci(macro_values, _mean), + }, + "micro": { + "pooled": ( + sum(count[0] for count in pooled_counts) / total_nodes + if total_nodes + else None + ), + "n_nodes": total_nodes, + "ci95": bootstrap_ci( + pooled_counts, + lambda rows: ( + sum(r[0] for r in rows) / sum(r[1] for r in rows) + if sum(r[1] for r in rows) + else float("nan") + ), + ), + }, + } + return result + + +def publish_bundle( + *, + result: Dict[str, Any], + output_dir: Path, + evaluation_id: str, + command_argv: Sequence[str], +) -> Dict[str, Path]: + """Write-once publish: manifest + aggregate + per-sample JSONL.""" + per_sample = result.pop("per_sample") + input_hashes = result.pop("input_hashes") + aggregate = dict(result) + aggregate["evaluation_id"] = evaluation_id + + # canonical_json_bytes already terminates each payload with "\n". + per_sample_bytes = b"".join(canonical_json_bytes(row) for row in per_sample) + aggregate_bytes = canonical_json_bytes(aggregate) + + manifest = { + "schema_version": A3_TREE_ACCURACY_SCHEMA_VERSION, + "evaluation_id": evaluation_id, + "created_at": utc_now(), + "command_argv": list(command_argv), + "run_dir": aggregate["run_dir"], + "oracle_dir": aggregate["oracle_dir"], + "sample_ids_sha256": aggregate["sample_ids_sha256"], + "code_sha256": aggregate["code_sha256"], + "bootstrap": aggregate["bootstrap"], + "input_tree_sha256": input_hashes, + "artifact_sha256": { + "aggregate.json": sha256_bytes(aggregate_bytes), + "per_sample.jsonl": sha256_bytes(per_sample_bytes), + }, + "write_once": True, + } + + paths = { + "aggregate": output_dir / "aggregate.json", + "per_sample": output_dir / "per_sample.jsonl", + "manifest": output_dir / "evaluation_manifest.json", + } + write_bytes_once(paths["aggregate"], aggregate_bytes) + write_bytes_once(paths["per_sample"], per_sample_bytes) + write_json_once(paths["manifest"], manifest) + return paths + + +def main(argv: Optional[Sequence[str]] = None) -> int: + import argparse + + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--run-dir", required=True, type=Path) + parser.add_argument("--oracle-dir", required=True, type=Path) + parser.add_argument("--evaluation-id", required=True) + parser.add_argument("--output-root", required=True, type=Path) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[4]) + args = parser.parse_args(argv) + + result = evaluate_tree_accuracy_run( + run_dir=args.run_dir, oracle_dir=args.oracle_dir, repo_root=args.repo_root + ) + output_dir = ( + args.output_root / A3_TREE_ACCURACY_SCHEMA_VERSION / args.evaluation_id + ) + paths = publish_bundle( + result=result, + output_dir=output_dir, + evaluation_id=args.evaluation_id, + command_argv=list(sys.argv) if argv is None else ["", *argv], + ) + for name, path in paths.items(): + print(f"{name}: {path}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py b/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py index cdc0a3b97..6db562ccf 100644 --- a/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py +++ b/metagpt/ext/agentlayout/evaluation/saliency_basnet_isnet.py @@ -1,11 +1,11 @@ """BASNet + ISNet two-stage saliency pipeline for PKU PosterLayout Occ metric. experiment.md spec (Occlusion): "saliency map S from background image via -BASNet + ISNet (or pfpn+basnet)". PKU PosterLayout originally chains a -detection-stage SOD model (BASNet, CVPR 2019) with a refinement-stage SOD -model (ISNet on DIS, ECCV 2022). SEGA Table 3 inherits the PKU evaluator -verbatim, so to make our Occ numbers comparable to SEGA Table 3 we replay -the same two-stage SOD pipeline here. +BASNet + ISNet (or pfpn+basnet)". The public PKU PosterLayout evaluator fuses +PFPN and BASNet maps. This module instead fuses BASNet with ISNet, so its Occ +values support matched comparisons only when every method is re-evaluated by +this same pipeline. Published SEGA values remain literature references and +are not directly comparable. Implementation: * BASNet stage uses ``creative-graphic-design/BASNet`` (Hugging Face, @@ -15,12 +15,8 @@ on DIS dataset). rembg returns a single-channel uint8 alpha mask at the input resolution. * Fuse: resize both maps to the layout canvas resolution, then take the - per-pixel MAX, matching PKU eval.py ``pic = np.maximum(pic_1, pic_2)`` - (metric-audit A3, 2026-06-13; previously this was a mean, which - under-estimated saliency vs PKU's max and broke Occ comparability). - Remaining deviation from PKU: PKU's two maps are PFPN + BASNet; here we - substitute ISNet for PFPN -- a model-identity difference still open - (see layout_agent/METRIC_ALIGNMENT_AUDIT.md A3). + per-pixel MAX, matching PKU eval.py's fusion operation. Detector identity + still differs because ISNet replaces PKU's PFPN branch. Returns float32 in [0, 1] of shape (H, W). On failure (model load error or torch unavailable) raises ``RuntimeError`` instead of silently falling back; @@ -28,7 +24,13 @@ """ from __future__ import annotations +import copy +import hashlib +import inspect +import os import threading +from importlib import metadata +from pathlib import Path from typing import Optional import numpy as np @@ -36,11 +38,158 @@ _BASNET_MODEL = None _BASNET_LOCK = threading.Lock() +_BASNET_RUNTIME_IDENTITY = None _ISNET_SESSION = None _ISNET_LOCK = threading.Lock() +_ISNET_RUNTIME_IDENTITY = None _BASNET_HF_ID = "creative-graphic-design/BASNet" _BASNET_INPUT = 256 +_BASNET_REQUIRED_FILES = ( + "config.json", + "model.safetensors", + "configuration_basnet.py", + "modeling_basnet.py", +) +_ISNET_MODEL_NAME = "isnet-general-use" +_ISNET_SESSION_MODULE = "rembg.sessions.dis_general_use" +_ISNET_SESSION_CLASS = "DisSession" +_ISNET_EXPECTED_SHA256 = "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a" +_ISNET_EXPECTED_MD5 = "fc16ebd8b0c10d971d3513d564d01e29" +_ISNET_PROVIDER = "CPUExecutionProvider" + + +def _resolve_basnet_snapshot() -> tuple: + """Return the exact locally cached revision and snapshot used for loading.""" + hub_cache = os.environ.get("HF_HUB_CACHE") + if hub_cache: + hub = Path(hub_cache).expanduser() + else: + hf_home = Path(os.environ.get("HF_HOME", "~/.cache/huggingface")).expanduser() + hub = hf_home / "hub" + repo = hub / "models--creative-graphic-design--BASNet" + ref = repo / "refs" / "main" + if not ref.is_file(): + raise RuntimeError(f"cached BASNet ref is missing; downloads are disabled: {ref}") + revision = ref.read_text(encoding="utf-8").strip() + if not revision: + raise RuntimeError(f"cached BASNet ref is empty: {ref}") + snapshot = repo / "snapshots" / revision + missing = [ + str(snapshot / filename) + for filename in _BASNET_REQUIRED_FILES + if not (snapshot / filename).is_file() + ] + if missing: + raise RuntimeError(f"cached BASNet artifacts are missing: {missing}") + return revision, snapshot + + +def _package_version(distribution: str) -> str: + try: + return metadata.version(distribution) + except metadata.PackageNotFoundError: + return "unavailable" + + +def _sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _read_verified_isnet_artifact() -> tuple: + """Return exact verified ISNet bytes before importing rembg or ONNX Runtime.""" + u2net_home = Path(os.environ.get("U2NET_HOME", "~/.u2net")).expanduser() + path = u2net_home / "isnet-general-use.onnx" + if not path.is_file(): + raise RuntimeError( + f"cached ISNet artifact is missing; downloads are forbidden: {path}" + ) + payload = path.read_bytes() + actual_sha256 = hashlib.sha256(payload).hexdigest() + actual_md5 = hashlib.md5(payload, usedforsecurity=False).hexdigest() + if actual_sha256 != _ISNET_EXPECTED_SHA256 or actual_md5 != _ISNET_EXPECTED_MD5: + raise RuntimeError( + "cached ISNet artifact hash mismatch; downloads are forbidden: " + f"sha256={actual_sha256}, md5={actual_md5}" + ) + return ( + { + "path": str(path.resolve()), + "sha256": actual_sha256, + "md5": actual_md5, + "size_bytes": len(payload), + }, + payload, + ) + + +def _verify_isnet_artifact() -> dict: + artifact, _ = _read_verified_isnet_artifact() + return artifact + + +def _verify_basnet_executed_code(model, snapshot: Path) -> dict: + """Bind the Python classes actually executed to authoritative snapshot bytes.""" + model_config = getattr(model, "config", None) + classes = { + "configuration_basnet.py": None if model_config is None else model_config.__class__, + "modeling_basnet.py": model.__class__, + } + executed = {} + for filename, class_object in classes.items(): + if class_object is None: + raise RuntimeError(f"loaded BASNet has no class for {filename}") + source = inspect.getsourcefile(class_object) + if not source: + raise RuntimeError(f"cannot locate executed BASNet source for {filename}") + source_path = Path(source).resolve() + authoritative_path = (snapshot / filename).resolve() + source_sha256 = _sha256_file(source_path) + authoritative_sha256 = _sha256_file(authoritative_path) + if source_sha256 != authoritative_sha256: + raise RuntimeError( + f"executed BASNet code differs from snapshot {filename}: " + f"{source_sha256} != {authoritative_sha256}" + ) + executed[filename] = { + "executed_path": str(source_path), + "executed_sha256": source_sha256, + "authoritative_path": str(authoritative_path), + "authoritative_sha256": authoritative_sha256, + } + return executed + + +def _validated_map( + value: np.ndarray, + stage: str, + expected_shape: Optional[tuple] = None, +) -> np.ndarray: + """Return a strict 2D float32 saliency map or fail closed.""" + try: + result = np.asarray(value, dtype=np.float32) + except (TypeError, ValueError) as exc: + raise RuntimeError(f"{stage} saliency output is not numeric: {exc}") from exc + if result.ndim != 2: + raise RuntimeError(f"{stage} saliency output must be 2D, got {result.shape}") + if expected_shape is not None and result.shape != expected_shape: + raise RuntimeError( + f"{stage} saliency output must have shape {expected_shape}, got {result.shape}" + ) + if result.size == 0 or not np.isfinite(result).all(): + raise RuntimeError(f"{stage} saliency output must be non-empty and finite") + minimum = float(result.min()) + maximum = float(result.max()) + if minimum < 0.0 or maximum > 1.0: + raise RuntimeError( + f"{stage} saliency output must be within [0, 1], got " + f"[{minimum}, {maximum}]" + ) + return np.ascontiguousarray(result, dtype=np.float32) def _load_basnet(): @@ -51,6 +200,7 @@ def _load_basnet(): with _BASNET_LOCK: if _BASNET_MODEL is not None: return _BASNET_MODEL + revision, snapshot = _resolve_basnet_snapshot() try: import torch # noqa: F401 from transformers import AutoModel @@ -60,42 +210,176 @@ def _load_basnet(): ) from exc import torch as _torch + load_kwargs = { + "revision": revision, + "local_files_only": True, + "trust_remote_code": True, + "force_download": False, + } try: model = AutoModel.from_pretrained( - _BASNET_HF_ID, - trust_remote_code=True, + str(snapshot.resolve()), dtype=_torch.float32, + **load_kwargs, ) except TypeError: # Older transformers (<4.46) still uses torch_dtype. model = AutoModel.from_pretrained( - _BASNET_HF_ID, - trust_remote_code=True, + str(snapshot.resolve()), torch_dtype=_torch.float32, + **load_kwargs, ) model.eval() + model_config = getattr(model, "config", None) + executed_code = _verify_basnet_executed_code(model, snapshot) + global _BASNET_RUNTIME_IDENTITY + _BASNET_RUNTIME_IDENTITY = { + "model_id": _BASNET_HF_ID, + "requested_revision": revision, + "resolved_snapshot": str(snapshot.resolve()), + "from_pretrained_path": str(snapshot.resolve()), + "local_files_only": True, + "trust_remote_code": True, + "force_download": False, + "model_class_module": model.__class__.__module__, + "model_class_name": model.__class__.__name__, + "config_class_module": ( + None if model_config is None else model_config.__class__.__module__ + ), + "config_class_name": ( + None if model_config is None else model_config.__class__.__name__ + ), + "torch_version": _package_version("torch"), + "transformers_version": _package_version("transformers"), + "executed_code": executed_code, + } _BASNET_MODEL = model return _BASNET_MODEL def _load_isnet_session(): - """Lazy-load rembg isnet-general-use session. Thread-safe.""" + """Load exact local ISNet bytes directly, bypassing rembg's downloader.""" global _ISNET_SESSION if _ISNET_SESSION is not None: return _ISNET_SESSION with _ISNET_LOCK: if _ISNET_SESSION is not None: return _ISNET_SESSION + artifact, model_bytes = _read_verified_isnet_artifact() try: - from rembg import new_session + import onnxruntime as ort + from rembg.sessions.dis_general_use import DisSession except ImportError as exc: raise RuntimeError( - f"ISNet stage requires rembg; missing: {exc}" + f"ISNet stage requires rembg + onnxruntime; missing: {exc}" ) from exc - _ISNET_SESSION = new_session("isnet-general-use") + session_class = DisSession + if ( + session_class.__module__ != _ISNET_SESSION_MODULE + or session_class.__name__ != _ISNET_SESSION_CLASS + or session_class.name() != _ISNET_MODEL_NAME + ): + raise RuntimeError( + "installed rembg does not expose the exact isnet-general-use DisSession" + ) + available_providers = list(ort.get_available_providers()) + if _ISNET_PROVIDER not in available_providers: + raise RuntimeError( + f"required frozen provider {_ISNET_PROVIDER} is unavailable: " + f"{available_providers}" + ) + session_options = ort.SessionOptions() + if "OMP_NUM_THREADS" in os.environ: + thread_count = int(os.environ["OMP_NUM_THREADS"]) + session_options.inter_op_num_threads = thread_count + session_options.intra_op_num_threads = thread_count + # Construct the exact rembg session class without BaseSession.__init__: + # that initializer always calls download_models()/pooch.retrieve(). + session = object.__new__(session_class) + session.model_name = _ISNET_MODEL_NAME + session.providers = [_ISNET_PROVIDER] + session.inner_session = ort.InferenceSession( + model_bytes, + providers=[_ISNET_PROVIDER], + sess_options=session_options, + ) + session_class = session.__class__ + try: + reported_name = session_class.name() + except Exception as exc: # noqa: BLE001 + raise RuntimeError( + "rembg session cannot report its model identity; refusing fallback" + ) from exc + identity = { + "requested_model_name": _ISNET_MODEL_NAME, + "session_model_name": getattr(session, "model_name", None), + "session_reported_name": reported_name, + "session_class_module": session_class.__module__, + "session_class_name": session_class.__name__, + "rembg_version": _package_version("rembg"), + "onnxruntime_version": _package_version("onnxruntime"), + "requested_providers": list(getattr(session, "providers", []) or []), + "active_providers": [], + "available_providers": available_providers, + "verified_artifact": artifact, + "session_construction": "direct verified bytes; downloader bypassed", + } + inner_session = getattr(session, "inner_session", None) + if inner_session is not None and hasattr(inner_session, "get_providers"): + identity["active_providers"] = list(inner_session.get_providers()) + expected = ( + identity["session_model_name"] == _ISNET_MODEL_NAME + and identity["session_reported_name"] == _ISNET_MODEL_NAME + and identity["session_class_module"] == _ISNET_SESSION_MODULE + and identity["session_class_name"] == _ISNET_SESSION_CLASS + and identity["requested_providers"] == [_ISNET_PROVIDER] + and identity["active_providers"] == [_ISNET_PROVIDER] + ) + if not expected: + raise RuntimeError( + "rembg did not create the exact isnet-general-use session; " + f"refusing possible U2Net fallback: {identity}" + ) + global _ISNET_RUNTIME_IDENTITY + _ISNET_RUNTIME_IDENTITY = identity + _ISNET_SESSION = session return _ISNET_SESSION +def detector_runtime_identity(require_loaded: bool = True) -> dict: + """Return the identities observed from the actual loaded detector objects.""" + if require_loaded and (_BASNET_RUNTIME_IDENTITY is None or _ISNET_RUNTIME_IDENTITY is None): + raise RuntimeError("BASNet and ISNet runtime identities are not both available") + return { + "basnet": copy.deepcopy(_BASNET_RUNTIME_IDENTITY), + "isnet": copy.deepcopy(_ISNET_RUNTIME_IDENTITY), + } + + +def _unwrap_basnet_primary(output, torch_module): + """Select BASNet's primary refined ``dout`` map from its eight outputs.""" + value = output + if hasattr(value, "activated"): + value = value.activated + elif isinstance(value, dict) and "activated" in value: + value = value["activated"] + elif isinstance(value, (list, tuple)): + value = value[0] + + if hasattr(value, "dout"): + value = value.dout + elif isinstance(value, dict) and "dout" in value: + value = value["dout"] + elif isinstance(value, (list, tuple)): + value = value[0] + + if not isinstance(value, torch_module.Tensor): + raise RuntimeError( + f"BASNet primary dout is not a tensor after unwrap: {type(output)}" + ) + return value + + def _basnet_saliency(bg_rgb: np.ndarray) -> np.ndarray: """Run BASNet. bg_rgb is (H, W, 3) uint8. Returns native-256x256 float32 in [0, 1].""" import torch @@ -112,30 +396,17 @@ def _basnet_saliency(bg_rgb: np.ndarray) -> np.ndarray: x = tfm(pil).unsqueeze(0) with torch.no_grad(): out = model(x) - # BASNet returns a 7-tuple (d0, d1, ..., d6) of side-output saliency - # maps; d0 is the primary fused output. We recursively peel until we - # find a 4D tensor. - sal = out - for _ in range(5): - if isinstance(sal, torch.Tensor): - break - if isinstance(sal, (list, tuple)): - sal = sal[0] - elif hasattr(sal, "logits"): - sal = sal.logits - elif hasattr(sal, "last_hidden_state"): - sal = sal.last_hidden_state - else: - sal = next(iter(sal.values())) - if not isinstance(sal, torch.Tensor): - raise RuntimeError(f"BASNet output not a tensor after unwrap: {type(out)}") - if sal.dim() == 4: + # The frozen remote-code model returns eight maps: refined dout, d1..d6, + # and the bridge output db. ``dout`` is the primary saliency map. + sal = _unwrap_basnet_primary(out, torch) + if sal.dim() == 4 and tuple(sal.shape[:2]) == (1, 1): sal = sal[0, 0] - elif sal.dim() == 3: + elif sal.dim() == 3 and sal.shape[0] == 1: sal = sal[0] + elif sal.dim() != 2: + raise RuntimeError(f"BASNet output has unsupported tensor shape: {tuple(sal.shape)}") sal_np = sal.detach().cpu().float().numpy() - sal_np = np.clip(sal_np, 0.0, 1.0).astype(np.float32) - return sal_np + return _validated_map(sal_np, "BASNet") def _isnet_saliency(bg_rgb: np.ndarray) -> np.ndarray: @@ -147,9 +418,7 @@ def _isnet_saliency(bg_rgb: np.ndarray) -> np.ndarray: raise RuntimeError("rembg isnet-general-use returned no masks") mask_pil = masks[0] arr = np.array(mask_pil).astype(np.float32) / 255.0 - if arr.ndim == 3: - arr = arr.mean(axis=-1) - return arr.astype(np.float32) + return _validated_map(arr, "ISNet") def basnet_isnet_saliency( @@ -167,31 +436,44 @@ def basnet_isnet_saliency( """ if bg_rgb is None: raise ValueError("bg_rgb is None") + bg_rgb = np.asarray(bg_rgb) + if bg_rgb.ndim != 3 or bg_rgb.shape[2] != 3 or not bg_rgb.size: + raise ValueError(f"bg_rgb must have shape (H, W, 3), got {bg_rgb.shape}") + if not np.isfinite(bg_rgb).all(): + raise ValueError("bg_rgb contains NaN or infinity") if bg_rgb.dtype != np.uint8: + if float(bg_rgb.min()) < 0.0 or float(bg_rgb.max()) > 255.0: + raise ValueError("bg_rgb values must be within [0, 255]") bg_rgb = bg_rgb.astype(np.uint8) h, w = bg_rgb.shape[:2] if out_hw is None: out_h, out_w = h, w else: out_h, out_w = int(out_hw[0]), int(out_hw[1]) + if out_h <= 0 or out_w <= 0: + raise ValueError(f"output shape must be positive, got {(out_h, out_w)}") import cv2 - basnet_raw = _basnet_saliency(bg_rgb) + basnet_raw = _validated_map(_basnet_saliency(bg_rgb), "BASNet") basnet_resized = cv2.resize(basnet_raw, (out_w, out_h), interpolation=cv2.INTER_LINEAR) + basnet_resized = _validated_map( + basnet_resized, "resized BASNet", (out_h, out_w) + ) - isnet_raw = _isnet_saliency(bg_rgb) + isnet_raw = _validated_map(_isnet_saliency(bg_rgb), "ISNet") isnet_resized = cv2.resize(isnet_raw, (out_w, out_h), interpolation=cv2.INTER_LINEAR) + isnet_resized = _validated_map( + isnet_resized, "resized ISNet", (out_h, out_w) + ) - # Metric-audit A3 (2026-06-13): fuse via per-pixel MAX, matching PKU - # eval.py `pic = np.maximum(pic_1, pic_2)`. Previously this took the - # mean, which systematically under-estimates saliency vs PKU's max and - # made our Occ numbers non-comparable. (Remaining deviation: PKU's two - # maps are PFPN + BASNet; we substitute ISNet for PFPN -- a model- - # identity difference still open, see METRIC_ALIGNMENT_AUDIT.md A3.) + # Fuse via per-pixel MAX, matching PKU's fusion operation. Detector + # identity still differs: this evaluator substitutes ISNet for PFPN. + # Therefore direct comparisons require re-evaluating every method with + # this exact implementation; published cross-paper values are literature + # references only. fused = np.maximum(basnet_resized, isnet_resized) - fused = np.clip(fused, 0.0, 1.0).astype(np.float32) - return fused + return _validated_map(fused, "fused BASNet+ISNet", (out_h, out_w)) -__all__ = ["basnet_isnet_saliency"] +__all__ = ["basnet_isnet_saliency", "detector_runtime_identity"] diff --git a/metagpt/ext/agentlayout/feature_flags.py b/metagpt/ext/agentlayout/feature_flags.py index 8d1689e59..e9bea5230 100644 --- a/metagpt/ext/agentlayout/feature_flags.py +++ b/metagpt/ext/agentlayout/feature_flags.py @@ -21,6 +21,27 @@ def _flag(name: str) -> bool: return os.environ.get(name, "").strip().lower() in _TRUTHY +def visual_loop_enabled() -> bool: + """Step 77 (2026-07-02): Judge visual-observation feedback loop. + + When ON, the Aesthetic Judge prompt asks for ``visual_observations`` -- + discrete render-level defects from a closed catalogue (text_off_panel / + text_illegible / text_too_small / text_too_large / text_overlap / + text_tilted), each carrying a machine-verifiable target. The pipeline + computes a per-round COMPLIANCE RATE (tools/feedback_verifier.py) so a + failure localises to perception vs execution. + + Default OFF: judge->generator feedback measured net-negative three times + in the old regime (Steps 20b / 59 / 65). Step 77 re-tests it in the + SEGA-mode text-only regime where the Step 59 execution blockers + (constraint-saturated generator, messy asset semantics) are gone. + + Enable for the ablation: + export AGENTLAYOUT_VISUAL_LOOP=1 + """ + return _flag("AGENTLAYOUT_VISUAL_LOOP") + + def f2_saliency_enabled() -> bool: """F2 (Step 72, 2026-06-16): saliency-aware text placement. diff --git a/metagpt/ext/agentlayout/layout_tree_v3.py b/metagpt/ext/agentlayout/layout_tree_v3.py new file mode 100644 index 000000000..4483c2c46 --- /dev/null +++ b/metagpt/ext/agentlayout/layout_tree_v3.py @@ -0,0 +1,341 @@ +"""Versioned explicit Layout Tree contract for AgentLayout A3.""" +from __future__ import annotations + +import hashlib +import json +from enum import Enum +from pathlib import Path +from typing import Dict, List, Literal, Optional, Set, Union + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.schema import SemanticType +from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput +from metagpt.ext.agentlayout.run_manifest import write_json_once + + +A3_LAYOUT_TREE_SCHEMA_VERSION = "a3.layout-tree.v1" +A3_TREE_REQUEST_VERSION = "a3.layout-tree-request.v1" + + +class TreeRelation(str, Enum): + ROOT = "root" + CONTAINS = "contains" + SUPPORTS = "supports" + QUALIFIES = "qualifies" + IDENTIFIES = "identifies" + CALLS_TO_ACTION = "calls_to_action" + DECORATES = "decorates" + SEQUENCE_AFTER = "sequence_after" + PEER = "peer" + + +class A3TreeNode(BaseModel): + """One foreground asset and its explicit semantic parent relation.""" + + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + semantic_type: SemanticType + semantic_role: str = Field(..., min_length=1) + group_id: str = Field(..., pattern=r"^group_[A-Za-z0-9._-]+$") + group_label: str = Field(..., min_length=1) + parent_id: Union[Literal["root"], str] = "root" + relation_to_parent: TreeRelation + ordering_priority: int = Field(..., ge=0) + confidence: float = Field(..., ge=0.0, le=1.0) + + @model_validator(mode="after") + def _parent_contract(self) -> "A3TreeNode": + if self.parent_id != "root" and not self.parent_id.startswith("asset_"): + raise ValueError("parent_id must be 'root' or another stable asset ID") + if self.parent_id == self.asset_id: + raise ValueError("a tree node cannot parent itself") + if self.parent_id == "root" and self.relation_to_parent != TreeRelation.ROOT: + raise ValueError("root children must use relation_to_parent='root'") + if self.parent_id != "root" and self.relation_to_parent == TreeRelation.ROOT: + raise ValueError("non-root edges cannot use relation_to_parent='root'") + return self + + +class A3TreeGroup(BaseModel): + model_config = ConfigDict(extra="forbid") + + group_id: str = Field(..., pattern=r"^group_[A-Za-z0-9._-]+$") + label: str = Field(..., min_length=1) + member_ids: List[str] = Field(..., min_length=1) + ordering_priority: int = Field(..., ge=0) + confidence: float = Field(..., ge=0.0, le=1.0) + + @model_validator(mode="after") + def _unique_members(self) -> "A3TreeGroup": + if len(self.member_ids) != len(set(self.member_ids)): + raise ValueError(f"group {self.group_id} contains duplicate members") + return self + + +class A3LayoutTree(BaseModel): + """Normalized tree with explicit edges and non-overlapping semantic groups.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.layout-tree.v1"] = A3_LAYOUT_TREE_SCHEMA_VERSION + source: Literal["predicted", "human_oracle"] + root_label: str = Field(default="foreground_layout", min_length=1) + nodes: List[A3TreeNode] = Field(..., min_length=1) + groups: List[A3TreeGroup] = Field(..., min_length=1) + + @model_validator(mode="after") + def _structural_validity(self) -> "A3LayoutTree": + node_ids = [node.asset_id for node in self.nodes] + if len(node_ids) != len(set(node_ids)): + raise ValueError("Layout Tree contains duplicate asset IDs") + known: Set[str] = set(node_ids) + for node in self.nodes: + if node.parent_id != "root" and node.parent_id not in known: + raise ValueError( + f"node {node.asset_id} references missing parent {node.parent_id}" + ) + + parents = {node.asset_id: node.parent_id for node in self.nodes} + for asset_id in node_ids: + seen: Set[str] = set() + current = asset_id + while current != "root": + if current in seen: + raise ValueError(f"Layout Tree contains a cycle through {current}") + seen.add(current) + current = parents[current] + + group_ids = [group.group_id for group in self.groups] + if len(group_ids) != len(set(group_ids)): + raise ValueError("Layout Tree contains duplicate group IDs") + groups_by_id = {group.group_id: group for group in self.groups} + memberships: Dict[str, str] = {} + for group in self.groups: + unknown = set(group.member_ids) - known + if unknown: + raise ValueError(f"group {group.group_id} contains unknown assets {sorted(unknown)}") + for member in group.member_ids: + if member in memberships: + raise ValueError( + f"asset {member} appears in multiple groups: " + f"{memberships[member]}, {group.group_id}" + ) + memberships[member] = group.group_id + missing_groups = known - set(memberships) + if missing_groups: + raise ValueError(f"assets missing group membership: {sorted(missing_groups)}") + for node in self.nodes: + group = groups_by_id.get(node.group_id) + if group is None or memberships[node.asset_id] != node.group_id: + raise ValueError(f"node {node.asset_id} has inconsistent group_id") + if node.group_label != group.label: + raise ValueError(f"node {node.asset_id} group_label disagrees with group label") + return self + + +class A3TreeRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.layout-tree-request.v1"] = A3_TREE_REQUEST_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + + +class FlatRoleEntry(BaseModel): + model_config = ConfigDict(extra="forbid") + + asset_id: str + semantic_type: SemanticType + semantic_role: str + + +class TreeCondition(BaseModel): + """Typed T0/T1/T2/T3 input boundary for later Mapper ablations.""" + + model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True) + + arm: Literal["T0", "T1", "T2", "T3"] + asset_ids: List[str] + flat_roles: Optional[List[FlatRoleEntry]] = None + tree: Optional[A3LayoutTree] = None + + @model_validator(mode="after") + def _arm_payload(self) -> "TreeCondition": + if self.arm == "T0" and (self.flat_roles is not None or self.tree is not None): + raise ValueError("T0 must not carry roles or a tree") + if self.arm == "T1" and (self.flat_roles is None or self.tree is not None): + raise ValueError("T1 requires flat_roles and forbids a tree") + if self.arm in {"T2", "T3"} and (self.tree is None or self.flat_roles is not None): + raise ValueError(f"{self.arm} requires a tree and forbids flat_roles") + if self.arm == "T2" and self.tree and self.tree.source != "predicted": + raise ValueError("T2 requires source='predicted'") + if self.arm == "T3" and self.tree and self.tree.source != "human_oracle": + raise ValueError("T3 requires source='human_oracle'") + return self + + +def validate_tree_asset_coverage(tree: A3LayoutTree, analyst: A3AnalystOutput) -> None: + expected = {asset.asset_id: asset for asset in analyst.assets} + actual = {node.asset_id: node for node in tree.nodes} + if set(expected) != set(actual): + raise ValueError( + f"Layout Tree coverage mismatch: missing={sorted(set(expected) - set(actual))}, " + f"extra={sorted(set(actual) - set(expected))}" + ) + + +def validate_tree_against_analyst(tree: A3LayoutTree, analyst: A3AnalystOutput) -> None: + """Validate the predicted T2 tree against its Analyst semantic source.""" + validate_tree_asset_coverage(tree, analyst) + expected = {asset.asset_id: asset for asset in analyst.assets} + actual = {node.asset_id: node for node in tree.nodes} + semantic_mismatch = [ + asset_id + for asset_id, node in actual.items() + if node.semantic_type != expected[asset_id].semantic_type + ] + if semantic_mismatch: + raise ValueError(f"Layout Tree semantic_type mismatch: {semantic_mismatch}") + role_mismatch = [ + asset_id + for asset_id, node in actual.items() + if node.semantic_role != expected[asset_id].semantic_role + ] + if role_mismatch: + raise ValueError(f"Layout Tree semantic_role mismatch: {role_mismatch}") + + +def build_tree_prompt(analyst: A3AnalystOutput) -> str: + payload = { + "design_intent": analyst.design_intent, + "style_keywords": analyst.style_keywords, + "assets": [asset.model_dump(mode="json") for asset in analyst.assets], + } + schema = A3LayoutTree.model_json_schema() + return f"""Role: You are the Asset Planner in AgentLayout A3. + +Build an explicit semantic Layout Tree BEFORE any coordinates are generated. + +# Analyst semantic output +{json.dumps(payload, ensure_ascii=False, indent=2)} + +# Rules +- Include every foreground asset ID exactly once. Never invent or rename IDs. +- Copy each asset's semantic_type and semantic_role from the Analyst output + VERBATIM; both are enforced deterministically after parsing. +- Assign exactly one semantic group, a parent, relation, ordering priority + and confidence per asset — grouping and edges are your only judgement. +- Use parent_id="root" and relation_to_parent="root" for top-level assets. +- Every non-root parent must be another supplied asset ID; no cycles. +- Decorative assets remain represented and grouped; never drop them. +- Do NOT output coordinates, bbox, size, font size, z-index or asset paths. +- source MUST be "predicted". + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_tree_request(analyst: A3AnalystOutput) -> A3TreeRequest: + prompt = build_tree_prompt(analyst) + return A3TreeRequest( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + ) + + +def save_tree_request(request: A3TreeRequest, output_dir: Path) -> None: + """Persist the exact Planner request without allowing artifact replacement.""" + output_dir.mkdir(parents=True, exist_ok=False) + write_json_once(output_dir / "planner_request.json", request.model_dump(mode="json")) + + +def parse_layout_tree(response: str) -> A3LayoutTree: + text = (response or "").strip() + if not text.startswith("{"): + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + payload = json.loads(text) + # A3-08 smoke normalization: a root child has exactly one legal relation + # value, so coercing it is unambiguous and loses no information. The + # inverse case (non-root parent with relation='root') stays a hard error. + for node in payload.get("nodes", []): + if isinstance(node, dict) and node.get("parent_id", "root") == "root": + node["relation_to_parent"] = "root" + return A3LayoutTree.model_validate(payload) + + +def apply_analyst_semantics(tree: A3LayoutTree, analyst: A3AnalystOutput) -> A3LayoutTree: + """Enforce Analyst semantic_type/semantic_role on a predicted tree. + + A3-08 smoke finding: requiring the Planner LLM to re-emit the Analyst's + free-text roles byte-for-byte is brittle — paraphrases failed the T2 + fidelity check. Overwriting both fields deterministically makes fidelity + true by construction; the Planner only ever contributes grouping, edges, + ordering and confidence. Unknown asset IDs are left untouched so the + coverage validator still reports them. + """ + expected = {asset.asset_id: asset for asset in analyst.assets} + nodes = [ + node.model_copy( + update={ + "semantic_type": expected[node.asset_id].semantic_type, + "semantic_role": expected[node.asset_id].semantic_role, + } + ) + if node.asset_id in expected + else node + for node in tree.nodes + ] + return A3LayoutTree( + source=tree.source, root_label=tree.root_label, nodes=nodes, groups=tree.groups + ) + + +def condition_prompt_payload(condition: TreeCondition) -> Dict: + """Serialize a T0/T1/T2/T3 condition for Director/Mapper prompts. + + Exactly the arm's allowed information is emitted: T0 exposes IDs only, + T1 adds flat roles, T2/T3 add the full tree. Nothing else may leak in, + so the ablation arms differ by tree information alone. + """ + payload: Dict = {"tree_condition": condition.arm, "asset_ids": list(condition.asset_ids)} + if condition.flat_roles is not None: + payload["flat_roles"] = [entry.model_dump(mode="json") for entry in condition.flat_roles] + if condition.tree is not None: + payload["layout_tree"] = condition.tree.model_dump(mode="json") + return payload + + +def make_tree_condition( + arm: Literal["T0", "T1", "T2", "T3"], + analyst: A3AnalystOutput, + *, + tree: Optional[A3LayoutTree] = None, +) -> TreeCondition: + asset_ids = [asset.asset_id for asset in analyst.assets] + if arm == "T0": + return TreeCondition(arm=arm, asset_ids=asset_ids) + if arm == "T1": + roles = [ + FlatRoleEntry( + asset_id=asset.asset_id, + semantic_type=asset.semantic_type, + semantic_role=asset.semantic_role, + ) + for asset in analyst.assets + ] + return TreeCondition(arm=arm, asset_ids=asset_ids, flat_roles=roles) + if tree is None: + raise ValueError(f"{arm} requires a tree") + if arm == "T2": + validate_tree_against_analyst(tree, analyst) + else: + # T3 is independently human-annotated and may intentionally correct + # Analyst roles/types. Only stable-ID/sample coverage is shared. + validate_tree_asset_coverage(tree, analyst) + return TreeCondition(arm=arm, asset_ids=asset_ids, tree=tree) diff --git a/metagpt/ext/agentlayout/pipeline.py b/metagpt/ext/agentlayout/pipeline.py index 5c2b42956..3b0b0d75c 100644 --- a/metagpt/ext/agentlayout/pipeline.py +++ b/metagpt/ext/agentlayout/pipeline.py @@ -26,11 +26,12 @@ """ from __future__ import annotations -from typing import Dict, List, Optional, Set, Tuple +from typing import Any, Dict, List, Optional, Tuple from pydantic import BaseModel, ConfigDict, Field from metagpt.ext.agentlayout.actions.analyze_brief import AnalyzeBrief, AssetInput +from metagpt.ext.agentlayout.actions.compose_concept import ComposeConcept from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout from metagpt.ext.agentlayout.actions.judge_aesthetic import JudgeAesthetic from metagpt.ext.agentlayout.actions.plan_assets import PlanAssets @@ -39,16 +40,24 @@ BackgroundAnalysis, Candidate, Canvas, + CompositionConcept, + ConceptBatch, DesignSpec, FeedbackTarget, IterationState, JudgeDecision, K_VALID, LayoutTree, + UnderlayRegion, + VisualObservation, ) from metagpt.ext.agentlayout.roles.iteration_state import ACCEPT_CONSECUTIVE_STOP from metagpt.ext.agentlayout.tools.asset_analyzer import AssetAnalyzer from metagpt.ext.agentlayout.tools.background_analyzer import resolve_background +from metagpt.ext.agentlayout.tools.feedback_verifier import ( + check_observation, + compliance_report, +) from metagpt.ext.agentlayout.tools.quality_checker import ( CheckResult, filter_valid, @@ -62,6 +71,25 @@ # ============================================================ +# Step 85 issue ledger: rubric priority (lower = fix first) and how many open +# issues are fed to the mapper per round. The ledger is the loop's MEMORY -- +# the judge looks and estimates targets per image, but once an issue is +# opened its target persists verbatim until the verifier retires it +# geometrically. This kills the Step 84 oscillation ("too far" -> "too +# cramped" -> "not centered" on near-identical layouts). +_LEDGER_PRIORITY = { + "title_misplaced": 0, + "lockup_broken": 1, + "text_off_panel": 2, + "text_overlap": 3, + "text_too_small": 4, + "text_too_large": 4, + "text_illegible": 5, + "text_tilted": 6, +} +LEDGER_FEED_K: int = 2 + + def default_white_background(canvas: Canvas) -> BackgroundAnalysis: """BackgroundAnalysis stub derived from the Canvas itself. @@ -113,6 +141,12 @@ class PipelineConfig(BaseModel): min_candidates_to_judge: int = Field(default=1, ge=1) """Below this, QC is treated as catastrophic and the pipeline aborts.""" + n_concepts: Optional[int] = Field(default=None, ge=1, le=5) + """Step 83: override the CompositionDirector's concept count. None keeps + the ComposeConcept default (3). Set 1 for single-candidate deep-review + mode -- Step 82 showed the three concepts had converged to near-identical + layouts, so best-of-3 paid 3x mapper cost for a fake choice.""" + class TraceEntry(BaseModel): """One line of pipeline-level history for debugging / paper analytics.""" @@ -122,6 +156,13 @@ class TraceEntry(BaseModel): feedback_target: Optional[str] = None # 'layout_generator' | 'analyst' | None on accept candidate_count: int # candidates handed to Aesthetic Judge qc_filtered_count: int # how many were dropped by Quality Checker this round + ledger_open: Optional[int] = None + """Step 85: number of unretired ledger issues after this round.""" + compliance: Optional[Dict[str, Any]] = None + """Step 77: when the PREVIOUS round's judge emitted visual_observations and + they were fed to the CoordinateMapper, this round's best candidate is + machine-checked against them (n_total / n_verifiable / n_satisfied / rate). + None when no observations were pending.""" class PipelineResult(BaseModel): @@ -147,8 +188,21 @@ class PipelineError(RuntimeError): Causes: * Quality Checker drops every candidate in every top-up round * ``max_total_rounds`` exhausted with the most recent decision being REJECT + + Step 76b (selection-effect fix): on the max-rounds path the error carries + the LAST round's judge-preferred candidate (``best_candidate`` + + ``spec`` + ``judgement``), so evaluation drivers can render and + blind-judge exhausted runs too. Without this, blind win-rates are + conditioned on internal acceptance — a selection effect (the Step 76 A/B + could only judge 13/19 vs 9/19 rows). Attributes stay ``None`` on the + zero-candidates path. """ + best_candidate: Optional[Candidate] = None + spec: Optional[DesignSpec] = None + judgement: Optional["AestheticJudgement"] = None + trace: Optional[List["TraceEntry"]] = None # Step 77: keeps compliance rows + # ============================================================ # Pipeline driver @@ -164,6 +218,7 @@ def __init__( analyze: Optional[AnalyzeBrief] = None, asset_analyzer: Optional[AssetAnalyzer] = None, plan: Optional[PlanAssets] = None, + compose: Optional[ComposeConcept] = None, generate: Optional[GenerateLayout] = None, judge: Optional[JudgeAesthetic] = None, config: Optional[PipelineConfig] = None, @@ -172,6 +227,10 @@ def __init__( self.analyze = analyze or AnalyzeBrief() self.asset_analyzer = asset_analyzer or AssetAnalyzer() self.plan = plan or PlanAssets() + # "先想再畫" refactor: the CompositionDirector (compose) imagines the + # spatial concept; the CoordinateMapper (generate) turns each concept + # into one candidate. Both default to real constructors. + self.compose = compose or ComposeConcept() self.generate = generate or GenerateLayout() self.judge = judge or JudgeAesthetic() self.config = config or PipelineConfig() @@ -182,8 +241,22 @@ async def run( user_brief: str, asset_list: List[AssetInput], bg: Optional[BackgroundAnalysis] = None, + underlay_regions: Optional[List[UnderlayRegion]] = None, + round_callback: Optional[Any] = None, ) -> PipelineResult: - """Drive the pipeline to either an accepted Candidate or a PipelineError.""" + """Drive the pipeline to either an accepted Candidate or a PipelineError. + + ``underlay_regions`` (Step 76): baked-underlay hints from the SEGA-style + Crello preprocessor. They are merged into the resolved BackgroundAnalysis + so both the Composition Director and the CoordinateMapper see them; the + caller does not need to build a full BackgroundAnalysis itself. + + ``round_callback`` (Step 82): optional observer called after EVERY judge + round as ``round_callback(round_idx, kept, judgement, spec)`` -- lets + evaluation drivers snapshot each round's candidates (e.g. render the + per-round evolution). Exceptions inside the callback are swallowed; it + can never affect the run. + """ # Step 1: build the initial spec + enrich + plan. spec = await self.analyze.run(user_brief=user_brief, asset_list=asset_list) self.asset_analyzer.run(spec) @@ -192,59 +265,196 @@ async def run( # safe-zone analysis when spec.canvas has a background image, else the # historical solid-color stub (resolve_background handles both). bg_resolved = bg if bg is not None else resolve_background(spec.canvas) + if underlay_regions: + bg_resolved = bg_resolved.model_copy( + update={"underlay_regions": list(underlay_regions)} + ) state = IterationState() trace: List[TraceEntry] = [] - gen_feedback: Optional[AestheticFeedback] = None # latest feedback for the generator - # Refinement Loop bookkeeping: carried across rounds so the next - # generator call runs in anchored-edit mode. - gen_prev_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None - gen_prev_scores: Optional[Dict[str, int]] = None + # "先想再畫" loop state: + # concepts -- current ConceptBatch; None forces a re-compose. + # coord_feedback -- typography/colour feedback for the CoordinateMapper + # (kept only while the SAME concepts are reused). + concepts: Optional[ConceptBatch] = None + coord_feedback: Optional[AestheticFeedback] = None + coord_prev_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None + coord_prev_scores: Optional[Dict[str, int]] = None + # Step 84: design-reject loop closure -- the judge's reasons + the + # rejected concepts flow BACK to the CompositionDirector, which used + # to re-imagine blind (Step 83 trace: R0-R3 identical concepts). + compose_feedback: Optional[AestheticFeedback] = None + compose_prev_concepts: Optional[ConceptBatch] = None + # Step 84b (user): the mapper needs the REJECTED coordinates as a + # contrast reference, otherwise "fix it" has no baseline to differ + # from. True on the round right after a design reject. + coord_revision: bool = False + # Step 85 issue ledger: (kind, target_id) -> the FIRST observation + # opened for that issue (target persists verbatim until retired). + # Step 88b: retired keeps the observation so a geometric REGRESSION + # re-opens it with the ORIGINAL target -- retirement is not immunity. + ledger_open: Dict[Tuple[str, str], VisualObservation] = {} + ledger_retired: Dict[Tuple[str, str], VisualObservation] = {} last_accept_result: Optional[PipelineResult] = None # set when Judge accepts + # Step 76b: judge-preferred candidate of the most recent REJECT round, + # attached to PipelineError so drivers can still render/judge it. + last_reject_best: Optional[Candidate] = None + last_judgement: Optional[AestheticJudgement] = None for round_idx in range(self.config.max_total_rounds): - kept, reports = await self._generate_with_topup( + # Phase 2: imagine composition concepts (first round, or whenever a + # design_layout/innovation reject invalidated the previous ones). + if concepts is None: + compose_kwargs = {} + if self.config.n_concepts is not None: + compose_kwargs["n"] = self.config.n_concepts + if compose_feedback is not None or compose_prev_concepts is not None: + compose_kwargs["feedback"] = compose_feedback + compose_kwargs["prev_concepts"] = compose_prev_concepts + concepts = await self.compose.run( + spec=spec, bg=bg_resolved, **compose_kwargs + ) + compose_feedback = None + compose_prev_concepts = None + if not coord_revision: + # New concepts -> stale coordinate feedback. EXCEPT in + # revision mode (Step 84b): there the rejected layout + + # criticisms are deliberately carried to the mapper as a + # contrast reference. + coord_feedback = None + coord_prev_layout = None + coord_prev_scores = None + logger.info( + f"LayoutPipeline round {round_idx}: composed " + f"{len(concepts.concepts)} concept(s)." + ) + + # Phase 3+4: one CoordinateMapper candidate per concept, then QC. + kept, reports = await self._generate_from_concepts( spec, tree, bg_resolved, - gen_feedback, - prev_best_layout=gen_prev_layout, - prev_best_subscores=gen_prev_scores, + concepts, + round_idx, + coord_feedback, + prev_best_layout=coord_prev_layout, + prev_best_subscores=coord_prev_scores, + revision=coord_revision, ) + coord_revision = False qc_dropped = sum(1 for r in reports if not r.passed) if len(kept) < self.config.min_candidates_to_judge: - # _generate_with_topup already degrades to least-violating - # candidates when QC rejects everything, so this only fires - # when generation produced fewer raw candidates than the - # judge minimum (LLM emitted near-empty batches). raise PipelineError( f"Round {round_idx}: only {len(kept)} candidate(s) available " - f"after {self.config.max_topup_rounds} top-up round(s) and " - f"degradation; required >= {self.config.min_candidates_to_judge}." + f"from {len(concepts.concepts)} concept(s) after degradation; " + f"required >= {self.config.min_candidates_to_judge}." ) + # Phase 5: judge. judgement = await self.judge.run( candidates=kept, spec=spec, tree=tree, bg=bg_resolved ) - # Refinement Loop iteration counts every verdict, not just rejects. state.iteration += 1 state.last_feedback = judgement.feedback is_accept = judgement.decision == JudgeDecision.ACCEPT + last_judgement = judgement + # Step 77: if the feedback fed into THIS round carried visual + # observations, machine-check the round's best candidate against + # them -- the compliance rate localises loop failures. + compliance_dict: Optional[Dict[str, Any]] = None + try: + best_now: Optional[Candidate] = self._find_candidate( + kept, judgement.best_candidate_id + ) + except PipelineError: + best_now = None + if best_now is not None and coord_feedback is not None \ + and coord_feedback.visual_observations: + try: + report = compliance_report( + coord_feedback.visual_observations, best_now + ) + compliance_dict = report.model_dump(exclude={"checks"}) + logger.info( + f"LayoutPipeline round {round_idx}: visual-observation " + f"compliance {report.n_satisfied}/{report.n_verifiable} " + f"(rate={report.rate})." + ) + # Step 85: geometric retirement -- an issue leaves the + # ledger only when the verifier confirms it fixed. + for check in report.checks: + key = (check.kind, check.target_id) + if check.satisfied and key in ledger_open: + ledger_retired[key] = ledger_open.pop(key) + except PipelineError: + pass # judge picked an id not in kept -- impossible in theory + + # Step 88b: regression watch -- retired issues are re-checked + # against every round's best candidate; a fixed defect that + # comes back re-opens with its ORIGINAL target. + if best_now is not None and ledger_retired: + for key, obs in list(ledger_retired.items()): + chk = check_observation(obs, best_now) + if chk.verifiable and chk.satisfied is False: + ledger_open[key] = ledger_retired.pop(key) + logger.info( + f"LayoutPipeline round {round_idx}: ledger issue " + f"{key} REGRESSED -- reopened with original target." + ) + + # Step 85: ingest NEW issues (judge may only append; an open or + # retired issue keeps its original target -- no re-litigation), + # then replace the fed view with the top-priority open items. + for obs in judgement.feedback.visual_observations: + key = (obs.kind.value, obs.target_id) + if key not in ledger_open and key not in ledger_retired: + ledger_open[key] = obs + if ledger_open or judgement.feedback.visual_observations: + judgement.feedback.visual_observations = sorted( + ledger_open.values(), + key=lambda o: _LEDGER_PRIORITY.get(o.kind.value, 9), + )[:LEDGER_FEED_K] + # Step 89: retired targets ride along as KEEP constraints so the + # next mapper call (especially accept-round polish) cannot undo + # what the loop already fixed. + if ledger_retired: + judgement.feedback.keep_constraints = list(ledger_retired.values())[:4] + + # Step 88b: the round observer fires AFTER ledger processing so + # drivers dump the TRUE fed view, not the inspector's raw output. + if round_callback is not None: + try: + round_callback(round_idx, kept, judgement, spec) + except Exception as err: # noqa: BLE001 -- observer only + logger.warning(f"LayoutPipeline round_callback failed: {err}") if is_accept: state.consecutive_accepts += 1 else: state.consecutive_accepts = 0 state.reject_count += 1 + try: + last_reject_best = self._find_candidate( + kept, judgement.best_candidate_id + ) + except PipelineError: + last_reject_best = None # defensive; judge validates the id decision_label = "accept" if is_accept else "reject" - # Route the verdict. ACCEPT goes to LAYOUT_GENERATOR unconditionally - # (mandatory refinement). REJECT uses next_target(). + # Phase 6: route the verdict. + # ACCEPT -> CoordinateMapper (mandatory refinement pass) + # REJECT design/inn -> CompositionDirector (re-imagine) + # REJECT (too many) -> Analyst (rebuild spec) + # REJECT otherwise -> CoordinateMapper (typography/colour fix) if is_accept: state.feedback_target = FeedbackTarget.LAYOUT_GENERATOR + elif state.next_target() == FeedbackTarget.ANALYST: + state.feedback_target = FeedbackTarget.ANALYST + elif self._worst_axis(judgement) in ("design_layout", "innovation_originality"): + state.feedback_target = FeedbackTarget.COMPOSITION_DIRECTOR else: - state.feedback_target = state.next_target() + state.feedback_target = FeedbackTarget.LAYOUT_GENERATOR trace.append( TraceEntry( @@ -253,6 +463,8 @@ async def run( feedback_target=state.feedback_target.value, candidate_count=len(kept), qc_filtered_count=qc_dropped, + ledger_open=len(ledger_open) if (ledger_open or ledger_retired) else None, + compliance=compliance_dict, ) ) @@ -266,8 +478,6 @@ async def run( iteration_state=state, trace=trace, ) - # Terminate when refinement has actually held (two accepts - # in a row) so we do not waste rounds on a converged layout. if state.consecutive_accepts >= ACCEPT_CONSECUTIVE_STOP: logger.info( f"LayoutPipeline accepted at round {round_idx} " @@ -276,25 +486,29 @@ async def run( "Refinement converged." ) return last_accept_result - logger.info( - f"LayoutPipeline ACCEPT at round {round_idx} " - f"(best={judgement.best_candidate_id}); running mandatory " - "refinement pass." - ) - if state.feedback_target == FeedbackTarget.LAYOUT_GENERATOR: - # Spec + tree stay; next round's generator gets the feedback - # plus the previous best layout for anchored refinement. - gen_feedback = judgement.feedback - gen_prev_layout = judgement.best_candidate_layout - gen_prev_scores = self._best_subscores(judgement) + target = state.feedback_target + if target == FeedbackTarget.COMPOSITION_DIRECTOR: + # Composition itself is weak -> revise the concepts next round. + # Step 84: carry the judge's reasons + the rejected concepts to + # the Director instead of discarding them (the discard made + # every re-imagined round regenerate the same concept). logger.info( - f"LayoutPipeline {decision_label} -> Layout Generator " - f"(iteration={state.iteration}, mode=refinement)" + f"LayoutPipeline reject -> CompositionDirector " + f"(iteration={state.iteration}); revising concepts against " + f"the judge's criticisms." ) - else: - # ANALYST: regenerate spec from scratch with feedback, - # re-enrich, re-plan, and clear ALL refinement carry-over. + compose_feedback = judgement.feedback + compose_prev_concepts = concepts + concepts = None + # Step 84b: keep the rejected layout + criticisms for the + # mapper as a CONTRAST reference (revision mode), instead of + # cold-starting it. + coord_feedback = judgement.feedback + coord_prev_layout = judgement.best_candidate_layout + coord_prev_scores = self._best_subscores(judgement) + coord_revision = True + elif target == FeedbackTarget.ANALYST: logger.info( f"LayoutPipeline reject -> Analyst (iteration={state.iteration}); " "rebuilding spec + tree." @@ -306,13 +520,21 @@ async def run( ) self.asset_analyzer.run(spec) tree = await self.plan.run(spec=spec) - gen_feedback = None - gen_prev_layout = None - gen_prev_scores = None + concepts = None + coord_feedback = None + coord_prev_layout = None + coord_prev_scores = None + else: + # CoordinateMapper: keep the concepts, feed the typography/colour + # (or accept-refinement) suggestions plus the previous best bbox. + coord_feedback = judgement.feedback + coord_prev_layout = judgement.best_candidate_layout + coord_prev_scores = self._best_subscores(judgement) + logger.info( + f"LayoutPipeline {decision_label} -> CoordinateMapper " + f"(iteration={state.iteration}, mode=micro-adjust)" + ) - # Loop ended without two consecutive accepts. If at least one accept - # was observed, return that result (the refinement followup never - # converged but the initial verdict was still positive). Otherwise raise. if last_accept_result is not None: logger.warning( f"LayoutPipeline: refinement did not converge within " @@ -320,10 +542,25 @@ async def run( "recent accept verdict." ) return last_accept_result - raise PipelineError( + err = PipelineError( f"Max rounds ({self.config.max_total_rounds}) exhausted without accept. " f"Iterations recorded: {state.iteration}." ) + # Step 76b: let evaluation drivers render/judge the exhausted run too, + # instead of silently dropping it from blind statistics. + err.best_candidate = last_reject_best + err.spec = spec + err.judgement = last_judgement + err.trace = trace + raise err + + @staticmethod + def _worst_axis(judgement: AestheticJudgement) -> Optional[str]: + """Lowest-scoring COLE axis of the best candidate (drives reject routing).""" + scores = LayoutPipeline._best_subscores(judgement) + if not scores: + return None + return min(scores.items(), key=lambda kv: kv[1])[0] @staticmethod def _best_subscores(judgement: AestheticJudgement) -> Optional[Dict[str, int]]: @@ -343,66 +580,61 @@ def _best_subscores(judgement: AestheticJudgement) -> Optional[Dict[str, int]]: # Internals # -------------------------------------------------------- - async def _generate_with_topup( + async def _generate_from_concepts( self, spec: DesignSpec, tree: LayoutTree, bg: BackgroundAnalysis, + concepts: ConceptBatch, + round_idx: int, feedback: Optional[AestheticFeedback], prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None, prev_best_subscores: Optional[Dict[str, int]] = None, + revision: bool = False, ) -> Tuple[List[Candidate], List[CheckResult]]: - """Call GenerateLayout repeatedly until we have ``k_valid`` QC-passing candidates. - - Refinement Loop (2026-05-20): when ``prev_best_layout`` is non-empty the - Action runs in anchored-edit mode (+/-10% drift per element) instead of - cold-start. Top-up retries within the same round reuse the same prior. + """Map each concept to exactly ONE candidate, then QC-filter. + + "先想再畫" refactor: replaces the old k_valid top-up loop. Three genuinely + different concepts beat fifteen variations of one centred template, so we + do not top up -- each concept produces one candidate. A concept whose + CoordinateMapper call fails outright is skipped (fault tolerance). When + QC rejects everything, we degrade to the least-violating candidates so + the Judge still has something to score. """ - kept: List[Candidate] = [] - pool: List[Candidate] = [] # every generated candidate, for degradation - all_reports: List[CheckResult] = [] - seen_ids: Set[str] = set() - - for topup_idx in range(self.config.max_topup_rounds): - batch = await self.generate.run( - spec=spec, - tree=tree, - bg=bg, - feedback=feedback, - prev_best_layout=prev_best_layout, - prev_best_subscores=prev_best_subscores, - ) - - # Re-prefix candidate ids so concurrent top-up batches do not collide. - # The LLM tends to emit cand_1..cand_5 each call; without prefixing, - # the second batch would shadow the first. + pool: List[Candidate] = [] + for i, concept in enumerate(concepts.concepts): + try: + batch = await self.generate.run( + spec=spec, + tree=tree, + bg=bg, + concept=concept, + feedback=feedback, + prev_best_layout=prev_best_layout, + prev_best_subscores=prev_best_subscores, + revision=revision, + ) + except (ValueError, Exception) as err: # noqa: BLE001 + logger.warning( + f"LayoutPipeline: concept {i} ('{concept.name}') failed to map " + f"to coordinates ({err}); skipping it." + ) + continue + # Prefix ids with round + concept so candidates never collide and the + # winning candidate is traceable back to its concept. for cand in batch.candidates: - cand.candidate_id = f"r{topup_idx}_{cand.candidate_id}" - + cand.candidate_id = f"r{round_idx}_c{i}_{cand.candidate_id}" pool.extend(batch.candidates) - new_kept, reports = filter_valid(batch.candidates, spec, bg=bg) - all_reports.extend(reports) - for cand in new_kept: - if cand.candidate_id not in seen_ids: - kept.append(cand) - seen_ids.add(cand.candidate_id) - - if len(kept) >= self.config.k_valid: - break + kept, all_reports = filter_valid(pool, spec, bg=bg) if kept: - # Trim to exactly k_valid so Aesthetic Judge always sees a stable size. - return kept[: self.config.k_valid], all_reports + return kept, all_reports - # Graceful degradation (step 10b fix): mirror of LayoutGeneratorRole. - # No candidate passed QC -- rather than raise PipelineError and abort - # the whole sample (which shrinks evaluable N), hand back the - # least-violating candidates so the Judge still scores them. degraded = rank_candidates_by_violations(pool, all_reports)[: self.config.k_valid] if degraded: logger.warning( - f"LayoutPipeline: 0/{len(pool)} candidates passed QC after " - f"{self.config.max_topup_rounds} top-up round(s); degrading to " + f"LayoutPipeline: 0/{len(pool)} candidates passed QC across " + f"{len(concepts.concepts)} concept(s); degrading to " f"{len(degraded)} least-violating candidate(s) so the run continues." ) return degraded, all_reports diff --git a/metagpt/ext/agentlayout/roles/__init__.py b/metagpt/ext/agentlayout/roles/__init__.py index dc30e4fc9..1b35ece4d 100644 --- a/metagpt/ext/agentlayout/roles/__init__.py +++ b/metagpt/ext/agentlayout/roles/__init__.py @@ -26,10 +26,13 @@ from metagpt.ext.agentlayout.roles.aesthetic_judge import AestheticJudgeRole from metagpt.ext.agentlayout.roles.analyst import AnalystRole from metagpt.ext.agentlayout.roles.asset_planner import AssetPlannerRole +from metagpt.ext.agentlayout.roles.composition_director import CompositionDirectorRole from metagpt.ext.agentlayout.roles.iteration_state import ( IterationStateRole, IterationStop, RetryAnalyst, + RetryComposition, + RetryCoordinates, RetryGeneration, RetryPayload, ) @@ -38,11 +41,14 @@ __all__ = [ "AnalystRole", "AssetPlannerRole", + "CompositionDirectorRole", "LayoutGeneratorRole", "AestheticJudgeRole", "IterationStateRole", "IterationStop", "RetryAnalyst", + "RetryComposition", + "RetryCoordinates", "RetryGeneration", "RetryPayload", ] diff --git a/metagpt/ext/agentlayout/roles/composition_director.py b/metagpt/ext/agentlayout/roles/composition_director.py new file mode 100644 index 000000000..880830db0 --- /dev/null +++ b/metagpt/ext/agentlayout/roles/composition_director.py @@ -0,0 +1,85 @@ +"""CompositionDirectorRole -- Role wrapper around ComposeConcept. + +"先想再畫" refactor (2026-06-25). This Role owns the *thinking* half of layout +generation: it imagines spatial composition concepts in natural language before +any pixel is placed. It is the Role-path counterpart of the ``compose`` step in +``LayoutPipeline.run``. + +Triggered by either: + + * A ``PlanAssets`` Message (the forward pass): the Asset Planner has just + finished, so it is time to imagine concepts for the current spec. + * A ``RetryComposition`` Message from ``IterationStateRole`` (a feedback + re-run): the Aesthetic Judge found the composition itself weak + (design_layout / innovation worst), so re-imagine from scratch. + +The DesignSpec is pulled from env history (the most recent AnalyzeBrief output); +the background analysis is the CV module ``resolve_background`` exactly as the +CoordinateMapper uses it, so both stages see the same image. +""" +from __future__ import annotations + +from metagpt.logs import logger +from metagpt.roles import Role +from metagpt.schema import Message +from metagpt.utils.common import any_to_str + +from metagpt.ext.agentlayout.actions.analyze_brief import AnalyzeBrief +from metagpt.ext.agentlayout.actions.compose_concept import ComposeConcept +from metagpt.ext.agentlayout.actions.plan_assets import PlanAssets +from metagpt.ext.agentlayout.roles.iteration_state import RetryComposition +from metagpt.ext.agentlayout.schema import ConceptBatch, DesignSpec +from metagpt.ext.agentlayout.tools.background_analyzer import resolve_background + + +class CompositionDirectorRole(Role): + name: str = "CompositionDirector" + profile: str = "Composition Director" + goal: str = ( + "Imagine spatially diverse composition concepts in natural language " + "before any pixel-level layout, so the CoordinateMapper has a clear " + "art-director brief instead of a constraint-heavy survival-mode prompt." + ) + constraints: str = ( + "Output only natural-language concepts (no coordinates). Produce at " + "least one concept; prefer 3 spatially distinct ones." + ) + + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.set_actions([ComposeConcept]) + self._watch([PlanAssets, RetryComposition]) + + def _find_by_cause(self, cause_cls, expected_type): + """Walk env-wide history backwards for a matching cause_by + payload type.""" + cause = any_to_str(cause_cls) + for m in reversed(self.rc.env.history.get()): + if m.cause_by == cause and isinstance(m.instruct_content, expected_type): + return m.instruct_content + raise ValueError( + f"CompositionDirectorRole could not find a {cause_cls.__name__} message " + f"with a {expected_type.__name__} payload in env history." + ) + + async def _act(self) -> Message: + if self.rc.news: + latest = self.rc.news[-1] + else: + latest = self.rc.history[-1] + is_retry = latest.cause_by == any_to_str(RetryComposition) + + spec: DesignSpec = self._find_by_cause(AnalyzeBrief, DesignSpec) + bg = resolve_background(spec.canvas) + compose: ComposeConcept = self.actions[0] + concepts: ConceptBatch = await compose.run(spec=spec, bg=bg) + + logger.info( + f"CompositionDirectorRole produced {len(concepts.concepts)} concept(s) " + f"(retry={is_retry})." + ) + return Message( + content=f"ConceptBatch ready: {len(concepts.concepts)} composition concept(s).", + instruct_content=concepts, + role=self.profile, + cause_by=ComposeConcept, + ) diff --git a/metagpt/ext/agentlayout/roles/iteration_state.py b/metagpt/ext/agentlayout/roles/iteration_state.py index ba0bb1e87..960e8cebb 100644 --- a/metagpt/ext/agentlayout/roles/iteration_state.py +++ b/metagpt/ext/agentlayout/roles/iteration_state.py @@ -58,7 +58,31 @@ class RetryAnalyst(Action): class RetryGeneration(Action): - """Sentinel cause_by tag: re-trigger LayoutGeneratorRole with Aesthetic feedback.""" + """DEPRECATED by the "先想再畫" refactor (2026-06-25). + + Kept only so legacy imports / tests that reference the symbol keep resolving. + The role path now uses RetryCoordinates (CoordinateMapper micro-adjust) and + RetryComposition (CompositionDirector re-imagine) instead. + """ + + +class RetryComposition(Action): + """Sentinel cause_by tag: re-trigger CompositionDirectorRole. + + Emitted when the Aesthetic Judge's worst axis is design_layout or + innovation_originality -- the composition itself is weak, so the Director + must imagine fresh concepts rather than the CoordinateMapper nudging a + fundamentally wrong layout. + """ + + +class RetryCoordinates(Action): + """Sentinel cause_by tag: re-trigger LayoutGeneratorRole (CoordinateMapper). + + Emitted on ACCEPT (mandatory refinement) and on rejects whose worst axis is + typography/colour/graphics -- the concept is fine, only the pixel-level + execution needs adjusting, so the existing ConceptBatch is reused. + """ class IterationStop(Action): @@ -228,24 +252,28 @@ async def _act(self) -> Message: cause_by=IterationStop, ) - # Route the verdict. ACCEPT always routes to LAYOUT_GENERATOR (mandatory - # refinement pass). REJECT uses next_target() (Generator early, Analyst - # after N). + # Route the verdict ("先想再畫" three-way): + # ACCEPT -> CoordinateMapper (mandatory refinement pass) + # REJECT, budget up -> Analyst (rebuild spec from scratch) + # REJECT design/inn -> CompositionDirector (re-imagine concepts) + # REJECT otherwise -> CoordinateMapper (typography/colour micro-adjust) if is_accept: target = FeedbackTarget.LAYOUT_GENERATOR + elif self._state.next_target() == FeedbackTarget.ANALYST: + target = FeedbackTarget.ANALYST + elif self._worst_axis(judgement) in ("design_layout", "innovation_originality"): + target = FeedbackTarget.COMPOSITION_DIRECTOR else: - target = self._state.next_target() + target = FeedbackTarget.LAYOUT_GENERATOR self._state.feedback_target = target feedback: AestheticFeedback = judgement.feedback if target == FeedbackTarget.LAYOUT_GENERATOR: - cause_cls: type[Action] = RetryGeneration + cause_cls: type[Action] = RetryCoordinates target_name = "LayoutGenerator" - # Refinement Loop (Step 20) + best-so-far guard (Step 31): - # anchor the Generator on the BEST candidate seen across ALL - # rounds, not just this round. Falls back to this-round's best - # only when best-so-far has not been populated yet (which can - # happen on the first verdict before _extract_best_total ran). + # Anchor the CoordinateMapper on the BEST candidate seen across ALL + # rounds (best-so-far guard, Step 31), falling back to this round's + # best before best-so-far is populated. prev_layout = ( self._state.best_so_far_layout or judgement.best_candidate_layout ) @@ -253,6 +281,13 @@ async def _act(self) -> Message: self._state.best_so_far_subscores or self._extract_best_subscores(judgement) ) + elif target == FeedbackTarget.COMPOSITION_DIRECTOR: + cause_cls = RetryComposition + target_name = "CompositionDirector" + # Re-imagine from scratch: no bbox anchor (the composition is what + # is being thrown away). + prev_layout = None + prev_scores = None else: cause_cls = RetryAnalyst target_name = "Analyst" @@ -300,6 +335,18 @@ def _extract_best_total(judgement: AestheticJudgement) -> Optional[int]: return ev.total return None + @classmethod + def _worst_axis(cls, judgement: AestheticJudgement) -> Optional[str]: + """Lowest-scoring COLE axis of the best candidate (drives reject routing). + + design_layout / innovation_originality -> CompositionDirector; + any other axis -> CoordinateMapper. + """ + scores = cls._extract_best_subscores(judgement) + if not scores: + return None + return min(scores.items(), key=lambda kv: kv[1])[0] + @staticmethod def _extract_best_subscores( judgement: AestheticJudgement, diff --git a/metagpt/ext/agentlayout/roles/layout_generator.py b/metagpt/ext/agentlayout/roles/layout_generator.py index dd1f0df54..f86dcbcaf 100644 --- a/metagpt/ext/agentlayout/roles/layout_generator.py +++ b/metagpt/ext/agentlayout/roles/layout_generator.py @@ -1,27 +1,25 @@ -"""LayoutGeneratorRole -- Role wrapper around GenerateLayout + QC top-up loop. +"""LayoutGeneratorRole -- Role wrapper around GenerateLayout (the CoordinateMapper). + +"先想再畫" refactor (2026-06-25). This Role no longer invents the composition; it +turns the CompositionDirector's concepts into pixels. The class name is kept +(``LayoutGeneratorRole``) so ``team.py`` imports do not break, but its profile is +now "Coordinate Mapper". Triggered by either: - * A ``PlanAssets`` Message (the initial pass): the LayoutTree comes from + * A ``ComposeConcept`` Message (forward pass): the ConceptBatch comes from ``Message.instruct_content`` directly. - * A ``RetryGeneration`` Message from ``IterationStateRole`` (a feedback - re-run): the LayoutTree must be retrieved from env history (the most - recent PlanAssets output stays valid; only the generation prompt changes - via the injected Aesthetic feedback). - -In both cases the DesignSpec is pulled from env history -- this Role does -not observe AnalystRole's output directly. Internally runs the same -K_VALID-target top-up loop as ``LayoutPipeline._generate_with_topup``: each -top-up batch's candidate IDs are prefixed ``r{i}_`` so they do not collide -across calls. - -Background analysis is a CV module (not a Role): ``resolve_background`` -runs U2Net saliency on ``canvas.background_asset_ref`` when present and -falls back to the solid-color stub for image-less specs. + * A ``RetryCoordinates`` Message from ``IterationStateRole`` (a feedback + re-run): the concepts are unchanged (reused from env history); only the + typography/colour feedback and the previous best layout are injected. + +The DesignSpec, LayoutTree and ConceptBatch are pulled from env history. Each +concept produces exactly one candidate; QC filters them, degrading to the +least-violating candidates when none pass so the Judge always has something. """ from __future__ import annotations -from typing import Dict, List, Optional, Set, Tuple +from typing import Dict, List, Optional, Tuple from metagpt.logs import logger from metagpt.roles import Role @@ -29,17 +27,18 @@ from metagpt.utils.common import any_to_str from metagpt.ext.agentlayout.actions.analyze_brief import AnalyzeBrief +from metagpt.ext.agentlayout.actions.compose_concept import ComposeConcept from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout from metagpt.ext.agentlayout.actions.plan_assets import PlanAssets from metagpt.ext.agentlayout.tools.background_analyzer import resolve_background -from metagpt.ext.agentlayout.roles.iteration_state import RetryGeneration, RetryPayload +from metagpt.ext.agentlayout.roles.iteration_state import RetryCoordinates, RetryPayload from metagpt.ext.agentlayout.schema import ( AestheticFeedback, BackgroundAnalysis, Candidate, CandidatesBatch, + ConceptBatch, DesignSpec, - K_VALID, LayoutTree, ) from metagpt.ext.agentlayout.tools.quality_checker import ( @@ -51,29 +50,22 @@ class LayoutGeneratorRole(Role): name: str = "LayoutGenerator" - profile: str = "Layout Generator" + profile: str = "Coordinate Mapper" goal: str = ( - "Place every DesignSpec element on the canvas with concrete pixel " - "coordinates and (for text) visual style. Produce K_VALID candidates " - "that pass the Quality Checker." + "Translate each art-director composition concept into exact pixel " + "coordinates for one layout candidate that passes the Quality Checker." ) constraints: str = ( - "Each candidate must contain every spec element id verbatim, " - "satisfy boundary checks and hard_constraints (Quality Checker)." + "Each candidate must contain every spec element id verbatim, satisfy " + "boundary checks and hard_constraints (Quality Checker)." ) - k_valid: int = K_VALID - max_topup_rounds: int = 3 - def __init__(self, **kwargs): super().__init__(**kwargs) self.set_actions([GenerateLayout]) - self._watch([PlanAssets, RetryGeneration]) - # Counter to keep candidate-id prefixes unique across feedback retries. - # Without this, a re-run after a reject would collide with the previous - # pass's "r0_*", "r1_*" ids and the dedupe set in _generate_with_topup - # would drop the new candidates. - self._retry_round: int = 0 + self._watch([ComposeConcept, RetryCoordinates]) + # Round counter so candidate-id prefixes stay unique across retries. + self._round: int = 0 def _find_by_cause(self, cause_cls, expected_type): """Walk env-wide history backwards for a matching cause_by + payload type.""" @@ -86,77 +78,61 @@ def _find_by_cause(self, cause_cls, expected_type): f"with a {expected_type.__name__} payload in env history." ) - async def _generate_with_topup( + async def _generate_from_concepts( self, spec: DesignSpec, tree: LayoutTree, bg: BackgroundAnalysis, + concepts: ConceptBatch, + round_idx: int, feedback: Optional[AestheticFeedback], - prefix_offset: int, prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None, prev_best_subscores: Optional[Dict[str, int]] = None, ) -> Tuple[List[Candidate], List[CheckResult]]: - """Mirror of LayoutPipeline._generate_with_topup so Role mode behaves the same. - - Refinement Loop (2026-05-20): when ``prev_best_layout`` is non-empty the - Action runs in anchored-edit mode (+/-10% drift per element). Top-up - retries reuse the same prev_best_layout so all candidates in the round - stay anchored to the same prior. - """ - kept: List[Candidate] = [] - pool: List[Candidate] = [] # every generated candidate, for degradation - all_reports: List[CheckResult] = [] - seen_ids: Set[str] = set() + """One CoordinateMapper candidate per concept, then QC (mirror of the + pipeline's ``_generate_from_concepts``).""" gen: GenerateLayout = self.actions[0] - - for topup_idx in range(self.max_topup_rounds): - batch = await gen.run( - spec=spec, - tree=tree, - bg=bg, - feedback=feedback, - prev_best_layout=prev_best_layout, - prev_best_subscores=prev_best_subscores, - ) + pool: List[Candidate] = [] + for i, concept in enumerate(concepts.concepts): + try: + batch = await gen.run( + spec=spec, + tree=tree, + bg=bg, + concept=concept, + feedback=feedback, + prev_best_layout=prev_best_layout, + prev_best_subscores=prev_best_subscores, + ) + except Exception as err: # noqa: BLE001 + logger.warning( + f"LayoutGeneratorRole: concept {i} ('{concept.name}') failed to " + f"map ({err}); skipping it." + ) + continue for cand in batch.candidates: - cand.candidate_id = f"r{prefix_offset + topup_idx}_{cand.candidate_id}" - + cand.candidate_id = f"r{round_idx}_c{i}_{cand.candidate_id}" pool.extend(batch.candidates) - new_kept, reports = filter_valid(batch.candidates, spec, bg=bg) - all_reports.extend(reports) - for cand in new_kept: - if cand.candidate_id not in seen_ids: - kept.append(cand) - seen_ids.add(cand.candidate_id) - - if len(kept) >= self.k_valid: - break + kept, all_reports = filter_valid(pool, spec, bg=bg) if kept: - return kept[: self.k_valid], all_reports - - # Graceful degradation (step 10b fix): no candidate passed QC -- e.g. - # an out-of-vocabulary Analyst hint that fails every candidate - # identically. Hard-crashing here silently shrinks evaluable N; hand - # back the least-violating candidates so the Judge still scores and - # IterationState can still route feedback back to the Analyst. - degraded = rank_candidates_by_violations(pool, all_reports)[: self.k_valid] + return kept, all_reports + + degraded = rank_candidates_by_violations(pool, all_reports) if degraded: logger.warning( - f"LayoutGeneratorRole: 0/{len(pool)} candidates passed QC after " - f"{self.max_topup_rounds} top-up round(s); degrading to " - f"{len(degraded)} least-violating candidate(s) so the run continues." + f"LayoutGeneratorRole: 0/{len(pool)} candidates passed QC across " + f"{len(concepts.concepts)} concept(s); degrading to " + f"{len(degraded)} least-violating candidate(s)." ) return degraded, all_reports async def _act(self) -> Message: - # Prefer rc.news (this tick's freshly-observed messages); fall back to - # rc.history[-1] for the very first invocation when news is empty. if self.rc.news: latest = self.rc.news[-1] else: latest = self.rc.history[-1] - is_retry = latest.cause_by == any_to_str(RetryGeneration) + is_retry = latest.cause_by == any_to_str(RetryCoordinates) feedback: Optional[AestheticFeedback] = None prev_best_layout: Optional[Dict[str, Tuple[float, float, float, float]]] = None prev_best_subscores: Optional[Dict[str, int]] = None @@ -165,66 +141,56 @@ async def _act(self) -> Message: payload = latest.instruct_content if not isinstance(payload, RetryPayload): raise ValueError( - "LayoutGeneratorRole expected RetryPayload on a RetryGeneration " + "LayoutGeneratorRole expected RetryPayload on a RetryCoordinates " f"Message. Got: {type(payload).__name__ if payload else 'None'}" ) feedback = payload.feedback prev_best_layout = payload.prev_best_layout prev_best_subscores = payload.prev_best_subscores - tree = self._find_by_cause(PlanAssets, LayoutTree) - self._retry_round += 1 - mode = "refinement" if prev_best_layout else "cold-retry" + # Concepts are reused on a coordinate retry. + concepts = self._find_by_cause(ComposeConcept, ConceptBatch) + self._round += 1 logger.info( - f"LayoutGeneratorRole: retry pass (iteration={payload.iteration}, " - f"mode={mode}); regenerating with Aesthetic feedback " - "(tree from env history)." + f"LayoutGeneratorRole: coordinate retry (iteration={payload.iteration}); " + "reusing concepts, applying typography/colour feedback." ) else: - tree = latest.instruct_content - if not isinstance(tree, LayoutTree): + concepts = latest.instruct_content + if not isinstance(concepts, ConceptBatch): raise ValueError( - "LayoutGeneratorRole expected LayoutTree as instruct_content " - f"(from PlanAssets). Got: {type(tree).__name__}" + "LayoutGeneratorRole expected ConceptBatch as instruct_content " + f"(from ComposeConcept). Got: {type(concepts).__name__}" ) - # Reset the prefix counter on every fresh PlanAssets pass so that - # an Analyst-driven retry (which republishes PlanAssets) starts - # candidate ids cleanly from r0_*. - self._retry_round = 0 + self._round = 0 spec = self._find_by_cause(AnalyzeBrief, DesignSpec) - # Content-aware: real U2Net safe-zone analysis when the spec carries a - # background image, else the historical solid-color stub. + tree = self._find_by_cause(PlanAssets, LayoutTree) bg = resolve_background(spec.canvas) - prefix_offset = self._retry_round * self.max_topup_rounds - kept, reports = await self._generate_with_topup( + kept, reports = await self._generate_from_concepts( spec, tree, bg, + concepts, + self._round, feedback, - prefix_offset, prev_best_layout=prev_best_layout, prev_best_subscores=prev_best_subscores, ) if not kept: - # Only reachable when generation produced literally zero - # candidates (LLM emitted empty batches every top-up round). - # QC-strict specs no longer reach here -- _generate_with_topup - # degrades to least-violating candidates instead. raise RuntimeError( - f"LayoutGeneratorRole: generation produced 0 candidates after " - f"{self.max_topup_rounds} top-up round(s) " - f"(QC reports: {len(reports)}); nothing to degrade to." + "LayoutGeneratorRole: produced 0 candidates from " + f"{len(concepts.concepts)} concept(s); nothing to degrade to." ) batch = CandidatesBatch(candidates=kept) qc_dropped = sum(1 for r in reports if not r.passed) logger.info( - f"LayoutGeneratorRole produced {len(batch.candidates)} valid candidates " + f"LayoutGeneratorRole produced {len(batch.candidates)} candidate(s) " f"(QC dropped={qc_dropped}, retry={is_retry})." ) return Message( - content=f"CandidatesBatch ready: {len(batch.candidates)} valid candidates.", + content=f"CandidatesBatch ready: {len(batch.candidates)} candidate(s).", instruct_content=batch, role=self.profile, cause_by=GenerateLayout, diff --git a/metagpt/ext/agentlayout/run_manifest.py b/metagpt/ext/agentlayout/run_manifest.py new file mode 100644 index 000000000..019827c32 --- /dev/null +++ b/metagpt/ext/agentlayout/run_manifest.py @@ -0,0 +1,331 @@ +"""Immutable run-directory and provenance infrastructure for AgentLayout A3.""" +from __future__ import annotations + +import hashlib +import json +import os +import platform +import re +import subprocess +import sys +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, Dict, Iterable, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.a3_config import A3RunConfig + + +RUN_MANIFEST_SCHEMA_VERSION = "a3.run-manifest.v1" +SAMPLE_RECORD_SCHEMA_VERSION = "a3.sample-record.v1" +ERROR_RECORD_SCHEMA_VERSION = "a3.error-record.v1" +RUN_ID_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$") +SAMPLE_ID_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{0,255}$") +MANIFEST_FILENAME = "run_manifest.json" +SAMPLE_IDS_FILENAME = "sample_ids.json" +CONFIG_FILENAME = "run_config.json" + + +def utc_now() -> str: + return datetime.now(timezone.utc).isoformat() + + +def canonical_json_bytes(value: Any) -> bytes: + return ( + json.dumps(value, sort_keys=True, ensure_ascii=False, separators=(",", ":")) + + "\n" + ).encode("utf-8") + + +def sha256_bytes(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +def sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _git(repo_root: Path, *args: str) -> Optional[str]: + try: + proc = subprocess.run( + ["git", *args], + cwd=repo_root, + capture_output=True, + text=True, + timeout=30, + check=False, + ) + except (OSError, subprocess.SubprocessError): + return None + return proc.stdout if proc.returncode == 0 else None + + +def _tracked_diff(repo_root: Path) -> bytes: + out = _git(repo_root, "diff", "--binary", "HEAD", "--") + return (out or "").encode("utf-8") + + +def _untracked_hashes(repo_root: Path, watched_roots: Iterable[str]) -> Dict[str, str]: + hashes: Dict[str, str] = {} + for watched in watched_roots: + listing = _git( + repo_root, "ls-files", "--others", "--exclude-standard", "--", watched + ) + for relative in (listing or "").splitlines(): + path = repo_root / relative + if path.is_file(): + hashes[relative] = sha256_file(path) + return dict(sorted(hashes.items())) + + +def capture_provenance( + repo_root: Path, + *, + watched_roots: Iterable[str] = ( + "metagpt/ext/agentlayout", + "layout_agent/run_a3.py", + "layout_agent/configs", + "layout_agent/sample_ids", + ), +) -> Dict[str, Any]: + """Capture reconstructible source state without reading secret config values.""" + repo_root = repo_root.resolve() + git_dir = _git(repo_root, "rev-parse", "--git-dir") + head = _git(repo_root, "rev-parse", "HEAD") + diff = _tracked_diff(repo_root) + untracked = _untracked_hashes(repo_root, watched_roots) + git_block: Dict[str, Any] + if git_dir is None: + git_block = {"available": False} + else: + git_block = { + "available": True, + "head": head.strip() if head else None, + "branch": (_git(repo_root, "rev-parse", "--abbrev-ref", "HEAD") or "").strip() + or None, + "tracked_dirty": bool(diff), + "tracked_diff_sha256": sha256_bytes(diff) if diff else "clean", + "untracked_file_sha256": untracked, + } + return { + "captured_at": utc_now(), + "git": git_block, + "runtime": { + "python": platform.python_version(), + "implementation": platform.python_implementation(), + "platform": platform.platform(), + "executable": sys.executable, + }, + "environment": { + key: value + for key, value in sorted(os.environ.items()) + if key.startswith("AGENTLAYOUT_") + }, + } + + +class FileSnapshot(BaseModel): + model_config = ConfigDict(extra="forbid") + + source_path: str + stored_path: str + sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + count: Optional[int] = Field(default=None, ge=0) + + +class ErrorRecord(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.error-record.v1"] = ERROR_RECORD_SCHEMA_VERSION + timestamp: str = Field(default_factory=utc_now) + stage: str = Field(..., min_length=1) + error_type: str = Field(..., min_length=1) + message: str + attempt: Optional[int] = Field(default=None, ge=1) + retryable: bool = False + details: Dict[str, Any] = Field(default_factory=dict) + + +class SampleRecord(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.sample-record.v1"] = SAMPLE_RECORD_SCHEMA_VERSION + sample_id: str = Field(..., min_length=1) + status: Literal["pending", "running", "completed", "failed", "skipped"] = "pending" + started_at: Optional[str] = None + completed_at: Optional[str] = None + artifacts: Dict[str, str] = Field(default_factory=dict) + cost: Dict[str, Any] = Field(default_factory=dict) + errors: List[ErrorRecord] = Field(default_factory=list) + + +class RunManifest(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.run-manifest.v1"] = RUN_MANIFEST_SCHEMA_VERSION + run_id: str + created_at: str = Field(default_factory=utc_now) + status: Literal["initialized", "running", "completed", "failed"] = "initialized" + config: A3RunConfig + config_snapshot: FileSnapshot + sample_ids_snapshot: FileSnapshot + provenance: Dict[str, Any] + prompt_hashes: Dict[str, str] = Field(default_factory=dict) + schema_versions: Dict[str, str] = Field(default_factory=dict) + cost: Dict[str, Any] = Field(default_factory=dict) + completion: Dict[str, int] = Field(default_factory=dict) + errors: List[ErrorRecord] = Field(default_factory=list) + + @model_validator(mode="after") + def _valid_run_id(self) -> "RunManifest": + validate_run_id(self.run_id) + return self + + +def validate_run_id(run_id: str) -> str: + if not RUN_ID_RE.fullmatch(run_id): + raise ValueError( + "run_id must be 1-128 characters using only letters, digits, '.', '_' or '-'" + ) + if run_id in {".", ".."}: + raise ValueError("run_id cannot be '.' or '..'") + return run_id + + +def load_sample_ids(path: Path) -> List[str]: + data = json.loads(path.read_text(encoding="utf-8")) + if not isinstance(data, list) or not all(isinstance(item, str) and item for item in data): + raise ValueError("sample IDs file must be a JSON array of non-empty strings") + if len(data) != len(set(data)): + raise ValueError("sample IDs file contains duplicates") + if not data: + raise ValueError("sample IDs file cannot be empty") + invalid = [item for item in data if not SAMPLE_ID_RE.fullmatch(item) or item in {".", ".."}] + if invalid: + raise ValueError(f"sample IDs contain unsafe path values: {invalid}") + return data + + +def write_json_once(path: Path, value: Any) -> None: + """Atomically publish JSON and refuse to replace an existing artifact.""" + path.parent.mkdir(parents=True, exist_ok=True) + temp = path.with_name(f".{path.name}.{os.getpid()}.tmp") + payload = canonical_json_bytes(value) + try: + with temp.open("xb") as handle: + handle.write(payload) + handle.flush() + os.fsync(handle.fileno()) + if path.exists(): + raise FileExistsError(f"refusing to overwrite existing artifact: {path}") + os.link(temp, path) + finally: + temp.unlink(missing_ok=True) + + +class A3RunStore: + """Create a complete A3 run skeleton exactly once.""" + + def __init__(self, run_dir: Path): + self.run_dir = run_dir.resolve() + + @classmethod + def create( + cls, + *, + runs_root: Path, + run_id: str, + config_path: Path, + sample_ids_path: Path, + repo_root: Path, + prompt_hashes: Optional[Dict[str, str]] = None, + ) -> "A3RunStore": + validate_run_id(run_id) + config_bytes = config_path.read_bytes() + config = A3RunConfig.model_validate_json(config_bytes) + sample_ids = load_sample_ids(sample_ids_path) + + runs_root.mkdir(parents=True, exist_ok=True) + run_dir = runs_root / run_id + run_dir.mkdir(exist_ok=False) + store = cls(run_dir) + try: + for name in ("samples", "schemas", "prompts", "errors"): + (run_dir / name).mkdir() + + schemas = { + "run_config.schema.json": A3RunConfig.model_json_schema(), + "run_manifest.schema.json": RunManifest.model_json_schema(), + "sample_record.schema.json": SampleRecord.model_json_schema(), + "error_record.schema.json": ErrorRecord.model_json_schema(), + } + for filename, schema in schemas.items(): + write_json_once(run_dir / "schemas" / filename, schema) + + config_payload = config.model_dump(mode="json") + ids_payload = sample_ids + write_json_once(run_dir / CONFIG_FILENAME, config_payload) + write_json_once(run_dir / SAMPLE_IDS_FILENAME, ids_payload) + + config_snapshot = FileSnapshot( + source_path=str(config_path.resolve()), + stored_path=CONFIG_FILENAME, + sha256=sha256_bytes(canonical_json_bytes(config_payload)), + ) + ids_snapshot = FileSnapshot( + source_path=str(sample_ids_path.resolve()), + stored_path=SAMPLE_IDS_FILENAME, + sha256=sha256_bytes(canonical_json_bytes(ids_payload)), + count=len(sample_ids), + ) + manifest = RunManifest( + run_id=run_id, + config=config, + config_snapshot=config_snapshot, + sample_ids_snapshot=ids_snapshot, + provenance=capture_provenance(repo_root), + prompt_hashes=prompt_hashes or {}, + schema_versions={ + "run_manifest": RUN_MANIFEST_SCHEMA_VERSION, + "run_config": config.schema_version, + "sample_record": SAMPLE_RECORD_SCHEMA_VERSION, + "error_record": ERROR_RECORD_SCHEMA_VERSION, + **config.schema_versions, + }, + completion={ + "total": len(sample_ids), + "pending": len(sample_ids), + "completed": 0, + "failed": 0, + "skipped": 0, + }, + ) + write_json_once(run_dir / MANIFEST_FILENAME, manifest.model_dump(mode="json")) + for sample_id in sample_ids: + sample_dir = run_dir / "samples" / sample_id + sample_dir.mkdir() + record = SampleRecord(sample_id=sample_id) + write_json_once(sample_dir / "sample_record.json", record.model_dump(mode="json")) + except Exception: + # Keep the partial directory as forensic evidence. Never erase it: + # the run id remains consumed and cannot silently be reused. + raise + return store + + def manifest(self) -> RunManifest: + return RunManifest.model_validate_json( + (self.run_dir / MANIFEST_FILENAME).read_text(encoding="utf-8") + ) + + def record_run_error(self, error: ErrorRecord) -> Path: + """Persist a uniquely named run error without mutating prior records.""" + error_dir = self.run_dir / "errors" + index = len(list(error_dir.glob("error_*.json"))) + path = error_dir / f"error_{index:04d}.json" + write_json_once(path, error.model_dump(mode="json")) + return path diff --git a/metagpt/ext/agentlayout/schema.py b/metagpt/ext/agentlayout/schema.py index 25854e7a1..4eef3d295 100644 --- a/metagpt/ext/agentlayout/schema.py +++ b/metagpt/ext/agentlayout/schema.py @@ -84,6 +84,14 @@ class FeedbackTarget(str, Enum): LAYOUT_GENERATOR = "layout_generator" ANALYST = "analyst" + # "先想再畫" 重構 (2026-06-25): the LayoutGenerator was split into a + # CompositionDirector (decides the spatial concept in natural language) and + # a CoordinateMapper (= the renamed LayoutGenerator, turns one concept into + # pixels). Judge feedback whose worst axis is design_layout/innovation is + # routed here so the Director re-imagines the composition from scratch, + # instead of asking the coordinate stage to nudge a fundamentally centred + # template by +/-10%. + COMPOSITION_DIRECTOR = "composition_director" class EncoderType(str, Enum): @@ -159,6 +167,47 @@ class SafeZone(BaseModel): confidence: float = Field(..., ge=0.0, le=1.0) +class UnderlayRegion(BaseModel): + """A text-underlay panel that is ALREADY part of the background image. + + Step 76 (2026-07-02, SEGA-style preprocessing): non-text Crello layers are + composited into the background at designer GT positions BEFORE the pipeline + runs. Underlay panels therefore stop being placeable elements; instead the + preprocessor records where each panel sits and what colour it is, so the + Composition Director / Coordinate Mapper can place high-contrast text ON + the panel. This is feed-forward by construction — we composited the panel + ourselves, so no model ever needs to *detect* it (the judge-feedback route + was measured dead three times: Steps 20b, 59, 65). + """ + + bbox: List[int] = Field( + ..., + description="[left, top, right, bottom] in canvas pixel space (same convention as SafeZone).", + min_length=4, + max_length=4, + ) + dominant_color: str = Field( + ..., + description="6-digit hex of the panel's dominant colour, sampled from opaque pixels at composite time.", + ) + recommended_text_color: str = Field( + ..., + description="Luminance-contrasting hex for text placed on this panel (dark on light, light on dark).", + ) + panel_type: str = Field( + default="solid", + description=( + "'solid' = an opaque plate; dominant_color is its fill. " + "'frame' = a mostly-transparent outlined box (Step 79): the visual " + "backdrop behind text is the BACKGROUND showing through, so " + "dominant_color samples the composited background inside the bbox " + "and recommended_text_color contrasts with THAT (the Step 78 " + "renders put dark text on a dark forest because a white outline " + "was mistaken for a white plate)." + ), + ) + + class BackgroundAnalysis(BaseModel): """Background Analyzer output, consumed by Layout Generator and Aesthetic Judge. @@ -168,6 +217,10 @@ class BackgroundAnalysis(BaseModel): available, but stay None / empty for the solid-color stub path (pipeline.py:_default_white_background) so backward compatibility is preserved. + + Step 76 (2026-07-02) added ``underlay_regions``: filled only by the + SEGA-style Crello preprocessor (baked underlay panels), empty everywhere + else. """ safe_zones: List[SafeZone] = Field(default_factory=list) @@ -208,6 +261,17 @@ class BackgroundAnalysis(BaseModel): ), ) + # Step 76 SEGA-style preprocessing: baked underlay panels. Empty unless the + # caller ran the Crello preprocessor and merged its output in. + underlay_regions: List[UnderlayRegion] = Field( + default_factory=list, + description=( + "Underlay panels already composited into the background at designer " + "GT positions. Text SHOULD land on these panels using the " + "recommended contrasting colour." + ), + ) + # ============================================================ # 4. Design Spec (Analyst output, enriched in place by Asset Analyzer) @@ -431,6 +495,68 @@ def all_element_ids(self) -> List[str]: LayoutTreeNode.model_rebuild() +# ============================================================ +# 5.5 Composition concepts (CompositionDirector output, 2026-06-25) +# ============================================================ +# +# "先想再畫" 重構:構思階段與座標階段拆開。CompositionDirector 只用自然語言 +# 描述 "東西大致放哪、視覺如何流動",完全不碰像素。每個概念之後交給 +# CoordinateMapper (= 改名後的 LayoutGenerator) 獨立翻成一組座標。 +# 這裡刻意只放 "意圖" 欄位,不放任何 bbox / 數字,避免又把構思塞回座標階段。 + + +class CompositionConcept(BaseModel): + """One spatial composition idea, described purely in natural language. + + No pixels here on purpose: the whole point of the "先想再畫" split is that + the Director reasons about *where things feel right* without the 20+ hard + constraints that pushed the old monolithic Generator into a survival-mode + "centre everything" template. The CoordinateMapper turns each concept into + exact pixels in a separate, low-temperature call. + """ + + name: str = Field(..., description="2-4 word concept name, e.g. 'Left bleed'.") + focal_element: str = Field( + ..., description="Element id that anchors the design (usually the hero image)." + ) + focal_placement: str = Field( + ..., description="Where the focal element goes, in natural language." + ) + text_placement: str = Field( + ..., description="Where the text group goes, in natural language." + ) + visual_flow: str = Field( + ..., description="How the eye moves across the design (e.g. Z-pattern)." + ) + whitespace: str = Field(..., description="Whitespace / breathing-room strategy.") + typography_mood: str = Field(..., description="Font and colour direction.") + text_photo_relation: str = Field( + default="beside", + description="One of: beside | overlay | above | below | mixed.", + ) + text_assignments: Dict[str, str] = Field( + default_factory=dict, + description=( + "Step 77 feed-forward assignment: text element id -> where it goes, " + "as 'panel N' (a numbered baked-underlay panel) or a 3x3 region " + "word like 'bottom-left'. The CoordinateMapper resolves 'panel N' " + "to that panel's exact bbox. Empty dict = legacy free-form concept." + ), + ) + + +class ConceptBatch(BaseModel): + """CompositionDirector output: 1-5 spatially diverse composition concepts. + + Each concept becomes exactly one CoordinateMapper candidate. We keep the + list small (default target 3) because three *genuinely* different layouts + beat fifteen variations of the same centred template — the empirical + finding that motivated this refactor. + """ + + concepts: List[CompositionConcept] = Field(..., min_length=1, max_length=5) + + # ============================================================ # 6. Candidates (Layout Generator output) # ============================================================ @@ -670,6 +796,58 @@ def _value_matches_kind(self) -> "Suggestion": return self +class VisualObservationKind(str, Enum): + """Closed catalogue of render-level defects the Judge may report (Step 77). + + Every kind pairs with a machine-verifiable geometric predicate in + ``tools/feedback_verifier.py`` — after a retry we can compute exactly + which observations were acted on (compliance rate). This is the metric + Step 59 lacked: it localises a loop failure to perception vs execution. + """ + + TEXT_OFF_PANEL = "text_off_panel" # text should sit ON a given panel bbox + TEXT_ILLEGIBLE = "text_illegible" # low contrast / busy backdrop + TEXT_TOO_SMALL = "text_too_small" # below the GT area prior + TEXT_TOO_LARGE = "text_too_large" + TEXT_OVERLAP = "text_overlap" # two elements collide + TEXT_TILTED = "text_tilted" # unintended rotation + # Step 85 rubric items (both verify as "move INTO target_bbox"): the judge + # LOOKS at the render and estimates where the element should go -- the + # per-image call a population prior cannot make. + TITLE_MISPLACED = "title_misplaced" # dominant text in the wrong spot + LOCKUP_BROKEN = "lockup_broken" # subtitle drifted from the title + + +class VisualObservation(BaseModel): + """One discrete, verifiable defect observed on the RENDERED candidate. + + The Judge is the only component that sees the finished render; Step 77 + lets it report what it sees — but only in this closed, checkable + vocabulary (discrete choices, not free-form pixel prose, which Step 59 + proved the generator ignores). + """ + + kind: VisualObservationKind + target_id: str = Field(..., description="Element id the observation is about.") + second_id: Optional[str] = Field( + default=None, description="Second element id (only for text_overlap)." + ) + target_bbox: Optional[List[int]] = Field( + default=None, + description="[left, top, right, bottom] the target should move INTO " + "(panel bbox for text_off_panel, calm region for text_illegible).", + min_length=4, + max_length=4, + ) + target_color: Optional[str] = Field( + default=None, description="Concrete hex the text should switch to (text_illegible)." + ) + target_area_px: Optional[int] = Field( + default=None, description="Area target in px^2 (text_too_small / text_too_large)." + ) + note: str = Field(default="", description="One-line human-readable rationale.") + + class AestheticFeedback(BaseModel): """Common-issue feedback emitted when no candidate hits the threshold. @@ -690,6 +868,23 @@ class AestheticFeedback(BaseModel): "itself accepts an empty list so legacy JSON still parses." ), ) + visual_observations: List[VisualObservation] = Field( + default_factory=list, + description=( + "Step 77 closed-catalogue render-level defects. Populated only " + "when the visual-loop feature flag is on; default empty keeps " + "legacy JSON parsing." + ), + ) + keep_constraints: List[VisualObservation] = Field( + default_factory=list, + description=( + "Step 89: RETIRED ledger issues -- targets already satisfied that " + "the next mapper call must NOT undo (the 88b trace showed accept-" + "round polish repeatedly un-fixing the title). Populated by the " + "pipeline from the retired ledger; default empty." + ), + ) class AestheticJudgement(BaseModel): diff --git a/metagpt/ext/agentlayout/team.py b/metagpt/ext/agentlayout/team.py index 26717d49c..5b064e12c 100644 --- a/metagpt/ext/agentlayout/team.py +++ b/metagpt/ext/agentlayout/team.py @@ -42,6 +42,7 @@ AestheticJudgeRole, AnalystRole, AssetPlannerRole, + CompositionDirectorRole, IterationStateRole, LayoutGeneratorRole, ) @@ -90,6 +91,9 @@ def build_team( [ AnalystRole(), AssetPlannerRole(), + # "先想再畫" refactor: the CompositionDirector imagines concepts that + # the CoordinateMapper (LayoutGeneratorRole) turns into pixels. + CompositionDirectorRole(), LayoutGeneratorRole(), AestheticJudgeRole(), IterationStateRole(max_total_rounds=max_total_rounds), diff --git a/metagpt/ext/agentlayout/tools/adjudication.py b/metagpt/ext/agentlayout/tools/adjudication.py new file mode 100644 index 000000000..fe263c008 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/adjudication.py @@ -0,0 +1,493 @@ +"""Deterministic, no-winner adjudication materials for A3 human trees. + +The independent annotations remain immutable. This module builds a separate +write-once packet that shows every annotator's decision, all pairwise +agreement reports, and a form in which only unanimous fields are prefilled. +It never chooses an annotator or resolves a disagreement automatically. +""" +from __future__ import annotations + +import hashlib +from itertools import combinations +from pathlib import Path +from statistics import mean +from typing import Dict, List, Literal, Optional, Sequence + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree, TreeRelation +from metagpt.ext.agentlayout.run_manifest import write_json_once +from metagpt.ext.agentlayout.schema import SemanticType +from metagpt.ext.agentlayout.tools.annotation import ( + A3_HUMAN_ANNOTATION_VERSION, + ANNOTATION_FORM_FILENAME, + ANNOTATION_PACKET_FILENAME, + AdjudicationRecord, + AgreementReport, + HumanAnnotation, + annotation_to_oracle_tree, + compute_agreement, + validate_annotation_coverage, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + +A3_ADJUDICATION_PACKET_VERSION = "a3.adjudication-packet.v1" +ADJUDICATION_PACKET_FILENAME = "adjudication_packet.json" +ADJUDICATED_ANNOTATION_FORM_FILENAME = "annotation_adjudicated_form.json" +ADJUDICATION_RECORD_FORM_FILENAME = "adjudication_record_form.json" +ADJUDICATED_ANNOTATION_FILENAME = "annotation_adjudicated.json" +ADJUDICATION_RECORD_FILENAME = "adjudication_record.json" + +DisagreementField = Literal[ + "semantic_type", + "semantic_role", + "same_group_members", + "group_id", + "group_label", + "parent_id", + "relation_to_parent", + "uncertain", +] +DISAGREEMENT_FIELD_ORDER: Sequence[DisagreementField] = ( + "semantic_type", + "semantic_role", + "same_group_members", + "group_id", + "group_label", + "parent_id", + "relation_to_parent", + "uncertain", +) + + +class AnnotationSubmission(BaseModel): + """One validated source annotation and its immutable file provenance.""" + + model_config = ConfigDict(extra="forbid") + + annotator_id: str = Field(..., min_length=1) + filename: str = Field(..., min_length=1) + sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + annotation: HumanAnnotation + + @model_validator(mode="after") + def _identity_matches(self) -> "AnnotationSubmission": + if self.annotation.annotator_id != self.annotator_id: + raise ValueError("submission annotator_id disagrees with annotation") + if self.filename != f"annotation_{self.annotator_id}.json": + raise ValueError("submission filename does not match annotator_id") + return self + + +class AnnotationSourceRef(BaseModel): + model_config = ConfigDict(extra="forbid") + + annotator_id: str + filename: str + sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + + +class PairwiseAgreementEntry(BaseModel): + model_config = ConfigDict(extra="forbid") + + annotator_ids: List[str] = Field(..., min_length=2, max_length=2) + agreement: AgreementReport + + +class AnnotatorAssetDecision(BaseModel): + """One annotator's decision with group membership made explicit.""" + + model_config = ConfigDict(extra="forbid") + + annotator_id: str + semantic_type: SemanticType + semantic_role: str + same_group_member_ids: List[str] + group_id: str + group_label: str + parent_id: str + relation_to_parent: TreeRelation + uncertain: bool + + +class AssetAdjudicationComparison(BaseModel): + model_config = ConfigDict(extra="forbid") + + asset_id: str + decisions: List[AnnotatorAssetDecision] + disagreement_fields: List[DisagreementField] = Field(default_factory=list) + + +class AnnotatorSampleDecision(BaseModel): + model_config = ConfigDict(extra="forbid") + + annotator_id: str + sample_uncertain: bool + notes: Optional[str] = None + + +class AdjudicationPacket(BaseModel): + """Read-only evidence packet for a human adjudicator.""" + + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.adjudication-packet.v1"] = A3_ADJUDICATION_PACKET_VERSION + sample_id: str + annotator_ids: List[str] = Field(..., min_length=2) + annotation_directory: str = "annotation" + contact_sheet_files: List[str] = Field(default_factory=list) + sources: List[AnnotationSourceRef] + sample_decisions: List[AnnotatorSampleDecision] + pairwise_agreements: List[PairwiseAgreementEntry] + aggregate_agreement: AgreementReport + assets: List[AssetAdjudicationComparison] + requires_adjudication: bool + + @model_validator(mode="after") + def _internal_provenance(self) -> "AdjudicationPacket": + if len(self.annotator_ids) != len(set(self.annotator_ids)): + raise ValueError("adjudication packet contains duplicate annotator IDs") + if [source.annotator_id for source in self.sources] != self.annotator_ids: + raise ValueError("source order/coverage disagrees with annotator_ids") + if [item.annotator_id for item in self.sample_decisions] != self.annotator_ids: + raise ValueError("sample decision coverage disagrees with annotator_ids") + expected_pairs = [ + list(pair) for pair in combinations(self.annotator_ids, 2) + ] + if [entry.annotator_ids for entry in self.pairwise_agreements] != expected_pairs: + raise ValueError("pairwise agreement coverage is incomplete or reordered") + if self.aggregate_agreement != _aggregate_agreement(self.pairwise_agreements): + raise ValueError("aggregate agreement disagrees with pairwise reports") + asset_ids = [asset.asset_id for asset in self.assets] + if len(asset_ids) != len(set(asset_ids)): + raise ValueError("adjudication packet contains duplicate asset IDs") + for asset in self.assets: + if [item.annotator_id for item in asset.decisions] != self.annotator_ids: + raise ValueError( + f"asset {asset.asset_id} decision coverage disagrees with annotator_ids" + ) + expected_required = ( + len({item.sample_uncertain for item in self.sample_decisions}) > 1 + or any(asset.disagreement_fields for asset in self.assets) + ) + if self.requires_adjudication != expected_required: + raise ValueError("requires_adjudication disagrees with packet differences") + return self + + +def load_annotation_submissions( + annotation_dir: Path, manifest: R3AssetManifest +) -> List[AnnotationSubmission]: + """Load every independent annotation in a packet directory fail-closed.""" + reserved = {ANNOTATION_FORM_FILENAME, ANNOTATION_PACKET_FILENAME} + paths = [ + path + for path in sorted(annotation_dir.glob("annotation_*.json")) + if path.name not in reserved + ] + submissions: List[AnnotationSubmission] = [] + for path in paths: + raw = path.read_bytes() + annotation = HumanAnnotation.model_validate_json(raw) + if annotation.sample_id != manifest.sample_id: + raise ValueError( + f"{path.name} sample_id {annotation.sample_id!r} does not match " + f"manifest {manifest.sample_id!r}" + ) + filename_id = path.stem.removeprefix("annotation_") + if annotation.annotator_id != filename_id: + raise ValueError( + f"{path.name} filename suffix {filename_id!r} does not match " + f"annotator_id {annotation.annotator_id!r}" + ) + validate_annotation_coverage(annotation, manifest) + # HumanAnnotation validates local fields; oracle conversion additionally + # catches missing parents, cycles and inconsistent group labels. + annotation_to_oracle_tree(annotation) + submissions.append( + AnnotationSubmission( + annotator_id=annotation.annotator_id, + filename=path.name, + sha256=hashlib.sha256(raw).hexdigest(), + annotation=annotation, + ) + ) + if len(submissions) < 2: + raise ValueError( + f"at least two independent annotations are required; found {len(submissions)}" + ) + return sorted(submissions, key=lambda item: item.annotator_id) + + +def _mean_optional(values: Sequence[Optional[float]]) -> Optional[float]: + defined = [value for value in values if value is not None] + return mean(defined) if defined else None + + +def _aggregate_agreement( + pairwise: Sequence[PairwiseAgreementEntry], +) -> AgreementReport: + disagreeing_assets = sorted( + { + asset_id + for entry in pairwise + for asset_id in entry.agreement.disagreeing_assets + } + ) + return AgreementReport( + same_group_jaccard=_mean_optional( + [entry.agreement.same_group_jaccard for entry in pairwise] + ), + edge_jaccard=_mean_optional( + [entry.agreement.edge_jaccard for entry in pairwise] + ), + role_type_agreement=mean( + entry.agreement.role_type_agreement for entry in pairwise + ), + disagreeing_assets=disagreeing_assets, + ) + + +def _group_members(annotation: HumanAnnotation) -> Dict[str, List[str]]: + members_by_group: Dict[str, List[str]] = {} + for asset in annotation.assets: + members_by_group.setdefault(asset.group_id, []).append(asset.asset_id) + return { + asset.asset_id: sorted(members_by_group[asset.group_id]) + for asset in annotation.assets + } + + +def _comparison( + asset_id: str, submissions: Sequence[AnnotationSubmission] +) -> AssetAdjudicationComparison: + decisions: List[AnnotatorAssetDecision] = [] + for submission in submissions: + by_id = {asset.asset_id: asset for asset in submission.annotation.assets} + asset = by_id[asset_id] + decisions.append( + AnnotatorAssetDecision( + annotator_id=submission.annotator_id, + semantic_type=asset.semantic_type, + semantic_role=asset.semantic_role, + same_group_member_ids=_group_members(submission.annotation)[asset_id], + group_id=asset.group_id, + group_label=asset.group_label, + parent_id=asset.parent_id, + relation_to_parent=asset.relation_to_parent, + uncertain=asset.uncertain, + ) + ) + + json_decisions = [decision.model_dump(mode="json") for decision in decisions] + source_key = {field: field for field in DISAGREEMENT_FIELD_ORDER} + source_key["same_group_members"] = "same_group_member_ids" + disagreements = [ + field + for field in DISAGREEMENT_FIELD_ORDER + if len({str(item[source_key[field]]) for item in json_decisions}) > 1 + ] + return AssetAdjudicationComparison( + asset_id=asset_id, + decisions=decisions, + disagreement_fields=disagreements, + ) + + +def build_adjudication_packet( + submissions: Sequence[AnnotationSubmission], + *, + annotation_directory: str = "annotation", + contact_sheet_files: Optional[Sequence[str]] = None, +) -> AdjudicationPacket: + """Build a comparison packet without selecting or merging any answer.""" + ordered = sorted(submissions, key=lambda item: item.annotator_id) + if len(ordered) < 2: + raise ValueError("at least two independent annotations are required") + annotator_ids = [item.annotator_id for item in ordered] + if len(annotator_ids) != len(set(annotator_ids)): + raise ValueError("duplicate annotator IDs are not independent annotations") + sample_ids = {item.annotation.sample_id for item in ordered} + if len(sample_ids) != 1: + raise ValueError("all annotations must describe the same sample") + + asset_sets = [ + {asset.asset_id for asset in item.annotation.assets} for item in ordered + ] + if any(asset_ids != asset_sets[0] for asset_ids in asset_sets[1:]): + raise ValueError("annotations have different asset coverage") + for item in ordered: + annotation_to_oracle_tree(item.annotation) + + pairwise = [ + PairwiseAgreementEntry( + annotator_ids=[left.annotator_id, right.annotator_id], + agreement=compute_agreement(left.annotation, right.annotation), + ) + for left, right in combinations(ordered, 2) + ] + comparisons = [ + _comparison(asset_id, ordered) for asset_id in sorted(asset_sets[0]) + ] + sample_decisions = [ + AnnotatorSampleDecision( + annotator_id=item.annotator_id, + sample_uncertain=item.annotation.sample_uncertain, + notes=item.annotation.notes, + ) + for item in ordered + ] + sample_uncertainty_differs = len( + {decision.sample_uncertain for decision in sample_decisions} + ) > 1 + return AdjudicationPacket( + sample_id=sample_ids.pop(), + annotator_ids=annotator_ids, + annotation_directory=annotation_directory, + contact_sheet_files=list(contact_sheet_files or []), + sources=[ + AnnotationSourceRef( + annotator_id=item.annotator_id, + filename=item.filename, + sha256=item.sha256, + ) + for item in ordered + ], + sample_decisions=sample_decisions, + pairwise_agreements=pairwise, + aggregate_agreement=_aggregate_agreement(pairwise), + assets=comparisons, + requires_adjudication=sample_uncertainty_differs + or any(item.disagreement_fields for item in comparisons), + ) + + +def _unanimous(decisions: Sequence[Dict], field: str, unresolved): + values = [decision[field] for decision in decisions] + return values[0] if all(value == values[0] for value in values[1:]) else unresolved + + +def build_adjudication_forms(packet: AdjudicationPacket) -> tuple[Dict, Dict]: + """Return immutable blank forms; only unanimous fields are prefilled.""" + sample_uncertain_values = [ + decision.sample_uncertain for decision in packet.sample_decisions + ] + sample_uncertain = ( + sample_uncertain_values[0] + if all( + value == sample_uncertain_values[0] + for value in sample_uncertain_values[1:] + ) + else None + ) + assets = [] + for comparison in packet.assets: + decisions = [item.model_dump(mode="json") for item in comparison.decisions] + assets.append( + { + "asset_id": comparison.asset_id, + "semantic_type": _unanimous(decisions, "semantic_type", ""), + "semantic_role": _unanimous(decisions, "semantic_role", ""), + "group_id": _unanimous(decisions, "group_id", ""), + "group_label": _unanimous(decisions, "group_label", ""), + "parent_id": _unanimous(decisions, "parent_id", ""), + "relation_to_parent": _unanimous( + decisions, "relation_to_parent", "" + ), + "uncertain": _unanimous(decisions, "uncertain", None), + } + ) + annotation_form = { + "version": A3_HUMAN_ANNOTATION_VERSION, + "sample_id": packet.sample_id, + "annotator_id": "", + "assets": assets, + "sample_uncertain": sample_uncertain, + "notes": None, + } + record_form = { + "version": "a3.annotation-adjudication.v1", + "sample_id": packet.sample_id, + "annotator_ids": list(packet.annotator_ids), + "adjudicator_id": "", + "agreement": packet.aggregate_agreement.model_dump(mode="json"), + "resolution_notes": None, + } + return annotation_form, record_form + + +def save_adjudication_materials( + packet: AdjudicationPacket, destination: Path +) -> None: + """Persist one packet and its two copy-before-edit forms write-once.""" + destination.mkdir(parents=True, exist_ok=False) + annotation_form, record_form = build_adjudication_forms(packet) + write_json_once( + destination / ADJUDICATION_PACKET_FILENAME, + packet.model_dump(mode="json"), + ) + write_json_once( + destination / ADJUDICATED_ANNOTATION_FORM_FILENAME, + annotation_form, + ) + write_json_once( + destination / ADJUDICATION_RECORD_FORM_FILENAME, + record_form, + ) + + +def build_adjudication_guide() -> str: + """Human-only adjudication instructions stored beside the queue.""" + return """# A3 Gate A/B adjudication guide + +這一步由人類裁決者完成;程式只整理證據,**不得自動裁決**。 + +1. 查看每個 sample 的 `adjudication_packet.json`,並回到其中列出的 + annotation directory 查看 contact sheet 與全部 `annotation_*.json`。 +2. 不要修改原始 annotation_*.json,也不要查看 designer GT、座標或成品。 +3. 複製 `annotation_adjudicated_form.json` 為 `annotation_adjudicated.json`; + 複製 `adjudication_record_form.json` 為 `adjudication_record.json`。 +4. 表單只預填三位標註者逐字一致的欄位;空字串或 null 都代表仍需人類決定。 +5. `annotation_adjudicated.json` 的 `annotator_id` 必須等於 record 的 + `adjudicator_id`。逐 asset 裁決 type、自由文字 role、group、parent/relation + 與 uncertain;在 `resolution_notes` 記錄主要取捨。 +6. 完成後先做 schema、coverage、cycle/group consistency 驗證,通過後才能 + 轉成 T3 human-oracle tree。不得直接把任一 annotator 當作自動 winner。 +7. 20 份都完成後執行: + `python layout_agent/run_a3.py finalize-adjudication --run-dir `。 + 驗證採 all-or-nothing;任一份有錯就不產生任何 oracle tree。 +""" + + +def validate_adjudication_submission( + packet: AdjudicationPacket, + final_annotation: HumanAnnotation, + record: AdjudicationRecord, +) -> A3LayoutTree: + """Validate one human decision and return its oracle tree without writing.""" + if final_annotation.sample_id != packet.sample_id or record.sample_id != packet.sample_id: + raise ValueError("adjudication sample_id does not match packet") + if record.annotator_ids != packet.annotator_ids: + raise ValueError("record annotator_ids do not match packet provenance") + if record.agreement != packet.aggregate_agreement: + raise ValueError("record agreement does not match the frozen packet aggregate") + if final_annotation.annotator_id != record.adjudicator_id: + raise ValueError("final annotation annotator_id must match adjudicator_id") + expected = {item.asset_id for item in packet.assets} + actual = {item.asset_id for item in final_annotation.assets} + if actual != expected: + raise ValueError( + f"adjudicated annotation coverage mismatch: missing={sorted(expected - actual)}, " + f"extra={sorted(actual - expected)}" + ) + return annotation_to_oracle_tree(final_annotation) + + +def load_oracle_tree(oracle_root: Path, sample_id: str) -> A3LayoutTree: + """Load one finalized T3 tree from ``/.json``.""" + path = oracle_root / f"{sample_id}.json" + tree = A3LayoutTree.model_validate_json(path.read_bytes()) + if tree.source != "human_oracle": + raise ValueError(f"{path} must contain source='human_oracle'") + return tree diff --git a/metagpt/ext/agentlayout/tools/analyst_vision.py b/metagpt/ext/agentlayout/tools/analyst_vision.py new file mode 100644 index 000000000..049cc9e4f --- /dev/null +++ b/metagpt/ext/agentlayout/tools/analyst_vision.py @@ -0,0 +1,378 @@ +"""Deterministic vision packet and output contract for the A3 MLLM Analyst.""" +from __future__ import annotations + +import base64 +import hashlib +import json +import math +from io import BytesIO +from pathlib import Path +from typing import Dict, List, Literal, Optional, Tuple + +from PIL import Image, ImageDraw, ImageFont +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.schema import ( + Canvas, + DesignSpec, + Element, + SemanticType, + VisualType, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + +A3_ANALYST_OUTPUT_SCHEMA_VERSION = "a3.analyst-output.v1" +A3_ANALYST_VISION_VERSION = "a3.analyst-vision-packet.v1" +BACKGROUND_OVERVIEW_FILENAME = "background_overview.png" +CONTACT_SHEET_PREFIX = "asset_contact_sheet_" +CONTACT_CELL_WIDTH = 240 +CONTACT_CELL_HEIGHT = 220 +CONTACT_COLUMNS = 4 +CONTACT_MAX_ASSETS_PER_SHEET = 20 +THUMBNAIL_BOX = (208, 158) +BACKGROUND_MAX_EDGE = 768 + + +class A3AssetUnderstanding(BaseModel): + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + semantic_type: SemanticType + description: str = Field(..., min_length=1) + semantic_role: str = Field(..., min_length=1) + key_message: Optional[str] = None + constraints: List[str] = Field(default_factory=list) + + @model_validator(mode="after") + def _foreground_only(self) -> "A3AssetUnderstanding": + # A3-08 smoke finding: full-canvas textures demoted to placeable by + # the P-Full pixel rule tempted the Analyst into 'background_image', + # which the P-Full contract forbids. Rejecting at the schema level + # gives the retry loop an actionable per-asset error. + if self.semantic_type == SemanticType.BACKGROUND_IMAGE: + raise ValueError( + f"{self.asset_id}: P-Full foreground assets cannot use " + "semantic_type='background_image'; use the closest placeable " + "type such as 'decorative_image'" + ) + return self + + +class A3AnalystOutput(BaseModel): + """Semantic-only Analyst output; geometry and file paths are forbidden.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.analyst-output.v1"] = A3_ANALYST_OUTPUT_SCHEMA_VERSION + background_summary: str = Field(..., min_length=1) + design_intent: str = Field(..., min_length=1) + style_keywords: List[str] = Field(default_factory=list) + language: Optional[str] = None + assets: List[A3AssetUnderstanding] + + @model_validator(mode="after") + def _unique_ids(self) -> "A3AnalystOutput": + ids = [asset.asset_id for asset in self.assets] + if len(ids) != len(set(ids)): + raise ValueError("Analyst output contains duplicate asset IDs") + return self + + +class AnalystVisionPacket(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + version: Literal["a3.analyst-vision-packet.v1"] = A3_ANALYST_VISION_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + image_labels: List[str] + images: List[Image.Image] + + +def _font(size: int = 18) -> ImageFont.ImageFont: + try: + return ImageFont.truetype("DejaVuSans.ttf", size=size) + except (OSError, IOError): + return ImageFont.load_default() + + +def _checkerboard(size: Tuple[int, int], step: int = 12) -> Image.Image: + image = Image.new("RGBA", size, (245, 245, 245, 255)) + draw = ImageDraw.Draw(image) + for y in range(0, size[1], step): + for x in range(0, size[0], step): + if (x // step + y // step) % 2: + draw.rectangle( + (x, y, min(size[0], x + step), min(size[1], y + step)), + fill=(220, 220, 220, 255), + ) + return image + + +def _contain(image: Image.Image, box: Tuple[int, int]) -> Image.Image: + copy = image.convert("RGBA") + copy.thumbnail(box, Image.Resampling.LANCZOS) + return copy + + +def build_background_overview(manifest: R3AssetManifest) -> Image.Image: + background = next((asset for asset in manifest.assets if asset.role == "background"), None) + if background is not None: + with Image.open(background.asset_ref) as opened: + image = opened.convert("RGB") + image.thumbnail((BACKGROUND_MAX_EDGE, BACKGROUND_MAX_EDGE), Image.Resampling.LANCZOS) + return image.copy() + + scale = min(BACKGROUND_MAX_EDGE / manifest.canvas_width, BACKGROUND_MAX_EDGE / manifest.canvas_height) + size = ( + max(1, int(round(manifest.canvas_width * scale))), + max(1, int(round(manifest.canvas_height * scale))), + ) + image = Image.new("RGB", size, "white") + draw = ImageDraw.Draw(image) + label = "NO BASE BACKGROUND — blank canvas" + bbox = draw.textbbox((0, 0), label, font=_font(20)) + draw.text( + ((size[0] - (bbox[2] - bbox[0])) / 2, (size[1] - (bbox[3] - bbox[1])) / 2), + label, + fill=(80, 80, 80), + font=_font(20), + ) + return image + + +def build_contact_sheets(manifest: R3AssetManifest) -> List[Image.Image]: + """Render every foreground in uniform cells; native scale cannot leak.""" + assets = manifest.foreground_assets() + sheets: List[Image.Image] = [] + for start in range(0, len(assets), CONTACT_MAX_ASSETS_PER_SHEET): + page = assets[start : start + CONTACT_MAX_ASSETS_PER_SHEET] + rows = max(1, math.ceil(len(page) / CONTACT_COLUMNS)) + sheet = Image.new( + "RGB", + (CONTACT_COLUMNS * CONTACT_CELL_WIDTH, rows * CONTACT_CELL_HEIGHT), + "white", + ) + draw = ImageDraw.Draw(sheet) + for offset, asset in enumerate(page): + col = offset % CONTACT_COLUMNS + row = offset // CONTACT_COLUMNS + left = col * CONTACT_CELL_WIDTH + top = row * CONTACT_CELL_HEIGHT + draw.rectangle( + (left, top, left + CONTACT_CELL_WIDTH - 1, top + CONTACT_CELL_HEIGHT - 1), + outline=(150, 150, 150), + width=1, + ) + thumb_bg = _checkerboard(THUMBNAIL_BOX) + with Image.open(asset.asset_ref) as opened: + thumb = _contain(opened, THUMBNAIL_BOX) + thumb_bg.alpha_composite( + thumb, + ((THUMBNAIL_BOX[0] - thumb.width) // 2, (THUMBNAIL_BOX[1] - thumb.height) // 2), + ) + sheet.paste(thumb_bg.convert("RGB"), (left + 16, top + 8)) + draw.text((left + 12, top + 171), asset.asset_id, fill="black", font=_font(18)) + media = "TEXT BITMAP" if asset.media_type == "text_bitmap" else "IMAGE" + draw.text((left + 12, top + 194), media, fill=(70, 70, 70), font=_font(14)) + sheets.append(sheet) + return sheets + + +def _prompt_assets(manifest: R3AssetManifest) -> List[Dict]: + return [ + { + "asset_id": asset.asset_id, + "media_type": asset.media_type, + "content": asset.content, + "bitmap_aspect_ratio": round(asset.bitmap_aspect_ratio, 6), + } + for asset in manifest.foreground_assets() + ] + + +def build_analyst_prompt(manifest: R3AssetManifest, user_brief: str) -> str: + schema = A3AnalystOutput.model_json_schema() + return f"""Role: You are the semantic design Analyst in AgentLayout A3. + +You MUST inspect BOTH the first attached background overview and every following +foreground contact-sheet page. The contact-sheet labels are authoritative stable +asset IDs. Uniform cells deliberately remove original placement and scale. + +# User brief +{user_brief} + +# Canvas +{manifest.canvas_width}x{manifest.canvas_height} + +# Foreground assets (same IDs/order as contact sheets) +{json.dumps(_prompt_assets(manifest), ensure_ascii=False, indent=2)} + +# Responsibilities +- Describe the background's visual content, saliency/quiet regions and palette. +- Assign every foreground asset a semantic type and semantic role. +- semantic_type must NEVER be "background_image": every listed asset is + placeable foreground by contract, even full-canvas textures or panels. + Use "decorative_image" for texture/panel-like assets. +- Use text `content` for meaning and inspect its bitmap for visual style. +- State semantic constraints only. Do NOT output coordinates, bbox, x/y, width, + height, font size, original scale, z-index or file paths. +- Include every listed asset ID exactly once; never invent or rename IDs. +- The theme/brief is context, not permission to invent new foreground assets. + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_text_only_analyst_prompt(manifest: R3AssetManifest, user_brief: str) -> str: + """Gate A ablation arm: identical output contract, zero visual access. + + The prompt states explicitly that no images are attached, so semantic + judgements come from text content and media type alone. Everything else + (schema, ID coverage, the background_image ban) matches the vision arm. + """ + schema = A3AnalystOutput.model_json_schema() + return f"""Role: You are the semantic design Analyst in AgentLayout A3. + +You have NO visual access in this configuration: no background image and no +foreground thumbnails are attached. Reason from the brief, each asset's text +content and its media type alone. + +# User brief +{user_brief} + +# Canvas +{manifest.canvas_width}x{manifest.canvas_height} + +# Foreground assets +{json.dumps(_prompt_assets(manifest), ensure_ascii=False, indent=2)} + +# Responsibilities +- Assign every foreground asset a semantic type and semantic role. +- semantic_type must NEVER be "background_image": every listed asset is + placeable foreground by contract. Use "decorative_image" when unsure + about a non-text asset. +- background_summary must describe only what the brief implies; do not + invent visual details you cannot see. +- State semantic constraints only. Do NOT output coordinates, bbox, x/y, + width, height, font size, original scale, z-index or file paths. +- Include every listed asset ID exactly once; never invent or rename IDs. + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_vision_packet(manifest: R3AssetManifest, user_brief: str) -> AnalystVisionPacket: + prompt = build_analyst_prompt(manifest, user_brief) + background = build_background_overview(manifest) + sheets = build_contact_sheets(manifest) + images = [background, *sheets] + labels = [BACKGROUND_OVERVIEW_FILENAME] + [ + f"{CONTACT_SHEET_PREFIX}{index:02d}.png" for index in range(1, len(sheets) + 1) + ] + return AnalystVisionPacket( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + image_labels=labels, + images=images, + ) + + +def validate_asset_coverage(output: A3AnalystOutput, manifest: R3AssetManifest) -> None: + expected = {asset.asset_id for asset in manifest.foreground_assets()} + actual = {asset.asset_id for asset in output.assets} + if expected != actual: + raise ValueError( + f"Analyst asset coverage mismatch: missing={sorted(expected - actual)}, " + f"extra={sorted(actual - expected)}" + ) + invalid_backgrounds = [ + asset.asset_id + for asset in output.assets + if asset.semantic_type == SemanticType.BACKGROUND_IMAGE + ] + if invalid_backgrounds: + raise ValueError( + "P-Full foreground assets cannot be reclassified as background: " + f"{invalid_backgrounds}" + ) + + +def parse_analyst_output(response: str) -> A3AnalystOutput: + """Parse a JSON object with defensive removal of fences/surrounding prose.""" + text = (response or "").strip() + if "```" in text: + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + elif not text.startswith("{"): + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + return A3AnalystOutput.model_validate(json.loads(text)) + + +def analyst_output_to_design_spec( + output: A3AnalystOutput, manifest: R3AssetManifest +) -> DesignSpec: + validate_asset_coverage(output, manifest) + by_id = {asset.asset_id: asset for asset in output.assets} + elements: List[Element] = [] + for runtime_asset in manifest.foreground_assets(): + understood = by_id[runtime_asset.asset_id] + elements.append( + Element( + id=runtime_asset.asset_id, + semantic_type=understood.semantic_type, + visual_type=VisualType.IMAGE, + content=runtime_asset.content, + asset_ref=runtime_asset.asset_ref, + ) + ) + background = next((asset for asset in manifest.assets if asset.role == "background"), None) + if background is not None: + elements.insert( + 0, + Element( + id=background.asset_id, + semantic_type=SemanticType.BACKGROUND_IMAGE, + visual_type=VisualType.IMAGE, + asset_ref=background.asset_ref, + ), + ) + return DesignSpec( + canvas=Canvas( + width=manifest.canvas_width, + height=manifest.canvas_height, + background_asset_ref=background.asset_ref if background else None, + background_color="#FFFFFF" if background is None else None, + ), + elements=elements, + style_keywords=output.style_keywords, + language=output.language, + ) + + +def image_to_base64(image: Image.Image) -> str: + buffer = BytesIO() + image.convert("RGB").save(buffer, format="PNG", compress_level=9) + return base64.b64encode(buffer.getvalue()).decode("ascii") + + +def save_vision_packet(packet: AnalystVisionPacket, output_dir: Path) -> None: + output_dir.mkdir(parents=True, exist_ok=False) + for label, image in zip(packet.image_labels, packet.images): + image.save(output_dir / label, format="PNG", compress_level=9) + request = { + "version": packet.version, + "prompt": packet.prompt, + "prompt_sha256": packet.prompt_sha256, + "image_labels": packet.image_labels, + } + from metagpt.ext.agentlayout.run_manifest import write_json_once + + write_json_once(output_dir / "analyst_request.json", request) diff --git a/metagpt/ext/agentlayout/tools/annotation.py b/metagpt/ext/agentlayout/tools/annotation.py new file mode 100644 index 000000000..a1e6384c5 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/annotation.py @@ -0,0 +1,270 @@ +"""Human reference-tree annotation contract for A3 Gates A/B. + +Implements new_plam.md section 5.3: + +- the annotation packet shows ONLY the user brief, the foreground contact + sheet, text content and stable asset IDs — never the designer GT layout + and (deliberately) not even the base background, so grouping judgements + come from asset semantics alone; +- every sample needs at least two independent annotations; disagreements are + resolved by an explicit adjudication record, never silently; +- the merged result is a normal ``A3LayoutTree`` with ``source="human_oracle"`` + plus per-pair agreement statistics, so tree metrics and the T3 arm consume + the same versioned contract as predicted trees. +""" +from __future__ import annotations + +import hashlib +import json +from itertools import combinations +from pathlib import Path +from typing import Dict, List, Literal, Optional, Set, Tuple + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, + TreeRelation, +) +from metagpt.ext.agentlayout.run_manifest import write_json_once +from metagpt.ext.agentlayout.schema import SemanticType +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + +A3_ANNOTATION_PACKET_VERSION = "a3.annotation-packet.v1" +A3_HUMAN_ANNOTATION_VERSION = "a3.human-annotation.v1" +A3_ADJUDICATION_VERSION = "a3.annotation-adjudication.v1" +ANNOTATION_FORM_FILENAME = "annotation_form.json" +ANNOTATION_PACKET_FILENAME = "annotation_packet.json" + + +class AnnotationAssetView(BaseModel): + """Exactly the asset information an annotator is allowed to see.""" + + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + media_type: Literal["raster", "text_bitmap"] + content: Optional[str] = None + + +class AnnotationPacket(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.annotation-packet.v1"] = A3_ANNOTATION_PACKET_VERSION + sample_id: str + user_brief: str + assets: List[AnnotationAssetView] + contact_sheet_files: List[str] + packet_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + + +class AnnotatedAsset(BaseModel): + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + semantic_type: SemanticType + semantic_role: str = Field(..., min_length=1) + group_id: str = Field(..., pattern=r"^group_[A-Za-z0-9._-]+$") + group_label: str = Field(..., min_length=1) + parent_id: str = "root" + relation_to_parent: TreeRelation = TreeRelation.ROOT + uncertain: bool = False + + +class HumanAnnotation(BaseModel): + """One annotator's full response for one sample.""" + + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.human-annotation.v1"] = A3_HUMAN_ANNOTATION_VERSION + sample_id: str + annotator_id: str = Field(..., min_length=1) + assets: List[AnnotatedAsset] + sample_uncertain: bool = False + notes: Optional[str] = None + + @model_validator(mode="after") + def _unique_assets(self) -> "HumanAnnotation": + ids = [asset.asset_id for asset in self.assets] + if len(ids) != len(set(ids)): + raise ValueError("annotation contains duplicate asset IDs") + return self + + +def build_annotation_packet( + manifest: R3AssetManifest, user_brief: str, contact_sheet_files: List[str] +) -> AnnotationPacket: + assets = [ + AnnotationAssetView( + asset_id=asset.asset_id, + media_type=asset.media_type, + content=asset.content, + ) + for asset in manifest.foreground_assets() + ] + payload = json.dumps( + { + "sample_id": manifest.sample_id, + "user_brief": user_brief, + "assets": [asset.model_dump(mode="json") for asset in assets], + }, + sort_keys=True, + ensure_ascii=False, + ) + return AnnotationPacket( + sample_id=manifest.sample_id, + user_brief=user_brief, + assets=assets, + contact_sheet_files=list(contact_sheet_files), + packet_sha256=hashlib.sha256(payload.encode("utf-8")).hexdigest(), + ) + + +def build_annotation_form(packet: AnnotationPacket) -> Dict: + """Empty response template one annotator fills in.""" + return { + "version": A3_HUMAN_ANNOTATION_VERSION, + "sample_id": packet.sample_id, + "annotator_id": "", + "sample_uncertain": False, + "notes": None, + "assets": [ + { + "asset_id": asset.asset_id, + "semantic_type": "", + "semantic_role": "", + "group_id": "", + "group_label": "", + "parent_id": "root", + "relation_to_parent": "root", + "uncertain": False, + } + for asset in packet.assets + ], + } + + +def save_annotation_packet( + packet: AnnotationPacket, output_dir: Path +) -> None: + output_dir.mkdir(parents=True, exist_ok=False) + write_json_once(output_dir / ANNOTATION_PACKET_FILENAME, packet.model_dump(mode="json")) + write_json_once(output_dir / ANNOTATION_FORM_FILENAME, build_annotation_form(packet)) + + +def validate_annotation_coverage( + annotation: HumanAnnotation, manifest: R3AssetManifest +) -> None: + expected = {asset.asset_id for asset in manifest.foreground_assets()} + actual = {asset.asset_id for asset in annotation.assets} + if expected != actual: + raise ValueError( + f"annotation coverage mismatch: missing={sorted(expected - actual)}, " + f"extra={sorted(actual - expected)}" + ) + + +def _same_group_pairs(annotation: HumanAnnotation) -> Set[Tuple[str, str]]: + by_group: Dict[str, List[str]] = {} + for asset in annotation.assets: + by_group.setdefault(asset.group_id, []).append(asset.asset_id) + pairs: Set[Tuple[str, str]] = set() + for members in by_group.values(): + for a, b in combinations(sorted(members), 2): + pairs.add((a, b)) + return pairs + + +def _edges(annotation: HumanAnnotation) -> Set[Tuple[str, str]]: + return { + (asset.parent_id, asset.asset_id) + for asset in annotation.assets + if asset.parent_id != "root" + } + + +class AgreementReport(BaseModel): + model_config = ConfigDict(extra="forbid") + + same_group_jaccard: Optional[float] = None + edge_jaccard: Optional[float] = None + role_type_agreement: float + disagreeing_assets: List[str] = Field(default_factory=list) + + +def compute_agreement(a: HumanAnnotation, b: HumanAnnotation) -> AgreementReport: + """Pairwise inter-annotator agreement; drives the adjudication queue.""" + if {x.asset_id for x in a.assets} != {x.asset_id for x in b.assets}: + raise ValueError("annotations cover different asset sets") + pairs_a, pairs_b = _same_group_pairs(a), _same_group_pairs(b) + edges_a, edges_b = _edges(a), _edges(b) + + def _jaccard(left: Set, right: Set) -> Optional[float]: + union = left | right + return len(left & right) / len(union) if union else None + + by_id_b = {asset.asset_id: asset for asset in b.assets} + matches = [ + asset.asset_id + for asset in a.assets + if asset.semantic_type == by_id_b[asset.asset_id].semantic_type + ] + disagreeing = sorted({x.asset_id for x in a.assets} - set(matches)) + return AgreementReport( + same_group_jaccard=_jaccard(pairs_a, pairs_b), + edge_jaccard=_jaccard(edges_a, edges_b), + role_type_agreement=len(matches) / len(a.assets), + disagreeing_assets=disagreeing, + ) + + +class AdjudicationRecord(BaseModel): + """Provenance of how the final reference tree was decided.""" + + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.annotation-adjudication.v1"] = A3_ADJUDICATION_VERSION + sample_id: str + annotator_ids: List[str] = Field(..., min_length=2) + adjudicator_id: str = Field(..., min_length=1) + agreement: AgreementReport + resolution_notes: Optional[str] = None + + +def annotation_to_oracle_tree(annotation: HumanAnnotation) -> A3LayoutTree: + """Convert one (adjudicated) annotation into the T3 oracle contract.""" + labels: Dict[str, str] = {} + members: Dict[str, List[str]] = {} + order: Dict[str, int] = {} + for position, asset in enumerate(annotation.assets): + labels.setdefault(asset.group_id, asset.group_label) + members.setdefault(asset.group_id, []).append(asset.asset_id) + order.setdefault(asset.group_id, position) + nodes = [ + A3TreeNode( + asset_id=asset.asset_id, + semantic_type=asset.semantic_type, + semantic_role=asset.semantic_role, + group_id=asset.group_id, + group_label=labels[asset.group_id], + parent_id=asset.parent_id, + relation_to_parent=asset.relation_to_parent, + ordering_priority=position, + confidence=0.5 if asset.uncertain else 1.0, + ) + for position, asset in enumerate(annotation.assets) + ] + groups = [ + A3TreeGroup( + group_id=group_id, + label=labels[group_id], + member_ids=member_ids, + ordering_priority=order[group_id], + confidence=1.0, + ) + for group_id, member_ids in members.items() + ] + return A3LayoutTree(source="human_oracle", nodes=nodes, groups=groups) diff --git a/metagpt/ext/agentlayout/tools/crello_preprocessor.py b/metagpt/ext/agentlayout/tools/crello_preprocessor.py new file mode 100644 index 000000000..21936b8d1 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/crello_preprocessor.py @@ -0,0 +1,305 @@ +"""SEGA-style Crello preprocessor -- bake non-text layers into the background. + +Step 76 (2026-07-02). Motivation: the raw Crello asset list mixes backgrounds, +decorative shapes, logos and underlay plates with no reliable type signal -- +even a human cannot tell them apart from the asset list alone (Step 27 audit: +most underlays hide in type_code 0). Steps 61/66 showed the system loses to the +designer GT on *composition semantics*, not geometry: mathematically-optimal +placement still lost 55/55 because the model cannot infer which messy asset +plays which role. + +SEGA (ICCV 2025) sidesteps this by reformatting Crello into a "half-finished +poster": every non-text layer is composited into the background at the +designer's GT position, and the model only places text. This module replicates +that protocol on our cached samples (layout_agent/output/crello_/): + + * kind in {background_candidate, image, underlay} -> composited (baked) + * kind == text -> stays placeable + +Because WE do the compositing, underlay panel positions and colours are known +exactly -- they are emitted as :class:`UnderlayRegion` feed-forward hints +(bbox + dominant colour + contrasting text colour) instead of being routed +through judge feedback, which was measured dead three times (Steps 20b/59/65). + +Paper-protocol note: baked layers reuse designer GT positions. This matches +SEGA's released "PKU-style Crello" and must be disclosed as such -- candidates +differ from GT only in text placement/styling. +""" +from __future__ import annotations + +import json +from collections import Counter +from pathlib import Path +from typing import Dict, List, Optional, Tuple + +from PIL import Image +from pydantic import BaseModel, Field + +from metagpt.ext.agentlayout.schema import UnderlayRegion +from metagpt.logs import logger + +# Underlay panels smaller than this cannot hold text; emitting them as hints +# would only mislead the Composition Director (thin divider lines are the +# common case: 337x16px rules under headings). Fractions are of canvas size; +# the absolute floors guard tiny canvases. +MIN_REGION_W_FRAC: float = 0.10 +MIN_REGION_H_FRAC: float = 0.06 +MIN_REGION_W_PX: int = 60 +MIN_REGION_H_PX: int = 24 + +# A shape only counts as a TEXT underlay when the designer actually put text on +# it: some GT text element must have at least this fraction of its area inside +# the shape's bbox. Without this check the N=20 eyeball run emitted regions on +# decorative illustrations (fish ornaments, a skier silhouette) -- kind=underlay +# is the classifier's shape bucket, not a semantic text-holder label. +TEXT_OVERLAP_MIN: float = 0.5 + +# Step 79: solid plate vs transparent outlined frame. Below this opaque-pixel +# fraction the shape is a FRAME: its visible backdrop is the background +# showing through, so the region colour must be sampled from the composited +# canvas inside the bbox, not from the shape's own (border) pixels. The Step +# 78 eyeball run caught the failure this fixes: a white outline box over a +# dark forest was reported as a white plate -> dark recommended text -> dark +# text on dark forest (GT uses white text there). +SOLID_MIN_OPAQUE_COVERAGE: float = 0.35 + +# Kinds that get baked into the background (everything except text). +BAKED_KINDS = ("background_candidate", "image", "underlay") + +BG_FILENAME = "bg_composite.png" +INPUT_FILENAME = "sega_input.json" + + +class PreprocessedSample(BaseModel): + """Output contract of :func:`preprocess_sample` (also serialised to JSON).""" + + sample_id: str + title: str + canvas_width: int + canvas_height: int + background_path: str = Field(..., description="Absolute path to the composited background PNG.") + text_contents: List[str] = Field(default_factory=list, description="Placeable text, GT z-order.") + text_assets: List[Dict] = Field( + default_factory=list, + description=( + "Step 80 text-as-image mode: per text element with a cached " + "pre-rendered bitmap, {content, asset_ref, width, height} where " + "width/height are the designer's natural canvas size. Empty when " + "the cache has no text images (pre-Step-80 snapshots)." + ), + ) + underlay_regions: List[UnderlayRegion] = Field(default_factory=list) + baked_counts: Dict[str, int] = Field( + default_factory=dict, description="kind -> number of layers baked into the background." + ) + skipped_assets: int = Field(default=0, description="Baked-kind layers whose PNG failed to load.") + + +def _luminance_text_color(hex_color: str) -> str: + """Dark text on light panels, light text on dark panels (same formula as + pipeline._text_color_for_background; duplicated to avoid a tools->pipeline + import cycle).""" + h = hex_color.lstrip("#") + r, g, b = int(h[0:2], 16), int(h[2:4], 16), int(h[4:6], 16) + luminance = 0.299 * r + 0.587 * g + 0.114 * b + return "#111111" if luminance >= 128 else "#F4F4F4" + + +def _dominant_color(img: Image.Image) -> Optional[str]: + """Dominant colour of the opaque pixels via quantised-bucket voting. + + A plain mean turns two-tone panels into mud; instead pixels are quantised + to 32-level buckets, the most common bucket wins, and the actual pixels in + that bucket are averaged. Panels classified as shapes have <=16 unique + colours (Step 27 classifier signal), so one bucket dominates cleanly. + Returns None when no pixel is sufficiently opaque. + """ + rgba = img.convert("RGBA") + # Downsample large panels: colour voting does not need full resolution. + if rgba.width * rgba.height > 65536: + rgba.thumbnail((256, 256), Image.NEAREST) + px = list(rgba.getdata()) + buckets: Counter = Counter() + sums: Dict[Tuple[int, int, int], List[int]] = {} + for r, g, b, a in px: + if a < 128: + continue + key = (r // 32, g // 32, b // 32) + buckets[key] += 1 + acc = sums.setdefault(key, [0, 0, 0]) + acc[0] += r + acc[1] += g + acc[2] += b + if not buckets: + return None + key, n = buckets.most_common(1)[0] + acc = sums[key] + return "#{:02X}{:02X}{:02X}".format(acc[0] // n, acc[1] // n, acc[2] // n) + + +def _opaque_coverage(img: Image.Image) -> float: + """Fraction of pixels with alpha >= 128 (downsampled for speed).""" + rgba = img.convert("RGBA") + if rgba.width * rgba.height > 65536: + rgba = rgba.copy() + rgba.thumbnail((256, 256), Image.NEAREST) + alpha = rgba.getchannel("A") + opaque = sum(1 for a in alpha.getdata() if a >= 128) + return opaque / max(1, rgba.width * rgba.height) + + +def _paste_layer(canvas: Image.Image, plate: Image.Image, elem: dict) -> Image.Image: + """Composite one layer at its GT position via a transparent full-canvas + buffer, so negative offsets / oversize plates crop correctly (Step 47).""" + cw, ch = canvas.size + w = max(1, int(round(float(elem.get("width", cw))))) + h = max(1, int(round(float(elem.get("height", ch))))) + left = int(round(float(elem.get("left", 0.0)))) + top = int(round(float(elem.get("top", 0.0)))) + plate = plate.convert("RGBA").resize((w, h), Image.LANCZOS) + layer = Image.new("RGBA", (cw, ch), (0, 0, 0, 0)) + layer.paste(plate, (left, top), plate) + return Image.alpha_composite(canvas, layer) + + +def _clamped_bbox(elem: dict, cw: int, ch: int) -> List[int]: + left = int(round(float(elem["left"]))) + top = int(round(float(elem["top"]))) + right = left + int(round(float(elem["width"]))) + bottom = top + int(round(float(elem["height"]))) + return [max(0, left), max(0, top), min(cw, right), min(ch, bottom)] + + +def _region_large_enough(bbox: List[int], cw: int, ch: int) -> bool: + w = bbox[2] - bbox[0] + h = bbox[3] - bbox[1] + return ( + w >= max(MIN_REGION_W_PX, MIN_REGION_W_FRAC * cw) + and h >= max(MIN_REGION_H_PX, MIN_REGION_H_FRAC * ch) + ) + + +def _holds_gt_text(bbox: List[int], text_bboxes: List[List[int]]) -> bool: + """True when some GT text element sits (mostly) on this shape. + + Overlap is measured relative to the TEXT area, so a big panel behind a + small caption qualifies, while a divider line crossing a heading does not. + """ + for tb in text_bboxes: + ix = max(0, min(bbox[2], tb[2]) - max(bbox[0], tb[0])) + iy = max(0, min(bbox[3], tb[3]) - max(bbox[1], tb[1])) + text_area = max(1, (tb[2] - tb[0]) * (tb[3] - tb[1])) + if ix * iy / text_area >= TEXT_OVERLAP_MIN: + return True + return False + + +def preprocess_sample(sample_dir: Path, out_dir: Path) -> PreprocessedSample: + """Convert one cached Crello sample into SEGA-style pipeline input. + + Reads ``/meta.json`` (+ asset PNGs), writes + ``/bg_composite.png`` and ``/sega_input.json``, and + returns the parsed :class:`PreprocessedSample`. + """ + meta = json.loads((sample_dir / "meta.json").read_text()) + cw = int(meta["canvas_width"]) + ch = int(meta["canvas_height"]) + out_dir.mkdir(parents=True, exist_ok=True) + + canvas = Image.new("RGBA", (cw, ch), (255, 255, 255, 255)) + baked_counts: Dict[str, int] = {} + skipped = 0 + regions: List[UnderlayRegion] = [] + pending_regions: List[dict] = [] # Step 79: colours resolved post-composite + texts: List[str] = [] + text_assets: List[Dict] = [] # Step 80: pre-rendered text bitmaps + + # GT text bboxes, needed to tell text underlays from decorative shapes. + text_bboxes = [ + _clamped_bbox(e, cw, ch) for e in meta["elements"] if e.get("kind") == "text" + ] + + for elem in meta["elements"]: + kind = elem.get("kind") + if kind == "text": + content = (elem.get("content") or "").strip() + if content: + texts.append(content) + if elem.get("asset_ref"): + text_assets.append( + { + "content": content, + "asset_ref": elem["asset_ref"], + "width": max(1, int(round(float(elem["width"])))), + "height": max(1, int(round(float(elem["height"])))), + } + ) + continue + if kind not in BAKED_KINDS or not elem.get("asset_ref"): + continue + try: + plate = Image.open(elem["asset_ref"]) + except (OSError, IOError) as err: + logger.warning(f"crello_preprocessor: skipping unreadable asset {elem['asset_ref']} ({err})") + skipped += 1 + continue + canvas = _paste_layer(canvas, plate, elem) + baked_counts[kind] = baked_counts.get(kind, 0) + 1 + + if kind == "underlay": + bbox = _clamped_bbox(elem, cw, ch) + if not _region_large_enough(bbox, cw, ch): + continue + if not _holds_gt_text(bbox, text_bboxes): + continue + # Step 79: colour resolution is deferred until compositing is + # DONE -- a frame's backdrop depends on every layer under (and + # after) it. Here we only record the plate's own stats. + pending_regions.append( + { + "bbox": bbox, + "plate_color": _dominant_color(plate), + "plate_coverage": _opaque_coverage(plate), + } + ) + + # Step 79: resolve each region's colour against the FINISHED composite. + for pend in pending_regions: + bbox = pend["bbox"] + if pend["plate_coverage"] >= SOLID_MIN_OPAQUE_COVERAGE: + color = pend["plate_color"] # opaque plate: its fill IS the backdrop + panel_type = "solid" + else: + # Transparent frame: the text backdrop is whatever the composite + # shows inside the bbox (photo, gradient, ...). + crop = canvas.crop(tuple(bbox)) + color = _dominant_color(crop) + panel_type = "frame" + if color is None: + continue + regions.append( + UnderlayRegion( + bbox=bbox, + dominant_color=color, + recommended_text_color=_luminance_text_color(color), + panel_type=panel_type, + ) + ) + + bg_path = out_dir / BG_FILENAME + canvas.convert("RGB").save(bg_path, format="PNG") + + result = PreprocessedSample( + sample_id=str(meta["id"]), + title=str(meta.get("title", "")), + canvas_width=cw, + canvas_height=ch, + background_path=str(bg_path), + text_contents=texts, + text_assets=text_assets, + underlay_regions=regions, + baked_counts=baked_counts, + skipped_assets=skipped, + ) + (out_dir / INPUT_FILENAME).write_text(result.model_dump_json(indent=2)) + return result diff --git a/metagpt/ext/agentlayout/tools/director_contract.py b/metagpt/ext/agentlayout/tools/director_contract.py new file mode 100644 index 000000000..08a75b875 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/director_contract.py @@ -0,0 +1,121 @@ +"""A3 Composition Director contract: exactly three distinct concepts. + +Pure schemas, prompt builder, parser and validators; the LLM wiring lives in +``actions/compose_concept_a3.py``. Kept import-light so contract tests run +without the heavyweight ``metagpt.actions`` dependency chain. +""" +from __future__ import annotations + +import hashlib +import json +from typing import List, Literal + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.layout_tree_v3 import TreeCondition, condition_prompt_payload +from metagpt.ext.agentlayout.schema import CompositionConcept +from metagpt.ext.agentlayout.tools.analyst_vision import A3AnalystOutput + + +A3_CONCEPT_SET_VERSION = "a3.concept-set.v1" +A3_DIRECTOR_REQUEST_VERSION = "a3.director-request.v1" +A3_CONCEPT_COUNT = 3 + + +class A3ConceptSet(BaseModel): + """Exactly three composition concepts with distinct names.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.concept-set.v1"] = A3_CONCEPT_SET_VERSION + concepts: List[CompositionConcept] = Field( + ..., min_length=A3_CONCEPT_COUNT, max_length=A3_CONCEPT_COUNT + ) + + @model_validator(mode="after") + def _distinct_names(self) -> "A3ConceptSet": + names = [concept.name.strip().lower() for concept in self.concepts] + if len(set(names)) != len(names): + raise ValueError("the three concepts must have distinct names") + return self + + +class A3DirectorRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.director-request.v1"] = A3_DIRECTOR_REQUEST_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + tree_arm: str + + +def validate_concepts_against_assets( + concept_set: A3ConceptSet, condition: TreeCondition +) -> None: + known = set(condition.asset_ids) + unknown = [ + concept.focal_element + for concept in concept_set.concepts + if concept.focal_element not in known + ] + if unknown: + raise ValueError(f"focal_element references unknown asset IDs: {unknown}") + + +def build_director_prompt( + analyst: A3AnalystOutput, condition: TreeCondition, canvas: str +) -> str: + payload = { + "design_intent": analyst.design_intent, + "background_summary": analyst.background_summary, + "style_keywords": analyst.style_keywords, + "assets": [asset.model_dump(mode="json") for asset in analyst.assets], + **condition_prompt_payload(condition), + } + schema = A3ConceptSet.model_json_schema() + return f"""Role: You are the Composition Director in AgentLayout A3. + +The attached image is the base background canvas. Propose exactly +{A3_CONCEPT_COUNT} spatially DISTINCT composition concepts in natural +language; a separate Coordinate Mapper will turn each concept into exact +pixels afterwards. + +# Canvas +{canvas} + +# Semantic context +{json.dumps(payload, ensure_ascii=False, indent=2)} + +# Rules +- The three concepts must place the focal element and the text group in + clearly different canvas regions; do not emit three variations of one idea. +- focal_element must be one of the supplied asset IDs. +- Describe placements in natural language only. Do NOT output coordinates, + bbox, x/y, width, height, font size or file paths. +- Respect the provided tree/grouping information when present; never invent + assets or roles. + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_director_request( + analyst: A3AnalystOutput, condition: TreeCondition, canvas: str +) -> A3DirectorRequest: + prompt = build_director_prompt(analyst, condition, canvas) + return A3DirectorRequest( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + tree_arm=condition.arm, + ) + + +def parse_concept_set(response: str) -> A3ConceptSet: + text = (response or "").strip() + if not text.startswith("{") or "```" in text: + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + return A3ConceptSet.model_validate(json.loads(text)) diff --git a/metagpt/ext/agentlayout/tools/feedback_verifier.py b/metagpt/ext/agentlayout/tools/feedback_verifier.py new file mode 100644 index 000000000..7b2dd6326 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/feedback_verifier.py @@ -0,0 +1,190 @@ +"""Step 77 -- machine verification of Judge visual observations. + +Each :class:`VisualObservation` kind maps to a geometric predicate over the +retried candidate. Computing "was this observation acted on?" per retry gives +a COMPLIANCE RATE -- the diagnostic Step 59 lacked. It localises a feedback- +loop failure: + + compliance high + blind unchanged -> the Judge's advice has no value + (perception/articulation problem) + compliance low -> the generator still ignores + instructions (execution problem) + compliance high + blind improves -> the loop works + +Observations that cannot be checked (missing element, missing target field) +are counted as UNVERIFIABLE and excluded from the rate, but reported so a +sloppy judge (emitting unverifiable items) is visible too. +""" +from __future__ import annotations + +from typing import Dict, List, Optional + +from pydantic import BaseModel, Field + +from metagpt.ext.agentlayout.schema import ( + Candidate, + LayoutElement, + VisualObservation, + VisualObservationKind, +) + +# An element counts as "inside" a target bbox when at least this fraction of +# its own area overlaps it (same convention as the Step 76 preprocessor's +# GT-text-on-underlay test). +INSIDE_MIN_OVERLAP: float = 0.5 + +# Two elements count as overlapping when their intersection exceeds this +# fraction of the SMALLER element's area (tiny corner touches are fine). +OVERLAP_MAX_FRACTION: float = 0.05 + +# |angle| at or below this many degrees counts as upright. +TILT_TOLERANCE_DEG: float = 2.0 + +# Colour compliance is "close enough", not byte-equal: an inspector target of +# #F4F4F4 answered with #FFFFFF is compliance in spirit (Euclidean RGB +# distance 19), while keeping #111111 (distance ~394) is not. 60 admits +# same-tone substitutions and rejects tone flips. +COLOR_TOLERANCE: float = 60.0 + + +class ObservationCheck(BaseModel): + """Verdict for one observation against one candidate.""" + + kind: str + target_id: str + verifiable: bool + satisfied: Optional[bool] = None # None when unverifiable + detail: str = "" + + +class ComplianceReport(BaseModel): + """Aggregate compliance of a candidate against a set of observations.""" + + n_total: int + n_verifiable: int + n_satisfied: int + rate: Optional[float] = Field( + default=None, description="n_satisfied / n_verifiable; None when nothing verifiable." + ) + checks: List[ObservationCheck] = Field(default_factory=list) + + +def _bbox(el: LayoutElement) -> tuple: + return (el.left, el.top, el.left + el.width, el.top + el.height) + + +def _intersection_area(a: tuple, b: tuple) -> float: + ix = max(0, min(a[2], b[2]) - max(a[0], b[0])) + iy = max(0, min(a[3], b[3]) - max(a[1], b[1])) + return ix * iy + + +def _inside_fraction(el: LayoutElement, target_bbox: List[int]) -> float: + area = max(1, el.width * el.height) + return _intersection_area(_bbox(el), tuple(target_bbox)) / area + + +def _color_distance(hex_a: str, hex_b: str) -> Optional[float]: + """Euclidean RGB distance; None when either hex fails to parse.""" + try: + a = hex_a.lstrip("#") + b = hex_b.lstrip("#") + ra, ga, ba = int(a[0:2], 16), int(a[2:4], 16), int(a[4:6], 16) + rb, gb, bb = int(b[0:2], 16), int(b[2:4], 16), int(b[4:6], 16) + except (ValueError, IndexError): + return None + return ((ra - rb) ** 2 + (ga - gb) ** 2 + (ba - bb) ** 2) ** 0.5 + + +def check_observation(obs: VisualObservation, candidate: Candidate) -> ObservationCheck: + """Evaluate one observation's predicate against the candidate.""" + elements: Dict[str, LayoutElement] = {el.id: el for el in candidate.elements} + base = dict(kind=obs.kind.value, target_id=obs.target_id) + el = elements.get(obs.target_id) + if el is None: + return ObservationCheck( + **base, verifiable=False, detail=f"element '{obs.target_id}' not in candidate" + ) + + if obs.kind in ( + VisualObservationKind.TEXT_OFF_PANEL, + VisualObservationKind.TEXT_ILLEGIBLE, + VisualObservationKind.TITLE_MISPLACED, # Step 85: move into target_bbox + VisualObservationKind.LOCKUP_BROKEN, # Step 85: move into target_bbox + ): + # text_illegible may be fixed EITHER by recolouring to the concrete hex + # OR by moving into the suggested calm region; the bbox-target kinds only + # by moving into the given range. + checks = [] + if obs.target_bbox is not None: + frac = _inside_fraction(el, obs.target_bbox) + checks.append((frac >= INSIDE_MIN_OVERLAP, f"inside_fraction={frac:.2f}")) + if obs.kind == VisualObservationKind.TEXT_ILLEGIBLE and obs.target_color: + el_color = (el.color or "").upper() + dist = _color_distance(el_color, obs.target_color) if el_color else None + checks.append( + ( + dist is not None and dist <= COLOR_TOLERANCE, + f"color={el_color or ''} (dist={dist if dist is None else round(dist, 1)})", + ) + ) + if not checks: + return ObservationCheck( + **base, verifiable=False, detail="no target_bbox/target_color to verify against" + ) + satisfied = any(ok for ok, _ in checks) + return ObservationCheck( + **base, verifiable=True, satisfied=satisfied, + detail="; ".join(d for _, d in checks), + ) + + if obs.kind in (VisualObservationKind.TEXT_TOO_SMALL, VisualObservationKind.TEXT_TOO_LARGE): + if obs.target_area_px is None: + return ObservationCheck(**base, verifiable=False, detail="no target_area_px") + area = el.width * el.height + if obs.kind == VisualObservationKind.TEXT_TOO_SMALL: + satisfied = area >= obs.target_area_px + else: + satisfied = area <= obs.target_area_px + return ObservationCheck( + **base, verifiable=True, satisfied=satisfied, + detail=f"area={area} vs target={obs.target_area_px}", + ) + + if obs.kind == VisualObservationKind.TEXT_OVERLAP: + other = elements.get(obs.second_id or "") + if other is None: + return ObservationCheck( + **base, verifiable=False, detail=f"second element '{obs.second_id}' not in candidate" + ) + inter = _intersection_area(_bbox(el), _bbox(other)) + smaller = max(1, min(el.width * el.height, other.width * other.height)) + frac = inter / smaller + return ObservationCheck( + **base, verifiable=True, satisfied=frac <= OVERLAP_MAX_FRACTION, + detail=f"overlap_fraction={frac:.2f}", + ) + + if obs.kind == VisualObservationKind.TEXT_TILTED: + satisfied = abs(el.angle) <= TILT_TOLERANCE_DEG + return ObservationCheck( + **base, verifiable=True, satisfied=satisfied, detail=f"angle={el.angle}" + ) + + return ObservationCheck(**base, verifiable=False, detail=f"unknown kind {obs.kind}") + + +def compliance_report( + observations: List[VisualObservation], candidate: Candidate +) -> ComplianceReport: + """Aggregate compliance of ``candidate`` against ``observations``.""" + checks = [check_observation(obs, candidate) for obs in observations] + verifiable = [c for c in checks if c.verifiable] + satisfied = [c for c in verifiable if c.satisfied] + return ComplianceReport( + n_total=len(checks), + n_verifiable=len(verifiable), + n_satisfied=len(satisfied), + rate=(len(satisfied) / len(verifiable)) if verifiable else None, + checks=checks, + ) diff --git a/metagpt/ext/agentlayout/tools/human_tree_metrics.py b/metagpt/ext/agentlayout/tools/human_tree_metrics.py new file mode 100644 index 000000000..a5011a6a3 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/human_tree_metrics.py @@ -0,0 +1,446 @@ +"""Deterministic A3 metrics against one injected human reference tree. + +This module intentionally does not reuse ``semantic_group_metrics.py``. That +legacy Step-90 implementation derives groups from root subtrees and was used +for predicted-tree self-consistency. A3 instead uses the explicit, exact +partition in :class:`A3LayoutTree.groups` and obtains non-root parent-child +edges directly from :class:`A3TreeNode.parent_id`. + +Layout realization metrics follow ``layout_agent/Metrics.md`` exactly: + +* SGC uses a group-level mean for within-group distances and a pair-level mean + for cross-group distances; +* TLC scores strict wins as 1 and distance ties as 0.5; +* PCA compares each non-root parent-child distance with the parent's median + distance to every other foreground element. + +The caller must pass the reference tree explicitly for every candidate. No +predicted tree or global tree state is read, so all experimental arms can be +evaluated against the same human oracle. +""" +from __future__ import annotations + +from itertools import combinations +from statistics import median +from typing import Dict, List, Optional, Sequence, Set, Tuple + +from pydantic import BaseModel, ConfigDict, Field + +from metagpt.ext.agentlayout.layout_tree_v3 import A3LayoutTree +from metagpt.ext.agentlayout.schema import Candidate, LayoutElement + + +EPS = 1e-6 +Box = Tuple[float, float, float, float] +Pair = Tuple[str, str] +DistanceMatrix = Dict[str, Dict[str, float]] + + +def l1_gap(a: Box, b: Box) -> float: + """Return the L1 empty-space gap between two axis-aligned bounding boxes. + + Boxes use ``(left, top, width, height)``. Overlap or contact on an axis + contributes zero on that axis, so overlapping and touching boxes have + total distance zero when they also overlap/contact on the other axis. + """ + ax, ay, aw, ah = a + bx, by, bw, bh = b + gap_x = max(ax, bx) - min(ax + aw, bx + bw) + gap_y = max(ay, by) - min(ay + ah, by + bh) + return max(0.0, gap_x) + max(0.0, gap_y) + + +class HumanTreeLayoutMetrics(BaseModel): + """One sample/method row for A3 human-tree layout realization metrics.""" + + model_config = ConfigDict(extra="forbid") + + sample_id: str + method: str + sgc: Optional[float] = None + tlc: Optional[float] = None + pca: Optional[float] = None + n_elements: int = 0 + n_groups: int = 0 + n_triplets: int = 0 + skip_reasons: List[str] = Field(default_factory=list) + + +class PRF1Metrics(BaseModel): + """Precision/recall/F1 plus the set cardinalities that produced them.""" + + model_config = ConfigDict(extra="forbid") + + precision: float + recall: float + f1: float + n_true_positive: int + n_predicted: int + n_reference: int + + +class TreePredictionMetrics(BaseModel): + """Predicted A3 tree accuracy against one human-oracle A3 tree. + + Primary metrics exclude every relation involving a human node whose + confidence is exactly ``0.5``. Those ambiguous nodes are not forced into + the error count: their semantic matches and the number of excluded + structural relations are reported separately. + + ``semantic_role_accuracy`` is exact, case-sensitive string equality. No + normalized role score is reported. + """ + + model_config = ConfigDict(extra="forbid") + + same_group: PRF1Metrics + parent_child: PRF1Metrics + semantic_type_accuracy: Optional[float] = None + semantic_role_accuracy: Optional[float] = None + n_certain_nodes: int + n_uncertain_nodes: int + uncertain_node_ids: List[str] = Field(default_factory=list) + uncertain_same_group: Optional[PRF1Metrics] = None + uncertain_parent_child: Optional[PRF1Metrics] = None + uncertain_semantic_type_accuracy: Optional[float] = None + uncertain_semantic_role_accuracy: Optional[float] = None + excluded_predicted_same_group_pairs: int = 0 + excluded_reference_same_group_pairs: int = 0 + excluded_predicted_parent_child_edges: int = 0 + excluded_reference_parent_child_edges: int = 0 + + +def _explicit_groups(tree: A3LayoutTree) -> List[List[str]]: + """Read the A3 group partition verbatim; never infer root subtrees.""" + return [list(group.member_ids) for group in tree.groups] + + +def _parent_child_edges(tree: A3LayoutTree) -> Set[Pair]: + """Return directed non-root edges from the normalized parent_id fields.""" + return { + (node.parent_id, node.asset_id) + for node in tree.nodes + if node.parent_id != "root" + } + + +def _distance_matrix(ids: Sequence[str], boxes: Dict[str, Box]) -> DistanceMatrix: + matrix: DistanceMatrix = {asset_id: {asset_id: 0.0} for asset_id in ids} + for index, left_id in enumerate(ids): + for right_id in ids[index + 1 :]: + distance = l1_gap(boxes[left_id], boxes[right_id]) + matrix[left_id][right_id] = distance + matrix[right_id][left_id] = distance + return matrix + + +def _sgc( + groups: Sequence[Sequence[str]], + distances: DistanceMatrix, + skip_reasons: List[str], +) -> Optional[float]: + if len(groups) < 2: + skip_reasons.append("sgc:single_group") + return None + + within_group_means: List[float] = [] + for group in groups: + pair_distances = [distances[a][b] for a, b in combinations(group, 2)] + if pair_distances: + within_group_means.append(sum(pair_distances) / len(pair_distances)) + if not within_group_means: + skip_reasons.append("sgc:all_groups_singleton") + return None + + cross_group_distances = [ + distances[left][right] + for left_index, left_group in enumerate(groups) + for right_group in groups[left_index + 1 :] + for left in left_group + for right in right_group + ] + if not cross_group_distances: + # Structurally unreachable for a valid A3 partition with >=2 groups, + # but preserve the Metrics.md D_inter skip contract fail-closed. + skip_reasons.append("sgc:single_group") + return None + + d_intra = sum(within_group_means) / len(within_group_means) + d_inter = sum(cross_group_distances) / len(cross_group_distances) + return d_inter / (d_intra + d_inter + EPS) + + +def _tlc( + ids: Sequence[str], + group_by_id: Dict[str, int], + distances: DistanceMatrix, + skip_reasons: List[str], +) -> Tuple[Optional[float], int]: + score = 0.0 + n_triplets = 0 + for anchor in ids: + anchor_group = group_by_id[anchor] + same_group = [ + asset_id + for asset_id in ids + if asset_id != anchor and group_by_id[asset_id] == anchor_group + ] + other_group = [ + asset_id for asset_id in ids if group_by_id[asset_id] != anchor_group + ] + for same_id in same_group: + same_distance = distances[anchor][same_id] + for other_id in other_group: + other_distance = distances[anchor][other_id] + n_triplets += 1 + if same_distance < other_distance: + score += 1.0 + elif same_distance == other_distance: + score += 0.5 + if n_triplets == 0: + skip_reasons.append("tlc:no_triplets") + return None, 0 + return score / n_triplets, n_triplets + + +def _pca( + tree: A3LayoutTree, + ids: Sequence[str], + distances: DistanceMatrix, + skip_reasons: List[str], +) -> Optional[float]: + edges = sorted(_parent_child_edges(tree)) + if not edges: + skip_reasons.append("pca:no_edges") + return None + + hits = 0 + for parent_id, child_id in edges: + comparison_distances = [ + distances[parent_id][asset_id] + for asset_id in ids + if asset_id != parent_id + ] + if distances[parent_id][child_id] <= median(comparison_distances): + hits += 1 + return hits / len(edges) + + +def evaluate_layout_realization( + *, + tree: A3LayoutTree, + candidate: Candidate, + canvas_width: float, + canvas_height: float, + sample_id: str, + method: str, +) -> HumanTreeLayoutMetrics: + """Evaluate one pixel ``Candidate`` against an injected human A3 tree. + + Candidate boxes are divided by canvas width/height before distance + computation. Candidate elements absent from the tree (including legacy + ``bg_*`` elements) are ignored. Missing or duplicate required IDs make + all three metrics undefined and are recorded instead of guessed. + """ + if tree.source != "human_oracle": + raise ValueError("layout realization requires tree source='human_oracle'") + if canvas_width <= 0 or canvas_height <= 0: + raise ValueError("canvas_width and canvas_height must be positive") + + groups = _explicit_groups(tree) + tree_ids = [asset_id for group in groups for asset_id in group] + result = HumanTreeLayoutMetrics( + sample_id=sample_id, + method=method, + n_elements=len(tree_ids), + n_groups=len(groups), + ) + + tree_id_set = set(tree_ids) + candidate_by_id: Dict[str, LayoutElement] = {} + duplicate_ids: Set[str] = set() + for element in candidate.elements: + if element.id not in tree_id_set: + continue + if element.id in candidate_by_id: + duplicate_ids.add(element.id) + else: + candidate_by_id[element.id] = element + if duplicate_ids: + result.skip_reasons.append( + f"layout:duplicate_elements:{','.join(sorted(duplicate_ids))}" + ) + missing_ids = sorted(set(tree_ids) - set(candidate_by_id)) + if missing_ids: + result.skip_reasons.append(f"layout:missing_elements:{','.join(missing_ids)}") + if result.skip_reasons: + return result + + normalized_boxes: Dict[str, Box] = {} + for asset_id in tree_ids: + element = candidate_by_id[asset_id] + normalized_boxes[asset_id] = ( + element.left / canvas_width, + element.top / canvas_height, + element.width / canvas_width, + element.height / canvas_height, + ) + distances = _distance_matrix(tree_ids, normalized_boxes) + group_by_id = { + asset_id: group_index + for group_index, group in enumerate(groups) + for asset_id in group + } + + result.sgc = _sgc(groups, distances, result.skip_reasons) + result.tlc, result.n_triplets = _tlc( + tree_ids, group_by_id, distances, result.skip_reasons + ) + result.pca = _pca(tree, tree_ids, distances, result.skip_reasons) + return result + + +def _same_group_pairs( + tree: A3LayoutTree, included_ids: Optional[Set[str]] = None +) -> Set[Pair]: + pairs: Set[Pair] = set() + for group in tree.groups: + members = sorted( + asset_id + for asset_id in group.member_ids + if included_ids is None or asset_id in included_ids + ) + pairs.update(combinations(members, 2)) + return pairs + + +def _filtered_edges( + tree: A3LayoutTree, included_ids: Optional[Set[str]] = None +) -> Set[Pair]: + edges = _parent_child_edges(tree) + if included_ids is None: + return edges + return { + (parent_id, child_id) + for parent_id, child_id in edges + if parent_id in included_ids and child_id in included_ids + } + + +def _prf(predicted: Set[Pair], reference: Set[Pair]) -> PRF1Metrics: + true_positive = len(predicted & reference) + if not predicted and not reference: + precision = recall = f1 = 1.0 + else: + precision = true_positive / len(predicted) if predicted else 0.0 + recall = true_positive / len(reference) if reference else 0.0 + f1 = ( + 2 * precision * recall / (precision + recall) + if precision + recall + else 0.0 + ) + return PRF1Metrics( + precision=precision, + recall=recall, + f1=f1, + n_true_positive=true_positive, + n_predicted=len(predicted), + n_reference=len(reference), + ) + + +def _accuracy(matches: Sequence[bool]) -> Optional[float]: + return sum(matches) / len(matches) if matches else None + + +def evaluate_tree_prediction( + predicted: A3LayoutTree, human_oracle: A3LayoutTree +) -> TreePredictionMetrics: + """Compare a predicted T2 tree with the human oracle for the same sample. + + Both trees must cover the exact same stable asset IDs. Human nodes with + confidence ``0.5`` are excluded from primary pair, edge, type and role + metrics, then summarized separately. Empty-vs-empty relation sets score + 1/1/1 because the prediction exactly matches the absence of a relation; + a one-sided empty set scores zero under the usual zero-division rule. + """ + if predicted.source != "predicted": + raise ValueError("predicted tree must use source='predicted'") + if human_oracle.source != "human_oracle": + raise ValueError("human oracle tree must use source='human_oracle'") + + predicted_nodes = {node.asset_id: node for node in predicted.nodes} + reference_nodes = {node.asset_id: node for node in human_oracle.nodes} + if set(predicted_nodes) != set(reference_nodes): + raise ValueError( + "tree asset coverage mismatch: " + f"missing={sorted(set(reference_nodes) - set(predicted_nodes))}, " + f"extra={sorted(set(predicted_nodes) - set(reference_nodes))}" + ) + + uncertain_ids = sorted( + node.asset_id for node in human_oracle.nodes if node.confidence == 0.5 + ) + uncertain_set = set(uncertain_ids) + certain_ids = set(reference_nodes) - uncertain_set + + predicted_pairs_full = _same_group_pairs(predicted) + reference_pairs_full = _same_group_pairs(human_oracle) + predicted_pairs = _same_group_pairs(predicted, certain_ids) + reference_pairs = _same_group_pairs(human_oracle, certain_ids) + predicted_edges_full = _filtered_edges(predicted) + reference_edges_full = _filtered_edges(human_oracle) + predicted_edges = _filtered_edges(predicted, certain_ids) + reference_edges = _filtered_edges(human_oracle, certain_ids) + + certain_order = sorted(certain_ids) + type_matches = [ + predicted_nodes[asset_id].semantic_type + == reference_nodes[asset_id].semantic_type + for asset_id in certain_order + ] + role_matches = [ + predicted_nodes[asset_id].semantic_role + == reference_nodes[asset_id].semantic_role + for asset_id in certain_order + ] + uncertain_type_matches = [ + predicted_nodes[asset_id].semantic_type + == reference_nodes[asset_id].semantic_type + for asset_id in uncertain_ids + ] + uncertain_role_matches = [ + predicted_nodes[asset_id].semantic_role + == reference_nodes[asset_id].semantic_role + for asset_id in uncertain_ids + ] + uncertain_predicted_pairs = predicted_pairs_full - predicted_pairs + uncertain_reference_pairs = reference_pairs_full - reference_pairs + uncertain_predicted_edges = predicted_edges_full - predicted_edges + uncertain_reference_edges = reference_edges_full - reference_edges + + return TreePredictionMetrics( + same_group=_prf(predicted_pairs, reference_pairs), + parent_child=_prf(predicted_edges, reference_edges), + semantic_type_accuracy=_accuracy(type_matches), + semantic_role_accuracy=_accuracy(role_matches), + n_certain_nodes=len(certain_ids), + n_uncertain_nodes=len(uncertain_ids), + uncertain_node_ids=uncertain_ids, + uncertain_same_group=( + _prf(uncertain_predicted_pairs, uncertain_reference_pairs) + if uncertain_ids + else None + ), + uncertain_parent_child=( + _prf(uncertain_predicted_edges, uncertain_reference_edges) + if uncertain_ids + else None + ), + uncertain_semantic_type_accuracy=_accuracy(uncertain_type_matches), + uncertain_semantic_role_accuracy=_accuracy(uncertain_role_matches), + excluded_predicted_same_group_pairs=len(uncertain_predicted_pairs), + excluded_reference_same_group_pairs=len(uncertain_reference_pairs), + excluded_predicted_parent_child_edges=len(uncertain_predicted_edges), + excluded_reference_parent_child_edges=len(uncertain_reference_edges), + ) diff --git a/metagpt/ext/agentlayout/tools/issue_verifier.py b/metagpt/ext/agentlayout/tools/issue_verifier.py new file mode 100644 index 000000000..71a2705a4 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/issue_verifier.py @@ -0,0 +1,175 @@ +"""Deterministic B0/B1 issue verifier for the A3 L1 guard. + +Maps every closed Judge-Critic issue type to one deterministic predicate +over the two candidates' geometry (policy ``a3.issue-verifier.v1``): + +- STRICT types (overlap, clipping, out_of_bounds, text_too_small, + illegible_text, misalignment): a measurable geometric quantity must + strictly improve from B0 to B1. +- PROXY types (spacing, lockup, poor_contrast, text_on_busy_region, + hierarchy_error, tree_inconsistency): true improvement needs pixels or + semantics this verifier does not see, so the check is an honest + acted-upon proxy — every target element must actually have moved or been + resized. The proxy nature is versioned here and recorded in the evidence + string; Gate C, not this verifier, judges perceptual quality. + +Missing targets or malformed candidates never pass: improved=False with the +failure spelled out, so the B0/B1 guard falls back to B0. +""" +from __future__ import annotations + +from typing import Dict, List, Tuple + +from metagpt.ext.agentlayout.schema import Candidate, LayoutElement +from metagpt.ext.agentlayout.tools.judge_critic import CriticIssueType +from metagpt.ext.agentlayout.tools.repair_gate import IssueVerification, RepairDecision + + +A3_ISSUE_VERIFIER_VERSION = "a3.issue-verifier.v1" + +STRICT_TYPES = { + CriticIssueType.OVERLAP, + CriticIssueType.CLIPPING, + CriticIssueType.OUT_OF_BOUNDS, + CriticIssueType.TEXT_TOO_SMALL, + CriticIssueType.ILLEGIBLE_TEXT, + CriticIssueType.MISALIGNMENT, +} +PROXY_TYPES = set(CriticIssueType) - STRICT_TYPES + + +def _by_id(candidate: Candidate) -> Dict[str, LayoutElement]: + return {element.id: element for element in candidate.elements} + + +def _bbox(element: LayoutElement) -> Tuple[int, int, int, int]: + return ( + element.left, + element.top, + element.left + element.width, + element.top + element.height, + ) + + +def _intersection_area(a: Tuple[int, int, int, int], b: Tuple[int, int, int, int]) -> int: + ix = max(0, min(a[2], b[2]) - max(a[0], b[0])) + iy = max(0, min(a[3], b[3]) - max(a[1], b[1])) + return ix * iy + + +def _target_overlap_area(candidate: Candidate, targets: List[str]) -> int: + elements = _by_id(candidate) + total = 0 + for target in targets: + target_bbox = _bbox(elements[target]) + for other_id, other in elements.items(): + if other_id == target or (other_id in targets and other_id < target): + continue + total += _intersection_area(target_bbox, _bbox(other)) + return total + + +def _out_of_canvas_area( + candidate: Candidate, targets: List[str], canvas_width: int, canvas_height: int +) -> int: + elements = _by_id(candidate) + total = 0 + for target in targets: + left, top, right, bottom = _bbox(elements[target]) + full = (right - left) * (bottom - top) + inside = _intersection_area( + (left, top, right, bottom), (0, 0, canvas_width, canvas_height) + ) + total += full - inside + return total + + +def _min_target_area(candidate: Candidate, targets: List[str]) -> int: + elements = _by_id(candidate) + return min(elements[t].width * elements[t].height for t in targets) + + +def _alignment_error(candidate: Candidate, targets: List[str]) -> int: + """Distance of each target to its nearest axis guide from other elements.""" + elements = _by_id(candidate) + total = 0 + for target in targets: + element = elements[target] + guides_x: List[int] = [] + guides_y: List[int] = [] + for other_id, other in elements.items(): + if other_id == target: + continue + guides_x += [other.left, other.left + other.width // 2, other.left + other.width] + guides_y += [other.top, other.top + other.height // 2, other.top + other.height] + if not guides_x: + continue + candidates_x = [element.left, element.left + element.width // 2, element.left + element.width] + candidates_y = [element.top, element.top + element.height // 2, element.top + element.height] + total += min(abs(cx - gx) for cx in candidates_x for gx in guides_x) + total += min(abs(cy - gy) for cy in candidates_y for gy in guides_y) + return total + + +def _targets_moved(b0: Candidate, b1: Candidate, targets: List[str]) -> bool: + before, after = _by_id(b0), _by_id(b1) + return all(_bbox(before[t]) != _bbox(after[t]) for t in targets) + + +def verify_issues( + decision: RepairDecision, + b0: Candidate, + b1: Candidate, + *, + canvas_width: int, + canvas_height: int, +) -> List[IssueVerification]: + """One deterministic verdict per gated issue, in issue order.""" + b0_ids, b1_ids = set(_by_id(b0)), set(_by_id(b1)) + results: List[IssueVerification] = [] + for index, issue in enumerate(decision.issues): + targets = list(issue.target_asset_ids) + missing = sorted(set(targets) - (b0_ids & b1_ids)) + if missing: + results.append( + IssueVerification( + issue_index=index, + improved=False, + evidence=f"[{A3_ISSUE_VERIFIER_VERSION}] targets missing " + f"from candidates: {missing}", + ) + ) + continue + + kind = issue.issue_type + if kind is CriticIssueType.OVERLAP: + before = _target_overlap_area(b0, targets) + after = _target_overlap_area(b1, targets) + improved, metric = after < before, f"target overlap area {before} -> {after}" + elif kind in (CriticIssueType.CLIPPING, CriticIssueType.OUT_OF_BOUNDS): + before = _out_of_canvas_area(b0, targets, canvas_width, canvas_height) + after = _out_of_canvas_area(b1, targets, canvas_width, canvas_height) + improved, metric = after < before, f"out-of-canvas area {before} -> {after}" + elif kind in (CriticIssueType.TEXT_TOO_SMALL, CriticIssueType.ILLEGIBLE_TEXT): + before = _min_target_area(b0, targets) + after = _min_target_area(b1, targets) + improved, metric = after > before, f"min target area {before} -> {after}" + elif kind is CriticIssueType.MISALIGNMENT: + before = _alignment_error(b0, targets) + after = _alignment_error(b1, targets) + improved, metric = after < before, f"alignment error {before} -> {after}" + else: + moved = _targets_moved(b0, b1, targets) + improved = moved + metric = ( + f"acted-upon proxy for {kind.value}: all targets " + f"{'moved/resized' if moved else 'left untouched'}" + ) + results.append( + IssueVerification( + issue_index=index, + improved=improved, + evidence=f"[{A3_ISSUE_VERIFIER_VERSION}] {metric}", + ) + ) + return results diff --git a/metagpt/ext/agentlayout/tools/judge_critic.py b/metagpt/ext/agentlayout/tools/judge_critic.py new file mode 100644 index 000000000..28358d57c --- /dev/null +++ b/metagpt/ext/agentlayout/tools/judge_critic.py @@ -0,0 +1,163 @@ +"""Judge-Critic contract: element-level actionable issues for B0 only. + +Critique is deliberately decoupled from selection (new_plam.md section 4.4). +The result schema has no score, ranking or verdict fields, and every issue +must use a closed issue type from the repair gate (new_plam.md section 4.5), +so vague opinions such as "not beautiful enough" or "lacks creativity" are +structurally unrepresentable rather than merely discouraged by the prompt. +""" +from __future__ import annotations + +import hashlib +import json +from enum import Enum +from pathlib import Path +from typing import Any, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.run_manifest import sha256_file, write_json_once + + +A3_JUDGE_CRITIC_RESULT_VERSION = "a3.judge-critic-result.v1" +A3_JUDGE_CRITIC_REQUEST_VERSION = "a3.judge-critic-request.v1" +JUDGE_CRITIC_MAX_ISSUES = 2 +JUDGE_CRITIC_REQUEST_FILENAME = "judge_critic_request.json" +JUDGE_CRITIC_RESULT_FILENAME = "judge_critic_result.json" + + +class CriticIssueType(str, Enum): + """Closed vocabulary; only gate-eligible, targetable defects exist.""" + + OVERLAP = "overlap" + CLIPPING = "clipping" + OUT_OF_BOUNDS = "out_of_bounds" + MISALIGNMENT = "misalignment" + SPACING = "spacing" + LOCKUP = "lockup" + TEXT_TOO_SMALL = "text_too_small" + ILLEGIBLE_TEXT = "illegible_text" + POOR_CONTRAST = "poor_contrast" + TEXT_ON_BUSY_REGION = "text_on_busy_region" + HIERARCHY_ERROR = "hierarchy_error" + TREE_INCONSISTENCY = "tree_inconsistency" + + +class ActionableIssue(BaseModel): + """One element-level defect precise enough for one revision instruction.""" + + model_config = ConfigDict(extra="forbid") + + target_asset_ids: List[str] = Field(..., min_length=1) + issue_type: CriticIssueType + observation: str = Field(..., min_length=1) + desired_change: str = Field(..., min_length=1) + + @model_validator(mode="after") + def _unique_targets(self) -> "ActionableIssue": + if len(set(self.target_asset_ids)) != len(self.target_asset_ids): + raise ValueError("target_asset_ids contains duplicates") + return self + + +class JudgeCriticResult(BaseModel): + """At most two actionable issues; an empty list is a valid outcome.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.judge-critic-result.v1"] = A3_JUDGE_CRITIC_RESULT_VERSION + issues: List[ActionableIssue] = Field(..., max_length=JUDGE_CRITIC_MAX_ISSUES) + + +class JudgeCriticRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.judge-critic-request.v1"] = A3_JUDGE_CRITIC_REQUEST_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + b0_candidate_id: str = Field(..., min_length=1) + render_ref: str = Field(..., min_length=1) + render_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + known_asset_ids: List[str] = Field(..., min_length=1) + + +def validate_critic_targets(result: JudgeCriticResult, known_asset_ids: List[str]) -> None: + """Every issue must target assets that actually exist in the layout.""" + known = set(known_asset_ids) + for index, issue in enumerate(result.issues): + unknown = sorted(set(issue.target_asset_ids) - known) + if unknown: + raise ValueError(f"issue {index} targets unknown asset IDs: {unknown}") + + +def build_judge_critic_prompt( + b0_candidate_id: str, + known_asset_ids: List[str], + context: Optional[Dict[str, Any]] = None, +) -> str: + schema = JudgeCriticResult.model_json_schema() + return f"""Role: You are Judge-Critic in AgentLayout A3. + +You are shown ONLY the already-selected best candidate (B0) as a single +image attachment. Selection is finished; do not re-rank, re-select or +compare against other candidates. + +Task: report at most {JUDGE_CRITIC_MAX_ISSUES} element-level actionable issues. + +# Rules +- Each issue must name at least one existing target asset ID, exactly one + closed issue_type from the schema, and a desired change precise enough to + become one verifier check or one revision instruction. +- Vague opinions such as "not beautiful enough" or "lacks creativity" are + not actionable issues; omit them entirely. +- Do NOT output an overall score, grade, ranking or verdict of any kind. +- If nothing is actionable, return an empty issues list. + +# B0 candidate +{json.dumps({"candidate_id": b0_candidate_id}, ensure_ascii=False)} + +# Known asset IDs +{json.dumps(known_asset_ids, ensure_ascii=False, indent=2)} + +# Structured context +{json.dumps(context or {}, ensure_ascii=False, indent=2)} + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_judge_critic_request( + *, + b0_candidate_id: str, + render_ref: str, + known_asset_ids: List[str], + context: Optional[Dict[str, Any]] = None, +) -> JudgeCriticRequest: + prompt = build_judge_critic_prompt(b0_candidate_id, known_asset_ids, context) + return JudgeCriticRequest( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + b0_candidate_id=b0_candidate_id, + render_ref=render_ref, + render_sha256=sha256_file(Path(render_ref)), + known_asset_ids=list(known_asset_ids), + ) + + +def save_judge_critic_request(request: JudgeCriticRequest, output_dir: Path) -> None: + """Persist the exact critique request without allowing artifact replacement.""" + output_dir.mkdir(parents=True, exist_ok=False) + write_json_once( + output_dir / JUDGE_CRITIC_REQUEST_FILENAME, request.model_dump(mode="json") + ) + + +def parse_judge_critic_result(response: str) -> JudgeCriticResult: + text = (response or "").strip() + if not text.startswith("{") or "```" in text: + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + return JudgeCriticResult.model_validate(json.loads(text)) diff --git a/metagpt/ext/agentlayout/tools/judge_select.py b/metagpt/ext/agentlayout/tools/judge_select.py new file mode 100644 index 000000000..688c63f7e --- /dev/null +++ b/metagpt/ext/agentlayout/tools/judge_select.py @@ -0,0 +1,162 @@ +"""Judge-Select contract: rank exactly three R0 renders and pick B0. + +Selection is deliberately decoupled from critique (new_plam.md section 4.4). +The result schema carries a ranking only; it has no score, verdict, feedback +or issue fields, so critique output is structurally impossible rather than +merely discouraged by the prompt. +""" +from __future__ import annotations + +import hashlib +import json +from pathlib import Path +from typing import Any, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.run_manifest import sha256_file, write_json_once + + +A3_JUDGE_SELECT_RESULT_VERSION = "a3.judge-select-result.v1" +A3_JUDGE_SELECT_REQUEST_VERSION = "a3.judge-select-request.v1" +JUDGE_SELECT_CANDIDATE_COUNT = 3 +JUDGE_SELECT_REQUEST_FILENAME = "judge_select_request.json" +JUDGE_SELECT_RESULT_FILENAME = "judge_select_result.json" + + +class JudgeSelectCandidate(BaseModel): + """One fully rendered R0 candidate submitted for selection.""" + + model_config = ConfigDict(extra="forbid") + + candidate_id: str = Field(..., min_length=1) + render_ref: str = Field(..., min_length=1) + qc_passed: bool + qc_violations: List[str] = Field(default_factory=list) + + +class JudgeSelectResult(BaseModel): + """Pure ranking outcome; no scores, no verdicts, no critique fields.""" + + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.judge-select-result.v1"] = A3_JUDGE_SELECT_RESULT_VERSION + ranking: List[str] = Field( + ..., + min_length=JUDGE_SELECT_CANDIDATE_COUNT, + max_length=JUDGE_SELECT_CANDIDATE_COUNT, + ) + selected_candidate_id: str = Field(..., min_length=1) + + @model_validator(mode="after") + def _selection_consistency(self) -> "JudgeSelectResult": + if len(set(self.ranking)) != len(self.ranking): + raise ValueError("ranking contains duplicate candidate IDs") + if self.selected_candidate_id != self.ranking[0]: + raise ValueError("selected_candidate_id must equal the first ranking entry") + return self + + +class JudgeSelectRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.judge-select-request.v1"] = A3_JUDGE_SELECT_REQUEST_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + candidate_ids: List[str] = Field( + ..., + min_length=JUDGE_SELECT_CANDIDATE_COUNT, + max_length=JUDGE_SELECT_CANDIDATE_COUNT, + ) + render_refs: Dict[str, str] + render_sha256: Dict[str, str] + + +def validate_selection(result: JudgeSelectResult, candidate_ids: List[str]) -> None: + """The ranking must be an exact permutation of the submitted candidates.""" + if sorted(result.ranking) != sorted(candidate_ids): + raise ValueError( + f"ranking must be a permutation of {sorted(candidate_ids)}, " + f"got {sorted(result.ranking)}" + ) + + +def build_judge_select_prompt( + candidates: List[JudgeSelectCandidate], + context: Optional[Dict[str, Any]] = None, +) -> str: + if len(candidates) != JUDGE_SELECT_CANDIDATE_COUNT: + raise ValueError( + f"Judge-Select requires exactly {JUDGE_SELECT_CANDIDATE_COUNT} candidates, " + f"got {len(candidates)}" + ) + listing = [ + { + "candidate_id": candidate.candidate_id, + "deterministic_qc_passed": candidate.qc_passed, + "deterministic_qc_violations": candidate.qc_violations, + } + for candidate in candidates + ] + schema = JudgeSelectResult.model_json_schema() + return f"""Role: You are Judge-Select in AgentLayout A3. + +You are shown exactly three rendered R0 layout candidates as image +attachments. Attachment order matches the candidate list below. + +Task: compare the three candidates as complete layouts and rank them from +best to worst overall. Exactly one candidate is always selected; selection +is unconditional. + +# Rules +- Output ONLY the ranking and the selected candidate ID. +- Do NOT write critique, defect lists, improvement suggestions or feedback. +- Do NOT output scores, grades or verdicts of any kind. +- Judge holistically from the rendered images and the structured context. + +# Candidates (attachment order) +{json.dumps(listing, ensure_ascii=False, indent=2)} + +# Structured context +{json.dumps(context or {}, ensure_ascii=False, indent=2)} + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_judge_select_request( + candidates: List[JudgeSelectCandidate], + context: Optional[Dict[str, Any]] = None, +) -> JudgeSelectRequest: + prompt = build_judge_select_prompt(candidates, context) + render_refs = {candidate.candidate_id: candidate.render_ref for candidate in candidates} + render_hashes = { + candidate.candidate_id: sha256_file(Path(candidate.render_ref)) + for candidate in candidates + } + return JudgeSelectRequest( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + candidate_ids=[candidate.candidate_id for candidate in candidates], + render_refs=render_refs, + render_sha256=render_hashes, + ) + + +def save_judge_select_request(request: JudgeSelectRequest, output_dir: Path) -> None: + """Persist the exact selection request without allowing artifact replacement.""" + output_dir.mkdir(parents=True, exist_ok=False) + write_json_once( + output_dir / JUDGE_SELECT_REQUEST_FILENAME, request.model_dump(mode="json") + ) + + +def parse_judge_select_result(response: str) -> JudgeSelectResult: + text = (response or "").strip() + if not text.startswith("{") or "```" in text: + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + return JudgeSelectResult.model_validate(json.loads(text)) diff --git a/metagpt/ext/agentlayout/tools/layout_metrics.py b/metagpt/ext/agentlayout/tools/layout_metrics.py new file mode 100644 index 000000000..5f30ad94f --- /dev/null +++ b/metagpt/ext/agentlayout/tools/layout_metrics.py @@ -0,0 +1,187 @@ +"""Step 83 -- NEUTRAL machine measurements of a candidate layout. + +The internal judge cannot see 20-200px geometry on a downscaled render, and +LLM absolute scoring without evidence collapses into "minor adjustments +needed" boilerplate (Step 82 trace: six near-identical verdicts, 34-39). +This module computes the facts and hands them to the judge as DESCRIPTORS, +never as judgements: full centering, for example, is legitimate in ~22% of +designer layouts, so whether a measurement is a flaw depends on the design -- +that call stays with the judge. + +GT reference values below were calibrated over the 1,746 cached Crello +designer layouts with >= 2 text elements (2026-07-03). +""" +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field + +from metagpt.ext.agentlayout.schema import ( + Candidate, + DesignSpec, + LayoutElement, + UnderlayRegion, + VisualType, +) + +GT_METRICS = { + "lockup_gap_p50": 0.014, # nearest-text gap to the dominant text, / canvas h + "lockup_gap_p75": 0.051, + "lockup_gap_p90": 0.122, + "left_groups_p50": 3, # distinct left-edge alignment groups + "left_groups_p75": 4, + "center_groups_p50": 2, # distinct center-x alignment groups + "fully_centered_rate": 0.223, # designer layouts with EVERY text centered + "mean_centered_fraction": 0.342, +} + +# Two x-positions belong to the same alignment group when closer than this +# fraction of canvas width (same tolerance used in the GT calibration). +ALIGN_TOL_FRAC: float = 0.02 + +# A text element counts as horizontally centered within this tolerance. +CENTER_TOL_FRAC: float = 0.02 + +# Text pair counts as overlapping above this fraction of the smaller area. +OVERLAP_MIN_FRACTION: float = 0.05 + + +class LayoutMetrics(BaseModel): + """Neutral geometry descriptors for one candidate.""" + + n_texts: int + centered_count: int + centered_fraction: Optional[float] = None + n_left_groups: Optional[int] = None + n_center_groups: Optional[int] = None + lockup_gap_frac: Optional[float] = Field( + default=None, + description="Edge-to-edge vertical gap between the dominant text and its " + "nearest text, as a fraction of canvas height. None with < 2 texts.", + ) + n_overlap_pairs: int = 0 + panel_utilization: Optional[float] = Field( + default=None, + description="Approximate share of total panel area covered by text " + "(per-text intersections summed, capped at 1.0). None without panels.", + ) + + +def _text_ids(spec: DesignSpec) -> set: + """Text-like elements: plain text OR pre-rendered text bitmaps (Step 80).""" + return { + el.id + for el in spec.elements + if el.visual_type == VisualType.TEXT + or (el.asset_ref or "").endswith("_text.png") + } + + +def _cluster_count(values: List[float], tol: float) -> int: + values = sorted(values) + groups = 0 + last = None + for v in values: + if last is None or v - last > tol: + groups += 1 + last = v + return groups + + +def _overlap_fraction(a: LayoutElement, b: LayoutElement) -> float: + ix = max(0, min(a.left + a.width, b.left + b.width) - max(a.left, b.left)) + iy = max(0, min(a.top + a.height, b.top + b.height) - max(a.top, b.top)) + smaller = max(1, min(a.width * a.height, b.width * b.height)) + return ix * iy / smaller + + +def measure_layout( + candidate: Candidate, + spec: DesignSpec, + regions: Optional[List[UnderlayRegion]] = None, +) -> LayoutMetrics: + """Compute the neutral descriptors for ``candidate``.""" + cw = max(1, spec.canvas.width) + ch = max(1, spec.canvas.height) + ids = _text_ids(spec) + texts = [el for el in candidate.elements if el.id in ids] + + metrics = LayoutMetrics(n_texts=len(texts), centered_count=0) + if not texts: + return metrics + + mid = cw / 2 + centered = [t for t in texts if abs((t.left + t.width / 2) - mid) <= CENTER_TOL_FRAC * cw] + metrics.centered_count = len(centered) + metrics.centered_fraction = round(len(centered) / len(texts), 3) + metrics.n_left_groups = _cluster_count([float(t.left) for t in texts], ALIGN_TOL_FRAC * cw) + metrics.n_center_groups = _cluster_count( + [t.left + t.width / 2 for t in texts], ALIGN_TOL_FRAC * cw + ) + + if len(texts) >= 2: + title = max(texts, key=lambda t: t.width * t.height) + gaps = [] + for o in texts: + if o is title: + continue + gap = max(0.0, max(title.top, o.top) + - min(title.top + title.height, o.top + o.height)) + gaps.append(gap / ch) + metrics.lockup_gap_frac = round(min(gaps), 4) + + metrics.n_overlap_pairs = sum( + 1 + for i, a in enumerate(texts) + for b in texts[i + 1:] + if _overlap_fraction(a, b) > OVERLAP_MIN_FRACTION + ) + + if regions: + panel_area = sum( + max(0, (r.bbox[2] - r.bbox[0])) * max(0, (r.bbox[3] - r.bbox[1])) + for r in regions + ) + if panel_area > 0: + inter = 0.0 + for t in texts: + for r in regions: + ix = max(0, min(t.left + t.width, r.bbox[2]) - max(t.left, r.bbox[0])) + iy = max(0, min(t.top + t.height, r.bbox[3]) - max(t.top, r.bbox[1])) + inter += ix * iy + metrics.panel_utilization = round(min(1.0, inter / panel_area), 3) + + return metrics + + +def format_metrics_block(metrics: LayoutMetrics) -> str: + """Render the descriptors + GT reference values as NEUTRAL prompt text.""" + if metrics.n_texts == 0: + return "(no text elements to measure)" + g = GT_METRICS + lines = [ + f"- {metrics.centered_count}/{metrics.n_texts} text elements horizontally " + f"centered (reference: {g['fully_centered_rate']:.0%} of designer layouts " + f"centre EVERY text -- full centering is a legitimate style)", + f"- alignment: {metrics.n_left_groups} left-edge group(s), " + f"{metrics.n_center_groups} center-x group(s) " + f"(designer medians: {g['left_groups_p50']} left / {g['center_groups_p50']} center)", + ] + if metrics.lockup_gap_frac is not None: + lines.append( + f"- dominant-text lockup: nearest text is {metrics.lockup_gap_frac:.3f} " + f"of canvas height away (designer p50={g['lockup_gap_p50']:.3f}, " + f"p90={g['lockup_gap_p90']:.3f})" + ) + lines.append(f"- overlapping text pairs: {metrics.n_overlap_pairs}") + if metrics.panel_utilization is not None: + lines.append( + f"- baked-panel utilization: {metrics.panel_utilization:.0%} of panel " + f"area covered by text" + ) + lines.append( + "These are NEUTRAL measurements, not verdicts: decide per measurement " + "whether it fits THIS design's style and background." + ) + return "\n".join(lines) diff --git a/metagpt/ext/agentlayout/tools/mapper_contract.py b/metagpt/ext/agentlayout/tools/mapper_contract.py new file mode 100644 index 000000000..b62ba4f8b --- /dev/null +++ b/metagpt/ext/agentlayout/tools/mapper_contract.py @@ -0,0 +1,147 @@ +"""A3 Coordinate Mapper contract: one concept to one pixel candidate. + +Pure schemas, prompt builder, parser and validators; the LLM wiring lives in +``actions/generate_layout_a3.py``. The prompt exposes only normalized bitmap +aspect ratios — no original or normalized pixel sizes can leak (R3 rule). +The same contract carries the single L1 revision call via an optional +revision instruction plus the B0 elements as the editing base. +""" +from __future__ import annotations + +import hashlib +import json +from typing import Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field + +from metagpt.ext.agentlayout.layout_tree_v3 import TreeCondition, condition_prompt_payload +from metagpt.ext.agentlayout.schema import Candidate, CompositionConcept +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import R3AssetManifest + + +A3_MAPPER_REQUEST_VERSION = "a3.mapper-request.v1" + + +class A3MapperRequest(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["a3.mapper-request.v1"] = A3_MAPPER_REQUEST_VERSION + prompt: str + prompt_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + tree_arm: str + mode: Literal["r0", "revision"] + + +def validate_candidate_coverage(candidate: Candidate, asset_ids: List[str]) -> None: + expected = set(asset_ids) + actual = [element.id for element in candidate.elements] + if len(actual) != len(set(actual)): + duplicates = sorted({asset_id for asset_id in actual if actual.count(asset_id) > 1}) + raise ValueError( + f"candidate places at least one asset more than once: {duplicates}; " + "visually identical assets are still distinct asset IDs" + ) + if set(actual) != expected: + raise ValueError( + f"candidate coverage mismatch: missing={sorted(expected - set(actual))}, " + f"extra={sorted(set(actual) - expected)}" + ) + + +def _prompt_assets(manifest: R3AssetManifest) -> List[Dict]: + return [ + { + "asset_id": asset.asset_id, + "media_type": asset.media_type, + "content": asset.content, + "bitmap_aspect_ratio": round(asset.bitmap_aspect_ratio, 6), + } + for asset in manifest.foreground_assets() + ] + + +def build_mapper_prompt( + *, + concept: CompositionConcept, + condition: TreeCondition, + manifest: R3AssetManifest, + revision_instruction: Optional[str] = None, + base_elements: Optional[List[Dict]] = None, +) -> str: + schema = Candidate.model_json_schema() + revision_block = "" + if revision_instruction is not None: + revision_block = f""" +# Revision mode +You are revising an already-selected layout. Start from the base elements +below and apply ONLY the requested change. + +## Base elements (B0) +{json.dumps(base_elements or [], ensure_ascii=False, indent=2)} + +## Revision instruction +{revision_instruction} +""" + return f"""Role: You are the Coordinate Mapper in AgentLayout A3. + +The attached image is the base background canvas. Translate the composition +concept into exact pixel coordinates for every foreground asset. + +# Canvas (top-left origin) +{manifest.canvas_width}x{manifest.canvas_height} + +# Composition concept +{json.dumps(concept.model_dump(mode="json"), ensure_ascii=False, indent=2)} + +# Foreground assets +{json.dumps(_prompt_assets(manifest), ensure_ascii=False, indent=2)} + +# Structure +{json.dumps(condition_prompt_payload(condition), ensure_ascii=False, indent=2)} +{revision_block} +# Rules +- Output one bbox per asset ID, each asset exactly once; never invent IDs. +- Visually similar or identical assets are still DISTINCT asset IDs: place + every listed asset_id exactly once and never repeat an ID. +- Choose each element's size from the design context and the canvas; keep + each bitmap's aspect ratio (width/height must match bitmap_aspect_ratio). +- Keep every bbox fully inside the canvas. +- Assign z_index so overlapping elements stack intentionally. +- candidate_id must be "candidate". + +# Output JSON Schema +{json.dumps(schema, ensure_ascii=False, indent=2)} + +Output one JSON object only, without markdown fences.""" + + +def build_mapper_request( + *, + concept: CompositionConcept, + condition: TreeCondition, + manifest: R3AssetManifest, + revision_instruction: Optional[str] = None, + base_elements: Optional[List[Dict]] = None, +) -> A3MapperRequest: + prompt = build_mapper_prompt( + concept=concept, + condition=condition, + manifest=manifest, + revision_instruction=revision_instruction, + base_elements=base_elements, + ) + return A3MapperRequest( + prompt=prompt, + prompt_sha256=hashlib.sha256(prompt.encode("utf-8")).hexdigest(), + tree_arm=condition.arm, + mode="revision" if revision_instruction is not None else "r0", + ) + + +def parse_candidate(response: str) -> Candidate: + text = (response or "").strip() + if not text.startswith("{") or "```" in text: + start, end = text.find("{"), text.rfind("}") + if start >= 0 and end > start: + text = text[start : end + 1] + return Candidate.model_validate(json.loads(text)) diff --git a/metagpt/ext/agentlayout/tools/pfull_preprocessor.py b/metagpt/ext/agentlayout/tools/pfull_preprocessor.py new file mode 100644 index 000000000..851f0bbd0 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/pfull_preprocessor.py @@ -0,0 +1,323 @@ +"""Leakage-resistant P-Full input extraction for AgentLayout A3. + +The cached Crello ``meta.json`` contains designer geometry and legacy labels +derived from that geometry. This module treats those fields as tainted: it +never reads them and never composites layers. Every non-background element +remains a separately addressable asset with a stable id. +""" +from __future__ import annotations + +import json +import mimetypes +import os +import shutil +from pathlib import Path +from typing import Dict, List, Literal, Optional + +from PIL import Image +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.run_manifest import sha256_file, write_json_once + + +PFULL_SCHEMA_VERSION = "a3.pfull-asset-manifest.v1" +PFULL_POLICY_VERSION = "pfull.crello.pixel-only-background.v1" +ASSET_MANIFEST_FILENAME = "asset_manifest.json" +ASSET_DIRNAME = "assets" +BACKGROUND_MIN_OPAQUE_FRACTION = 0.98 + +# These keys are intentionally named here so tests and reviewers can verify +# that no output contract accidentally grows a designer-geometry field. +FORBIDDEN_GT_KEYS = frozenset( + { + "left", + "top", + "width", + "height", + "bbox", + "x", + "y", + "font_size", + "area_ratio", + "underlay_regions", + } +) + + +class PFullInputError(ValueError): + """The source sample cannot be converted without dropping an element.""" + + +# A3-owned text-bitmap sidecar: adds rendered text bitmaps to a legacy cache +# directory WITHOUT mutating meta.json (the legacy cache stays byte-identical +# for old experiments). Bitmaps are stored at the dataset's raw render size — +# unlike the legacy step80 snapshot they are never resized to GT geometry. +TEXT_BITMAP_SIDECAR_FILENAME = "a3_text_bitmaps.json" +A3_TEXT_BITMAP_SIDECAR_VERSION = "a3.text-bitmap-sidecar.v1" + + +def load_text_bitmap_sidecar(sample_dir: Path) -> Dict[int, str]: + """Resolve the optional sidecar to absolute bitmap paths by source index.""" + path = sample_dir / TEXT_BITMAP_SIDECAR_FILENAME + if not path.exists(): + return {} + data = json.loads(path.read_text(encoding="utf-8")) + version = data.get("version") + if version != A3_TEXT_BITMAP_SIDECAR_VERSION: + raise PFullInputError(f"unsupported text-bitmap sidecar version: {version!r}") + return { + int(index): str((sample_dir / ref).resolve()) + for index, ref in (data.get("bitmaps") or {}).items() + } + + +class PFullAsset(BaseModel): + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + source_index: int = Field(..., ge=0) + role: Literal["background", "placeable"] + media_type: Literal["raster", "text"] + semantic_hint: Literal["base_background", "image", "text", "text_bitmap"] + content: Optional[str] = None + asset_ref: Optional[str] = None + sha256: Optional[str] = Field(default=None, pattern=r"^[0-9a-f]{64}$") + mime_type: Optional[str] = None + native_width: Optional[int] = Field(default=None, ge=1) + native_height: Optional[int] = Field(default=None, ge=1) + classification_reason: str = Field(..., min_length=1) + + @model_validator(mode="after") + def _payload_is_complete(self) -> "PFullAsset": + if self.media_type == "raster" and not self.asset_ref: + raise ValueError("raster assets require asset_ref") + if self.media_type == "text" and not (self.content or self.asset_ref): + raise ValueError("text assets require content or asset_ref") + return self + + +class PFullAssetManifest(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.pfull-asset-manifest.v1"] = PFULL_SCHEMA_VERSION + policy_version: Literal["pfull.crello.pixel-only-background.v1"] = ( + PFULL_POLICY_VERSION + ) + sample_id: str = Field(..., min_length=1) + title: str = "" + canvas_width: int = Field(..., ge=1) + canvas_height: int = Field(..., ge=1) + background_asset_id: Optional[str] = None + assets: List[PFullAsset] + source_meta_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + + @model_validator(mode="after") + def _coverage_and_background(self) -> "PFullAssetManifest": + ids = [asset.asset_id for asset in self.assets] + indices = [asset.source_index for asset in self.assets] + if len(ids) != len(set(ids)) or len(indices) != len(set(indices)): + raise ValueError("asset ids and source indices must be unique") + backgrounds = [asset for asset in self.assets if asset.role == "background"] + if len(backgrounds) > 1: + raise ValueError("P-Full permits at most one base background") + actual = backgrounds[0].asset_id if backgrounds else None + if self.background_asset_id != actual: + raise ValueError("background_asset_id disagrees with asset roles") + return self + + def foreground_assets(self) -> List[PFullAsset]: + return [asset for asset in self.assets if asset.role == "placeable"] + + +class PFullPreparedInput(BaseModel): + """Stable-ID boundary consumed by the future A3 Analyst/pipeline.""" + + model_config = ConfigDict(extra="forbid") + + user_brief: str + canvas_width: int + canvas_height: int + background_asset_ref: Optional[str] = None + foreground_assets: List[PFullAsset] + + +def _opaque_fraction(image: Image.Image) -> float: + rgba = image.convert("RGBA") + alpha = rgba.getchannel("A") + histogram = alpha.histogram() + opaque = sum(histogram[250:]) + return opaque / max(1, rgba.width * rgba.height) + + +def _is_pixel_only_background(image: Image.Image, canvas_width: int, canvas_height: int) -> bool: + """Conservative background rule using asset pixels, never GT placement.""" + return ( + image.size == (canvas_width, canvas_height) + and _opaque_fraction(image) >= BACKGROUND_MIN_OPAQUE_FRACTION + ) + + +def _copy_once(source: Path, destination: Path) -> None: + destination.parent.mkdir(parents=True, exist_ok=True) + with source.open("rb") as src, destination.open("xb") as dst: + shutil.copyfileobj(src, dst) + dst.flush() + os.fsync(dst.fileno()) + + +def _asset_extension(path: Path) -> str: + suffix = path.suffix.lower() + return suffix if suffix in {".png", ".jpg", ".jpeg", ".webp"} else ".png" + + +def _load_raster_descriptor(descriptor: Dict, index: int) -> tuple[Path, Image.Image]: + ref = descriptor.get("asset_ref") + if not ref: + raise PFullInputError(f"raster element {index} has no asset_ref") + path = Path(ref) + if not path.is_file(): + raise PFullInputError(f"raster element {index} is missing: {path}") + try: + image = Image.open(path).convert("RGBA") + image.load() + except (OSError, IOError) as error: + raise PFullInputError(f"raster element {index} is unreadable: {path}") from error + return path, image + + +def prepare_pfull_sample(sample_dir: Path, output_dir: Path) -> PFullAssetManifest: + """Snapshot one cached sample into a new, non-overwritable P-Full directory.""" + meta_path = sample_dir / "meta.json" + meta = json.loads(meta_path.read_text(encoding="utf-8")) + canvas_width = int(meta["canvas_width"]) + canvas_height = int(meta["canvas_height"]) + descriptors = meta.get("elements") + if not isinstance(descriptors, list) or not descriptors: + raise PFullInputError("meta.json must contain at least one element") + + # Inspect all raster pixels before choosing the single background. Legacy + # kind/classifier labels are deliberately ignored because full_canvas and + # area_ratio were derived from designer bbox geometry. + # Sidecar bitmaps take precedence for text: they are A3-owned raw-size + # renders, while a legacy asset_ref may carry step80's GT-size resize. + sidecar = load_text_bitmap_sidecar(sample_dir) + + raster_inputs: Dict[int, tuple[Path, Image.Image]] = {} + background_candidates: List[int] = [] + for position, descriptor in enumerate(descriptors): + source_index = int(descriptor.get("idx", position)) + is_text = descriptor.get("type_code") == 1 or descriptor.get("kind") == "text" + if is_text and source_index in sidecar: + descriptor = {**descriptor, "asset_ref": sidecar[source_index]} + if is_text and not descriptor.get("asset_ref"): + continue + if descriptor.get("asset_ref"): + path, image = _load_raster_descriptor(descriptor, source_index) + raster_inputs[source_index] = (path, image) + if not is_text and _is_pixel_only_background(image, canvas_width, canvas_height): + background_candidates.append(source_index) + elif not is_text: + raise PFullInputError( + f"non-text element {source_index} has neither a raster asset nor text payload" + ) + + background_index = min(background_candidates) if background_candidates else None + + output_dir.mkdir(parents=True, exist_ok=False) + asset_dir = output_dir / ASSET_DIRNAME + asset_dir.mkdir() + assets: List[PFullAsset] = [] + try: + for position, descriptor in enumerate(descriptors): + source_index = int(descriptor.get("idx", position)) + asset_id = f"asset_{source_index:04d}" + is_text = descriptor.get("type_code") == 1 or descriptor.get("kind") == "text" + content = (descriptor.get("content") or "").strip() or None + raster = raster_inputs.get(source_index) + stored_ref: Optional[str] = None + digest: Optional[str] = None + mime: Optional[str] = None + native_width: Optional[int] = None + native_height: Optional[int] = None + if raster is not None: + source_path, image = raster + destination = asset_dir / f"{asset_id}{_asset_extension(source_path)}" + _copy_once(source_path, destination) + stored_ref = str(destination.resolve()) + digest = sha256_file(destination) + mime = mimetypes.guess_type(destination.name)[0] or "image/png" + native_width, native_height = image.size + + is_background = not is_text and source_index == background_index + if is_text: + semantic_hint = "text_bitmap" if raster is not None else "text" + reason = "Crello text type; content retained; bitmap remains separate when available" + media_type = "text" + elif is_background: + semantic_hint = "base_background" + reason = ( + "pixel-only rule: native raster equals canvas dimensions and is >=98% opaque; " + "lowest source index wins" + ) + media_type = "raster" + else: + semantic_hint = "image" + reason = "kept placeable; legacy geometry-derived kind/classifier ignored" + media_type = "raster" + + assets.append( + PFullAsset( + asset_id=asset_id, + source_index=source_index, + role="background" if is_background else "placeable", + media_type=media_type, + semantic_hint=semantic_hint, + content=content, + asset_ref=stored_ref, + sha256=digest, + mime_type=mime, + native_width=native_width, + native_height=native_height, + classification_reason=reason, + ) + ) + + assets.sort(key=lambda asset: asset.source_index) + manifest = PFullAssetManifest( + sample_id=str(meta["id"]), + title=str(meta.get("title", "")), + canvas_width=canvas_width, + canvas_height=canvas_height, + background_asset_id=( + f"asset_{background_index:04d}" if background_index is not None else None + ), + assets=assets, + source_meta_sha256=sha256_file(meta_path), + ) + write_json_once( + output_dir / ASSET_MANIFEST_FILENAME, manifest.model_dump(mode="json") + ) + return manifest + except Exception: + # Preserve partial output and consume the directory name, matching the + # A3 run-store forensic/non-overwrite policy. + raise + + +def build_prepared_input(manifest: PFullAssetManifest) -> PFullPreparedInput: + background = next( + (asset.asset_ref for asset in manifest.assets if asset.role == "background"), + None, + ) + brief = ( + f"Create a {manifest.canvas_width}x{manifest.canvas_height} foreground layout " + f"for the theme '{manifest.title}'. Use every provided placeable foreground " + "asset exactly once. The theme is context, not visible copy." + ) + return PFullPreparedInput( + user_brief=brief, + canvas_width=manifest.canvas_width, + canvas_height=manifest.canvas_height, + background_asset_ref=background, + foreground_assets=manifest.foreground_assets(), + ) diff --git a/metagpt/ext/agentlayout/tools/quality_checker.py b/metagpt/ext/agentlayout/tools/quality_checker.py index 8c85efdb0..67be64d93 100644 --- a/metagpt/ext/agentlayout/tools/quality_checker.py +++ b/metagpt/ext/agentlayout/tools/quality_checker.py @@ -190,11 +190,19 @@ class Violation(BaseModel): class CheckResult(BaseModel): - """Aggregated outcome for one candidate.""" + """Aggregated outcome for one candidate. + + ``warnings`` ("先想再畫" refactor, 2026-06-25) carries soft placement + advisories that no longer block acceptance: safe-zone overlap and + text-on-high-saliency. They are recorded for analytics and feedback but do + NOT affect ``passed`` -- the art director may deliberately place text off + the calm bands, and rejecting that would defeat the whole refactor. + """ candidate_id: str passed: bool violations: List[Violation] = Field(default_factory=list) + warnings: List[Violation] = Field(default_factory=list) # ============================================================ @@ -220,6 +228,7 @@ def check_candidate( default and silently skip the new check. """ violations: List[Violation] = [] + warnings: List[Violation] = [] violations.extend(_check_completeness(candidate, spec)) violations.extend(_check_boundary(candidate, spec)) violations.extend(_check_hard_constraints(candidate, spec)) @@ -231,12 +240,14 @@ def check_candidate( violations.extend(_check_decorative_image_oversized(candidate, spec)) violations.extend(_check_title_undersized(candidate, spec)) violations.extend(_check_title_peripheral(candidate, spec)) - # Step 43 (2026-06-10): primary content must overlap a safe_zone. - violations.extend(_check_primary_in_safe_zone(candidate, spec, bg)) - # F2 (Step 72, 2026-06-16): text bbox mean saliency on background must - # stay below TEXT_ON_HIGH_SALIENCY_TAU. Graceful skip when bg has no - # saliency_map (stub path / pre-F2 caller). - violations.extend(_check_text_on_high_saliency(candidate, spec, bg)) + # "先想再畫" refactor (2026-06-25): safe-zone overlap and text-on-high- + # saliency are now WARNINGS, not hard violations. The art director (Compose + # Concept) may deliberately place text off the calm bands or on a hero + # region, and the CoordinateMapper is told safe zones are a preference. + # Keeping these as hard rejections would kill exactly the bold, asymmetric, + # designer-style compositions this refactor aims to produce. + warnings.extend(_check_primary_in_safe_zone(candidate, spec, bg)) + warnings.extend(_check_text_on_high_saliency(candidate, spec, bg)) # Step 57 (2026-06-11): coverage / dead-space degenerate-layout guardrails. violations.extend(_check_canvas_coverage(candidate, spec)) # Step 59 (2026-06-11): text on busy background texture (Rea deficit). @@ -251,6 +262,7 @@ def check_candidate( candidate_id=candidate.candidate_id, passed=not violations, violations=violations, + warnings=warnings, ) diff --git a/metagpt/ext/agentlayout/tools/renderer.py b/metagpt/ext/agentlayout/tools/renderer.py index c496ce48e..ad95cd366 100644 --- a/metagpt/ext/agentlayout/tools/renderer.py +++ b/metagpt/ext/agentlayout/tools/renderer.py @@ -252,6 +252,25 @@ def _paint_image_element( ) paste_left, paste_top = layout_el.left, layout_el.top target_w, target_h = layout_el.width, layout_el.height + from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + contain_size, + is_r3_text_bitmap, + ) + + if is_r3_text_bitmap(spec_el.asset_ref): + # R3: Mapper predicts the final bbox, but the typography bitmap must + # never be stretched to that bbox independently on x/y. Use one scale + # factor and center the contained bitmap. Unlike generic decorative + # images, normalized text may upscale beyond MAX_UPSCALE because its + # fixed 512px source size is a protocol normalization, not natural size. + draw_w, draw_h = contain_size(img.size, (target_w, target_h)) + img = img.resize((draw_w, draw_h), Image.LANCZOS) + paste_left += (target_w - draw_w) // 2 + paste_top += (target_h - draw_h) // 2 + if layout_el.angle: + img = img.rotate(-layout_el.angle, expand=True, resample=Image.BICUBIC) + canvas.paste(img, (paste_left, paste_top), img) + return if img.size != (target_w, target_h): # Step 47 (2026-06-10): cap upscaling at MAX_UPSCALE x the asset's # native resolution. A 68px heart stretched to ~400px renders as a @@ -417,11 +436,13 @@ def _paint_rotated_text( pil_align = align if align in ("center", "right") else "left" pad = 4 bbox = _MEASURE_DRAW.multiline_textbbox((0, 0), text, font=font, align=pil_align) - layer = Image.new( - "RGBA", - (bbox[2] - bbox[0] + 2 * pad, bbox[3] - bbox[1] + 2 * pad), - (0, 0, 0, 0), - ) + # Pillow's multiline_textbbox can return float coords (esp. for the default + # bitmap font fallback), and Image.new requires an int size tuple -- without + # the int() coercion this raises "TypeError: integer argument expected, got + # float" on some samples. max(1, ...) guards against a zero-size layer. + layer_w = max(1, int(round(bbox[2] - bbox[0] + 2 * pad))) + layer_h = max(1, int(round(bbox[3] - bbox[1] + 2 * pad))) + layer = Image.new("RGBA", (layer_w, layer_h), (0, 0, 0, 0)) ImageDraw.Draw(layer).multiline_text( (pad - bbox[0], pad - bbox[1]), text, fill=color, font=font, align=pil_align ) diff --git a/metagpt/ext/agentlayout/tools/repair_gate.py b/metagpt/ext/agentlayout/tools/repair_gate.py new file mode 100644 index 000000000..b5a2a1b74 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/repair_gate.py @@ -0,0 +1,209 @@ +"""A3 L1-Gated single-revision policy: gate, routing and the B0/B1 guard. + +Implements new_plam.md sections 4.5-4.7 as versioned, deterministic +contracts: + +- the repair gate turns Judge-Critic output into at most ONE routed, + targeted revision (or an explicit no-issue outcome); +- the routing table maps every closed critic issue type to exactly one + revision route (Coordinate Mapper alone, or Composition Director followed + by the Mapper); semantic-role / tree-inference doubts are not routable at + runtime by construction, because they are not representable critic issues; +- the B0/B1 guard keeps B1 only when the original issues verifiably + improved, no new hard violation appeared and completeness did not drop; + anything else falls back to B0. + +There is deliberately no multi-round state here: one decision, one optional +revision record, one guard verdict. +""" +from __future__ import annotations + +from enum import Enum +from typing import Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + CriticIssueType, + JudgeCriticResult, + validate_critic_targets, +) + + +A3_REPAIR_GATE_VERSION = "a3.l1-repair-gate.v1" +A3_B0B1_GUARD_VERSION = "a3.b0b1-guard.v1" + + +class RepairRoute(str, Enum): + COORDINATE_MAPPER = "coordinate_mapper" + DIRECTOR_THEN_MAPPER = "director_then_mapper" + + +# new_plam.md section 4.6: bbox/spacing/alignment/scale/contrast issues go to +# the Coordinate Mapper; group placement and global hierarchy issues re-enter +# through the Composition Director first. Layout-vs-tree mismatches are +# placement realization problems (the frozen tree itself is never revised). +ISSUE_ROUTING: Dict[CriticIssueType, RepairRoute] = { + CriticIssueType.OVERLAP: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.CLIPPING: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.OUT_OF_BOUNDS: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.MISALIGNMENT: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.SPACING: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.LOCKUP: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.TEXT_TOO_SMALL: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.ILLEGIBLE_TEXT: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.POOR_CONTRAST: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.TEXT_ON_BUSY_REGION: RepairRoute.COORDINATE_MAPPER, + CriticIssueType.HIERARCHY_ERROR: RepairRoute.DIRECTOR_THEN_MAPPER, + CriticIssueType.TREE_INCONSISTENCY: RepairRoute.DIRECTOR_THEN_MAPPER, +} + + +class RepairDecision(BaseModel): + """Versioned gate outcome: either no issue, or exactly one routed revision.""" + + model_config = ConfigDict(extra="forbid") + + gate_version: Literal["a3.l1-repair-gate.v1"] = A3_REPAIR_GATE_VERSION + outcome: Literal["no_actionable_issue", "one_targeted_repair"] + issues: List[ActionableIssue] = Field(default_factory=list) + route: Optional[RepairRoute] = None + keep_asset_ids: List[str] = Field(default_factory=list) + revision_instruction: Optional[str] = None + + @model_validator(mode="after") + def _outcome_consistency(self) -> "RepairDecision": + if self.outcome == "no_actionable_issue": + if self.issues or self.route is not None or self.revision_instruction: + raise ValueError("a no-issue decision cannot carry issues or a route") + else: + if not self.issues: + raise ValueError("a targeted revision requires at least one issue") + if self.route is None or not self.revision_instruction: + raise ValueError("a targeted revision requires a route and an instruction") + return self + + +def build_revision_instruction(issues: List[ActionableIssue], keep_asset_ids: List[str]) -> str: + lines = [ + "Apply exactly ONE revision pass to the selected layout (B0).", + "Address only the issues below; everything else must stay as-is.", + "", + ] + for index, issue in enumerate(issues, start=1): + lines.append( + f"Issue {index} [{issue.issue_type.value}] targets: " + + ", ".join(issue.target_asset_ids) + ) + lines.append(f" Observation: {issue.observation}") + lines.append(f" Desired change: {issue.desired_change}") + lines.append("") + if keep_asset_ids: + lines.append("KEEP unchanged (position, scale, z-order): " + ", ".join(keep_asset_ids)) + lines.append( + "Do not add, remove or re-interpret assets; semantic roles and the " + "Layout Tree are frozen." + ) + return "\n".join(lines) + + +def evaluate_repair_gate( + critic: JudgeCriticResult, known_asset_ids: List[str] +) -> RepairDecision: + """Turn a critic result into a versioned single-revision decision.""" + validate_critic_targets(critic, known_asset_ids) + if not critic.issues: + return RepairDecision(outcome="no_actionable_issue") + targets = { + asset_id for issue in critic.issues for asset_id in issue.target_asset_ids + } + keep = sorted(set(known_asset_ids) - targets) + route = ( + RepairRoute.DIRECTOR_THEN_MAPPER + if any( + ISSUE_ROUTING[issue.issue_type] is RepairRoute.DIRECTOR_THEN_MAPPER + for issue in critic.issues + ) + else RepairRoute.COORDINATE_MAPPER + ) + return RepairDecision( + outcome="one_targeted_repair", + issues=list(critic.issues), + route=route, + keep_asset_ids=keep, + revision_instruction=build_revision_instruction(list(critic.issues), keep), + ) + + +class IssueVerification(BaseModel): + """Deterministic verdict for one gated issue after the revision.""" + + model_config = ConfigDict(extra="forbid") + + issue_index: int = Field(..., ge=0) + improved: bool + evidence: str = Field(..., min_length=1) + + +class DeterministicGuardCheck(BaseModel): + model_config = ConfigDict(extra="forbid") + + passed: bool + reasons: List[str] = Field(default_factory=list) + + +def check_b1_against_b0( + *, + verifications: List[IssueVerification], + issue_count: int, + b0_violations: List[str], + b1_violations: List[str], + b0_completeness: Optional[float] = None, + b1_completeness: Optional[float] = None, +) -> DeterministicGuardCheck: + """new_plam.md section 4.7 conditions 1-3; any doubt keeps B0.""" + reasons: List[str] = [] + verified_indexes = {verification.issue_index for verification in verifications} + if verified_indexes != set(range(issue_count)): + reasons.append( + f"verifier_coverage_mismatch: expected issues 0..{issue_count - 1}, " + f"verified {sorted(verified_indexes)}" + ) + unimproved = sorted( + verification.issue_index + for verification in verifications + if not verification.improved + ) + if unimproved: + reasons.append(f"issues_not_improved: {unimproved}") + new_violations = sorted(set(b1_violations) - set(b0_violations)) + if new_violations: + reasons.append(f"new_hard_violations: {new_violations}") + if (b0_completeness is None) != (b1_completeness is None): + reasons.append("completeness_signal_missing") + elif b0_completeness is not None and b1_completeness < b0_completeness: + reasons.append( + f"completeness_decreased: {b0_completeness} -> {b1_completeness}" + ) + return DeterministicGuardCheck(passed=not reasons, reasons=reasons) + + +def resolve_winner( + check: DeterministicGuardCheck, + pairwise_winner: Optional[Literal["B0", "B1"]] = None, +) -> Literal["B0", "B1"]: + """B1 needs a fully passing deterministic check; pairwise can only demote.""" + if not check.passed: + return "B0" + return pairwise_winner or "B1" + + +class B0B1GuardResult(BaseModel): + model_config = ConfigDict(extra="forbid") + + policy_version: Literal["a3.b0b1-guard.v1"] = A3_B0B1_GUARD_VERSION + deterministic_passed: bool + reasons: List[str] = Field(default_factory=list) + pairwise_used: bool = False + winner: Literal["B0", "B1"] diff --git a/metagpt/ext/agentlayout/tools/text_bitmap_normalizer.py b/metagpt/ext/agentlayout/tools/text_bitmap_normalizer.py new file mode 100644 index 000000000..375147c04 --- /dev/null +++ b/metagpt/ext/agentlayout/tools/text_bitmap_normalizer.py @@ -0,0 +1,228 @@ +"""R3 text-bitmap normalization and runtime asset contract for AgentLayout A3.""" +from __future__ import annotations + +from io import BytesIO +from pathlib import Path +from typing import List, Literal, Optional, Tuple + +from PIL import Image +from pydantic import BaseModel, ConfigDict, Field, model_validator + +from metagpt.ext.agentlayout.run_manifest import sha256_bytes, sha256_file, write_json_once +from metagpt.ext.agentlayout.tools.pfull_preprocessor import PFullAssetManifest + + +R3_SCHEMA_VERSION = "a3.r3-asset-manifest.v1" +R3_NORMALIZATION_VERSION = "r3.alpha-tight-long-edge.v1" +R3_MANIFEST_FILENAME = "r3_asset_manifest.json" +R3_ASSET_DIRNAME = "assets" +R3_TEXT_SUFFIX = "_r3_text.png" + + +class R3NormalizationError(ValueError): + """A text asset cannot be normalized without violating the R3 contract.""" + + +class R3NormalizationConfig(BaseModel): + model_config = ConfigDict(extra="forbid") + + version: Literal["r3.alpha-tight-long-edge.v1"] = R3_NORMALIZATION_VERSION + long_edge_px: int = Field(default=512, ge=3) + padding_px: int = Field(default=8, ge=0) + alpha_threshold: int = Field(default=1, ge=0, le=254) + resize_filter: Literal["lanczos"] = "lanczos" + + @model_validator(mode="after") + def _content_area_exists(self) -> "R3NormalizationConfig": + if self.long_edge_px <= 2 * self.padding_px: + raise ValueError("long_edge_px must exceed twice padding_px") + return self + + +class R3Asset(BaseModel): + """Leakage-safe runtime asset; original text dimensions are intentionally absent.""" + + model_config = ConfigDict(extra="forbid") + + asset_id: str = Field(..., pattern=r"^asset_[0-9]{4}$") + role: Literal["background", "placeable"] + media_type: Literal["raster", "text_bitmap"] + content: Optional[str] = None + asset_ref: str + sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + bitmap_width: int = Field(..., ge=1) + bitmap_height: int = Field(..., ge=1) + bitmap_aspect_ratio: float = Field(..., gt=0) + source_bitmap_sha256: Optional[str] = Field(default=None, pattern=r"^[0-9a-f]{64}$") + + +class R3AssetManifest(BaseModel): + model_config = ConfigDict(extra="forbid") + + schema_version: Literal["a3.r3-asset-manifest.v1"] = R3_SCHEMA_VERSION + sample_id: str = Field(..., min_length=1) + canvas_width: int = Field(..., ge=1) + canvas_height: int = Field(..., ge=1) + background_asset_id: Optional[str] = None + normalization: R3NormalizationConfig + source_pfull_manifest_sha256: str = Field(..., pattern=r"^[0-9a-f]{64}$") + assets: List[R3Asset] + + @model_validator(mode="after") + def _coverage(self) -> "R3AssetManifest": + ids = [asset.asset_id for asset in self.assets] + if len(ids) != len(set(ids)): + raise ValueError("R3 asset IDs must be unique") + backgrounds = [asset.asset_id for asset in self.assets if asset.role == "background"] + actual = backgrounds[0] if len(backgrounds) == 1 else None + if len(backgrounds) > 1 or actual != self.background_asset_id: + raise ValueError("R3 background contract disagrees with asset roles") + return self + + def foreground_assets(self) -> List[R3Asset]: + return [asset for asset in self.assets if asset.role == "placeable"] + + +def alpha_tight_bbox(image: Image.Image, alpha_threshold: int) -> Tuple[int, int, int, int]: + alpha = image.convert("RGBA").getchannel("A") + mask = alpha.point(lambda value: 255 if value > alpha_threshold else 0) + bbox = mask.getbbox() + if bbox is None: + raise R3NormalizationError("text bitmap has no alpha pixels above threshold") + return bbox + + +def normalize_text_bitmap( + source: Path, + destination: Path, + config: R3NormalizationConfig, +) -> Tuple[int, int, str]: + """Tight-crop, resize and pad one RGBA bitmap; publish it exactly once.""" + try: + with Image.open(source) as opened: + rgba = opened.convert("RGBA") + rgba.load() + except (OSError, IOError) as error: + raise R3NormalizationError(f"unreadable text bitmap: {source}") from error + + tight = rgba.crop(alpha_tight_bbox(rgba, config.alpha_threshold)) + content_long_edge = config.long_edge_px - 2 * config.padding_px + scale = content_long_edge / max(tight.size) + resized_size = ( + max(1, int(round(tight.width * scale))), + max(1, int(round(tight.height * scale))), + ) + resized = tight.resize(resized_size, Image.Resampling.LANCZOS) + normalized = Image.new( + "RGBA", + (resized.width + 2 * config.padding_px, resized.height + 2 * config.padding_px), + (0, 0, 0, 0), + ) + normalized.alpha_composite(resized, (config.padding_px, config.padding_px)) + if max(normalized.size) != config.long_edge_px: + raise AssertionError("R3 normalization failed to produce the frozen long edge") + + buffer = BytesIO() + normalized.save(buffer, format="PNG", compress_level=9, optimize=False) + payload = buffer.getvalue() + destination.parent.mkdir(parents=True, exist_ok=True) + with destination.open("xb") as handle: + handle.write(payload) + return normalized.width, normalized.height, sha256_bytes(payload) + + +def prepare_r3_sample( + pfull_manifest_path: Path, + output_dir: Path, + config: R3NormalizationConfig, +) -> R3AssetManifest: + """Create an immutable R3 runtime manifest from one P-Full manifest.""" + pfull = PFullAssetManifest.model_validate_json(pfull_manifest_path.read_bytes()) + output_dir.mkdir(parents=True, exist_ok=False) + asset_dir = output_dir / R3_ASSET_DIRNAME + asset_dir.mkdir() + assets: List[R3Asset] = [] + + for asset in pfull.assets: + if not asset.asset_ref or not asset.sha256: + raise R3NormalizationError( + f"asset {asset.asset_id} has no bitmap; R3 forbids text-only fallback" + ) + source = Path(asset.asset_ref) + if not source.is_file(): + raise R3NormalizationError(f"asset {asset.asset_id} is missing: {source}") + if asset.media_type == "text": + if not asset.content: + raise R3NormalizationError(f"text asset {asset.asset_id} has no content") + destination = asset_dir / f"{asset.asset_id}{R3_TEXT_SUFFIX}" + width, height, digest = normalize_text_bitmap(source, destination, config) + assets.append( + R3Asset( + asset_id=asset.asset_id, + role=asset.role, + media_type="text_bitmap", + content=asset.content, + asset_ref=str(destination.resolve()), + sha256=digest, + bitmap_width=width, + bitmap_height=height, + bitmap_aspect_ratio=width / height, + source_bitmap_sha256=asset.sha256, + ) + ) + else: + if not asset.native_width or not asset.native_height: + raise R3NormalizationError(f"raster asset {asset.asset_id} has no dimensions") + assets.append( + R3Asset( + asset_id=asset.asset_id, + role=asset.role, + media_type="raster", + content=asset.content, + asset_ref=asset.asset_ref, + sha256=asset.sha256, + bitmap_width=asset.native_width, + bitmap_height=asset.native_height, + bitmap_aspect_ratio=asset.native_width / asset.native_height, + ) + ) + + manifest = R3AssetManifest( + sample_id=pfull.sample_id, + canvas_width=pfull.canvas_width, + canvas_height=pfull.canvas_height, + background_asset_id=pfull.background_asset_id, + normalization=config, + source_pfull_manifest_sha256=sha256_file(pfull_manifest_path), + assets=assets, + ) + write_json_once(output_dir / R3_MANIFEST_FILENAME, manifest.model_dump(mode="json")) + return manifest + + +def is_r3_text_bitmap(asset_ref: Optional[str]) -> bool: + return bool(asset_ref and asset_ref.endswith(R3_TEXT_SUFFIX)) + + +def r3_prompt_descriptor(asset_ref: str) -> str: + """Expose only aspect ratio, never normalized or source pixel dimensions.""" + with Image.open(asset_ref) as image: + ratio = image.width / image.height + return ( + " [R3 normalized text bitmap: preserve aspect ratio " + f"{ratio:.6f}; choose final bbox scale and position from the design context; " + "font and colour are baked into the bitmap]" + ) + + +def contain_size(source_size: Tuple[int, int], target_size: Tuple[int, int]) -> Tuple[int, int]: + """Largest aspect-preserving integer size contained by a target bbox.""" + source_width, source_height = source_size + target_width, target_height = target_size + if min(source_width, source_height, target_width, target_height) <= 0: + raise ValueError("source and target dimensions must be positive") + scale = min(target_width / source_width, target_height / source_height) + return ( + max(1, min(target_width, int(round(source_width * scale)))), + max(1, min(target_height, int(round(source_height * scale)))), + ) diff --git a/metagpt/provider/constant.py b/metagpt/provider/constant.py index 041063c4d..fb34d9dda 100644 --- a/metagpt/provider/constant.py +++ b/metagpt/provider/constant.py @@ -35,6 +35,7 @@ "gpt-4o", "gpt-4o-mini", "openai/gpt-4o", + "o4-mini", "gemini-2.0-flash-exp", "gemini-2.0-pro-exp-02-05", "claude-3-5-sonnet-v2", diff --git a/metagpt/utils/token_counter.py b/metagpt/utils/token_counter.py index 481200501..70be0deff 100644 --- a/metagpt/utils/token_counter.py +++ b/metagpt/utils/token_counter.py @@ -39,6 +39,7 @@ "gpt-4-vision-preview": {"prompt": 0.01, "completion": 0.03}, # TODO add extra image price calculator "gpt-4-1106-vision-preview": {"prompt": 0.01, "completion": 0.03}, "gpt-4o": {"prompt": 0.005, "completion": 0.015}, + "o4-mini": {"prompt": 0.0011, "completion": 0.0044}, "gpt-4o-mini": {"prompt": 0.00015, "completion": 0.0006}, "gpt-4o-mini-2024-07-18": {"prompt": 0.00015, "completion": 0.0006}, "gpt-4o-2024-05-13": {"prompt": 0.005, "completion": 0.015}, @@ -249,6 +250,7 @@ "o1-preview-2024-09-12": 128000, "o1-mini": 128000, "o1-mini-2024-09-12": 128000, + "o4-mini": 200000, "gpt-4o": 128000, "gpt-4o-2024-05-13": 128000, "gpt-4o-2024-08-06": 128000, diff --git a/tests/metagpt/ext/agentlayout/test_a3_adjudication.py b/tests/metagpt/ext/agentlayout/test_a3_adjudication.py new file mode 100644 index 000000000..4eb5f654f --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_adjudication.py @@ -0,0 +1,319 @@ +from __future__ import annotations + +import hashlib +import json + +import pytest +from pydantic import ValidationError + +from metagpt.ext.agentlayout.tools.adjudication import ( + AnnotationSubmission, + build_adjudication_forms, + build_adjudication_packet, + build_adjudication_guide, + load_annotation_submissions, + load_oracle_tree, + save_adjudication_materials, + validate_adjudication_submission, +) +from metagpt.ext.agentlayout.tools.annotation import ( + AdjudicationRecord, + AnnotatedAsset, + HumanAnnotation, + compute_agreement, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3Asset, + R3AssetManifest, + R3NormalizationConfig, +) + + +def _asset( + asset_id: str, + semantic_type: str, + semantic_role: str, + group: str, + *, + parent: str = "root", + relation: str = "root", + uncertain: bool = False, +) -> AnnotatedAsset: + return AnnotatedAsset( + asset_id=asset_id, + semantic_type=semantic_type, + semantic_role=semantic_role, + group_id=f"group_{group}", + group_label=group, + parent_id=parent, + relation_to_parent=relation, + uncertain=uncertain, + ) + + +def _annotation( + annotator_id: str, + *, + price_type: str = "pricetag", + price_role: str = "discount offer", + price_group: str = "offer", + price_parent: str = "asset_0001", + price_relation: str = "qualifies", + price_uncertain: bool = False, +) -> HumanAnnotation: + return HumanAnnotation( + sample_id="sample01", + annotator_id=annotator_id, + assets=[ + _asset("asset_0001", "title", "main headline", "offer"), + _asset( + "asset_0002", + price_type, + price_role, + price_group, + parent=price_parent, + relation=price_relation, + uncertain=price_uncertain, + ), + _asset("asset_0003", "product_image", "hero product", "product"), + ], + ) + + +def _submission(annotation: HumanAnnotation) -> AnnotationSubmission: + raw = json.dumps(annotation.model_dump(mode="json"), sort_keys=True).encode() + return AnnotationSubmission( + annotator_id=annotation.annotator_id, + filename=f"annotation_{annotation.annotator_id}.json", + sha256=hashlib.sha256(raw).hexdigest(), + annotation=annotation, + ) + + +def _submissions(): + return [ + _submission(_annotation("ann_a")), + _submission( + _annotation( + "ann_b", + price_type="caption", + price_role="small qualifier", + price_uncertain=True, + ) + ), + _submission( + _annotation( + "ann_c", + price_group="price", + price_parent="root", + price_relation="root", + ) + ), + ] + + +def _manifest() -> R3AssetManifest: + return R3AssetManifest( + sample_id="sample01", + canvas_width=800, + canvas_height=600, + normalization=R3NormalizationConfig(), + source_pfull_manifest_sha256="a" * 64, + assets=[ + R3Asset( + asset_id=f"asset_{index:04d}", + role="placeable", + media_type="raster", + asset_ref=f"/tmp/asset_{index:04d}.png", + sha256=str(index) * 64, + bitmap_width=64, + bitmap_height=32, + bitmap_aspect_ratio=2.0, + ) + for index in (1, 2, 3) + ], + ) + + +def test_three_annotators_produce_all_pairwise_and_aggregate_agreement(): + packet = build_adjudication_packet( + _submissions(), + annotation_directory="samples/sample01/annotation", + contact_sheet_files=["asset_contact_sheet_01.png"], + ) + assert packet.version == "a3.adjudication-packet.v1" + assert packet.annotator_ids == ["ann_a", "ann_b", "ann_c"] + assert [entry.annotator_ids for entry in packet.pairwise_agreements] == [ + ["ann_a", "ann_b"], + ["ann_a", "ann_c"], + ["ann_b", "ann_c"], + ] + + reports = [ + compute_agreement(submissions[0].annotation, submissions[1].annotation) + for submissions in ( + (_submissions()[0], _submissions()[1]), + (_submissions()[0], _submissions()[2]), + (_submissions()[1], _submissions()[2]), + ) + ] + expected_type_mean = sum(report.role_type_agreement for report in reports) / 3 + assert packet.aggregate_agreement.role_type_agreement == pytest.approx( + expected_type_mean + ) + assert packet.aggregate_agreement.disagreeing_assets == ["asset_0002"] + assert packet.requires_adjudication is True + + +def test_asset_comparison_exposes_options_without_choosing_a_winner(): + packet = build_adjudication_packet(_submissions()) + price = next(item for item in packet.assets if item.asset_id == "asset_0002") + assert price.disagreement_fields == [ + "semantic_type", + "semantic_role", + "same_group_members", + "group_id", + "group_label", + "parent_id", + "relation_to_parent", + "uncertain", + ] + assert [decision.annotator_id for decision in price.decisions] == [ + "ann_a", + "ann_b", + "ann_c", + ] + assert price.decisions[0].same_group_member_ids == ["asset_0001", "asset_0002"] + assert price.decisions[2].same_group_member_ids == ["asset_0002"] + assert not hasattr(price, "selected_annotator_id") + + +def test_forms_prefill_only_unanimous_fields_and_leave_disagreements_unresolved(): + packet = build_adjudication_packet(_submissions()) + annotation_form, record_form = build_adjudication_forms(packet) + title = annotation_form["assets"][0] + price = annotation_form["assets"][1] + assert title == { + "asset_id": "asset_0001", + "semantic_type": "title", + "semantic_role": "main headline", + "group_id": "group_offer", + "group_label": "offer", + "parent_id": "root", + "relation_to_parent": "root", + "uncertain": False, + } + assert price == { + "asset_id": "asset_0002", + "semantic_type": "", + "semantic_role": "", + "group_id": "", + "group_label": "", + "parent_id": "", + "relation_to_parent": "", + "uncertain": None, + } + assert annotation_form["annotator_id"] == "" + assert record_form["adjudicator_id"] == "" + assert record_form["agreement"] == packet.aggregate_agreement.model_dump(mode="json") + with pytest.raises(ValidationError): + HumanAnnotation.model_validate(annotation_form) + with pytest.raises(ValidationError): + AdjudicationRecord.model_validate(record_form) + + +def test_loading_submissions_validates_schema_coverage_suffix_and_structure(tmp_path): + annotation_dir = tmp_path / "annotation" + annotation_dir.mkdir() + (annotation_dir / "annotation_form.json").write_text("{}", encoding="utf-8") + for submission in _submissions(): + (annotation_dir / submission.filename).write_text( + submission.annotation.model_dump_json(indent=2), encoding="utf-8" + ) + loaded = load_annotation_submissions(annotation_dir, _manifest()) + assert [item.annotator_id for item in loaded] == ["ann_a", "ann_b", "ann_c"] + assert all(len(item.sha256) == 64 for item in loaded) + + bad = annotation_dir / "annotation_wrong_name.json" + bad.write_text(_annotation("actual_id").model_dump_json(), encoding="utf-8") + with pytest.raises(ValueError, match="filename suffix"): + load_annotation_submissions(annotation_dir, _manifest()) + + +def test_packet_rejects_duplicate_annotators_samples_and_asset_coverage(): + duplicate = [_submission(_annotation("ann_a")), _submission(_annotation("ann_a"))] + with pytest.raises(ValueError, match="duplicate annotator"): + build_adjudication_packet(duplicate) + + wrong_sample = _annotation("ann_b").model_copy(update={"sample_id": "sample02"}) + with pytest.raises(ValueError, match="same sample"): + build_adjudication_packet([_submission(_annotation("ann_a")), _submission(wrong_sample)]) + + partial = _annotation("ann_b").model_copy( + update={"assets": _annotation("ann_b").assets[:-1]} + ) + with pytest.raises(ValueError, match="asset coverage"): + build_adjudication_packet([_submission(_annotation("ann_a")), _submission(partial)]) + + +def test_materials_are_write_once_and_guide_keeps_decisions_human(tmp_path): + packet = build_adjudication_packet(_submissions()) + destination = tmp_path / "sample01" + save_adjudication_materials(packet, destination) + assert (destination / "adjudication_packet.json").exists() + assert (destination / "annotation_adjudicated_form.json").exists() + assert (destination / "adjudication_record_form.json").exists() + with pytest.raises(FileExistsError): + save_adjudication_materials(packet, destination) + + guide = build_adjudication_guide() + assert "不得自動裁決" in guide + assert "不要修改原始 annotation_*.json" in guide + assert "designer GT" in guide + + +def test_completed_human_submission_is_validated_before_oracle_conversion(): + packet = build_adjudication_packet(_submissions()) + final_annotation = _annotation("human_adj") + record = AdjudicationRecord( + sample_id="sample01", + annotator_ids=packet.annotator_ids, + adjudicator_id="human_adj", + agreement=packet.aggregate_agreement, + resolution_notes="Reviewed all three independent annotations.", + ) + tree = validate_adjudication_submission(packet, final_annotation, record) + assert tree.source == "human_oracle" + + wrong_record = record.model_copy(update={"annotator_ids": ["ann_a", "ann_b"]}) + with pytest.raises(ValueError, match="annotator_ids"): + validate_adjudication_submission(packet, final_annotation, wrong_record) + with pytest.raises(ValueError, match="must match adjudicator_id"): + validate_adjudication_submission( + packet, + final_annotation.model_copy(update={"annotator_id": "someone_else"}), + record, + ) + + +def test_finalized_oracle_tree_loader_is_source_checked(tmp_path): + packet = build_adjudication_packet(_submissions()) + final_annotation = _annotation("human_adj") + record = AdjudicationRecord( + sample_id="sample01", + annotator_ids=packet.annotator_ids, + adjudicator_id="human_adj", + agreement=packet.aggregate_agreement, + ) + tree = validate_adjudication_submission(packet, final_annotation, record) + (tmp_path / "sample01.json").write_text( + tree.model_dump_json(indent=2), encoding="utf-8" + ) + assert load_oracle_tree(tmp_path, "sample01") == tree + + predicted = tree.model_copy(update={"source": "predicted"}) + (tmp_path / "sample01.json").write_text( + predicted.model_dump_json(indent=2), encoding="utf-8" + ) + with pytest.raises(ValueError, match="source='human_oracle'"): + load_oracle_tree(tmp_path, "sample01") diff --git a/tests/metagpt/ext/agentlayout/test_a3_annotation.py b/tests/metagpt/ext/agentlayout/test_a3_annotation.py new file mode 100644 index 000000000..f04ea2eee --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_annotation.py @@ -0,0 +1,205 @@ +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from PIL import Image +from pydantic import ValidationError + +from metagpt.ext.agentlayout.layout_tree_v3 import make_tree_condition +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) +from metagpt.ext.agentlayout.tools.annotation import ( + AdjudicationRecord, + AnnotatedAsset, + HumanAnnotation, + annotation_to_oracle_tree, + build_annotation_packet, + compute_agreement, + save_annotation_packet, + validate_annotation_coverage, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3Asset, + R3AssetManifest, + R3NormalizationConfig, +) + + +def _manifest(tmp_path: Path) -> R3AssetManifest: + def _png(name: str, size=(64, 32)) -> str: + path = tmp_path / name + if not path.exists(): + Image.new("RGBA", size, (200, 40, 40, 255)).save(path) + return str(path) + + def _asset(index: int, media: str, content=None) -> R3Asset: + return R3Asset( + asset_id=f"asset_{index:04d}", + role="placeable", + media_type=media, + content=content, + asset_ref=_png(f"asset_{index:04d}.png"), + sha256=str(index) * 64, + bitmap_width=64, + bitmap_height=32, + bitmap_aspect_ratio=2.0, + ) + + return R3AssetManifest( + sample_id="sample01", + canvas_width=800, + canvas_height=600, + normalization=R3NormalizationConfig(), + source_pfull_manifest_sha256="a" * 64, + assets=[ + _asset(1, "text_bitmap", "SUMMER SALE"), + _asset(2, "text_bitmap", "50% OFF"), + _asset(3, "raster"), + ], + ) + + +def _annotated(asset_id, semantic_type, role, group, parent="root", relation="root"): + return AnnotatedAsset( + asset_id=asset_id, + semantic_type=semantic_type, + semantic_role=role, + group_id=f"group_{group}", + group_label=group, + parent_id=parent, + relation_to_parent=relation, + ) + + +def _annotation(annotator="ann_a", price_group="offer") -> HumanAnnotation: + return HumanAnnotation( + sample_id="sample01", + annotator_id=annotator, + assets=[ + _annotated("asset_0001", "title", "main headline", "offer"), + _annotated( + "asset_0002", "pricetag", "discount", price_group, + parent="asset_0001", relation="qualifies", + ), + _annotated("asset_0003", "product_image", "hero product", "product"), + ], + ) + + +def test_packet_exposes_only_brief_ids_media_and_content(tmp_path): + packet = build_annotation_packet( + _manifest(tmp_path), "Summer sale poster", ["asset_contact_sheet_01.png"] + ) + assert packet.version == "a3.annotation-packet.v1" + payload = packet.model_dump(mode="json") + text = json.dumps(payload) + # No GT geometry, no file paths, no background reference reach annotators. + for forbidden in ('"left"', '"top"', '"width"', '"height"', "/home/", "background"): + assert forbidden not in text + assert [a["asset_id"] for a in payload["assets"]] == [ + "asset_0001", "asset_0002", "asset_0003", + ] + assert payload["assets"][0]["content"] == "SUMMER SALE" + + +def test_packet_and_form_are_write_once(tmp_path): + packet = build_annotation_packet(_manifest(tmp_path), "brief", []) + output = tmp_path / "annotation" + save_annotation_packet(packet, output) + form = json.loads((output / "annotation_form.json").read_text()) + assert form["version"] == "a3.human-annotation.v1" + assert [a["asset_id"] for a in form["assets"]] == [ + "asset_0001", "asset_0002", "asset_0003", + ] + assert all(a["semantic_type"] == "" for a in form["assets"]) + with pytest.raises(FileExistsError): + save_annotation_packet(packet, output) + + +def test_annotation_coverage_and_duplicates_are_enforced(tmp_path): + manifest = _manifest(tmp_path) + validate_annotation_coverage(_annotation(), manifest) + partial = _annotation() + partial = partial.model_copy(update={"assets": partial.assets[:-1]}) + with pytest.raises(ValueError, match="coverage mismatch"): + validate_annotation_coverage(partial, manifest) + with pytest.raises(ValidationError, match="duplicate"): + HumanAnnotation( + sample_id="sample01", + annotator_id="ann_a", + assets=[ + _annotated("asset_0001", "title", "x", "g"), + _annotated("asset_0001", "title", "x", "g"), + ], + ) + + +def test_agreement_report_detects_grouping_and_type_disagreement(): + identical = compute_agreement(_annotation("ann_a"), _annotation("ann_b")) + assert identical.same_group_jaccard == 1.0 + assert identical.edge_jaccard == 1.0 + assert identical.role_type_agreement == 1.0 + assert identical.disagreeing_assets == [] + + # ann_b puts the price tag in its own group -> the shared pair disappears. + split = compute_agreement(_annotation("ann_a"), _annotation("ann_b", price_group="price")) + assert split.same_group_jaccard == 0.0 + assert split.edge_jaccard == 1.0 + + +def test_adjudication_record_requires_two_annotators(): + agreement = compute_agreement(_annotation("ann_a"), _annotation("ann_b")) + record = AdjudicationRecord( + sample_id="sample01", + annotator_ids=["ann_a", "ann_b"], + adjudicator_id="adj_1", + agreement=agreement, + ) + assert record.version == "a3.annotation-adjudication.v1" + with pytest.raises(ValidationError): + AdjudicationRecord( + sample_id="sample01", + annotator_ids=["ann_a"], + adjudicator_id="adj_1", + agreement=agreement, + ) + + +def test_adjudicated_annotation_becomes_a_valid_t3_oracle_tree(): + tree = annotation_to_oracle_tree(_annotation()) + assert tree.source == "human_oracle" + assert {node.asset_id for node in tree.nodes} == { + "asset_0001", "asset_0002", "asset_0003", + } + price = next(node for node in tree.nodes if node.asset_id == "asset_0002") + assert price.parent_id == "asset_0001" + assert price.relation_to_parent.value == "qualifies" + + # The oracle tree plugs straight into the T3 ablation arm. + analyst = A3AnalystOutput( + background_summary="bg", + design_intent="intent", + assets=[ + A3AssetUnderstanding( + asset_id=f"asset_{i:04d}", + semantic_type="other", + description="d", + semantic_role="r", + ) + for i in (1, 2, 3) + ], + ) + condition = make_tree_condition("T3", analyst, tree=tree) + assert condition.tree.source == "human_oracle" + + +def test_uncertain_assets_carry_reduced_confidence(): + annotation = _annotation() + annotation.assets[1].uncertain = True + tree = annotation_to_oracle_tree(annotation) + price = next(node for node in tree.nodes if node.asset_id == "asset_0002") + assert price.confidence == 0.5 diff --git a/tests/metagpt/ext/agentlayout/test_a3_director_mapper.py b/tests/metagpt/ext/agentlayout/test_a3_director_mapper.py new file mode 100644 index 000000000..7dced1e2f --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_director_mapper.py @@ -0,0 +1,255 @@ +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from PIL import Image +from pydantic import ValidationError + +from metagpt.ext.agentlayout.tools.director_contract import ( + A3ConceptSet, + build_director_request, + parse_concept_set, + validate_concepts_against_assets, +) +from metagpt.ext.agentlayout.tools.mapper_contract import ( + build_mapper_request, + parse_candidate, + validate_candidate_coverage, +) +from metagpt.ext.agentlayout.layout_tree_v3 import ( + condition_prompt_payload, + make_tree_condition, +) +from metagpt.ext.agentlayout.schema import Candidate, CompositionConcept +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3Asset, + R3AssetManifest, + R3NormalizationConfig, +) + + +def _analyst() -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Quiet blue background", + design_intent="Promote a summer sale", + style_keywords=["bright"], + assets=[ + A3AssetUnderstanding( + asset_id="asset_0001", + semantic_type="title", + description="Main sale heading", + semantic_role="primary message", + ), + A3AssetUnderstanding( + asset_id="asset_0002", + semantic_type="product_image", + description="Featured shoe", + semantic_role="focal product", + ), + ], + ) + + +def _concept(name: str = "Left bleed", focal: str = "asset_0002") -> CompositionConcept: + return CompositionConcept( + name=name, + focal_element=focal, + focal_placement="hero shoe bleeding off the left edge", + text_placement="headline stacked in the right third", + visual_flow="left-to-right Z pattern", + whitespace="generous right-side margin", + typography_mood="bold condensed sans", + ) + + +def _concept_set(focal: str = "asset_0002") -> A3ConceptSet: + return A3ConceptSet( + concepts=[ + _concept("Left bleed", focal), + _concept("Top banner", focal), + _concept("Centered stage", focal), + ] + ) + + +def _manifest(tmp_path: Path) -> R3AssetManifest: + def _png(name: str, size=(64, 32)) -> str: + path = tmp_path / name + if not path.exists(): + Image.new("RGBA", size, (200, 40, 40, 255)).save(path) + return str(path) + + return R3AssetManifest( + sample_id="sample01", + canvas_width=800, + canvas_height=600, + normalization=R3NormalizationConfig(), + source_pfull_manifest_sha256="2" * 64, + assets=[ + R3Asset( + asset_id="asset_0001", + role="placeable", + media_type="text_bitmap", + content="SUMMER SALE", + asset_ref=_png("asset_0001_r3_text.png", (96, 18)), + sha256="0" * 64, + bitmap_width=96, + bitmap_height=18, + bitmap_aspect_ratio=96 / 18, + ), + R3Asset( + asset_id="asset_0002", + role="placeable", + media_type="raster", + content=None, + asset_ref=_png("asset_0002.png", (64, 64)), + sha256="1" * 64, + bitmap_width=64, + bitmap_height=64, + bitmap_aspect_ratio=1.0, + ), + ], + ) + + +def _candidate(ids=("asset_0001", "asset_0002")) -> Candidate: + return Candidate( + candidate_id="candidate", + elements=[ + { + "id": asset_id, + "left": 20 + 100 * index, + "top": 30, + "width": 200, + "height": 100, + "z_index": index, + } + for index, asset_id in enumerate(ids) + ], + ) + + +def test_concept_set_requires_exactly_three_distinct_concepts(): + assert len(_concept_set().concepts) == 3 + with pytest.raises(ValidationError): + A3ConceptSet(concepts=[_concept(), _concept("Top banner")]) + with pytest.raises(ValidationError, match="distinct names"): + A3ConceptSet(concepts=[_concept(), _concept(), _concept("Top banner")]) + + +def test_focal_elements_must_be_known_assets(): + condition = make_tree_condition("T0", _analyst()) + validate_concepts_against_assets(_concept_set(), condition) + with pytest.raises(ValueError, match="unknown asset IDs"): + validate_concepts_against_assets(_concept_set(focal="asset_9999"), condition) + + +def test_director_prompt_carries_condition_but_no_geometry_inputs(): + analyst = _analyst() + t0_request = build_director_request(analyst, make_tree_condition("T0", analyst), "800x600") + t0 = t0_request.prompt + t1 = build_director_request(analyst, make_tree_condition("T1", analyst), "800x600").prompt + assert t0_request.version == "a3.director-request.v1" + assert len(t0_request.prompt_sha256) == 64 + assert t0_request.tree_arm == "T0" + assert "Composition Director" in t0 + assert '"tree_condition": "T0"' in t0 + assert "flat_roles" not in t0 + assert "flat_roles" in t1 + assert "Do NOT output coordinates" in t0 + assert '"left"' not in t0 and '"top"' not in t0 + assert "ACCEPT" not in t0 and "threshold" not in t0 + + +def test_condition_payload_exposes_exactly_the_arm_information(): + analyst = _analyst() + t0 = condition_prompt_payload(make_tree_condition("T0", analyst)) + t1 = condition_prompt_payload(make_tree_condition("T1", analyst)) + assert set(t0) == {"tree_condition", "asset_ids"} + assert set(t1) == {"tree_condition", "asset_ids", "flat_roles"} + assert t0["asset_ids"] == ["asset_0001", "asset_0002"] + + +def test_concept_parser_accepts_fenced_json(): + concept_set = _concept_set() + parsed = parse_concept_set("```json\n" + concept_set.model_dump_json() + "\n```") + assert parsed == concept_set + + +def test_mapper_prompt_uses_aspect_ratio_only_no_bitmap_pixel_sizes(tmp_path): + manifest = _manifest(tmp_path) + condition = make_tree_condition("T0", _analyst()) + request = build_mapper_request( + concept=_concept(), condition=condition, manifest=manifest + ) + prompt = request.prompt + assert request.version == "a3.mapper-request.v1" + assert request.mode == "r0" + assert "Coordinate Mapper" in prompt + assert "bitmap_aspect_ratio" in prompt + assert "5.333333" in prompt + # Normalized bitmap pixel sizes must not leak; only the canvas is in pixels. + assert '"bitmap_width"' not in prompt and '"bitmap_height"' not in prompt + assert '"96"' not in prompt and ": 96" not in prompt + assert "natural size" not in prompt + assert "0.8x" not in prompt + assert "800x600" in prompt + + +def test_mapper_prompt_revision_mode_embeds_base_and_instruction(tmp_path): + manifest = _manifest(tmp_path) + condition = make_tree_condition("T0", _analyst()) + base = [element.model_dump(mode="json") for element in _candidate().elements] + request = build_mapper_request( + concept=_concept(), + condition=condition, + manifest=manifest, + revision_instruction="move asset_0001 above asset_0002", + base_elements=base, + ) + prompt = request.prompt + assert request.mode == "revision" + assert "Revision mode" in prompt + assert "ONLY the requested change" in prompt + assert "move asset_0001 above asset_0002" in prompt + assert json.dumps(base[0]["left"]) in prompt + + r0_prompt = build_mapper_request( + concept=_concept(), condition=condition, manifest=manifest + ).prompt + assert "Revision mode" not in r0_prompt + + +def test_candidate_coverage_is_exact(): + validate_candidate_coverage(_candidate(), ["asset_0001", "asset_0002"]) + with pytest.raises(ValueError, match="coverage mismatch"): + validate_candidate_coverage(_candidate(("asset_0001",)), ["asset_0001", "asset_0002"]) + duplicated = _candidate(("asset_0001", "asset_0001")) + with pytest.raises(ValueError, match="more than once"): + validate_candidate_coverage(duplicated, ["asset_0001", "asset_0002"]) + + +def test_candidate_parser_accepts_fenced_json(): + candidate = _candidate() + parsed = parse_candidate("```json\n" + candidate.model_dump_json() + "\n```") + assert parsed.candidate_id == "candidate" + assert [element.id for element in parsed.elements] == ["asset_0001", "asset_0002"] + + +def test_actions_enforce_vision_exact_model_and_error_aware_retry(): + repo = Path(__file__).resolve().parents[4] + for filename in ( + "metagpt/ext/agentlayout/actions/compose_concept_a3.py", + "metagpt/ext/agentlayout/actions/generate_layout_a3.py", + ): + source = (repo / filename).read_text() + assert "support_image_input" in source + assert "actual_model != self.expected_model" in source + assert "Previous response validation error" in source + assert "images=[background_image_b64]" in source diff --git a/tests/metagpt/ext/agentlayout/test_a3_general_selection.py b/tests/metagpt/ext/agentlayout/test_a3_general_selection.py new file mode 100644 index 000000000..46041b6d5 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_general_selection.py @@ -0,0 +1,76 @@ +import json +from pathlib import Path + +import pytest + +from layout_agent.select_a3_general import ( + GeneralSelectionError, + _canonical_json, + _write_once_or_verify, + build_selection, + discover_cached_test_pool, +) + + +def _sample(root: Path, sample_id: str, **extra: object) -> None: + sample_dir = root / f"crello_{sample_id}" + sample_dir.mkdir() + payload = {"id": sample_id, **extra} + (sample_dir / "meta.json").write_text(json.dumps(payload), encoding="utf-8") + + +def test_general_selection_is_deterministic_and_content_unfiltered(tmp_path: Path) -> None: + for index in range(8): + _sample( + tmp_path, + f"sample-{index}", + elements=[] if index == 0 else [{"kind": "anything"}], + ) + + selected_a, provenance_a = build_selection( + tmp_path, count=5, seed=42, documented_raw_test_count=1971 + ) + selected_b, provenance_b = build_selection( + tmp_path, count=5, seed=42, documented_raw_test_count=1971 + ) + + assert selected_a == selected_b + assert provenance_a == provenance_b + assert len(selected_a) == 5 + assert provenance_a["candidate_pool_count"] == 8 + assert provenance_a["semantic_filter"] is None + assert provenance_a["geometry_filter"] is None + assert provenance_a["asset_count_filter"] is None + + +def test_general_selection_records_only_source_availability_exclusions( + tmp_path: Path, +) -> None: + _sample(tmp_path, "valid") + (tmp_path / "crello_missing").mkdir() + invalid = tmp_path / "crello_invalid" + invalid.mkdir() + (invalid / "meta.json").write_text("not-json", encoding="utf-8") + mismatch = tmp_path / "crello_expected" + mismatch.mkdir() + (mismatch / "meta.json").write_text('{"id":"other"}', encoding="utf-8") + + pool, _, exclusions = discover_cached_test_pool(tmp_path) + + assert pool == ["valid"] + assert exclusions == { + "missing_meta": 1, + "invalid_json": 1, + "non_object_meta": 0, + "id_mismatch": 1, + } + + +def test_write_once_verifies_identical_and_rejects_different(tmp_path: Path) -> None: + destination = tmp_path / "selection.json" + payload = _canonical_json(["a", "b"]) + + assert _write_once_or_verify(destination, payload) == "created" + assert _write_once_or_verify(destination, payload) == "verified-existing" + with pytest.raises(GeneralSelectionError, match="refusing to overwrite"): + _write_once_or_verify(destination, _canonical_json(["different"])) diff --git a/tests/metagpt/ext/agentlayout/test_a3_issue_verifier.py b/tests/metagpt/ext/agentlayout/test_a3_issue_verifier.py new file mode 100644 index 000000000..e912c35b6 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_issue_verifier.py @@ -0,0 +1,201 @@ +from __future__ import annotations + +from metagpt.ext.agentlayout.schema import Candidate +from metagpt.ext.agentlayout.tools.issue_verifier import ( + PROXY_TYPES, + STRICT_TYPES, + verify_issues, +) +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + CriticIssueType, + JudgeCriticResult, +) +from metagpt.ext.agentlayout.tools.repair_gate import evaluate_repair_gate + + +CANVAS = {"canvas_width": 800, "canvas_height": 600} +KNOWN_IDS = ["asset_0001", "asset_0002", "asset_0003"] + + +def _candidate(boxes: dict) -> Candidate: + return Candidate( + candidate_id="candidate", + elements=[ + { + "id": asset_id, + "left": box[0], + "top": box[1], + "width": box[2], + "height": box[3], + "z_index": index, + } + for index, (asset_id, box) in enumerate(sorted(boxes.items())) + ], + ) + + +def _decision(issue_type: str, targets=None): + critic = JudgeCriticResult( + issues=[ + ActionableIssue( + target_asset_ids=targets or ["asset_0001"], + issue_type=issue_type, + observation="deterministic test issue", + desired_change="apply the geometric fix", + ) + ] + ) + return evaluate_repair_gate(critic, KNOWN_IDS) + + +BASE = { + "asset_0001": (100, 100, 200, 100), + "asset_0002": (150, 150, 200, 100), # overlaps asset_0001 + "asset_0003": (500, 400, 100, 100), +} + + +def test_every_issue_type_is_classified_strict_or_proxy(): + assert STRICT_TYPES | PROXY_TYPES == set(CriticIssueType) + assert not STRICT_TYPES & PROXY_TYPES + + +def test_overlap_improvement_requires_intersection_to_shrink(): + b1_fixed = _candidate({**BASE, "asset_0001": (100, 300, 200, 100)}) + b1_same = _candidate(BASE) + decision = _decision("overlap") + improved = verify_issues(decision, _candidate(BASE), b1_fixed, **CANVAS) + unchanged = verify_issues(decision, _candidate(BASE), b1_same, **CANVAS) + assert improved[0].improved is True + assert "overlap area" in improved[0].evidence + assert unchanged[0].improved is False + + +def test_out_of_bounds_improvement_requires_out_area_to_shrink(): + base = {**BASE, "asset_0001": (700, 100, 200, 100)} # 100px past right edge + decision = _decision("out_of_bounds") + fixed = verify_issues( + decision, + _candidate(base), + _candidate({**base, "asset_0001": (590, 100, 200, 100)}), + **CANVAS, + ) + worse = verify_issues( + decision, + _candidate(base), + _candidate({**base, "asset_0001": (750, 100, 200, 100)}), + **CANVAS, + ) + assert fixed[0].improved is True + assert worse[0].improved is False + + +def test_text_too_small_improvement_requires_area_growth(): + decision = _decision("text_too_small") + grown = verify_issues( + decision, + _candidate(BASE), + _candidate({**BASE, "asset_0001": (100, 100, 300, 150)}), + **CANVAS, + ) + shrunk = verify_issues( + decision, + _candidate(BASE), + _candidate({**BASE, "asset_0001": (100, 100, 100, 50)}), + **CANVAS, + ) + assert grown[0].improved is True + assert shrunk[0].improved is False + + +def test_misalignment_improvement_requires_smaller_guide_distance(): + base = {**BASE, "asset_0001": (103, 100, 200, 100), "asset_0002": (100, 300, 200, 100)} + decision = _decision("misalignment") + aligned = verify_issues( + decision, + _candidate(base), + _candidate({**base, "asset_0001": (100, 100, 200, 100)}), + **CANVAS, + ) + assert aligned[0].improved is True + assert "alignment error" in aligned[0].evidence + + +def test_proxy_types_use_acted_upon_movement_check(): + decision = _decision("poor_contrast") + moved = verify_issues( + decision, + _candidate(BASE), + _candidate({**BASE, "asset_0001": (100, 350, 200, 100)}), + **CANVAS, + ) + untouched = verify_issues(decision, _candidate(BASE), _candidate(BASE), **CANVAS) + assert moved[0].improved is True + assert "acted-upon proxy" in moved[0].evidence + assert untouched[0].improved is False + assert "left untouched" in untouched[0].evidence + + +def test_missing_target_fails_closed(): + decision = _decision("overlap") + without_target = _candidate( + {key: value for key, value in BASE.items() if key != "asset_0001"} + ) + result = verify_issues(decision, _candidate(BASE), without_target, **CANVAS) + assert result[0].improved is False + assert "targets missing" in result[0].evidence + + +def test_verifications_align_with_issue_indexes_for_two_issues(): + critic = JudgeCriticResult( + issues=[ + ActionableIssue( + target_asset_ids=["asset_0001"], + issue_type="overlap", + observation="headline overlaps product", + desired_change="separate them", + ), + ActionableIssue( + target_asset_ids=["asset_0003"], + issue_type="spacing", + observation="price crowds the corner", + desired_change="add breathing room", + ), + ] + ) + decision = evaluate_repair_gate(critic, KNOWN_IDS) + b1 = _candidate( + { + **BASE, + "asset_0001": (100, 300, 200, 100), + "asset_0003": (450, 350, 100, 100), + } + ) + results = verify_issues(decision, _candidate(BASE), b1, **CANVAS) + assert [entry.issue_index for entry in results] == [0, 1] + assert all(entry.improved for entry in results) + + +def test_empty_decision_yields_no_verifications(): + decision = evaluate_repair_gate(JudgeCriticResult(issues=[]), KNOWN_IDS) + assert verify_issues(decision, _candidate(BASE), _candidate(BASE), **CANVAS) == [] + + +def test_verifier_output_feeds_the_guard_contract(): + from metagpt.ext.agentlayout.tools.repair_gate import check_b1_against_b0 + + decision = _decision("overlap") + verifications = verify_issues( + decision, + _candidate(BASE), + _candidate({**BASE, "asset_0001": (100, 300, 200, 100)}), + **CANVAS, + ) + check = check_b1_against_b0( + verifications=verifications, + issue_count=len(decision.issues), + b0_violations=[], + b1_violations=[], + ) + assert check.passed diff --git a/tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py b/tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py new file mode 100644 index 000000000..01381d6f2 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_l0_pipeline.py @@ -0,0 +1,382 @@ +from __future__ import annotations + +import asyncio +import json +from pathlib import Path +from typing import Any, Dict, List, Optional + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.a3_config import A3RunConfig, ModelCallConfig +from metagpt.ext.agentlayout.a3_pipeline import ( + A3L0Pipeline, + A3L0PipelineError, + QCVerdict, + R0_SLOT_IDS, +) +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, + TreeCondition, +) +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) +from metagpt.ext.agentlayout.tools.judge_critic import build_judge_critic_request +from metagpt.ext.agentlayout.tools.judge_select import ( + JudgeSelectCandidate, + JudgeSelectResult, + build_judge_select_request, +) + + +MODEL = "gpt-5.4-mini-2026-03-17" +STAGES = ("analyst", "asset_planner", "composition_director", "coordinate_mapper", "judge_select") + + +def _config(loop: str = "L0") -> A3RunConfig: + stages = list(STAGES) + (["judge_critic"] if loop == "L1-Gated" else []) + return A3RunConfig( + loop=loop, + internal_judge=MODEL, + dataset_split="crello-test", + models={stage: ModelCallConfig(model=MODEL) for stage in stages}, + ) + + +def _analyst_output() -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Quiet blue background", + design_intent="Promote a summer sale", + style_keywords=["bright"], + assets=[ + A3AssetUnderstanding( + asset_id="asset_0001", + semantic_type="title", + description="Main sale heading", + semantic_role="primary message", + ), + A3AssetUnderstanding( + asset_id="asset_0002", + semantic_type="pricetag", + description="Discount price", + semantic_role="offer qualifier", + ), + A3AssetUnderstanding( + asset_id="asset_0003", + semantic_type="product_image", + description="Featured shoe", + semantic_role="focal product", + ), + ], + ) + + +def _tree(source: str = "predicted") -> A3LayoutTree: + return A3LayoutTree( + source=source, + nodes=[ + A3TreeNode( + asset_id="asset_0001", + semantic_type="title", + semantic_role="primary message", + group_id="group_offer", + group_label="offer lockup", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.95, + ), + A3TreeNode( + asset_id="asset_0002", + semantic_type="pricetag", + semantic_role="offer qualifier", + group_id="group_offer", + group_label="offer lockup", + parent_id="asset_0001", + relation_to_parent="qualifies", + ordering_priority=1, + confidence=0.9, + ), + A3TreeNode( + asset_id="asset_0003", + semantic_type="product_image", + semantic_role="focal product", + group_id="group_product", + group_label="product", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.92, + ), + ], + groups=[ + A3TreeGroup( + group_id="group_offer", + label="offer lockup", + member_ids=["asset_0001", "asset_0002"], + ordering_priority=0, + confidence=0.94, + ), + A3TreeGroup( + group_id="group_product", + label="product", + member_ids=["asset_0003"], + ordering_priority=1, + confidence=0.92, + ), + ], + ) + + +class Stages: + """Fake stage callables with call accounting for orchestration tests.""" + + def __init__( + self, + tmp_path: Path, + *, + concept_count: int = 3, + failing_slots: Optional[set] = None, + qc_pass: bool = True, + selection: Optional[JudgeSelectResult] = None, + ): + self.tmp_path = tmp_path + self.concept_count = concept_count + self.failing_slots = failing_slots or set() + self.qc_pass = qc_pass + self.selection = selection or JudgeSelectResult( + ranking=["r0_candidate_02", "r0_candidate_01", "r0_candidate_03"], + selected_candidate_id="r0_candidate_02", + ) + self.analyst_calls = 0 + self.planner_calls = 0 + self.director_calls = 0 + self.mapper_calls = 0 + self.qc_calls = 0 + self.judge_calls = 0 + self.mapper_conditions: List[TreeCondition] = [] + self.judge_candidates: List[JudgeSelectCandidate] = [] + + async def analyst(self, user_brief: str) -> A3AnalystOutput: + self.analyst_calls += 1 + return _analyst_output() + + async def planner(self, analyst_output: A3AnalystOutput) -> A3LayoutTree: + self.planner_calls += 1 + return _tree() + + async def director(self, analyst_output, condition) -> List[str]: + self.director_calls += 1 + return [f"concept_{index}" for index in range(self.concept_count)] + + async def mapper(self, concept, condition) -> Dict[str, Any]: + self.mapper_calls += 1 + self.mapper_conditions.append(condition) + if self.mapper_calls - 1 in self.failing_slots: + raise RuntimeError("mapper parse failure after retries") + return {"concept": str(concept), "elements": ["asset_0001", "asset_0002", "asset_0003"]} + + async def renderer(self, candidate: Dict[str, Any], slot_id: str) -> str: + path = self.tmp_path / f"{slot_id}.png" + if not path.exists(): + Image.new("RGB", (4, 4), "white").save(path) + return str(path) + + def qc(self, candidate: Dict[str, Any]) -> QCVerdict: + self.qc_calls += 1 + if self.qc_pass: + return QCVerdict(passed=True) + return QCVerdict(passed=False, violations=["text below minimum size"]) + + async def judge_select(self, candidates: List[JudgeSelectCandidate]) -> JudgeSelectResult: + self.judge_calls += 1 + self.judge_candidates = candidates + return self.selection + + +def _pipeline(stages: Stages, *, config: Optional[A3RunConfig] = None, artifacts_dir=None): + return A3L0Pipeline( + config=config or _config(), + analyst=stages.analyst, + planner=stages.planner, + director=stages.director, + mapper=stages.mapper, + renderer=stages.renderer, + qc=stages.qc, + judge_select=stages.judge_select, + artifacts_dir=artifacts_dir, + ) + + +def test_l0_selects_b0_and_stops_unconditionally(tmp_path): + stages = Stages(tmp_path) + result = asyncio.run(_pipeline(stages).run(user_brief="Summer sale poster")) + + assert (stages.analyst_calls, stages.planner_calls) == (1, 1) + assert stages.director_calls == 1 + assert stages.mapper_calls == 3 + assert stages.qc_calls == 3 + assert stages.judge_calls == 1 + assert result.loop == "L0" + assert result.stop_reason == "l0_unconditional_stop" + assert result.b0_slot_id == "r0_candidate_02" + assert result.degradations == [] + assert [slot.slot_id for slot in result.bundle.slots] == list(R0_SLOT_IDS) + assert all(slot.status == "completed" for slot in result.bundle.slots) + assert all(slot.render_sha256 for slot in result.bundle.slots) + assert len(stages.judge_candidates) == 3 + + +def test_selection_and_critique_are_two_independent_calls(tmp_path): + stages = Stages(tmp_path) + pipeline = _pipeline(stages) + result = asyncio.run(pipeline.run(user_brief="Summer sale poster")) + + # L0 performed exactly one judge call, and the orchestrator has no critic hook. + assert stages.judge_calls == 1 + assert not hasattr(pipeline, "judge_critic") + assert not hasattr(result.judge_select, "issues") + + # A critique of B0 is a second, separate request with its own contract. + b0 = next(s for s in result.bundle.slots if s.slot_id == result.b0_slot_id) + select_request = build_judge_select_request(stages.judge_candidates) + critic_request = build_judge_critic_request( + b0_candidate_id=b0.slot_id, + render_ref=b0.render_ref, + known_asset_ids=["asset_0001", "asset_0002", "asset_0003"], + ) + assert select_request.prompt_sha256 != critic_request.prompt_sha256 + assert "Judge-Select" in select_request.prompt + assert "Judge-Critic" in critic_request.prompt + assert critic_request.b0_candidate_id == result.b0_slot_id + + +def test_director_must_return_exactly_three_concepts(tmp_path): + stages = Stages(tmp_path, concept_count=2) + artifacts = tmp_path / "artifacts_concepts" + with pytest.raises(A3L0PipelineError, match="ConceptCountMismatch"): + asyncio.run( + _pipeline(stages, artifacts_dir=artifacts).run(user_brief="brief") + ) + assert stages.judge_calls == 0 + record = json.loads((artifacts / "errors" / "error_0000.json").read_text()) + assert record["error_type"] == "ConceptCountMismatch" + assert record["details"]["policy_version"] == "a3.l0-candidate-policy.v1" + + +def test_candidate_shortfall_fails_closed_without_judge_call(tmp_path): + stages = Stages(tmp_path, failing_slots={1}) + artifacts = tmp_path / "artifacts_shortfall" + with pytest.raises(A3L0PipelineError, match="CandidateShortfall"): + asyncio.run( + _pipeline(stages, artifacts_dir=artifacts).run(user_brief="brief") + ) + assert stages.judge_calls == 0 + bundle = json.loads((artifacts / "r0_bundle.json").read_text()) + statuses = {slot["slot_id"]: slot["status"] for slot in bundle["slots"]} + assert statuses["r0_candidate_02"] == "failed" + assert bundle["policy_version"] == "a3.l0-candidate-policy.v1" + record = json.loads((artifacts / "errors" / "error_0000.json").read_text()) + assert record["error_type"] == "CandidateShortfall" + assert record["details"]["failed_slots"][0]["slot_id"] == "r0_candidate_02" + + +def test_all_qc_fail_is_marked_degradation_not_silent_promotion(tmp_path): + stages = Stages(tmp_path, qc_pass=False) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert stages.judge_calls == 1 + assert result.degradations == ["all_qc_failed"] + assert all(slot.qc_passed is False for slot in result.bundle.slots) + assert all(slot.qc_violations for slot in result.bundle.slots) + assert all(not candidate.qc_passed for candidate in stages.judge_candidates) + + +def test_invalid_judge_permutation_is_rejected(tmp_path): + stages = Stages( + tmp_path, + selection=JudgeSelectResult( + ranking=["r0_candidate_02", "r0_candidate_01", "r0_candidate_99"], + selected_candidate_id="r0_candidate_02", + ), + ) + with pytest.raises(ValueError, match="permutation"): + asyncio.run(_pipeline(stages).run(user_brief="brief")) + + +def test_t0_and_t1_never_plan_and_never_gain_a_tree(tmp_path): + for arm, has_roles in (("T0", False), ("T1", True)): + arm_dir = tmp_path / arm + arm_dir.mkdir(exist_ok=True) + stages = Stages(arm_dir) + result = asyncio.run(_pipeline(stages).run(user_brief="brief", tree_arm=arm)) + assert stages.planner_calls == 0 + assert result.tree_arm == arm + assert len(stages.mapper_conditions) == 3 + first = stages.mapper_conditions[0] + assert all(condition is first for condition in stages.mapper_conditions) + assert first.tree is None + assert (first.flat_roles is not None) is has_roles + + +def test_t3_requires_external_oracle_and_skips_planner(tmp_path): + stages = Stages(tmp_path) + with pytest.raises(ValueError, match="human oracle tree"): + asyncio.run(_pipeline(stages).run(user_brief="brief", tree_arm="T3")) + + stages = Stages(tmp_path) + result = asyncio.run( + _pipeline(stages).run( + user_brief="brief", tree_arm="T3", oracle_tree=_tree("human_oracle") + ) + ) + assert stages.planner_calls == 0 + assert stages.mapper_conditions[0].tree.source == "human_oracle" + assert result.tree_arm == "T3" + + +def test_artifacts_are_write_once_and_run_dirs_cannot_be_reused(tmp_path): + artifacts = tmp_path / "artifacts_happy" + stages = Stages(tmp_path) + asyncio.run(_pipeline(stages, artifacts_dir=artifacts).run(user_brief="brief")) + for filename in ( + "analyst_output.json", + "tree_condition.json", + "r0_bundle.json", + "judge_select_result.json", + "l0_result.json", + ): + assert (artifacts / filename).exists() + assert list((artifacts / "errors").iterdir()) == [] + with pytest.raises(FileExistsError): + _pipeline(Stages(tmp_path), artifacts_dir=artifacts) + + +def test_l0_pipeline_rejects_a_mismatched_loop_config(tmp_path): + stages = Stages(tmp_path) + with pytest.raises(ValueError, match="implements loop='L0'"): + _pipeline(stages, config=_config("L1-Gated")) + + +def test_pipeline_source_has_no_legacy_loop_constructs(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/a3_pipeline.py").read_text() + for forbidden in ( + "ACCEPT", + "REJECT", + "threshold", + "consecutive", + "max_total_rounds", + "ledger", + "polish", + "IterationState", + "reroute", + "while ", + ): + assert forbidden not in source, f"legacy loop construct found: {forbidden}" + assert "LayoutPipeline" not in source.replace( + "pipeline.LayoutPipeline", "" + ), "A3 orchestrator must not delegate to the legacy pipeline" diff --git a/tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py b/tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py new file mode 100644 index 000000000..8df8e6456 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_l1_pipeline.py @@ -0,0 +1,477 @@ +from __future__ import annotations + +import asyncio +import json +from pathlib import Path +from typing import Any, Dict, List, Literal, Optional + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.a3_config import A3RunConfig, ModelCallConfig +from metagpt.ext.agentlayout.a3_pipeline import QCVerdict, R0SlotRecord +from metagpt.ext.agentlayout.a3_pipeline_l1 import ( + B1_SLOT_ID, + A3L1GatedPipeline, +) +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, + TreeCondition, +) +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + JudgeCriticResult, +) +from metagpt.ext.agentlayout.tools.judge_select import ( + JudgeSelectCandidate, + JudgeSelectResult, +) +from metagpt.ext.agentlayout.tools.repair_gate import ( + IssueVerification, + RepairDecision, + RepairRoute, +) + + +MODEL = "gpt-5.4-mini-2026-03-17" +L1_STAGES = ( + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "judge_select", + "judge_critic", +) + + +def _config(loop: str = "L1-Gated") -> A3RunConfig: + stages = L1_STAGES if loop == "L1-Gated" else L1_STAGES[:-1] + return A3RunConfig( + loop=loop, + internal_judge=MODEL, + dataset_split="crello-test", + models={stage: ModelCallConfig(model=MODEL) for stage in stages}, + ) + + +def _analyst_output() -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Quiet blue background", + design_intent="Promote a summer sale", + style_keywords=["bright"], + assets=[ + A3AssetUnderstanding( + asset_id="asset_0001", + semantic_type="title", + description="Main sale heading", + semantic_role="primary message", + ), + A3AssetUnderstanding( + asset_id="asset_0002", + semantic_type="pricetag", + description="Discount price", + semantic_role="offer qualifier", + ), + A3AssetUnderstanding( + asset_id="asset_0003", + semantic_type="product_image", + description="Featured shoe", + semantic_role="focal product", + ), + ], + ) + + +def _tree() -> A3LayoutTree: + return A3LayoutTree( + source="predicted", + nodes=[ + A3TreeNode( + asset_id="asset_0001", + semantic_type="title", + semantic_role="primary message", + group_id="group_offer", + group_label="offer lockup", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.95, + ), + A3TreeNode( + asset_id="asset_0002", + semantic_type="pricetag", + semantic_role="offer qualifier", + group_id="group_offer", + group_label="offer lockup", + parent_id="asset_0001", + relation_to_parent="qualifies", + ordering_priority=1, + confidence=0.9, + ), + A3TreeNode( + asset_id="asset_0003", + semantic_type="product_image", + semantic_role="focal product", + group_id="group_product", + group_label="product", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.92, + ), + ], + groups=[ + A3TreeGroup( + group_id="group_offer", + label="offer lockup", + member_ids=["asset_0001", "asset_0002"], + ordering_priority=0, + confidence=0.94, + ), + A3TreeGroup( + group_id="group_product", + label="product", + member_ids=["asset_0003"], + ordering_priority=1, + confidence=0.92, + ), + ], + ) + + +def _overlap_issue(targets=None) -> ActionableIssue: + return ActionableIssue( + target_asset_ids=targets or ["asset_0001"], + issue_type="overlap", + observation="headline overlaps the product image", + desired_change="move asset_0001 above asset_0003 with clear separation", + ) + + +class L1Stages: + """Fake L1 stage callables with call accounting.""" + + def __init__( + self, + tmp_path: Path, + *, + critic_result: Optional[JudgeCriticResult] = None, + b0_verdict: Optional[QCVerdict] = None, + b1_verdict: Optional[QCVerdict] = None, + verifier_improved: bool = True, + repair_error: bool = False, + pairwise_result: Optional[str] = None, + ): + self.tmp_path = tmp_path + self.critic_result = ( + critic_result + if critic_result is not None + else JudgeCriticResult(issues=[_overlap_issue()]) + ) + self.b0_verdict = b0_verdict or QCVerdict(passed=True) + self.b1_verdict = b1_verdict or QCVerdict(passed=True) + self.verifier_improved = verifier_improved + self.repair_error = repair_error + self.pairwise_result = pairwise_result + self.analyst_calls = 0 + self.planner_calls = 0 + self.director_calls = 0 + self.mapper_calls = 0 + self.critic_calls = 0 + self.repair_calls = 0 + self.verifier_calls = 0 + self.pairwise_calls = 0 + self.judge_calls = 0 + self.mapper_conditions: List[TreeCondition] = [] + self.repair_condition: Optional[TreeCondition] = None + self.repair_decision: Optional[RepairDecision] = None + + async def analyst(self, user_brief: str) -> A3AnalystOutput: + self.analyst_calls += 1 + return _analyst_output() + + async def planner(self, analyst_output: A3AnalystOutput) -> A3LayoutTree: + self.planner_calls += 1 + return _tree() + + async def director(self, analyst_output, condition) -> List[str]: + self.director_calls += 1 + return ["concept_0", "concept_1", "concept_2"] + + async def mapper(self, concept, condition) -> Dict[str, Any]: + self.mapper_calls += 1 + self.mapper_conditions.append(condition) + return {"concept": str(concept)} + + async def renderer(self, candidate: Dict[str, Any], slot_id: str) -> str: + path = self.tmp_path / f"{slot_id}.png" + if not path.exists(): + Image.new("RGB", (4, 4), "white").save(path) + return str(path) + + def qc(self, candidate: Dict[str, Any]) -> QCVerdict: + return self.b1_verdict if candidate.get("revised") else self.b0_verdict + + async def judge_select(self, candidates: List[JudgeSelectCandidate]) -> JudgeSelectResult: + self.judge_calls += 1 + return JudgeSelectResult( + ranking=["r0_candidate_02", "r0_candidate_01", "r0_candidate_03"], + selected_candidate_id="r0_candidate_02", + ) + + async def judge_critic( + self, b0: R0SlotRecord, known_asset_ids: List[str] + ) -> JudgeCriticResult: + self.critic_calls += 1 + return self.critic_result + + async def repair( + self, b0: R0SlotRecord, decision: RepairDecision, condition: TreeCondition + ) -> Dict[str, Any]: + self.repair_calls += 1 + self.repair_condition = condition + self.repair_decision = decision + if self.repair_error: + raise RuntimeError("revision output failed schema validation 3 times") + return {"revised": True, "base": b0.slot_id} + + def verifier( + self, decision: RepairDecision, b0: R0SlotRecord, b1: R0SlotRecord + ) -> List[IssueVerification]: + self.verifier_calls += 1 + return [ + IssueVerification( + issue_index=index, + improved=self.verifier_improved, + evidence="deterministic geometry comparison of B0 vs B1", + ) + for index in range(len(decision.issues)) + ] + + async def pairwise_select( + self, b0: R0SlotRecord, b1: R0SlotRecord + ) -> Literal["B0", "B1"]: + self.pairwise_calls += 1 + return self.pairwise_result + + +def _pipeline(stages: L1Stages, *, config=None, artifacts_dir=None, with_pairwise=False): + return A3L1GatedPipeline( + config=config or _config(), + analyst=stages.analyst, + planner=stages.planner, + director=stages.director, + mapper=stages.mapper, + renderer=stages.renderer, + qc=stages.qc, + judge_select=stages.judge_select, + judge_critic=stages.judge_critic, + repair=stages.repair, + verifier=stages.verifier, + pairwise_select=stages.pairwise_select if with_pairwise else None, + artifacts_dir=artifacts_dir, + ) + + +def test_no_actionable_issue_outputs_b0_without_any_revision(tmp_path): + stages = L1Stages(tmp_path, critic_result=JudgeCriticResult(issues=[])) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert stages.critic_calls == 1 + assert stages.repair_calls == 0 + assert stages.verifier_calls == 0 + assert result.repair_attempted is False + assert result.b1 is None and result.guard is None and result.verifications is None + assert result.final_slot_id == result.b0_slot_id == "r0_candidate_02" + assert result.stop_reason == "l1_unconditional_stop" + assert result.repair_decision.outcome == "no_actionable_issue" + + +def test_verified_revision_is_kept_as_b1(tmp_path): + stages = L1Stages(tmp_path) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert stages.repair_calls == 1 + assert stages.verifier_calls == 1 + assert result.repair_attempted is True + assert result.repair_decision.route is RepairRoute.COORDINATE_MAPPER + assert result.guard.deterministic_passed is True + assert result.guard.pairwise_used is False + assert result.guard.winner == "B1" + assert result.final_slot_id == B1_SLOT_ID + assert result.b1.status == "completed" + assert result.b1.render_sha256 + # The revision consumed the same frozen tree condition as the R0 mappers. + assert stages.repair_condition is stages.mapper_conditions[0] + assert stages.repair_decision is result.repair_decision + + +def test_upstream_stages_stay_frozen_and_revision_happens_once(tmp_path): + stages = L1Stages(tmp_path) + asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert stages.analyst_calls == 1 + assert stages.planner_calls == 1 + assert stages.director_calls == 1 + assert stages.mapper_calls == 3 + assert stages.judge_calls == 1 + assert stages.critic_calls == 1 + assert stages.repair_calls == 1 + + +def test_unimproved_issue_keeps_b0(tmp_path): + stages = L1Stages(tmp_path, verifier_improved=False) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert result.guard.winner == "B0" + assert result.final_slot_id == "r0_candidate_02" + assert any("issues_not_improved" in reason for reason in result.guard.reasons) + + +def test_new_hard_violation_in_b1_keeps_b0(tmp_path): + stages = L1Stages( + tmp_path, + b1_verdict=QCVerdict(passed=False, violations=["text clipped at canvas edge"]), + ) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert result.guard.winner == "B0" + assert any("new_hard_violations" in reason for reason in result.guard.reasons) + + +def test_completeness_drop_in_b1_keeps_b0(tmp_path): + stages = L1Stages( + tmp_path, + b0_verdict=QCVerdict(passed=True, completeness=1.0), + b1_verdict=QCVerdict(passed=True, completeness=0.5), + ) + result = asyncio.run(_pipeline(stages).run(user_brief="brief")) + assert result.guard.winner == "B0" + assert any("completeness_decreased" in reason for reason in result.guard.reasons) + + +def test_pairwise_selection_can_demote_but_not_rescue(tmp_path): + demote = L1Stages(tmp_path, pairwise_result="B0") + result = asyncio.run(_pipeline(demote, with_pairwise=True).run(user_brief="brief")) + assert demote.pairwise_calls == 1 + assert result.guard.pairwise_used is True + assert result.guard.winner == "B0" + assert result.final_slot_id == "r0_candidate_02" + + confirm_dir = tmp_path / "confirm" + confirm_dir.mkdir() + confirm = L1Stages(confirm_dir, pairwise_result="B1") + result = asyncio.run(_pipeline(confirm, with_pairwise=True).run(user_brief="brief")) + assert result.guard.winner == "B1" + + failed_dir = tmp_path / "failed_check" + failed_dir.mkdir() + rescued = L1Stages(failed_dir, verifier_improved=False, pairwise_result="B1") + result = asyncio.run(_pipeline(rescued, with_pairwise=True).run(user_brief="brief")) + assert rescued.pairwise_calls == 0 + assert result.guard.winner == "B0" + + +def test_failed_revision_falls_back_to_b0_with_error_record(tmp_path): + stages = L1Stages(tmp_path, repair_error=True) + artifacts = tmp_path / "artifacts_failed" + result = asyncio.run( + _pipeline(stages, artifacts_dir=artifacts).run(user_brief="brief") + ) + assert result.repair_attempted is True + assert result.b1.status == "failed" + assert result.verifications is None + assert result.guard.winner == "B0" + assert any("repair_execution_failed" in reason for reason in result.guard.reasons) + assert result.final_slot_id == "r0_candidate_02" + record = json.loads((artifacts / "errors" / "error_0000.json").read_text()) + assert record["error_type"] == "RepairExecutionFailed" + + +def test_invalid_critic_targets_are_rejected(tmp_path): + stages = L1Stages( + tmp_path, + critic_result=JudgeCriticResult(issues=[_overlap_issue(targets=["asset_9999"])]), + ) + with pytest.raises(ValueError, match="unknown asset IDs"): + asyncio.run(_pipeline(stages).run(user_brief="brief")) + + +def test_l1_artifacts_are_written_once(tmp_path): + artifacts = tmp_path / "artifacts_l1" + stages = L1Stages(tmp_path) + asyncio.run(_pipeline(stages, artifacts_dir=artifacts).run(user_brief="brief")) + for filename in ( + "analyst_output.json", + "tree_condition.json", + "r0_bundle.json", + "judge_select_result.json", + "judge_critic_result.json", + "repair_decision.json", + "b1_candidate.json", + "issue_verifications.json", + "b0b1_guard.json", + "l1_result.json", + ): + assert (artifacts / filename).exists() + assert not (artifacts / "l0_result.json").exists() + with pytest.raises(FileExistsError): + _pipeline(L1Stages(tmp_path), artifacts_dir=artifacts) + + +def test_run_from_r0_reuses_a_persisted_r0_phase_without_upstream_calls(tmp_path): + # Gate C contract: the L1 arm consumes the L0 arm's exact R0 outcome, so + # the two arms differ by the revision tail alone. + producer = L1Stages(tmp_path) + full = asyncio.run(_pipeline(producer).run(user_brief="brief")) + + consumer = L1Stages(tmp_path) + pipeline = _pipeline(consumer) + from metagpt.ext.agentlayout.a3_pipeline import R0PhaseOutcome + + outcome = R0PhaseOutcome( + analyst_output=_analyst_output(), + condition=producer.mapper_conditions[0], + bundle=full.bundle, + degradations=list(full.degradations), + selection=full.judge_select, + ) + tail = asyncio.run(pipeline.run_from_r0(outcome=outcome)) + + # No upstream stage ran on the consumer side; only the tail did. + assert consumer.analyst_calls == 0 + assert consumer.planner_calls == 0 + assert consumer.director_calls == 0 + assert consumer.judge_calls == 0 + assert consumer.critic_calls == 1 + assert consumer.repair_calls == 1 + # The tail worked on the same B0 and reached the same kind of result. + assert tail.b0_slot_id == full.b0_slot_id + assert tail.bundle == full.bundle + assert tail.judge_select == full.judge_select + assert tail.stop_reason == "l1_unconditional_stop" + + +def test_l1_pipeline_rejects_a_mismatched_loop_config(tmp_path): + stages = L1Stages(tmp_path) + with pytest.raises(ValueError, match="implements loop='L1-Gated'"): + _pipeline(stages, config=_config("L0")) + + +def test_l1_pipeline_source_has_no_legacy_loop_constructs(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/a3_pipeline_l1.py").read_text() + for forbidden in ( + "ACCEPT", + "REJECT", + "threshold", + "consecutive", + "max_total_rounds", + "ledger", + "polish", + "IterationState", + "reroute", + "while ", + ): + assert forbidden not in source, f"legacy loop construct found: {forbidden}" diff --git a/tests/metagpt/ext/agentlayout/test_a3_paid_budget.py b/tests/metagpt/ext/agentlayout/test_a3_paid_budget.py new file mode 100644 index 000000000..d71c447a6 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_paid_budget.py @@ -0,0 +1,219 @@ +import asyncio +import base64 +import io +import json +from pathlib import Path +from types import SimpleNamespace + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.a3_paid_budget import ( + A3AuthorizationCapReached, + A3BudgetedLLM, + A3PaidBudget, + load_authorization, +) + + +def _receipt(path: Path, *, calls=10, input_tokens=100_000, output_tokens=50_000): + payload = { + "schema_version": "a3.paid-authorization.v1", + "authorized": True, + "authorized_by": "user", + "authorization_text": "authorized test", + "run_id": "run-1", + "model": "gpt-5.4-mini-2026-03-17", + "tree_arm": "T2", + "analyst_arm": "vision", + "limits": { + "max_http_calls": calls, + "max_input_tokens": input_tokens, + "max_output_tokens": output_tokens, + "max_usd": "7.00", + }, + "input_usd_per_m": "0.75", + "output_usd_per_m": "4.50", + "stage_max_completion_tokens": { + "analyst": 4096, + "asset_planner": 4096, + "composition_director": 2048, + "coordinate_mapper": 2048, + "judge_select": 512, + }, + "image_detail": "high", + "reasoning_effort": "none", + "service_tier": "default", + } + path.write_text(json.dumps(payload)) + return load_authorization( + path, + expected_run_id="run-1", + expected_model="gpt-5.4-mini-2026-03-17", + expected_tree_arm="T2", + expected_analyst_arm="vision", + ) + + +class _Completions: + def __init__(self, response): + self.response = response + self.calls = [] + + async def create(self, **kwargs): + self.calls.append(kwargs) + return self.response + + +class _Client: + def __init__(self, response): + self.chat = SimpleNamespace(completions=_Completions(response)) + self.max_retries = None + self.closed = False + + def with_options(self, *, max_retries): + self.max_retries = max_retries + return self + + async def close(self): + self.closed = True + + +def _underlying(response): + client = _Client(response) + return ( + SimpleNamespace( + model="gpt-5.4-mini-2026-03-17", + aclient=client, + config=SimpleNamespace(timeout=30), + system_prompt="system", + use_system_prompt=True, + ), + client, + ) + + +def _image_b64(): + image = Image.new("RGB", (64, 64), "white") + stream = io.BytesIO() + image.save(stream, format="PNG") + return base64.b64encode(stream.getvalue()).decode() + + +def test_budgeted_llm_enforces_request_shape_and_settles_usage(tmp_path): + auth = _receipt(tmp_path / "auth.json") + budget = A3PaidBudget(auth, tmp_path / "ledger.jsonl") + response = SimpleNamespace( + usage=SimpleNamespace(prompt_tokens=123, completion_tokens=45), + choices=[SimpleNamespace(message=SimpleNamespace(content='{"ok":true}'))], + ) + underlying, client = _underlying(response) + llm = A3BudgetedLLM( + underlying, budget=budget, stage="analyst", max_completion_tokens=4096 + ) + result = asyncio.run(llm.aask("prompt", images=[_image_b64()])) + asyncio.run(llm.aclose()) + assert result == '{"ok":true}' + assert client.max_retries == 0 + assert len(client.chat.completions.calls) == 1 + request = client.chat.completions.calls[0] + assert request["max_completion_tokens"] == 4096 + assert request["reasoning_effort"] == "none" + assert request["service_tier"] == "default" + assert request["messages"][-1]["content"][1]["image_url"]["detail"] == "high" + assert budget.snapshot()["calls"] == 1 + assert budget.snapshot()["input_tokens"] == 123 + assert budget.snapshot()["output_tokens"] == 45 + + +def test_cap_refuses_before_dispatch(tmp_path): + auth = _receipt(tmp_path / "auth.json", calls=1, output_tokens=100) + budget = A3PaidBudget(auth, tmp_path / "ledger.jsonl") + response = SimpleNamespace( + usage=SimpleNamespace(prompt_tokens=1, completion_tokens=1), + choices=[SimpleNamespace(message=SimpleNamespace(content="ok"))], + ) + underlying, client = _underlying(response) + llm = A3BudgetedLLM( + underlying, budget=budget, stage="analyst", max_completion_tokens=4096 + ) + with pytest.raises(A3AuthorizationCapReached): + asyncio.run(llm.aask("prompt")) + assert client.chat.completions.calls == [] + + +def test_missing_usage_is_conservatively_settled(tmp_path): + auth = _receipt(tmp_path / "auth.json") + budget = A3PaidBudget(auth, tmp_path / "ledger.jsonl") + response = SimpleNamespace( + usage=None, + choices=[SimpleNamespace(message=SimpleNamespace(content="ok"))], + ) + underlying, _client = _underlying(response) + llm = A3BudgetedLLM( + underlying, budget=budget, stage="judge_select", max_completion_tokens=512 + ) + with pytest.raises(RuntimeError, match="provider_usage_missing"): + asyncio.run(llm.aask("prompt")) + snapshot = budget.snapshot() + assert snapshot["calls"] == 1 + assert snapshot["output_tokens"] == 512 + assert snapshot["usage_reported_calls"] == 0 + + +def test_receipt_rejects_wrong_run(tmp_path): + path = tmp_path / "auth.json" + _receipt(path) + with pytest.raises(RuntimeError, match="run_id_mismatch"): + load_authorization( + path, + expected_run_id="other-run", + expected_model="gpt-5.4-mini-2026-03-17", + expected_tree_arm="T2", + expected_analyst_arm="vision", + ) + + +def test_resume_replays_ledger_and_enforces_remaining_envelope(tmp_path): + auth = _receipt(tmp_path / "receipt.json", calls=3, input_tokens=10_000, output_tokens=5_000) + ledger = tmp_path / "ledger.jsonl" + first = A3PaidBudget(auth, ledger) + reservation = first.reserve(4_000, 2_000) + first.settle_failure(reservation) # conservative full-reservation settle + + resumed = A3PaidBudget(auth, ledger, resume=True) + assert resumed.calls == 1 + assert resumed.input_tokens == 4_000 + assert resumed.output_tokens == 2_000 + # Remaining envelope: 2 calls, 6k in, 3k out. A fitting reserve passes... + second = resumed.reserve(6_000, 3_000) + assert second is not None + resumed.settle_failure(second) + # ...and the very next call exceeds the input cap cumulatively. + assert resumed.reserve(1, 1) is None + events = [json.loads(line) for line in ledger.read_text().splitlines()] + assert [e["event"] for e in events].count("resume") == 1 + + +def test_resume_refused_without_flag_and_on_unsettled_reservation(tmp_path): + from metagpt.ext.agentlayout.a3_paid_budget import A3AuthorizationError + + auth = _receipt(tmp_path / "receipt.json") + ledger = tmp_path / "ledger.jsonl" + first = A3PaidBudget(auth, ledger) + with pytest.raises(A3AuthorizationError, match="already_exists"): + A3PaidBudget(auth, ledger) # no resume flag -> refuse + first.reserve(100, 100) # left unsettled on purpose + with pytest.raises(A3AuthorizationError, match="unsettled"): + A3PaidBudget(auth, ledger, resume=True) + + +def test_resume_refuses_authorization_mismatch(tmp_path): + from metagpt.ext.agentlayout.a3_paid_budget import A3AuthorizationError + + auth = _receipt(tmp_path / "receipt.json", calls=5) + ledger = tmp_path / "ledger.jsonl" + A3PaidBudget(auth, ledger) + other = _receipt(tmp_path / "receipt2.json", calls=9) # different caps + with pytest.raises(A3AuthorizationError, match="authorization_mismatch"): + A3PaidBudget(other, ledger, resume=True) diff --git a/tests/metagpt/ext/agentlayout/test_a3_relation_stats.py b/tests/metagpt/ext/agentlayout/test_a3_relation_stats.py new file mode 100644 index 000000000..b5d049016 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_relation_stats.py @@ -0,0 +1,404 @@ +"""Tests for the Relation N=100 SGC/TLC/PCA statistical reanalysis.""" +from __future__ import annotations + +import json +from pathlib import Path +from typing import Dict, List, Sequence + +import pytest + +from metagpt.ext.agentlayout.evaluation.a3_relation_stats import ( + analyze, + bonferroni_adjust, + compare_arms, + holm_adjust, + publish_bundle, + render_markdown, + render_results_paragraph, + sign_test_two_sided, +) + +REPO_ROOT = Path(__file__).resolve().parents[4] + + +# --------------------------------------------------------------------------- +# Pure statistics helpers +# --------------------------------------------------------------------------- + + +def test_sign_test_matches_published_values() -> None: + # Reference points from the frozen §23.3 experiment log. + assert sign_test_two_sided(64, 34) == pytest.approx(0.0032, abs=5e-5) + assert sign_test_two_sided(63, 32) == pytest.approx(0.0019, abs=5e-5) + assert sign_test_two_sided(47, 25) == pytest.approx(0.0128, abs=5e-5) + assert sign_test_two_sided(46, 29) == pytest.approx(0.064, abs=5e-4) + + +def test_sign_test_edge_cases() -> None: + assert sign_test_two_sided(0, 0) is None # all ties: uninformative + assert sign_test_two_sided(3, 3) == 1.0 + assert sign_test_two_sided(1, 0) == 1.0 + assert sign_test_two_sided(10, 0) == pytest.approx(2 / 2**10) + + +def test_holm_adjustment_step_down_with_monotonicity() -> None: + raw = [0.01, 0.04, 0.03, 0.005] + adjusted = holm_adjust(raw) + # sorted: 0.005*4=0.02, 0.01*3=0.03, 0.03*2=0.06, 0.04*1=0.04 -> max 0.06 + assert adjusted == pytest.approx([0.03, 0.06, 0.06, 0.02]) + + +def test_holm_passes_none_through() -> None: + adjusted = holm_adjust([0.02, None, 0.01]) + assert adjusted[1] is None + # family size m=2: 0.01*2=0.02, 0.02*1=0.02 + assert adjusted[0] == pytest.approx(0.02) + assert adjusted[2] == pytest.approx(0.02) + + +def test_bonferroni_caps_at_one() -> None: + # None entries do not count toward the family size (m=2 here). + assert bonferroni_adjust([0.2, 0.001, None]) == [0.4, 0.002, None] + assert bonferroni_adjust([0.6, 0.7]) == [1.0, 1.0] + + +# --------------------------------------------------------------------------- +# Paired-intersection logic +# --------------------------------------------------------------------------- + + +def _row(sample_id: str, status: str = "completed", **metrics) -> Dict: + return { + "sample_id": sample_id, + "status": status, + "sgc": metrics.get("sgc"), + "tlc": metrics.get("tlc"), + "pca": metrics.get("pca"), + } + + +def test_compare_arms_uses_both_success_intersection() -> None: + rows_a = [ + _row("s1", sgc=0.9), + _row("s2", sgc=0.8), + _row("s3", status="generation_failure"), + _row("s4", sgc=None), # metric undefined (e.g. single group) + _row("s5", sgc=0.5), + ] + rows_b = [ + _row("s1", sgc=0.7), + _row("s2", status="generation_failure"), + _row("s3", sgc=0.6), + _row("s4", sgc=0.4), + _row("s5", sgc=0.5), + ] + result = compare_arms(rows_a, rows_b, "sgc") + assert result["paired_n"] == 2 # only s1 and s5 + assert sorted(result["paired_sample_ids_excluded"]) == ["s2", "s3", "s4"] + assert result["wins"] == 1 and result["losses"] == 0 and result["ties"] == 1 + assert result["mean_diff"] == pytest.approx((0.2 + 0.0) / 2) + assert result["sign_test_p_raw"] == 1.0 # 1W/0L + + +def test_compare_arms_empty_intersection() -> None: + result = compare_arms( + [_row("s1", status="generation_failure")], + [_row("s1", sgc=0.5)], + "sgc", + ) + assert result["paired_n"] == 0 + assert result["sign_test_p_raw"] is None + assert result["mean_diff"] is None + assert result["mean_diff_ci95"] is None + + +# --------------------------------------------------------------------------- +# End-to-end over synthetic frozen run artifacts +# --------------------------------------------------------------------------- + + +def _asset_id(index: int) -> str: + return f"asset_{index:04d}" + + +def _oracle_payload(groups: Sequence[Sequence[int]], parents: Dict[int, int]) -> Dict: + nodes: List[Dict] = [] + group_payloads: List[Dict] = [] + for group_index, members in enumerate(groups): + group_id = f"group_{group_index}" + group_payloads.append( + { + "group_id": group_id, + "label": f"group {group_index}", + "member_ids": [_asset_id(m) for m in members], + "ordering_priority": group_index, + "confidence": 1.0, + } + ) + for member in members: + parent = parents.get(member) + nodes.append( + { + "asset_id": _asset_id(member), + "semantic_type": "title", + "semantic_role": f"role {member}", + "group_id": group_id, + "group_label": f"group {group_index}", + "parent_id": "root" if parent is None else _asset_id(parent), + "relation_to_parent": "root" if parent is None else "supports", + "ordering_priority": member, + "confidence": 1.0, + } + ) + return { + "schema_version": "a3.layout-tree.v1", + "source": "human_oracle", + "root_label": "foreground_layout", + "nodes": nodes, + "groups": group_payloads, + } + + +def _element(index: int, left: int, top: int) -> Dict: + return { + "id": _asset_id(index), + "left": left, + "top": top, + "width": 10, + "height": 10, + "z_index": index, + } + + +def _write_arm( + root: Path, + arm: str, + sample_ids: Sequence[str], + failures: Dict[str, str], + layouts: Dict[str, List[Dict]], +) -> Path: + run_dir = root / f"run-{arm.lower()}" + (run_dir / "samples").mkdir(parents=True) + (run_dir / "sample_ids.json").write_text(json.dumps(list(sample_ids))) + summary = { + "samples": [ + { + "sample_id": sample_id, + "status": "failed" if sample_id in failures else "completed", + **( + {"error_type": failures[sample_id]} + if sample_id in failures + else {} + ), + } + for sample_id in sample_ids + ] + } + (run_dir / "a3_run_summary.json").write_text(json.dumps(summary)) + for sample_id in sample_ids: + if sample_id in failures: + continue + sample_dir = run_dir / "samples" / sample_id + (sample_dir / "pipeline").mkdir(parents=True) + (sample_dir / "inputs" / "pfull").mkdir(parents=True) + l0 = { + "b0_slot_id": "slot_final", + "bundle": { + "slots": [ + { + "slot_id": "slot_other", + "candidate": {"candidate_id": "other", "elements": []}, + }, + { + "slot_id": "slot_final", + "candidate": { + "candidate_id": "final", + "elements": layouts[sample_id], + }, + }, + ] + }, + } + # slot_other has an empty/invalid layout on purpose: selection must + # follow b0_slot_id, never slot order. + l0["bundle"]["slots"][0]["candidate"]["elements"] = [ + _element(0, 0, 0), + _element(1, 90, 90), + _element(2, 40, 40), + ] + (sample_dir / "pipeline" / "l0_result.json").write_text(json.dumps(l0)) + (sample_dir / "inputs" / "pfull" / "asset_manifest.json").write_text( + json.dumps({"canvas_width": 100, "canvas_height": 100}) + ) + return run_dir + + +@pytest.fixture() +def synthetic_arms(tmp_path: Path) -> Dict: + sample_ids = ["s1", "s2", "s3"] + oracle_dir = tmp_path / "oracles" + oracle_dir.mkdir() + groups = [[0, 1], [2]] + parents = {1: 0} + for sample_id in sample_ids: + (oracle_dir / f"{sample_id}.json").write_text( + json.dumps(_oracle_payload(groups, parents)) + ) + # "good" layout: group members adjacent, other group far away. + good = [_element(0, 0, 0), _element(1, 10, 0), _element(2, 80, 80)] + # "bad" layout: group member 1 placed next to the other group. + bad = [_element(0, 0, 0), _element(1, 70, 80), _element(2, 80, 80)] + run_dirs = { + "T0": _write_arm( + tmp_path, "T0", sample_ids, {}, + {"s1": bad, "s2": bad, "s3": bad}, + ), + "T2": _write_arm( + tmp_path, "T2", sample_ids, {"s3": "PlannerError"}, + {"s1": good, "s2": bad}, + ), + "T3": _write_arm( + tmp_path, "T3", sample_ids, {}, + {"s1": good, "s2": good, "s3": good}, + ), + } + return {"run_dirs": run_dirs, "oracle_dir": oracle_dir} + + +def test_analyze_denominators_and_intersection(synthetic_arms: Dict) -> None: + aggregate = analyze( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) + assert aggregate["frozen_sample_n"] == 3 + assert aggregate["total_generation_attempts"] == 9 + assert aggregate["total_generation_failures"] == 1 + t2_meta = aggregate["arms"]["T2"] + assert t2_meta["n_completed"] == 2 + assert t2_meta["generation_failures"] == [ + {"sample_id": "s3", "error_type": "PlannerError"} + ] + by_key = { + (entry["comparison"], entry["metric"]): entry + for entry in aggregate["comparisons"] + } + assert len(by_key) == 9 + # T2 failed s3, so every T2 comparison pairs only s1+s2. + assert by_key[("T2_vs_T0", "sgc")]["paired_n"] == 2 + assert by_key[("T2_vs_T0", "sgc")]["paired_sample_ids_excluded"] == ["s3"] + # T0 and T3 both completed all three samples. + assert by_key[("T3_vs_T0", "sgc")]["paired_n"] == 3 + # T2's good layout beats T0's bad layout on s1, ties on s2. + entry = by_key[("T2_vs_T0", "sgc")] + assert entry["wins"] == 1 and entry["losses"] == 0 and entry["ties"] == 1 + # Failure rows stay explicit in the per-sample artifact. + failure_rows = [ + row + for row in aggregate["per_sample"] + if row["status"] == "generation_failure" + ] + assert [(row["arm"], row["sample_id"]) for row in failure_rows] == [("T2", "s3")] + + +def test_analyze_is_deterministic(synthetic_arms: Dict) -> None: + kwargs = dict( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) + first = analyze(**kwargs) + second = analyze(**kwargs) + assert first["comparisons"] == second["comparisons"] + assert first["per_sample"] == second["per_sample"] + assert first["bootstrap"]["seed"] == 20260712 + + +def test_holm_and_bonferroni_attached_to_all_nine(synthetic_arms: Dict) -> None: + aggregate = analyze( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) + for entry in aggregate["comparisons"]: + if entry["sign_test_p_raw"] is None: + assert entry["sign_test_p_holm"] is None + assert entry["sign_test_p_bonferroni"] is None + else: + assert entry["sign_test_p_holm"] >= entry["sign_test_p_raw"] + assert entry["sign_test_p_bonferroni"] >= entry["sign_test_p_raw"] + + +def test_results_paragraph_never_claims_equivalence(synthetic_arms: Dict) -> None: + aggregate = analyze( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) + paragraph = render_results_paragraph(aggregate) + assert "no difference was detected" in paragraph + assert "must not be interpreted as evidence that the arms are equivalent" in paragraph + assert "equivalent." not in paragraph.replace( + "must not be interpreted as evidence that the arms are equivalent.", "" + ) + + +def test_publish_bundle_write_once_and_renders( + synthetic_arms: Dict, tmp_path: Path +) -> None: + aggregate = analyze( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) + markdown = render_markdown({k: v for k, v in aggregate.items() if k != "per_sample"}) + assert "| Comparison | Metric |" in markdown + output_dir = tmp_path / "bundle" + paths = publish_bundle( + aggregate=aggregate, + output_dir=output_dir, + evaluation_id="test-stats", + command_argv=["test"], + ) + for path in paths.values(): + assert path.exists() + jsonl_lines = (output_dir / "per_sample.jsonl").read_text().splitlines() + assert len(jsonl_lines) == 9 # 3 arms x 3 samples, no blank lines + assert all(json.loads(line)["arm"] in {"T0", "T2", "T3"} for line in jsonl_lines) + manifest = json.loads((output_dir / "evaluation_manifest.json").read_text()) + assert set(manifest["artifact_sha256"]) == { + "aggregate.json", + "per_sample.jsonl", + "results.md", + "results.tex", + } + tex = (output_dir / "results.tex").read_text() + assert r"\begin{table}" in tex and "20,260,712" not in tex + with pytest.raises(FileExistsError): + publish_bundle( + aggregate=analyze( + run_dirs=synthetic_arms["run_dirs"], + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ), + output_dir=output_dir, + evaluation_id="test-stats", + command_argv=["test"], + ) + + +def test_mismatched_frozen_ids_fail_loud(synthetic_arms: Dict, tmp_path: Path) -> None: + other = _write_arm( + tmp_path, "TX", ["s1", "s2"], {}, { + "s1": [_element(0, 0, 0), _element(1, 10, 0), _element(2, 80, 80)], + "s2": [_element(0, 0, 0), _element(1, 10, 0), _element(2, 80, 80)], + }, + ) + run_dirs = dict(synthetic_arms["run_dirs"]) + run_dirs["T3"] = other + with pytest.raises(ValueError, match="different frozen sample-ID list"): + analyze( + run_dirs=run_dirs, + oracle_dir=synthetic_arms["oracle_dir"], + repo_root=REPO_ROOT, + ) diff --git a/tests/metagpt/ext/agentlayout/test_a3_repair_gate.py b/tests/metagpt/ext/agentlayout/test_a3_repair_gate.py new file mode 100644 index 000000000..cac1e02b3 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_repair_gate.py @@ -0,0 +1,180 @@ +from __future__ import annotations + +import pytest +from pydantic import ValidationError + +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + CriticIssueType, + JudgeCriticResult, +) +from metagpt.ext.agentlayout.tools.repair_gate import ( + ISSUE_ROUTING, + B0B1GuardResult, + DeterministicGuardCheck, + IssueVerification, + RepairDecision, + RepairRoute, + check_b1_against_b0, + evaluate_repair_gate, + resolve_winner, +) + + +KNOWN_IDS = ["asset_0001", "asset_0002", "asset_0003"] + + +def _issue(issue_type: str = "overlap", targets=None) -> ActionableIssue: + return ActionableIssue( + target_asset_ids=targets or ["asset_0001"], + issue_type=issue_type, + observation="headline overlaps the product image", + desired_change="move asset_0001 above asset_0003 with clear separation", + ) + + +def _verification(index: int = 0, improved: bool = True) -> IssueVerification: + return IssueVerification( + issue_index=index, + improved=improved, + evidence="overlap area 0.31 -> 0.00 between asset_0001 and asset_0003", + ) + + +def test_routing_table_covers_every_closed_issue_type_exactly(): + assert set(ISSUE_ROUTING) == set(CriticIssueType) + assert ISSUE_ROUTING[CriticIssueType.OVERLAP] is RepairRoute.COORDINATE_MAPPER + assert ISSUE_ROUTING[CriticIssueType.POOR_CONTRAST] is RepairRoute.COORDINATE_MAPPER + assert ISSUE_ROUTING[CriticIssueType.HIERARCHY_ERROR] is RepairRoute.DIRECTOR_THEN_MAPPER + assert ISSUE_ROUTING[CriticIssueType.TREE_INCONSISTENCY] is RepairRoute.DIRECTOR_THEN_MAPPER + + +def test_no_issue_gate_outcome_carries_no_route_or_instruction(): + decision = evaluate_repair_gate(JudgeCriticResult(issues=[]), KNOWN_IDS) + assert decision.gate_version == "a3.l1-repair-gate.v1" + assert decision.outcome == "no_actionable_issue" + assert decision.issues == [] + assert decision.route is None + assert decision.revision_instruction is None + + +def test_single_issue_routes_to_mapper_with_keep_constraints(): + critic = JudgeCriticResult(issues=[_issue(targets=["asset_0001", "asset_0003"])]) + decision = evaluate_repair_gate(critic, KNOWN_IDS) + assert decision.outcome == "one_targeted_repair" + assert decision.route is RepairRoute.COORDINATE_MAPPER + assert decision.keep_asset_ids == ["asset_0002"] + assert "exactly ONE revision" in decision.revision_instruction + assert "KEEP unchanged" in decision.revision_instruction + assert "asset_0002" in decision.revision_instruction + assert "move asset_0001 above asset_0003" in decision.revision_instruction + assert "Layout Tree are frozen" in decision.revision_instruction + + +def test_hierarchy_issues_route_through_the_director_and_dominate_mixed_sets(): + hierarchy = JudgeCriticResult(issues=[_issue("hierarchy_error")]) + assert evaluate_repair_gate(hierarchy, KNOWN_IDS).route is RepairRoute.DIRECTOR_THEN_MAPPER + + mixed = JudgeCriticResult( + issues=[_issue("overlap"), _issue("tree_inconsistency", targets=["asset_0002"])] + ) + decision = evaluate_repair_gate(mixed, KNOWN_IDS) + assert decision.route is RepairRoute.DIRECTOR_THEN_MAPPER + assert decision.keep_asset_ids == ["asset_0003"] + + +def test_gate_rejects_issues_targeting_unknown_assets(): + critic = JudgeCriticResult(issues=[_issue(targets=["asset_9999"])]) + with pytest.raises(ValueError, match="unknown asset IDs"): + evaluate_repair_gate(critic, KNOWN_IDS) + + +def test_decision_model_enforces_outcome_consistency(): + with pytest.raises(ValidationError, match="requires at least one issue"): + RepairDecision(outcome="one_targeted_repair") + with pytest.raises(ValidationError, match="requires a route"): + RepairDecision(outcome="one_targeted_repair", issues=[_issue()]) + with pytest.raises(ValidationError, match="cannot carry issues"): + RepairDecision(outcome="no_actionable_issue", issues=[_issue()]) + + +def test_guard_passes_when_issues_improved_and_nothing_regressed(): + check = check_b1_against_b0( + verifications=[_verification()], + issue_count=1, + b0_violations=["pre-existing warning"], + b1_violations=["pre-existing warning"], + b0_completeness=1.0, + b1_completeness=1.0, + ) + assert check.passed and check.reasons == [] + + +def test_guard_rejects_unimproved_issues_and_coverage_gaps(): + check = check_b1_against_b0( + verifications=[_verification(improved=False)], + issue_count=1, + b0_violations=[], + b1_violations=[], + ) + assert not check.passed + assert any("issues_not_improved" in reason for reason in check.reasons) + + gap = check_b1_against_b0( + verifications=[_verification(index=0)], + issue_count=2, + b0_violations=[], + b1_violations=[], + ) + assert not gap.passed + assert any("verifier_coverage_mismatch" in reason for reason in gap.reasons) + + +def test_guard_rejects_new_hard_violations_and_completeness_drop(): + new_violation = check_b1_against_b0( + verifications=[_verification()], + issue_count=1, + b0_violations=["old"], + b1_violations=["old", "text clipped at canvas edge"], + ) + assert not new_violation.passed + assert any("new_hard_violations" in reason for reason in new_violation.reasons) + + drop = check_b1_against_b0( + verifications=[_verification()], + issue_count=1, + b0_violations=[], + b1_violations=[], + b0_completeness=1.0, + b1_completeness=0.9, + ) + assert not drop.passed + assert any("completeness_decreased" in reason for reason in drop.reasons) + + missing = check_b1_against_b0( + verifications=[_verification()], + issue_count=1, + b0_violations=[], + b1_violations=[], + b0_completeness=1.0, + b1_completeness=None, + ) + assert not missing.passed + assert "completeness_signal_missing" in missing.reasons + + +def test_winner_resolution_is_fail_closed_and_pairwise_can_only_demote(): + passing = DeterministicGuardCheck(passed=True) + failing = DeterministicGuardCheck(passed=False, reasons=["issues_not_improved: [0]"]) + assert resolve_winner(passing) == "B1" + assert resolve_winner(passing, "B0") == "B0" + assert resolve_winner(passing, "B1") == "B1" + assert resolve_winner(failing) == "B0" + assert resolve_winner(failing, "B1") == "B0" + + +def test_guard_result_is_versioned(): + result = B0B1GuardResult(deterministic_passed=True, winner="B1") + assert result.policy_version == "a3.b0b1-guard.v1" + with pytest.raises(ValidationError): + B0B1GuardResult(deterministic_passed=True, winner="B2") diff --git a/tests/metagpt/ext/agentlayout/test_a3_run_manifest.py b/tests/metagpt/ext/agentlayout/test_a3_run_manifest.py new file mode 100644 index 000000000..2c733f4ce --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_run_manifest.py @@ -0,0 +1,166 @@ +from __future__ import annotations + +import json +import subprocess +import sys +from pathlib import Path + +import pytest + +from metagpt.ext.agentlayout.a3_config import A3RunConfig +from metagpt.ext.agentlayout.run_manifest import ( + A3RunStore, + RUN_MANIFEST_SCHEMA_VERSION, + capture_provenance, + load_sample_ids, + write_json_once, +) + + +def _config(loop: str = "L0") -> dict: + stages = { + name: {"model": "gpt-test-snapshot"} + for name in ( + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "judge_select", + ) + } + if loop == "L1-Gated": + stages["judge_critic"] = {"model": "gpt-test-snapshot"} + return { + "loop": loop, + "internal_judge": "gpt-test-snapshot", + "dataset_split": "synthetic-test", + "models": stages, + } + + +def _inputs(tmp_path: Path): + config = tmp_path / "config.json" + ids = tmp_path / "ids.json" + config.write_text(json.dumps(_config())) + ids.write_text(json.dumps(["sample-a", "sample-b"])) + return config, ids + + +def test_config_requires_all_l1_stages(): + bad = _config("L1-Gated") + del bad["models"]["judge_critic"] + with pytest.raises(ValueError, match="judge_critic"): + A3RunConfig.model_validate(bad) + + +def test_sample_ids_reject_duplicates(tmp_path: Path): + path = tmp_path / "ids.json" + path.write_text(json.dumps(["same", "same"])) + with pytest.raises(ValueError, match="duplicates"): + load_sample_ids(path) + + +def test_sample_ids_reject_path_traversal(tmp_path: Path): + path = tmp_path / "ids.json" + path.write_text(json.dumps(["../escape"])) + with pytest.raises(ValueError, match="unsafe"): + load_sample_ids(path) + + +def test_write_json_once_refuses_overwrite(tmp_path: Path): + target = tmp_path / "record.json" + write_json_once(target, {"version": 1}) + with pytest.raises(FileExistsError): + write_json_once(target, {"version": 2}) + assert json.loads(target.read_text()) == {"version": 1} + + +def test_create_run_writes_frozen_snapshots_and_sample_records(tmp_path: Path): + config, ids = _inputs(tmp_path) + store = A3RunStore.create( + runs_root=tmp_path / "runs", + run_id="a3-test-001", + config_path=config, + sample_ids_path=ids, + repo_root=tmp_path, + ) + manifest = store.manifest() + assert manifest.schema_version == RUN_MANIFEST_SCHEMA_VERSION + assert manifest.sample_ids_snapshot.count == 2 + assert manifest.completion == { + "total": 2, + "pending": 2, + "completed": 0, + "failed": 0, + "skipped": 0, + } + assert (store.run_dir / "run_config.json").exists() + assert (store.run_dir / "sample_ids.json").exists() + assert (store.run_dir / "schemas" / "run_manifest.schema.json").exists() + for sample_id in ("sample-a", "sample-b"): + record = json.loads( + (store.run_dir / "samples" / sample_id / "sample_record.json").read_text() + ) + assert record["sample_id"] == sample_id + assert record["status"] == "pending" + + +def test_create_run_refuses_reusing_run_id(tmp_path: Path): + config, ids = _inputs(tmp_path) + kwargs = dict( + runs_root=tmp_path / "runs", + run_id="a3-test-duplicate", + config_path=config, + sample_ids_path=ids, + repo_root=tmp_path, + ) + A3RunStore.create(**kwargs) + with pytest.raises(FileExistsError): + A3RunStore.create(**kwargs) + + +def test_provenance_hashes_untracked_contents(tmp_path: Path): + # A non-git directory degrades safely instead of blocking manifest creation. + result = capture_provenance(tmp_path) + assert result["git"] == {"available": False} + assert result["runtime"]["python"] + + +def test_provenance_records_untracked_content_hash(tmp_path: Path): + subprocess.run(["git", "init", "-q"], cwd=tmp_path, check=True) + watched = tmp_path / "metagpt" / "ext" / "agentlayout" + watched.mkdir(parents=True) + source = watched / "new_module.py" + source.write_text("VALUE = 1\n") + + result = capture_provenance(tmp_path) + hashes = result["git"]["untracked_file_sha256"] + assert hashes["metagpt/ext/agentlayout/new_module.py"] + + +def test_cli_plan_is_zero_cost_and_does_not_create_run(tmp_path: Path): + config, ids = _inputs(tmp_path) + runs = tmp_path / "runs" + proc = subprocess.run( + [ + sys.executable, + "layout_agent/run_a3.py", + "plan", + "--config", + str(config), + "--sample-ids", + str(ids), + "--run-id", + "a3-cli-plan", + "--runs-root", + str(runs), + ], + cwd=Path(__file__).resolve().parents[4], + capture_output=True, + text=True, + check=True, + ) + plan = json.loads(proc.stdout) + assert plan["api_calls"] == 0 + assert plan["sample_count"] == 2 + assert not (runs / "a3-cli-plan").exists() diff --git a/tests/metagpt/ext/agentlayout/test_a3_sega_evaluator.py b/tests/metagpt/ext/agentlayout/test_a3_sega_evaluator.py new file mode 100644 index 000000000..a8bd9e137 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_sega_evaluator.py @@ -0,0 +1,1404 @@ +"""Direct tests for the persisted-A3 SEGA evaluator and sidecar CLI. + +Every fixture is local and synthetic. No detector, MLLM, API, or repository +run artifact is accessed. +""" +from __future__ import annotations + +import argparse +import copy +import hashlib +import importlib.util +import json +import sys +from types import SimpleNamespace +from pathlib import Path + +import numpy as np +import pytest +from PIL import Image + +import layout_agent.evaluate_a3_sega as sega_cli +import metagpt.ext.agentlayout.evaluation.a3_sega_evaluator as a3_evaluator +import metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet as saliency_adapter +from metagpt.ext.agentlayout.evaluation.a3_sega_evaluator import ( + A3EvaluationError, + METRIC_KEYS, + PROTOCOL_VERSION, + SALIENCY_MODE_FROZEN, + SALIENCY_MODE_SKIP, + SCHEMA_VERSION, + aggregate_metric_records, + clip_and_filter_layout, + evaluate_sample, + extract_b0_sample, + frozen_detector_lineage, + load_run_summary, + sha256_array, + sha256_file, + verify_source_artifacts_unchanged, +) +from metagpt.ext.agentlayout.evaluation.sega_metrics import ( + CLS_IMAGE_LOGO, + CLS_TEXT, + CLS_UNDERLAY, +) + + +def _write_json(path: Path, value) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text( + json.dumps(value, ensure_ascii=False, separators=(",", ":")), + encoding="utf-8", + ) + + +def _write_png(path: Path, rgb=(255, 255, 255)) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + Image.new("RGB", (10, 10), rgb).save(path) + + +def _make_run( + tmp_path: Path, + *, + with_background: bool = True, + run_id: str = "a3-test-run", + sample_id: str = "sample-1", +) -> dict: + """Create one minimal schema-valid completed A3 L0 run.""" + run_dir = tmp_path / "source-runs" / run_id + sample_dir = run_dir / "samples" / sample_id + pfull_dir = sample_dir / "inputs" / "pfull" + r3_dir = sample_dir / "inputs" / "r3" + render_path = sample_dir / "renders" / "r0_candidate_01.png" + text_bitmap = r3_dir / "assets" / "asset_0001_r3_text.png" + _write_png(render_path) + _write_png(text_bitmap, (0, 0, 0)) + + pfull_assets = [] + r3_assets = [] + background_id = None + background_path = None + if with_background: + background_id = "asset_0000" + background_path = pfull_dir / "assets" / "asset_0000.png" + _write_png(background_path, (20, 40, 60)) + background_sha = sha256_file(background_path) + pfull_assets.append( + { + "asset_id": background_id, + "source_index": 0, + "role": "background", + "media_type": "raster", + "semantic_hint": "base_background", + "content": None, + "asset_ref": str(background_path), + "sha256": background_sha, + "mime_type": "image/png", + "native_width": 10, + "native_height": 10, + "classification_reason": "synthetic full-canvas background", + } + ) + r3_assets.append( + { + "asset_id": background_id, + "role": "background", + "media_type": "raster", + "content": None, + "asset_ref": str(background_path), + "sha256": background_sha, + "bitmap_width": 10, + "bitmap_height": 10, + "bitmap_aspect_ratio": 1.0, + "source_bitmap_sha256": None, + } + ) + + source_index = 1 if with_background else 0 + pfull_assets.append( + { + "asset_id": "asset_0001", + "source_index": source_index, + "role": "placeable", + "media_type": "text", + "semantic_hint": "text", + "content": "hello", + "asset_ref": None, + "sha256": None, + "mime_type": None, + "native_width": None, + "native_height": None, + "classification_reason": "synthetic text", + } + ) + r3_assets.append( + { + "asset_id": "asset_0001", + "role": "placeable", + "media_type": "text_bitmap", + "content": "hello", + "asset_ref": str(text_bitmap), + "sha256": sha256_file(text_bitmap), + "bitmap_width": 10, + "bitmap_height": 10, + "bitmap_aspect_ratio": 1.0, + "source_bitmap_sha256": None, + } + ) + + pfull_path = pfull_dir / "asset_manifest.json" + _write_json( + pfull_path, + { + "schema_version": "a3.pfull-asset-manifest.v1", + "policy_version": "pfull.crello.pixel-only-background.v1", + "sample_id": sample_id, + "title": "synthetic", + "canvas_width": 10, + "canvas_height": 10, + "background_asset_id": background_id, + "assets": pfull_assets, + "source_meta_sha256": "0" * 64, + }, + ) + r3_path = r3_dir / "r3_asset_manifest.json" + _write_json( + r3_path, + { + "schema_version": "a3.r3-asset-manifest.v1", + "sample_id": sample_id, + "canvas_width": 10, + "canvas_height": 10, + "background_asset_id": background_id, + "normalization": { + "version": "r3.alpha-tight-long-edge.v1", + "long_edge_px": 512, + "padding_px": 8, + "alpha_threshold": 1, + "resize_filter": "lanczos", + }, + "source_pfull_manifest_sha256": sha256_file(pfull_path), + "assets": r3_assets, + }, + ) + + render_sha = sha256_file(render_path) + slot_ids = ["r0_candidate_01", "r0_candidate_02", "r0_candidate_03"] + elements = [ + { + "id": "asset_0001", + "left": 1, + "top": 1, + "width": 8, + "height": 8, + "z_index": 1, + } + ] + slots = [ + { + "slot_id": slot_id, + "status": "completed", + "candidate": {"candidate_id": slot_id, "elements": elements}, + "render_ref": str(render_path), + "render_sha256": render_sha, + "qc_passed": True, + "qc_violations": [], + "qc_completeness": 1.0, + } + for slot_id in slot_ids + ] + _write_json( + sample_dir / "pipeline" / "l0_result.json", + { + "pipeline_version": "a3.l0-pipeline.v1", + "loop": "L0", + "tree_arm": "T0", + "degradations": [], + "bundle": { + "schema_version": "a3.r0-bundle.v1", + "policy_version": "a3.l0-candidate-policy.v1", + "slots": slots, + }, + "judge_select": { + "schema_version": "a3.judge-select-result.v1", + "ranking": slot_ids, + "selected_candidate_id": slot_ids[0], + }, + "b0_slot_id": slot_ids[0], + "stop_reason": "l0_unconditional_stop", + }, + ) + + entry = { + "sample_id": sample_id, + "status": "completed", + "final": slot_ids[0], + "stage_calls": 0, + } + sample_ids_path = run_dir / "sample_ids.json" + _write_json(sample_ids_path, [sample_id]) + _write_json( + run_dir / "run_manifest.json", + { + "run_id": run_id, + "sample_ids_snapshot": { + "count": 1, + "sha256": sha256_file(sample_ids_path), + "source_path": str(sample_ids_path), + "stored_path": "sample_ids.json", + }, + }, + ) + _write_json( + run_dir / "a3_run_summary.json", + {"total": 1, "failed": 0, "samples": [entry]}, + ) + return { + "run_dir": run_dir, + "run_id": run_id, + "sample_id": sample_id, + "entry": entry, + "background_path": background_path, + "pfull_path": pfull_path, + "r3_path": r3_path, + } + + +def _blank_sample(layout) -> dict: + return { + "run_id": "run", + "sample_id": "sample", + "status": "source_valid", + "canvas": {"width": 10, "height": 10}, + "layout": layout, + # Deliberately stale/raw-looking metadata: evaluate_sample must derive + # applicability from the already filtered layout, not trust this flag. + "underlay_protocol": {"applicable": True}, + "background": { + "kind": "blank_canvas", + "rgb": [255, 255, 255], + "asset_ref": None, + "asset_sha256": None, + }, + "source_artifacts": [], + } + + +def _metric_row(sample_id: str, ali: float) -> dict: + metrics = {} + for key in METRIC_KEYS: + if key in {"Und_l", "Und_s"}: + metrics[key] = {"status": "not_applicable", "value": None, "reason": "none"} + else: + metrics[key] = {"status": "ok", "value": ali, "reason": None} + return { + "run_id": "run", + "sample_id": sample_id, + "status": "evaluated", + "metrics": metrics, + } + + +def _valid_sidecar_bundle(*, evaluated: bool = False): + sample_id = "sample-1" + run_id = "run-1" + + def artifact(path, sha): + return {"path": path, "sha256": sha, "size_bytes": 1} + + if evaluated: + metrics = _metric_row(sample_id, 0.25)["metrics"] + metrics["Occ"] = { + "status": "skipped", + "value": None, + "reason": "explicit --saliency-mode skip", + } + record = { + "run_id": run_id, + "sample_id": sample_id, + "status": "evaluated", + "canvas": {"width": 10, "height": 10}, + "b0_slot_id": "r0_candidate_01", + "b0_render_sha256": "1" * 64, + "elements": [], + "element_counts": { + "raw": 0, + "valid": 0, + "invalid_below_0_1pct": 0, + }, + "underlay_protocol": { + "label_source": "synthetic", + "applicable": False, + "valid_underlay_ids": [], + "raster_inference_forbidden": True, + }, + "background": { + "kind": "blank_canvas", + "rgb": [255, 255, 255], + "renderer_contract": "R3 DEFAULT_BACKGROUND_COLOR", + "asset_id": None, + "asset_ref": None, + "asset_sha256": None, + "asset_size_bytes": None, + }, + "source_artifacts": [ + artifact("/synthetic/l0_result.json", "a" * 64), + artifact("/synthetic/asset_manifest.json", "b" * 64), + artifact("/synthetic/render.png", "1" * 64), + artifact("/synthetic/r3_asset_manifest.json", "c" * 64), + ], + "background_array_sha256": "2" * 64, + "metrics": metrics, + "saliency": {"status": "skipped_explicit", "map_sha256": None}, + } + mode = "evaluate" + counts = { + "selected_n": 1, + "source_valid_n": 1, + "source_skipped_n": 0, + "evaluated_n": 1, + "validated_only_n": 0, + } + metrics_aggregate = aggregate_metric_records([record]) + else: + record = { + "run_id": run_id, + "sample_id": sample_id, + "status": "source_skipped", + "source_status": "failed", + "reason": "synthetic source failure", + "summary_entry": { + "error_type": "SyntheticError", + "message": "synthetic source failure", + "sample_id": sample_id, + "status": "failed", + }, + "metrics": {}, + "source_artifacts": [], + } + mode = "validate-only" + counts = { + "selected_n": 1, + "source_valid_n": 0, + "source_skipped_n": 1, + "evaluated_n": 0, + "validated_only_n": 0, + } + metrics_aggregate = {} + encoded_ids = json.dumps( + [sample_id], ensure_ascii=False, separators=(",", ":") + ).encode("utf-8") + manifest = { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "evaluation_id": "test-evaluation", + "created_at": "2026-07-12T00:00:00+00:00", + "mode": mode, + "command": "synthetic", + "command_argv": ["synthetic"], + "source_runs": [ + { + "run_id": run_id, + "run_dir": "/synthetic/run-1", + "summary": artifact("/synthetic/a3_run_summary.json", "d" * 64), + "manifest": artifact("/synthetic/run_manifest.json", "e" * 64), + "sample_ids": artifact("/synthetic/sample_ids.json", "f" * 64), + "summary_counts": { + "reported_total": 1, + "reported_completed": None, + "reported_failed": 0 if evaluated else 1, + "reported_sample_n": 1, + "completed_n": 1 if evaluated else 0, + "failed_n": 0 if evaluated else 1, + "other_status_n": 0, + "formal_complete": True, + }, + "selection": { + "max_samples": None, + "selected_n": 1, + "formal_complete_run": True, + }, + "observed_counts": counts, + } + ], + "matched_samples": { + "count": 1, + "ordered_sample_ids": [sample_id], + "ordered_sample_ids_sha256": hashlib.sha256(encoded_ids).hexdigest(), + }, + "protocol_lineage": { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "bbox_input": "A3 B0 left-top-width-height", + "bbox_metric_frame": "xyxy, clipped to canvas", + "validity_filter": { + "minimum_canvas_fraction": 0.001, + "comparison": "area >= threshold", + }, + "alignment": "PKU layout-wide-min aggregation quirk", + "overlay_denominator": "non-underlay element count", + "underlay": "P-Full v1 has no legal underlay class; current A3 is N/A", + "readability": "background-only float64 Sobel", + "blank_background": {"renderer_contract": "R3", "rgb": [255, 255, 255]}, + "occlusion": { + "mode": "skip", + "detector": None, + "sobel_fallback_forbidden": True, + }, + "code_runtime_lineage": { + "sources": { + "sega_metrics.py": artifact("/code/sega_metrics.py", "4" * 64), + "a3_sega_evaluator.py": artifact( + "/code/a3_sega_evaluator.py", "5" * 64 + ), + "evaluate_a3_sega.py": artifact( + "/code/evaluate_a3_sega.py", "6" * 64 + ), + "saliency_basnet_isnet.py": artifact( + "/code/saliency_basnet_isnet.py", "7" * 64 + ), + }, + "runtime": { + "python": { + "version": "3.9", + "implementation": "CPython", + "executable": "/python", + }, + "platform": { + "system": "Linux", + "release": "synthetic", + "machine": "x86_64", + "platform": "Linux-synthetic", + }, + "numpy": "1", + "cv2": "1", + "Pillow": "1", + "torch": "1", + "torchvision": "1", + "transformers": "1", + "rembg": "1", + "onnxruntime": "1", + "pydantic": "2", + "pooch": "1", + "onnxruntime_available_providers": ["CPUExecutionProvider"], + }, + }, + }, + "write_policy": { + "source_runs_read_only": True, + "output_is_versioned_sidecar": True, + "existing_output_overwrite": False, + "atomic_staging_publish": True, + "atomic_no_replace_publish": "renameat2(RENAME_NOREPLACE)", + }, + "cost": {"llm_api_calls": 0, "llm_cost_usd": 0.0, "model_downloads": 0}, + } + aggregate = { + "schema_version": SCHEMA_VERSION, + "protocol_version": PROTOCOL_VERSION, + "evaluation_id": "test-evaluation", + "runs": { + run_id: {"sample_counts": counts, "metrics": metrics_aggregate} + }, + } + return manifest, [record], aggregate + + +def _synthetic_code_runtime(): + manifest, _, _ = _valid_sidecar_bundle() + return copy.deepcopy(manifest["protocol_lineage"]["code_runtime_lineage"]) + + +def _synthetic_detector_without_runtime(): + def artifact(path, sha): + return {"path": path, "sha256": sha, "size_bytes": 1} + + revision = "a" * 40 + snapshot = "/models/BASNet/snapshot" + return { + "contract": "frozen BASNet + ISNet, pixel-wise maximum", + "fusion": "pixelwise_max", + "fail_closed": True, + "network_downloads_allowed": False, + "basnet": { + "model_id": "creative-graphic-design/BASNet", + "revision": revision, + "load_contract": { + "revision_argument": revision, + "from_pretrained_path": snapshot, + "local_files_only": True, + "trust_remote_code": True, + "force_download": False, + }, + "snapshot_path": snapshot, + "artifacts": { + "config.json": artifact(f"{snapshot}/config.json", "1" * 64), + "model.safetensors": artifact( + f"{snapshot}/model.safetensors", "2" * 64 + ), + "configuration_basnet.py": artifact( + f"{snapshot}/configuration_basnet.py", "3" * 64 + ), + "modeling_basnet.py": artifact( + f"{snapshot}/modeling_basnet.py", "4" * 64 + ), + }, + }, + "isnet": { + "model_id": "rembg/isnet-general-use", + "artifact": { + "path": "/models/isnet.onnx", + "sha256": saliency_adapter._ISNET_EXPECTED_SHA256, + "md5": saliency_adapter._ISNET_EXPECTED_MD5, + "size_bytes": 178648008, + }, + "provider": "CPUExecutionProvider", + "download_path": "forbidden; direct verified ONNX bytes", + }, + "pku_deviation": "ISNet replaces PFPN", + "implementation_sha256": "5" * 64, + "runtime_identity": None, + } + + +def _validate_only_args(fixture: dict, tmp_path: Path, evaluation_id: str): + return argparse.Namespace( + run_dir=[fixture["run_dir"]], + evaluation_id=evaluation_id, + output_root=tmp_path / "output", + saliency_mode=SALIENCY_MODE_SKIP, + validate_only=True, + max_samples=None, + ) + + +def _set_failed_sample_order(fixture: dict, sample_ids) -> None: + run_dir = fixture["run_dir"] + entries = [ + {"sample_id": sample_id, "status": "failed", "final": None, "stage_calls": 0} + for sample_id in sample_ids + ] + _write_json( + run_dir / "a3_run_summary.json", + {"total": len(entries), "failed": len(entries), "samples": entries}, + ) + sample_ids_path = run_dir / "sample_ids.json" + _write_json(sample_ids_path, list(sample_ids)) + manifest_path = run_dir / "run_manifest.json" + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + manifest["sample_ids_snapshot"].update( + {"count": len(entries), "sha256": sha256_file(sample_ids_path)} + ) + _write_json(manifest_path, manifest) + + +def test_clip_filter_drives_underlay_na_and_blank_background(): + raw_layout = [ + (CLS_UNDERLAY, (0.0, 0.0, 0.1, 0.1)), # 0.01 < 0.1% of 10x10 + (CLS_TEXT, (-2.0, -2.0, 8.0, 8.0)), + ] + layout, dropped = clip_and_filter_layout(raw_layout, 10, 10) + assert dropped == 1 + assert layout == [(CLS_TEXT, (0.0, 0.0, 8.0, 8.0))] + + result = evaluate_sample(_blank_sample(layout), SALIENCY_MODE_SKIP) + + assert result["metrics"]["Und_l"]["status"] == "not_applicable" + assert result["metrics"]["Und_l"]["value"] is None + assert result["metrics"]["Und_s"]["value"] is None + expected_white = np.full((10, 10, 3), 255, dtype=np.uint8) + assert result["background_array_sha256"] == sha256_array(expected_white) + assert result["metrics"]["Rea"]["value"] == pytest.approx(0.0) + + +def test_aggregate_counts_source_failed_rows_as_skipped(): + records = [ + _metric_row("ok-zero", 0.0), + _metric_row("ok-one", 1.0), + { + "run_id": "run", + "sample_id": "failed", + "status": "source_skipped", + "reason": "B0 failed", + "metrics": {}, + }, + ] + + aggregate = aggregate_metric_records(records) + + assert aggregate["Ali"]["value"] == pytest.approx(0.5) + assert aggregate["Ali"]["valid_n"] == 2 + assert aggregate["Ali"]["skipped_n"] == 1 + assert aggregate["Ali"]["zero_contribution_n"] == 1 + assert aggregate["Und_l"]["value"] is None + assert aggregate["Und_l"]["applicable_n"] == 0 + assert aggregate["Und_l"]["not_applicable_n"] == 2 + assert aggregate["Und_l"]["skipped_n"] == 1 + + +def test_load_run_summary_validates_manifest_snapshot_and_counts(tmp_path): + fixture = _make_run(tmp_path) + source, entries = load_run_summary(fixture["run_dir"]) + assert len(entries) == 1 + assert source["summary_counts"]["formal_complete"] is True + assert source["summary_counts"]["completed_n"] == 1 + + summary_path = fixture["run_dir"] / "a3_run_summary.json" + summary = json.loads(summary_path.read_text(encoding="utf-8")) + summary["total"] = 2 + _write_json(summary_path, summary) + with pytest.raises(A3EvaluationError, match="total"): + load_run_summary(fixture["run_dir"]) + + +def test_load_run_summary_rejects_failed_count_mismatch(tmp_path): + fixture = _make_run(tmp_path) + summary_path = fixture["run_dir"] / "a3_run_summary.json" + summary = json.loads(summary_path.read_text(encoding="utf-8")) + summary["failed"] = 1 + _write_json(summary_path, summary) + + with pytest.raises(A3EvaluationError, match="failed"): + load_run_summary(fixture["run_dir"]) + + +def test_load_run_summary_rejects_snapshot_id_mismatch(tmp_path): + fixture = _make_run(tmp_path) + sample_ids_path = fixture["run_dir"] / "sample_ids.json" + _write_json(sample_ids_path, ["different-sample"]) + manifest_path = fixture["run_dir"] / "run_manifest.json" + manifest = json.loads(manifest_path.read_text(encoding="utf-8")) + manifest["sample_ids_snapshot"]["sha256"] = sha256_file(sample_ids_path) + _write_json(manifest_path, manifest) + + with pytest.raises(A3EvaluationError, match="sample IDs|snapshot"): + load_run_summary(fixture["run_dir"]) + + +def test_formal_cli_rejects_nonterminal_summary(tmp_path): + fixture = _make_run(tmp_path) + summary_path = fixture["run_dir"] / "a3_run_summary.json" + summary = json.loads(summary_path.read_text(encoding="utf-8")) + summary["samples"][0]["status"] = "pending" + _write_json(summary_path, summary) + output_root = tmp_path / "output" + args = argparse.Namespace( + run_dir=[fixture["run_dir"]], + evaluation_id="formal-must-reject", + output_root=output_root, + saliency_mode=SALIENCY_MODE_SKIP, + validate_only=True, + max_samples=None, + ) + + with pytest.raises(A3EvaluationError, match="complete"): + sega_cli.run(args) + assert not output_root.exists() + + +@pytest.mark.parametrize( + ("saliency", "message"), + [ + (np.zeros((10, 10, 1), dtype=np.float32), "shape"), + (np.full((10, 10), np.nan, dtype=np.float32), "NaN|finite"), + (np.full((10, 10), -0.01, dtype=np.float32), r"\[0, 1\]|range"), + (np.full((10, 10), 1.01, dtype=np.float32), r"\[0, 1\]|range"), + ], +) +def test_saliency_contract_fails_closed(saliency, message): + layout = [(CLS_IMAGE_LOGO, (0.0, 0.0, 10.0, 10.0))] + with pytest.raises(A3EvaluationError, match=message): + evaluate_sample( + _blank_sample(layout), + SALIENCY_MODE_FROZEN, + saliency_fn=lambda _background, _shape: saliency, + ) + + +def test_extract_records_background_and_load_rechecks_hash(tmp_path): + fixture = _make_run(tmp_path, with_background=True) + sample = extract_b0_sample( + fixture["run_dir"], fixture["run_id"], fixture["entry"] + ) + background_path = fixture["background_path"].resolve() + artifacts = {Path(item["path"]): item["sha256"] for item in sample["source_artifacts"]} + assert artifacts[background_path] == sha256_file(background_path) + + _write_png(background_path, (200, 100, 50)) + result = evaluate_sample(sample, SALIENCY_MODE_SKIP) + assert result["background_array_sha256"] + with pytest.raises(A3EvaluationError, match="changed"): + verify_source_artifacts_unchanged([result]) + + +def test_extract_rejects_schema_invalid_sega_class_code(tmp_path): + fixture = _make_run(tmp_path, with_background=False) + pfull = json.loads(fixture["pfull_path"].read_text(encoding="utf-8")) + pfull["assets"][0]["sega_class_code"] = CLS_UNDERLAY + _write_json(fixture["pfull_path"], pfull) + r3 = json.loads(fixture["r3_path"].read_text(encoding="utf-8")) + r3["source_pfull_manifest_sha256"] = sha256_file(fixture["pfull_path"]) + _write_json(fixture["r3_path"], r3) + + with pytest.raises(A3EvaluationError, match="schema|extra"): + extract_b0_sample(fixture["run_dir"], fixture["run_id"], fixture["entry"]) + + +def test_extract_requires_completed_summary_final(tmp_path): + fixture = _make_run(tmp_path) + entry = dict(fixture["entry"]) + entry["final"] = None + + with pytest.raises(A3EvaluationError, match="lacks final"): + extract_b0_sample(fixture["run_dir"], fixture["run_id"], entry) + + +def test_extract_requires_persisted_render_hash(tmp_path): + fixture = _make_run(tmp_path) + l0_path = ( + fixture["run_dir"] + / "samples" + / fixture["sample_id"] + / "pipeline" + / "l0_result.json" + ) + l0 = json.loads(l0_path.read_text(encoding="utf-8")) + selected = next( + slot for slot in l0["bundle"]["slots"] if slot["slot_id"] == l0["b0_slot_id"] + ) + selected["render_sha256"] = None + _write_json(l0_path, l0) + + with pytest.raises(A3EvaluationError, match="render_sha256"): + extract_b0_sample( + fixture["run_dir"], fixture["run_id"], fixture["entry"] + ) + + +@pytest.mark.parametrize("mutation", ["duplicate", "missing", "nonfinite"]) +def test_extract_rejects_invalid_candidate_element_contract(tmp_path, mutation): + fixture = _make_run(tmp_path) + l0_path = ( + fixture["run_dir"] + / "samples" + / fixture["sample_id"] + / "pipeline" + / "l0_result.json" + ) + l0 = json.loads(l0_path.read_text(encoding="utf-8")) + selected = next( + slot for slot in l0["bundle"]["slots"] if slot["slot_id"] == l0["b0_slot_id"] + ) + elements = selected["candidate"]["elements"] + if mutation == "duplicate": + elements.append(dict(elements[0])) + elif mutation == "missing": + elements.clear() + else: + elements[0]["left"] = float("nan") + _write_json(l0_path, l0) + + with pytest.raises(A3EvaluationError, match="finite|unique|exactly once"): + extract_b0_sample( + fixture["run_dir"], fixture["run_id"], fixture["entry"] + ) + + +def test_sidecar_is_non_overwriting(tmp_path): + output_dir = tmp_path / "sidecar" / "evaluation" + bundle = _valid_sidecar_bundle() + sega_cli._write_results(output_dir, *bundle) + original = (output_dir / "evaluation_manifest.json").read_bytes() + + with pytest.raises(A3EvaluationError, match="already exists"): + sega_cli._write_results(output_dir, *bundle) + + assert (output_dir / "evaluation_manifest.json").read_bytes() == original + + +def test_sidecar_write_failure_cleans_staging_and_preserves_final_id(tmp_path, monkeypatch): + output_dir = tmp_path / "sidecar" / "evaluation" + bundle = _valid_sidecar_bundle() + original_write_json = sega_cli._write_json + calls = 0 + + def fail_second_write(path, data): + nonlocal calls + calls += 1 + if calls == 2: + raise OSError("synthetic disk failure") + original_write_json(path, data) + + with monkeypatch.context() as patch_context: + patch_context.setattr(sega_cli, "_write_json", fail_second_write) + with pytest.raises(A3EvaluationError, match="publish|write|disk"): + sega_cli._write_results(output_dir, *bundle) + + assert not output_dir.exists() + assert list(output_dir.parent.glob(".evaluation.staging-*")) == [] + + # A failed staging write must not consume the final evaluation ID. + sega_cli._write_results(output_dir, *bundle) + assert (output_dir / "evaluation_manifest.json").is_file() + + +def test_sidecar_broken_symlink_consumes_id(tmp_path): + output_dir = tmp_path / "sidecar" / "evaluation" + output_dir.parent.mkdir(parents=True) + output_dir.symlink_to(tmp_path / "missing-target", target_is_directory=True) + + with pytest.raises(A3EvaluationError, match="already exists"): + sega_cli._write_results(output_dir, *_valid_sidecar_bundle()) + + assert output_dir.is_symlink() + assert list(output_dir.parent.glob(".evaluation.staging-*")) == [] + + +def test_sidecar_publish_race_never_replaces_contender(tmp_path, monkeypatch): + output_dir = tmp_path / "sidecar" / "evaluation" + original_noreplace = sega_cli._rename_directory_noreplace + + def install_contender_then_publish(source, destination): + destination.symlink_to(tmp_path / "missing-race-target", target_is_directory=True) + original_noreplace(source, destination) + + monkeypatch.setattr( + sega_cli, "_rename_directory_noreplace", install_contender_then_publish + ) + with pytest.raises(A3EvaluationError, match="already exists"): + sega_cli._write_results(output_dir, *_valid_sidecar_bundle()) + + assert output_dir.is_symlink() + assert list(output_dir.parent.glob(".evaluation.staging-*")) == [] + + +@pytest.mark.parametrize( + "case", + ["nan", "inf", "unknown_status", "ok_none", "na_with_value", "missing_metric"], +) +def test_sidecar_rejects_invalid_metric_contract_and_cleans_staging(tmp_path, case): + manifest, records, aggregate = copy.deepcopy(_valid_sidecar_bundle(evaluated=True)) + metrics = records[0]["metrics"] + if case == "nan": + metrics["Ali"]["value"] = float("nan") + elif case == "inf": + metrics["Ali"]["value"] = float("inf") + elif case == "unknown_status": + metrics["Ali"]["status"] = "unknown" + elif case == "ok_none": + metrics["Ali"]["value"] = None + elif case == "na_with_value": + metrics["Und_l"]["value"] = 0.0 + else: + metrics.pop("Occ") + output_dir = tmp_path / case / "evaluation" + + with pytest.raises(A3EvaluationError): + sega_cli._write_results(output_dir, manifest, records, aggregate) + + assert not sega_cli._path_lexists(output_dir) + if output_dir.parent.exists(): + assert list(output_dir.parent.glob(".evaluation.staging-*")) == [] + + +def test_sidecar_rejects_aggregate_count_mismatch(tmp_path): + manifest, records, aggregate = copy.deepcopy(_valid_sidecar_bundle(evaluated=True)) + aggregate["runs"]["run-1"]["sample_counts"]["selected_n"] = 2 + output_dir = tmp_path / "count-mismatch" / "evaluation" + + with pytest.raises(A3EvaluationError, match="counts|count"): + sega_cli._write_results(output_dir, manifest, records, aggregate) + + assert not sega_cli._path_lexists(output_dir) + + +@pytest.mark.parametrize( + "case", + [ + "protocol_field", + "code_artifact_hash", + "cost", + "write_policy", + "source_run_artifact", + "canvas_type", + "element_count_type", + "background_field", + "saliency_field", + "runtime_provider", + "command_argv", + ], +) +def test_strict_nested_bundle_contract_rejects_provenance_mutations(tmp_path, case): + manifest, records, aggregate = copy.deepcopy(_valid_sidecar_bundle(evaluated=True)) + if case == "protocol_field": + manifest["protocol_lineage"].pop("readability") + elif case == "code_artifact_hash": + manifest["protocol_lineage"]["code_runtime_lineage"]["sources"][ + "sega_metrics.py" + ].pop("sha256") + elif case == "cost": + manifest["cost"]["model_downloads"] = 1 + elif case == "write_policy": + manifest["write_policy"]["source_runs_read_only"] = False + elif case == "source_run_artifact": + manifest["source_runs"][0]["summary"].pop("size_bytes") + elif case == "canvas_type": + records[0]["canvas"]["width"] = "10" + elif case == "element_count_type": + records[0]["element_counts"]["raw"] = "0" + elif case == "background_field": + records[0]["background"].pop("asset_size_bytes") + elif case == "saliency_field": + records[0]["saliency"].pop("status") + elif case == "runtime_provider": + manifest["protocol_lineage"]["code_runtime_lineage"]["runtime"][ + "onnxruntime_available_providers" + ] = [] + else: + manifest["command_argv"] = ["different"] + output_dir = tmp_path / case / "evaluation" + + with pytest.raises(A3EvaluationError): + sega_cli._write_results(output_dir, manifest, records, aggregate) + + assert not sega_cli._path_lexists(output_dir) + if output_dir.parent.exists(): + assert list(output_dir.parent.glob(".evaluation.staging-*")) == [] + + +def test_empty_protocol_and_write_policy_fixtures_are_rejected(tmp_path): + manifest, records, aggregate = copy.deepcopy(_valid_sidecar_bundle()) + manifest["protocol_lineage"] = {} + manifest["write_policy"] = {} + + with pytest.raises(A3EvaluationError, match="manifest contract"): + sega_cli._write_results(tmp_path / "evaluation", manifest, records, aggregate) + + +def test_frozen_evaluation_rejects_missing_detector_runtime(tmp_path): + manifest, records, aggregate = copy.deepcopy(_valid_sidecar_bundle(evaluated=True)) + manifest["protocol_lineage"]["occlusion"] = { + "mode": SALIENCY_MODE_FROZEN, + "detector": _synthetic_detector_without_runtime(), + "sobel_fallback_forbidden": True, + } + + with pytest.raises(A3EvaluationError, match="detector|manifest contract"): + sega_cli._write_results(tmp_path / "evaluation", manifest, records, aggregate) + + +def test_cli_rejects_cross_run_sample_id_mismatch_before_extraction( + tmp_path, monkeypatch +): + first = _make_run(tmp_path, run_id="a3-first", sample_id="sample-a") + second = _make_run(tmp_path, run_id="a3-second", sample_id="sample-b") + monkeypatch.setattr(sega_cli, "evaluation_code_runtime_lineage", lambda _path: {}) + args = argparse.Namespace( + run_dir=[first["run_dir"], second["run_dir"]], + evaluation_id="mismatch", + output_root=tmp_path / "output", + saliency_mode=SALIENCY_MODE_SKIP, + validate_only=True, + max_samples=None, + ) + + with pytest.raises(A3EvaluationError, match="identical sample IDs"): + sega_cli.run(args) + + +def test_cli_rejects_cross_run_sample_order_mismatch_before_extraction( + tmp_path, monkeypatch +): + first = _make_run(tmp_path, run_id="a3-first") + second = _make_run(tmp_path, run_id="a3-second") + _set_failed_sample_order(first, ["sample-a", "sample-b"]) + _set_failed_sample_order(second, ["sample-b", "sample-a"]) + monkeypatch.setattr(sega_cli, "evaluation_code_runtime_lineage", lambda _path: {}) + args = argparse.Namespace( + run_dir=[first["run_dir"], second["run_dir"]], + evaluation_id="order-mismatch", + output_root=tmp_path / "output", + saliency_mode=SALIENCY_MODE_SKIP, + validate_only=True, + max_samples=None, + ) + + with pytest.raises(A3EvaluationError, match="identical sample IDs"): + sega_cli.run(args) + + +def test_cli_fails_if_code_runtime_lineage_changes_before_publish( + tmp_path, monkeypatch +): + fixture = _make_run(tmp_path) + calls = 0 + + def changing_lineage(_path): + nonlocal calls + calls += 1 + return {"capture": calls} + + monkeypatch.setattr(sega_cli, "evaluation_code_runtime_lineage", changing_lineage) + args = argparse.Namespace( + run_dir=[fixture["run_dir"]], + evaluation_id="code-race", + output_root=tmp_path / "output", + saliency_mode=SALIENCY_MODE_SKIP, + validate_only=True, + max_samples=None, + ) + + with pytest.raises(A3EvaluationError, match="source code|runtime identity"): + sega_cli.run(args) + assert not (tmp_path / "output").exists() + + +def test_cli_rehashes_detector_artifacts_after_evaluation(tmp_path, monkeypatch): + fixture = _make_run(tmp_path) + detector_calls = 0 + + def changing_detector_lineage(): + nonlocal detector_calls + detector_calls += 1 + return {"artifact_generation": detector_calls} + + real_evaluate_sample = evaluate_sample + monkeypatch.setattr(sega_cli, "evaluation_code_runtime_lineage", lambda _path: {}) + monkeypatch.setattr(sega_cli, "frozen_detector_lineage", changing_detector_lineage) + monkeypatch.setattr( + sega_cli, + "evaluate_sample", + lambda extracted, _mode: real_evaluate_sample(extracted, SALIENCY_MODE_SKIP), + ) + args = argparse.Namespace( + run_dir=[fixture["run_dir"]], + evaluation_id="detector-race", + output_root=tmp_path / "output", + saliency_mode=SALIENCY_MODE_FROZEN, + validate_only=False, + max_samples=None, + ) + + with pytest.raises(A3EvaluationError, match="detector artifacts changed"): + sega_cli.run(args) + assert detector_calls == 2 + assert not (tmp_path / "output").exists() + + +def test_source_mutation_after_read_once_capture_fails_at_final_publish( + tmp_path, monkeypatch +): + fixture = _make_run(tmp_path) + original_load = a3_evaluator._load_json_captured + mutated = False + + def capture_then_mutate(path): + nonlocal mutated + data, artifact = original_load(path) + if path.name == "l0_result.json" and not mutated: + path.write_bytes(path.read_bytes() + b" ") + mutated = True + return data, artifact + + monkeypatch.setattr(a3_evaluator, "_load_json_captured", capture_then_mutate) + monkeypatch.setattr( + sega_cli, + "evaluation_code_runtime_lineage", + lambda _path: _synthetic_code_runtime(), + ) + args = _validate_only_args(fixture, tmp_path, "capture-window-mutation") + final_dir = ( + args.output_root / PROTOCOL_VERSION / "capture-window-mutation" + ) + + with pytest.raises(A3EvaluationError, match="source artifact changed"): + sega_cli.run(args) + + assert mutated is True + assert not sega_cli._path_lexists(final_dir) + assert list(final_dir.parent.glob(".capture-window-mutation.staging-*")) == [] + + +def test_source_mutation_after_staging_roundtrip_cleans_staging( + tmp_path, monkeypatch +): + fixture = _make_run(tmp_path) + render_path = ( + fixture["run_dir"] + / "samples" + / fixture["sample_id"] + / "renders" + / "r0_candidate_01.png" + ) + original_roundtrip = sega_cli._verify_staging_round_trip + + def roundtrip_then_mutate(*args, **kwargs): + original_roundtrip(*args, **kwargs) + render_path.write_bytes(render_path.read_bytes() + b"mutated") + + monkeypatch.setattr( + sega_cli, "_verify_staging_round_trip", roundtrip_then_mutate + ) + monkeypatch.setattr( + sega_cli, + "evaluation_code_runtime_lineage", + lambda _path: _synthetic_code_runtime(), + ) + args = _validate_only_args(fixture, tmp_path, "staging-window-mutation") + final_dir = args.output_root / PROTOCOL_VERSION / "staging-window-mutation" + + with pytest.raises(A3EvaluationError, match="source artifact changed"): + sega_cli.run(args) + + assert not sega_cli._path_lexists(final_dir) + assert list(final_dir.parent.glob(".staging-window-mutation.staging-*")) == [] + + +def test_same_source_path_with_different_capture_hashes_fails_immediately(): + records = [ + { + "source_artifacts": [ + {"path": "/same/path", "sha256": "a" * 64, "size_bytes": 1}, + {"path": "/same/path", "sha256": "b" * 64, "size_bytes": 1}, + ] + } + ] + + with pytest.raises(A3EvaluationError, match="same source path"): + verify_source_artifacts_unchanged(records) + + +def test_cli_records_canonical_arguments_in_manifest(tmp_path, monkeypatch): + fixture = _make_run(tmp_path) + monkeypatch.setattr( + sega_cli, + "evaluation_code_runtime_lineage", + lambda _path: _synthetic_code_runtime(), + ) + args = _validate_only_args(fixture, tmp_path, "canonical-args") + + output_dir = sega_cli.run(args) + manifest = json.loads( + (output_dir / "evaluation_manifest.json").read_text(encoding="utf-8") + ) + + assert manifest["command_argv"][0] == sys.executable + assert manifest["command_argv"][1] == str(Path(sega_cli.__file__).resolve()) + assert manifest["command"] == __import__("shlex").join(manifest["command_argv"]) + + +@pytest.mark.parametrize("state", ["missing", "wrong"]) +def test_isnet_invalid_artifact_fails_before_factory_or_pooch( + tmp_path, monkeypatch, state +): + import pooch + import rembg + + u2net_home = tmp_path / "u2net" + u2net_home.mkdir() + if state == "wrong": + (u2net_home / "isnet-general-use.onnx").write_bytes(b"wrong") + calls = {"factory": 0, "pooch": 0} + + def factory(*_args, **_kwargs): + calls["factory"] += 1 + raise AssertionError("rembg factory must not run") + + def retrieve(*_args, **_kwargs): + calls["pooch"] += 1 + raise AssertionError("pooch must not run") + + monkeypatch.setenv("U2NET_HOME", str(u2net_home)) + monkeypatch.setattr(rembg, "new_session", factory) + monkeypatch.setattr(pooch, "retrieve", retrieve) + monkeypatch.setattr(saliency_adapter, "_ISNET_SESSION", None) + monkeypatch.setattr(saliency_adapter, "_ISNET_RUNTIME_IDENTITY", None) + + with pytest.raises(RuntimeError, match="missing|hash mismatch"): + saliency_adapter._load_isnet_session() + assert calls == {"factory": 0, "pooch": 0} + + +def test_isnet_exact_session_records_runtime_provider_identity(monkeypatch): + import onnxruntime + + artifact = { + "path": "/verified/isnet-general-use.onnx", + "sha256": saliency_adapter._ISNET_EXPECTED_SHA256, + "md5": saliency_adapter._ISNET_EXPECTED_MD5, + "size_bytes": 4, + } + calls = [] + + class FakeInnerSession: + def __init__(self, model_bytes, providers, sess_options): + calls.append((model_bytes, providers, sess_options)) + + @staticmethod + def get_providers(): + return ["CPUExecutionProvider"] + + monkeypatch.setattr( + saliency_adapter, + "_read_verified_isnet_artifact", + lambda: (artifact, b"onnx"), + ) + monkeypatch.setattr(onnxruntime, "InferenceSession", FakeInnerSession) + monkeypatch.setattr( + onnxruntime, "get_available_providers", lambda: ["CPUExecutionProvider"] + ) + monkeypatch.setattr(saliency_adapter, "_ISNET_SESSION", None) + monkeypatch.setattr(saliency_adapter, "_ISNET_RUNTIME_IDENTITY", None) + + session = saliency_adapter._load_isnet_session() + identity = saliency_adapter.detector_runtime_identity(require_loaded=False)["isnet"] + + assert session is not None + assert identity["session_reported_name"] == "isnet-general-use" + assert identity["session_class_module"] == "rembg.sessions.dis_general_use" + assert identity["session_class_name"] == "DisSession" + assert identity["active_providers"] == ["CPUExecutionProvider"] + assert identity["verified_artifact"] == artifact + assert calls[0][0] == b"onnx" + assert calls[0][1] == ["CPUExecutionProvider"] + + +def test_basnet_load_binds_cached_revision_and_remote_code_files(tmp_path, monkeypatch): + revision = "a" * 40 + repo = tmp_path / "hub" / "models--creative-graphic-design--BASNet" + snapshot = repo / "snapshots" / revision + snapshot.mkdir(parents=True) + (repo / "refs").mkdir() + (repo / "refs" / "main").write_text(revision, encoding="utf-8") + for filename in saliency_adapter._BASNET_REQUIRED_FILES: + (snapshot / filename).write_bytes(filename.encode("ascii")) + u2net_home = tmp_path / "u2net" + u2net_home.mkdir() + (u2net_home / "isnet-general-use.onnx").write_bytes(b"isnet") + monkeypatch.setenv("HF_HOME", str(tmp_path)) + monkeypatch.delenv("HF_HUB_CACHE", raising=False) + monkeypatch.setenv("U2NET_HOME", str(u2net_home)) + monkeypatch.setattr(saliency_adapter, "_BASNET_MODEL", None) + monkeypatch.setattr(saliency_adapter, "_BASNET_RUNTIME_IDENTITY", None) + monkeypatch.setattr( + saliency_adapter, + "_verify_basnet_executed_code", + lambda _model, _snapshot: { + "configuration_basnet.py": { + "executed_path": "/dynamic/configuration_basnet.py", + "executed_sha256": "1" * 64, + "authoritative_path": str(snapshot / "configuration_basnet.py"), + "authoritative_sha256": "1" * 64, + }, + "modeling_basnet.py": { + "executed_path": "/dynamic/modeling_basnet.py", + "executed_sha256": "2" * 64, + "authoritative_path": str(snapshot / "modeling_basnet.py"), + "authoritative_sha256": "2" * 64, + }, + }, + ) + monkeypatch.setattr( + saliency_adapter, + "_verify_isnet_artifact", + lambda: { + "path": str(u2net_home / "isnet-general-use.onnx"), + "sha256": "3" * 64, + "md5": "4" * 32, + "size_bytes": 5, + }, + ) + + calls = [] + + class FakeModel: + def eval(self): + return self + + import transformers + + def fake_from_pretrained(model_id, **kwargs): + calls.append((model_id, kwargs)) + return FakeModel() + + monkeypatch.setattr(transformers.AutoModel, "from_pretrained", fake_from_pretrained) + saliency_adapter._load_basnet() + + assert calls[0][0] == str(snapshot.resolve()) + assert calls[0][1]["revision"] == revision + assert calls[0][1]["local_files_only"] is True + assert calls[0][1]["trust_remote_code"] is True + assert calls[0][1]["force_download"] is False + runtime = saliency_adapter.detector_runtime_identity(require_loaded=False)["basnet"] + assert runtime["requested_revision"] == revision + assert runtime["resolved_snapshot"] == str(snapshot.resolve()) + lineage = frozen_detector_lineage() + assert set(lineage["basnet"]["artifacts"]) == set( + saliency_adapter._BASNET_REQUIRED_FILES + ) + assert lineage["basnet"]["load_contract"]["revision_argument"] == revision + + +@pytest.mark.parametrize("mismatch", [False, True]) +def test_basnet_executed_dynamic_code_is_bound_to_snapshot( + tmp_path, monkeypatch, mismatch +): + snapshot = tmp_path / "snapshot" + dynamic = tmp_path / "dynamic" + snapshot.mkdir() + dynamic.mkdir() + config_source = "class BASNetConfig:\n pass\n" + model_source = "class BASNetModel:\n pass\n" + (snapshot / "configuration_basnet.py").write_text( + config_source, encoding="utf-8" + ) + (snapshot / "modeling_basnet.py").write_text(model_source, encoding="utf-8") + (dynamic / "configuration_basnet.py").write_text( + config_source, encoding="utf-8" + ) + (dynamic / "modeling_basnet.py").write_text( + model_source + ("# stale dynamic cache\n" if mismatch else ""), + encoding="utf-8", + ) + + def load_module(name, path): + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + monkeypatch.setitem(sys.modules, name, module) + spec.loader.exec_module(module) + return module + + config_module = load_module( + f"dynamic_config_{mismatch}", dynamic / "configuration_basnet.py" + ) + model_module = load_module( + f"dynamic_model_{mismatch}", dynamic / "modeling_basnet.py" + ) + model = model_module.BASNetModel() + model.config = config_module.BASNetConfig() + + if mismatch: + with pytest.raises(RuntimeError, match="differs from snapshot"): + saliency_adapter._verify_basnet_executed_code(model, snapshot) + else: + executed = saliency_adapter._verify_basnet_executed_code(model, snapshot) + assert executed["configuration_basnet.py"]["executed_path"] == str( + (dynamic / "configuration_basnet.py").resolve() + ) + assert ( + executed["modeling_basnet.py"]["executed_sha256"] + == executed["modeling_basnet.py"]["authoritative_sha256"] + ) + + +def test_basnet_primary_unwrap_selects_refined_dout(): + import torch + + primary = torch.ones((1, 1, 2, 2)) + secondary = torch.zeros((1, 1, 2, 2)) + output = SimpleNamespace( + activated=SimpleNamespace(dout=primary, d1=secondary, db=secondary) + ) + + assert saliency_adapter._unwrap_basnet_primary(output, torch) is primary diff --git a/tests/metagpt/ext/agentlayout/test_a3_stage_binding.py b/tests/metagpt/ext/agentlayout/test_a3_stage_binding.py new file mode 100644 index 000000000..6559cbd37 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_stage_binding.py @@ -0,0 +1,534 @@ +from __future__ import annotations + +import asyncio +import json +import subprocess +import sys +from pathlib import Path +from typing import Any, Dict, List, Optional + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.a3_config import A3RunConfig, ModelCallConfig +from metagpt.ext.agentlayout.a3_pipeline import A3L0Pipeline +from metagpt.ext.agentlayout.a3_pipeline_l1 import A3L1GatedPipeline +from metagpt.ext.agentlayout.a3_stage_binding import A3StageBinding +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, +) +from metagpt.ext.agentlayout.schema import Candidate, CompositionConcept +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) +from metagpt.ext.agentlayout.tools.director_contract import A3ConceptSet +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + JudgeCriticResult, +) +from metagpt.ext.agentlayout.tools.judge_select import JudgeSelectResult +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3Asset, + R3AssetManifest, + R3NormalizationConfig, +) + + +MODEL = "gpt-5.4-mini-2026-03-17" +REPO = Path(__file__).resolve().parents[4] + + +def _config(loop: str = "L0") -> A3RunConfig: + stages = ["analyst", "asset_planner", "composition_director", "coordinate_mapper", "judge_select"] + if loop == "L1-Gated": + stages.append("judge_critic") + return A3RunConfig( + loop=loop, + internal_judge=MODEL, + dataset_split="crello-cached-smoke", + models={stage: ModelCallConfig(model=MODEL) for stage in stages}, + ) + + +def _manifest(tmp_path: Path) -> R3AssetManifest: + def _png(name: str, size=(64, 32)) -> str: + path = tmp_path / name + if not path.exists(): + Image.new("RGBA", size, (200, 40, 40, 255)).save(path) + return str(path) + + return R3AssetManifest( + sample_id="sample01", + canvas_width=800, + canvas_height=600, + normalization=R3NormalizationConfig(), + source_pfull_manifest_sha256="2" * 64, + assets=[ + R3Asset( + asset_id="asset_0001", + role="placeable", + media_type="text_bitmap", + content="SUMMER SALE", + asset_ref=_png("asset_0001_r3_text.png", (96, 18)), + sha256="0" * 64, + bitmap_width=96, + bitmap_height=18, + bitmap_aspect_ratio=96 / 18, + ), + R3Asset( + asset_id="asset_0002", + role="placeable", + media_type="raster", + content=None, + asset_ref=_png("asset_0002.png", (64, 64)), + sha256="1" * 64, + bitmap_width=64, + bitmap_height=64, + bitmap_aspect_ratio=1.0, + ), + ], + ) + + +def _analyst_output() -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Quiet blue background", + design_intent="Promote a summer sale", + style_keywords=["bright"], + assets=[ + A3AssetUnderstanding( + asset_id="asset_0001", + semantic_type="title", + description="Main sale heading", + semantic_role="primary message", + ), + A3AssetUnderstanding( + asset_id="asset_0002", + semantic_type="product_image", + description="Featured shoe", + semantic_role="focal product", + ), + ], + ) + + +def _tree() -> A3LayoutTree: + return A3LayoutTree( + source="predicted", + nodes=[ + A3TreeNode( + asset_id="asset_0001", + semantic_type="title", + semantic_role="primary message", + group_id="group_main", + group_label="main", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.9, + ), + A3TreeNode( + asset_id="asset_0002", + semantic_type="product_image", + semantic_role="focal product", + group_id="group_main", + group_label="main", + parent_id="root", + relation_to_parent="root", + ordering_priority=1, + confidence=0.9, + ), + ], + groups=[ + A3TreeGroup( + group_id="group_main", + label="main", + member_ids=["asset_0001", "asset_0002"], + ordering_priority=0, + confidence=0.9, + ) + ], + ) + + +def _concept(name: str) -> CompositionConcept: + return CompositionConcept( + name=name, + focal_element="asset_0002", + focal_placement="left half", + text_placement="right third", + visual_flow="Z pattern", + whitespace="wide margins", + typography_mood="bold sans", + ) + + +def _candidate(shift: int = 0) -> Candidate: + return Candidate( + candidate_id="candidate", + elements=[ + {"id": "asset_0001", "left": 400 + shift, "top": 60, "width": 320, "height": 60, "z_index": 1}, + {"id": "asset_0002", "left": 40, "top": 100, "width": 300, "height": 300, "z_index": 0}, + ], + ) + + +class FakeActions: + """Duck-typed stand-ins for the six real A3 Actions.""" + + def __init__(self, critic_issues: Optional[List[ActionableIssue]] = None): + self.kwargs: Dict[str, List[Dict[str, Any]]] = {} + self.critic_issues = critic_issues or [] + + def _log(self, stage: str, kwargs: Dict[str, Any]) -> None: + self.kwargs.setdefault(stage, []).append(kwargs) + + @property + def analyst_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("analyst", kwargs) + return _analyst_output() + + return _A() + + @property + def planner_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("planner", kwargs) + return _tree() + + return _A() + + @property + def director_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("director", kwargs) + return A3ConceptSet( + concepts=[_concept("Left bleed"), _concept("Top banner"), _concept("Centered")] + ) + + return _A() + + @property + def mapper_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("mapper", kwargs) + shift = 40 if kwargs.get("revision_instruction") else 0 + return _candidate(shift) + + return _A() + + @property + def judge_select_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("judge_select", kwargs) + return JudgeSelectResult( + ranking=["r0_candidate_02", "r0_candidate_01", "r0_candidate_03"], + selected_candidate_id="r0_candidate_02", + ) + + return _A() + + @property + def judge_critic_action(self): + outer = self + + class _A: + async def run(self, **kwargs): + outer._log("judge_critic", kwargs) + return JudgeCriticResult(issues=outer.critic_issues) + + return _A() + + +def _binding(tmp_path: Path, fakes: FakeActions, *, with_critic: bool = False) -> A3StageBinding: + background = tmp_path / "background_overview.png" + if not background.exists(): + Image.new("RGB", (256, 192), "white").save(background) + return A3StageBinding( + r3_manifest=_manifest(tmp_path), + background_overview_path=background, + renders_dir=tmp_path / "renders", + stages_dir=tmp_path / "stages", + analyst_action=fakes.analyst_action, + planner_action=fakes.planner_action, + director_action=fakes.director_action, + mapper_action=fakes.mapper_action, + judge_select_action=fakes.judge_select_action, + judge_critic_action=fakes.judge_critic_action if with_critic else None, + ) + + +def _l0(binding: A3StageBinding, config: Optional[A3RunConfig] = None) -> A3L0Pipeline: + return A3L0Pipeline( + config=config or _config(), + analyst=binding.analyst, + planner=binding.planner, + director=binding.director, + mapper=binding.mapper, + renderer=binding.renderer, + qc=binding.qc, + judge_select=binding.judge_select, + ) + + +def test_binding_runs_l0_end_to_end_with_real_renderer_and_qc(tmp_path): + fakes = FakeActions() + binding = _binding(tmp_path, fakes) + result = asyncio.run(_l0(binding).run(user_brief="Summer sale poster")) + + assert result.b0_slot_id == "r0_candidate_02" + # Real renderer produced three PNG renders at canvas size. + for slot in result.bundle.slots: + render = Path(slot.render_ref) + assert render.exists() + with Image.open(render) as image: + assert image.size == (800, 600) + # Real QC ran and completeness is the full-coverage fraction. + assert all(slot.qc_completeness == 1.0 for slot in result.bundle.slots) + # Director saw the canvas string and a base64 background attachment. + director_kwargs = fakes.kwargs["director"][0] + assert director_kwargs["canvas"] == "800x600" + assert isinstance(director_kwargs["background_image_b64"], str) + # The three mapper calls got distinct write-once artifact directories. + mapper_dirs = [str(entry["artifacts_dir"]) for entry in fakes.kwargs["mapper"]] + assert len(set(mapper_dirs)) == 3 + # Judge-Select received structured context from the frozen Analyst output. + assert fakes.kwargs["judge_select"][0]["context"] == { + "design_intent": "Promote a summer sale" + } + + +def test_binding_records_one_call_record_per_llm_stage(tmp_path): + fakes = FakeActions() + binding = _binding(tmp_path, fakes) + asyncio.run(_l0(binding).run(user_brief="brief")) + stages = [record.stage for record in binding.call_records] + assert stages == [ + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "coordinate_mapper", + "coordinate_mapper", + "judge_select", + ] + # Fake actions expose no cost manager: usage is honestly None, not zero. + assert all(record.usage is None for record in binding.call_records) + records_path = tmp_path / "stage_calls.json" + binding.write_call_records(records_path) + assert len(json.loads(records_path.read_text())) == 7 + with pytest.raises(FileExistsError): + binding.write_call_records(records_path) + + +def test_binding_runs_l1_with_repair_using_b0_concept(tmp_path): + issue = ActionableIssue( + target_asset_ids=["asset_0001"], + issue_type="overlap", + observation="headline overlaps product", + desired_change="move headline clear of the product", + ) + fakes = FakeActions(critic_issues=[issue]) + binding = _binding(tmp_path, fakes, with_critic=True) + pipeline = A3L1GatedPipeline( + config=_config("L1-Gated"), + analyst=binding.analyst, + planner=binding.planner, + director=binding.director, + mapper=binding.mapper, + renderer=binding.renderer, + qc=binding.qc, + judge_select=binding.judge_select, + judge_critic=binding.judge_critic, + repair=binding.repair, + verifier=binding.verifier, + ) + result = asyncio.run(pipeline.run(user_brief="brief")) + + assert result.repair_attempted is True + # Judge-Critic saw only the B0 render. + critic_kwargs = fakes.kwargs["judge_critic"][0] + assert critic_kwargs["b0_candidate_id"] == "r0_candidate_02" + assert critic_kwargs["known_asset_ids"] == ["asset_0001", "asset_0002"] + # The revision call reused B0's concept (slot 02 -> index 1: "Top banner") + # and carried the gate instruction plus B0's elements as the editing base. + revision = fakes.kwargs["mapper"][3] + assert revision["concept"].name == "Top banner" + assert "exactly ONE revision" in revision["revision_instruction"] + assert revision["base_elements"][0]["id"] == "asset_0001" + # Deterministic verifier ran over real geometry with the manifest canvas. + assert result.verifications is not None + assert "a3.issue-verifier.v1" in result.verifications[0].evidence + + +def test_qc_reports_missing_elements_as_incomplete(tmp_path): + fakes = FakeActions() + binding = _binding(tmp_path, fakes) + asyncio.run(_l0(binding).run(user_brief="brief")) + partial = { + "candidate_id": "candidate", + "elements": [ + {"id": "asset_0002", "left": 40, "top": 100, "width": 300, "height": 300, "z_index": 0} + ], + } + verdict = binding.qc(partial) + assert verdict.passed is False + assert verdict.completeness == 0.5 + assert any("missing" in violation.lower() for violation in verdict.violations) + + +def test_renderer_and_qc_refuse_to_run_before_the_analyst(tmp_path): + binding = _binding(tmp_path, FakeActions()) + with pytest.raises(RuntimeError, match="Analyst has not run"): + binding.qc({"candidate_id": "candidate", "elements": []}) + + +def test_hydrate_from_r0_restores_state_for_the_tail_only(tmp_path): + fakes = FakeActions( + critic_issues=[ + ActionableIssue( + target_asset_ids=["asset_0001"], + issue_type="overlap", + observation="headline overlaps product", + desired_change="move headline clear of the product", + ) + ] + ) + binding = _binding(tmp_path, fakes, with_critic=True) + concepts = [_concept("Left bleed"), _concept("Top banner"), _concept("Centered")] + binding.hydrate_from_r0(analyst_output=_analyst_output(), concepts=concepts) + + # QC/renderer are usable immediately — no analyst call happened. + verdict = binding.qc(_candidate().model_dump(mode="json")) + assert verdict.completeness == 1.0 + assert "analyst" not in fakes.kwargs + + # Repair resolves B0's concept from the hydrated concept order. + from metagpt.ext.agentlayout.a3_pipeline import R0SlotRecord as Slot + from metagpt.ext.agentlayout.tools.repair_gate import evaluate_repair_gate + + b0 = Slot( + slot_id="r0_candidate_02", + status="completed", + candidate=_candidate().model_dump(mode="json"), + ) + decision = evaluate_repair_gate( + JudgeCriticResult(issues=fakes.critic_issues), ["asset_0001", "asset_0002"] + ) + condition = None # fakes ignore the condition payload + asyncio.run(binding.repair(b0, decision, condition)) + assert fakes.kwargs["mapper"][0]["concept"].name == "Top banner" + + +def test_run_command_refuses_paid_calls_without_explicit_authorization(tmp_path): + from metagpt.ext.agentlayout.run_manifest import A3RunStore + + config_path = tmp_path / "config.json" + config_path.write_text(_config("L0").model_dump_json()) + ids_path = tmp_path / "ids.json" + ids_path.write_text(json.dumps(["sample01", "sample02"])) + A3RunStore.create( + runs_root=tmp_path / "runs", + run_id="smoke-test", + config_path=config_path, + sample_ids_path=ids_path, + repo_root=REPO, + ) + proc = subprocess.run( + [ + sys.executable, + str(REPO / "layout_agent" / "run_a3.py"), + "run", + "--run-dir", + str(tmp_path / "runs" / "smoke-test"), + ], + capture_output=True, + text=True, + timeout=120, + ) + assert proc.returncode == 2 + payload = json.loads(proc.stdout) + assert payload["authorized"] is False + # L0 + default T2: analyst+planner+director+3 mappers+select = 7 per sample. + assert payload["budget"]["model_calls_per_sample_max"] == 7 + assert payload["budget"]["model_calls_total_max"] == 14 + assert "--allow-api-calls" in proc.stderr + # Refusal must not have created any run outputs. + assert not (tmp_path / "runs" / "smoke-test" / "a3_run_summary.json").exists() + + +def test_t3_run_preflights_complete_human_oracle_set_before_paid_gate(tmp_path): + from metagpt.ext.agentlayout.run_manifest import A3RunStore + + config_path = tmp_path / "config.json" + config_path.write_text(_config("L0").model_dump_json()) + ids_path = tmp_path / "ids.json" + ids_path.write_text(json.dumps(["sample01", "sample02"])) + run_dir = tmp_path / "runs" / "t3-test" + A3RunStore.create( + runs_root=tmp_path / "runs", + run_id="t3-test", + config_path=config_path, + sample_ids_path=ids_path, + repo_root=REPO, + ) + base_command = [ + sys.executable, + str(REPO / "layout_agent" / "run_a3.py"), + "run", + "--run-dir", + str(run_dir), + "--tree-arm", + "T3", + ] + missing = subprocess.run( + base_command, + capture_output=True, + text=True, + timeout=120, + ) + assert missing.returncode == 1 + assert "requires --oracle-trees-from" in missing.stderr + + oracle_root = tmp_path / "oracles" + oracle_root.mkdir() + oracle = _tree().model_copy(update={"source": "human_oracle"}) + for sample_id in ("sample01", "sample02"): + (oracle_root / f"{sample_id}.json").write_text(oracle.model_dump_json()) + manifest_path = run_dir / "samples" / sample_id / "inputs" / "r3" + manifest_path.mkdir(parents=True) + manifest = _manifest(tmp_path).model_copy(update={"sample_id": sample_id}) + (manifest_path / "r3_asset_manifest.json").write_text( + manifest.model_dump_json() + ) + refused = subprocess.run( + [*base_command, "--oracle-trees-from", str(oracle_root)], + capture_output=True, + text=True, + timeout=120, + ) + assert refused.returncode == 2 + payload = json.loads(refused.stdout) + assert payload["budget"]["model_calls_per_sample_max"] == 6 + assert payload["budget"]["model_calls_total_max"] == 12 + assert payload["budget"]["oracle_trees_from"] == str(oracle_root.resolve()) + assert not (run_dir / "a3_run_summary.json").exists() diff --git a/tests/metagpt/ext/agentlayout/test_a3_tree_accuracy.py b/tests/metagpt/ext/agentlayout/test_a3_tree_accuracy.py new file mode 100644 index 000000000..c34b1d1a8 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_a3_tree_accuracy.py @@ -0,0 +1,301 @@ +"""Tests for the A3 tree-prediction accuracy evaluation bundle.""" +from __future__ import annotations + +import json +from pathlib import Path +from typing import Dict, List, Mapping, Optional, Sequence + +import pytest + +from metagpt.ext.agentlayout.evaluation.a3_tree_accuracy import ( + bootstrap_ci, + evaluate_tree_accuracy_run, + publish_bundle, + write_bytes_once, +) + + +def _asset_id(index: int) -> str: + return f"asset_{index:04d}" + + +def _tree_payload( + groups: Sequence[Sequence[int]], + *, + source: str, + parents: Optional[Dict[int, int]] = None, + confidences: Optional[Dict[int, float]] = None, + semantic_types: Optional[Dict[int, str]] = None, +) -> Dict: + parents = parents or {} + confidences = confidences or {} + semantic_types = semantic_types or {} + nodes: List[Dict] = [] + group_payloads: List[Dict] = [] + for group_index, members in enumerate(groups): + group_id = f"group_{group_index}" + group_payloads.append( + { + "group_id": group_id, + "label": f"group {group_index}", + "member_ids": [_asset_id(m) for m in members], + "ordering_priority": group_index, + "confidence": 1.0, + } + ) + for member in members: + parent = parents.get(member) + nodes.append( + { + "asset_id": _asset_id(member), + "semantic_type": semantic_types.get(member, "title"), + "semantic_role": f"role {member}", + "group_id": group_id, + "group_label": f"group {group_index}", + "parent_id": "root" if parent is None else _asset_id(parent), + "relation_to_parent": "root" if parent is None else "supports", + "ordering_priority": member, + "confidence": confidences.get(member, 1.0), + } + ) + return { + "schema_version": "a3.layout-tree.v1", + "source": source, + "root_label": "foreground_layout", + "nodes": nodes, + "groups": group_payloads, + } + + +def _make_run( + tmp_path: Path, + predictions: Mapping[str, Optional[Dict]], + oracles: Mapping[str, Dict], +) -> Dict[str, Path]: + run_dir = tmp_path / "run" + oracle_dir = tmp_path / "oracles" + oracle_dir.mkdir(parents=True) + (run_dir / "samples").mkdir(parents=True) + (run_dir / "sample_ids.json").write_text(json.dumps(sorted(predictions))) + for sample_id, payload in predictions.items(): + if payload is None: + continue + stage_dir = run_dir / "samples" / sample_id / "stages" / "planner" + stage_dir.mkdir(parents=True) + (stage_dir / "layout_tree.json").write_text(json.dumps(payload)) + for sample_id, payload in oracles.items(): + (oracle_dir / f"{sample_id}.json").write_text(json.dumps(payload)) + return {"run_dir": run_dir, "oracle_dir": oracle_dir} + + +REPO_ROOT = Path(__file__).resolve().parents[4] + + +def _evaluate(paths: Dict[str, Path]) -> Dict: + return evaluate_tree_accuracy_run( + run_dir=paths["run_dir"], + oracle_dir=paths["oracle_dir"], + repo_root=REPO_ROOT, + ) + + +def test_perfect_prediction_scores_one(tmp_path: Path) -> None: + groups = [[0, 1], [2]] + parents = {1: 0} + paths = _make_run( + tmp_path, + {"s1": _tree_payload(groups, source="predicted", parents=parents)}, + {"s1": _tree_payload(groups, source="human_oracle", parents=parents)}, + ) + result = _evaluate(paths) + metrics = result["metrics"] + assert metrics["same_group"]["macro"]["f1"]["mean"] == 1.0 + assert metrics["parent_child"]["macro"]["f1"]["mean"] == 1.0 + assert metrics["semantic_type_accuracy"]["micro"]["pooled"] == 1.0 + assert metrics["semantic_role_accuracy"]["role"] == "lower_bound_only" + assert result["denominators"]["n_evaluated"] == 1 + + +def test_planner_failure_is_explicit_denominator(tmp_path: Path) -> None: + groups = [[0], [1]] + paths = _make_run( + tmp_path, + { + "s1": _tree_payload(groups, source="predicted"), + "s2": None, # Planner failed: no tree on disk + }, + { + "s1": _tree_payload(groups, source="human_oracle"), + "s2": _tree_payload(groups, source="human_oracle"), + }, + ) + result = _evaluate(paths) + denominators = result["denominators"] + assert denominators["n_sample_ids"] == 2 + assert denominators["n_evaluated"] == 1 + assert denominators["n_planner_failures"] == 1 + assert denominators["planner_failure_ids"] == ["s2"] + failure_rows = [ + row for row in result["per_sample"] if row["status"] == "planner_failure" + ] + assert [row["sample_id"] for row in failure_rows] == ["s2"] + assert failure_rows[0]["metrics"] is None + + +def test_asset_coverage_mismatch_recorded_not_silent(tmp_path: Path) -> None: + paths = _make_run( + tmp_path, + {"s1": _tree_payload([[0], [1]], source="predicted")}, + {"s1": _tree_payload([[0], [1], [2]], source="human_oracle")}, + ) + result = _evaluate(paths) + denominators = result["denominators"] + assert denominators["n_evaluated"] == 0 + assert denominators["n_coverage_mismatch"] == 1 + assert denominators["coverage_mismatch_ids"] == ["s1"] + row = result["per_sample"][0] + assert row["status"] == "coverage_mismatch" + assert "asset coverage mismatch" in row["reason"] + + +def test_uncertain_nodes_reported_in_denominators(tmp_path: Path) -> None: + groups = [[0, 1], [2]] + paths = _make_run( + tmp_path, + {"s1": _tree_payload(groups, source="predicted")}, + { + "s1": _tree_payload( + groups, source="human_oracle", confidences={2: 0.5} + ) + }, + ) + result = _evaluate(paths) + denominators = result["denominators"] + assert denominators["n_uncertain_nodes_total"] == 1 + assert denominators["n_certain_nodes_total"] == 2 + assert denominators["n_samples_with_uncertain_nodes"] == 1 + row = result["per_sample"][0] + assert row["metrics"]["uncertain_node_ids"] == [_asset_id(2)] + + +def test_empty_relation_sets_score_perfect(tmp_path: Path) -> None: + # All singleton groups + all root parents on both sides: empty-vs-empty + # same-group pairs and parent-child edges must score 1/1/1, not 0. + groups = [[0], [1]] + paths = _make_run( + tmp_path, + {"s1": _tree_payload(groups, source="predicted")}, + {"s1": _tree_payload(groups, source="human_oracle")}, + ) + result = _evaluate(paths) + row = result["per_sample"][0] + assert row["metrics"]["same_group"] == { + "precision": 1.0, + "recall": 1.0, + "f1": 1.0, + "n_true_positive": 0, + "n_predicted": 0, + "n_reference": 0, + } + assert row["metrics"]["parent_child"]["f1"] == 1.0 + + +def test_micro_pooling_weights_by_counts(tmp_path: Path) -> None: + # s1: 1 predicted pair, correct. s2: 3 reference pairs, prediction splits + # the group so 1 of 1 predicted pairs is correct but recall is 1/3. + paths = _make_run( + tmp_path, + { + "s1": _tree_payload([[0, 1], [2]], source="predicted"), + "s2": _tree_payload([[0, 1], [2]], source="predicted"), + }, + { + "s1": _tree_payload([[0, 1], [2]], source="human_oracle"), + "s2": _tree_payload([[0, 1, 2]], source="human_oracle"), + }, + ) + result = _evaluate(paths) + micro = result["metrics"]["same_group"]["micro"]["pooled"] + assert micro["n_true_positive"] == 2 + assert micro["n_predicted"] == 2 + assert micro["n_reference"] == 4 + assert micro["precision"] == 1.0 + assert micro["recall"] == 0.5 + macro = result["metrics"]["same_group"]["macro"] + assert macro["recall"]["mean"] == pytest.approx((1.0 + 1 / 3) / 2) + + +def test_deterministic_rerun_produces_identical_aggregate(tmp_path: Path) -> None: + groups = [[0, 1], [2, 3], [4]] + parents = {1: 0, 3: 2} + predictions = { + "s1": _tree_payload([[0, 1], [2], [3, 4]], source="predicted", parents={1: 0}), + "s2": _tree_payload(groups, source="predicted", parents=parents), + } + oracles = { + "s1": _tree_payload(groups, source="human_oracle", parents=parents), + "s2": _tree_payload(groups, source="human_oracle", parents=parents), + } + first = _evaluate(_make_run(tmp_path / "a", predictions, oracles)) + second = _evaluate(_make_run(tmp_path / "b", predictions, oracles)) + # Run/oracle dirs differ; everything else (metrics, CIs, denominators) + # must be byte-identical across reruns. + for key in ("metrics", "denominators", "bootstrap", "per_sample"): + assert first[key] == second[key] + ci = first["metrics"]["same_group"]["macro"]["f1"]["ci95"] + assert ci is not None and ci["seed"] == 20260712 and ci["resamples"] == 10_000 + + +def test_bootstrap_ci_requires_two_samples() -> None: + assert bootstrap_ci([1.0], lambda values: sum(values)) is None + ci = bootstrap_ci([0.0, 1.0], lambda values: sum(values) / len(values)) + assert ci is not None + assert 0.0 <= ci["low"] <= ci["high"] <= 1.0 + + +def test_publish_bundle_is_write_once(tmp_path: Path) -> None: + groups = [[0], [1]] + paths = _make_run( + tmp_path, + {"s1": _tree_payload(groups, source="predicted")}, + {"s1": _tree_payload(groups, source="human_oracle")}, + ) + output_dir = tmp_path / "out" + publish_bundle( + result=_evaluate(paths), + output_dir=output_dir, + evaluation_id="test-eval", + command_argv=["test"], + ) + assert (output_dir / "aggregate.json").exists() + jsonl_lines = (output_dir / "per_sample.jsonl").read_text().splitlines() + assert len(jsonl_lines) == 1 # exactly one line per sample, no blank lines + assert json.loads(jsonl_lines[0])["sample_id"] == "s1" + manifest = json.loads((output_dir / "evaluation_manifest.json").read_text()) + assert manifest["write_once"] is True + assert manifest["artifact_sha256"].keys() == {"aggregate.json", "per_sample.jsonl"} + with pytest.raises(FileExistsError): + publish_bundle( + result=_evaluate(paths), + output_dir=output_dir, + evaluation_id="test-eval", + command_argv=["test"], + ) + + +def test_write_bytes_once_refuses_overwrite(tmp_path: Path) -> None: + target = tmp_path / "artifact.bin" + write_bytes_once(target, b"first") + with pytest.raises(FileExistsError): + write_bytes_once(target, b"second") + assert target.read_bytes() == b"first" + + +def test_missing_oracle_fails_loud(tmp_path: Path) -> None: + paths = _make_run( + tmp_path, + {"s1": _tree_payload([[0], [1]], source="predicted")}, + {}, + ) + with pytest.raises(FileNotFoundError): + _evaluate(paths) diff --git a/tests/metagpt/ext/agentlayout/test_analyst_prompt_template.py b/tests/metagpt/ext/agentlayout/test_analyst_prompt_template.py index cfa923fab..5e7eb0fb9 100644 --- a/tests/metagpt/ext/agentlayout/test_analyst_prompt_template.py +++ b/tests/metagpt/ext/agentlayout/test_analyst_prompt_template.py @@ -270,3 +270,30 @@ def test_renderer_keeps_white_default_for_legacy_spec(): r, g, b, a = img.convert("RGBA").getpixel((0, 0)) assert (r, g, b) == (255, 255, 255) assert a == 255 + + +# ---------------------------------------------------------------- Step 80 text-as-image + + +def test_asset_input_allows_both_ref_and_content(): + """Step 80: pre-rendered text assets carry the bitmap AND its string.""" + import pytest as _pytest + + from metagpt.ext.agentlayout.actions.analyze_brief import AssetInput + + both = AssetInput(asset_ref="/x/asset_08_text.png", content="CLEAN UP") + assert both.asset_ref and both.content + ref_only = AssetInput(asset_ref="/x/a.png") + content_only = AssetInput(content="hello") + assert ref_only.asset_ref and content_only.content + with _pytest.raises(ValueError): + AssetInput() + + +def test_analyst_prompt_has_text_png_rules(): + from metagpt.ext.agentlayout.actions.analyze_brief import PROMPT_TEMPLATE + + assert "_text.png" in PROMPT_TEMPLATE + assert "PRE-RENDERED TEXT" in PROMPT_TEMPLATE + assert "never re-typeset" in PROMPT_TEMPLATE + assert "Do NOT additionally emit a plain text element" in PROMPT_TEMPLATE diff --git a/tests/metagpt/ext/agentlayout/test_analyst_vision.py b/tests/metagpt/ext/agentlayout/test_analyst_vision.py new file mode 100644 index 000000000..a599c7c5b --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_analyst_vision.py @@ -0,0 +1,243 @@ +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from PIL import Image, ImageDraw + +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, + analyst_output_to_design_spec, + build_analyst_prompt, + build_background_overview, + build_text_only_analyst_prompt, + build_contact_sheets, + build_vision_packet, + parse_analyst_output, + save_vision_packet, + validate_asset_coverage, +) +from metagpt.ext.agentlayout.tools.pfull_preprocessor import prepare_pfull_sample +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3NormalizationConfig, + prepare_r3_sample, +) + + +def _png(path: Path, size, color, *, transparent_border=False) -> str: + image = Image.new("RGBA", size, (0, 0, 0, 0) if transparent_border else color) + if transparent_border: + ImageDraw.Draw(image).rectangle((5, 5, size[0] - 6, size[1] - 6), fill=color) + image.save(path) + return str(path) + + +def _r3_manifest(tmp_path: Path, *, foreground_count=2, with_background=True): + source = tmp_path / "source" + source.mkdir(parents=True) + elements = [] + index = 0 + if with_background: + background = _png(source / "background.png", (200, 100), (10, 20, 180, 255)) + elements.append({"idx": index, "type_code": 2, "asset_ref": background}) + index += 1 + for offset in range(foreground_count): + if offset % 2 == 0: + ref = _png( + source / f"text_{offset}.png", + (100 + offset, 30), + (220, 20, 20, 255), + transparent_border=True, + ) + elements.append( + { + "idx": index, + "type_code": 1, + "kind": "text", + "content": f"TEXT {offset}", + "asset_ref": ref, + "left": 900, + "top": 800, + "width": 700, + "height": 600, + } + ) + else: + ref = _png(source / f"image_{offset}.png", (40, 80), (20, 180, 20, 255)) + elements.append( + {"idx": index, "type_code": 4, "kind": "background_candidate", "asset_ref": ref} + ) + index += 1 + (source / "meta.json").write_text( + json.dumps( + { + "id": "vision-sample", + "title": "Vision Theme", + "canvas_width": 200, + "canvas_height": 100, + "elements": elements, + } + ) + ) + pfull = tmp_path / "pfull" + r3 = tmp_path / "r3" + prepare_pfull_sample(source, pfull) + return prepare_r3_sample( + pfull / "asset_manifest.json", r3, R3NormalizationConfig() + ) + + +def _valid_output(manifest) -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Blue quiet background.", + design_intent="Promote the supplied message.", + style_keywords=["clean"], + language="en", + assets=[ + A3AssetUnderstanding( + asset_id=asset.asset_id, + semantic_type="title" if asset.media_type == "text_bitmap" else "product_image", + description="Visible foreground asset", + semantic_role="primary message" if asset.media_type == "text_bitmap" else "supporting image", + ) + for asset in manifest.foreground_assets() + ], + ) + + +def test_background_overview_contains_only_base_background(tmp_path: Path): + manifest = _r3_manifest(tmp_path) + overview = build_background_overview(manifest).convert("RGB") + colors = set(overview.getdata()) + assert colors == {(10, 20, 180)} + assert (220, 20, 20) not in colors + assert (20, 180, 20) not in colors + + +def test_contact_sheets_cover_all_foregrounds_in_stable_order(tmp_path: Path): + manifest = _r3_manifest(tmp_path, foreground_count=23) + sheets = build_contact_sheets(manifest) + assert len(sheets) == 2 + packet = build_vision_packet(manifest, "Use every asset") + assert len(packet.images) == 3 # background + two contact pages + assert packet.image_labels == [ + "background_overview.png", + "asset_contact_sheet_01.png", + "asset_contact_sheet_02.png", + ] + prompt_positions = [packet.prompt.index(asset.asset_id) for asset in manifest.foreground_assets()] + assert prompt_positions == sorted(prompt_positions) + + +def test_prompt_has_content_and_aspect_but_no_paths_or_gt_geometry(tmp_path: Path): + manifest = _r3_manifest(tmp_path) + packet = build_vision_packet(manifest, "Brief") + assert "TEXT 0" in packet.prompt + assert "bitmap_aspect_ratio" in packet.prompt + assert str(tmp_path) not in packet.prompt + for forbidden in ("asset_ref", "native_width", "native_height", '"left"', '"top"', '"bbox"'): + assert forbidden not in packet.prompt + assert len(packet.prompt_sha256) == 64 + + +def test_saved_packet_is_versioned_and_non_overwritable(tmp_path: Path): + packet = build_vision_packet(_r3_manifest(tmp_path), "Brief") + output = tmp_path / "packet" + save_vision_packet(packet, output) + request = json.loads((output / "analyst_request.json").read_text()) + assert request["prompt_sha256"] == packet.prompt_sha256 + assert request["image_labels"] == packet.image_labels + assert all((output / label).is_file() for label in packet.image_labels) + with pytest.raises(FileExistsError): + save_vision_packet(packet, output) + + +def test_analyst_output_requires_exact_asset_coverage(tmp_path: Path): + manifest = _r3_manifest(tmp_path) + output = _valid_output(manifest) + validate_asset_coverage(output, manifest) + incomplete = output.model_copy(update={"assets": output.assets[:-1]}) + with pytest.raises(ValueError, match="coverage mismatch"): + validate_asset_coverage(incomplete, manifest) + reclassified = output.model_copy( + update={ + "assets": [ + output.assets[0].model_copy(update={"semantic_type": "background_image"}), + *output.assets[1:], + ] + } + ) + with pytest.raises(ValueError, match="cannot be reclassified"): + validate_asset_coverage(reclassified, manifest) + + +def test_asset_understanding_rejects_background_image_at_schema_level(tmp_path: Path): + # A3-08 smoke fix: the parse/retry loop must see a per-asset error, not + # only the post-hoc coverage failure. + manifest = _r3_manifest(tmp_path) + payload = _valid_output(manifest).model_dump(mode="json") + payload["assets"][0]["semantic_type"] = "background_image" + with pytest.raises(ValueError, match="cannot use"): + A3AnalystOutput.model_validate(payload) + prompt = build_analyst_prompt(manifest, "brief") + assert 'must NEVER be "background_image"' in prompt + + +def test_text_only_analyst_prompt_declares_no_visual_access(tmp_path: Path): + # Gate A ablation arm: same contract, zero images, no invented visuals. + manifest = _r3_manifest(tmp_path) + prompt = build_text_only_analyst_prompt(manifest, "Summer sale poster") + assert "NO visual access" in prompt + assert "contact-sheet" not in prompt + assert 'must NEVER be "background_image"' in prompt + assert "invent visual details" in prompt + # Same leakage rules as the vision arm. + assert "/home/" not in prompt + assert "Do NOT output coordinates" in prompt + + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/actions/analyze_a3_text_only.py").read_text() + assert "support_image_input" not in source + assert "aask(attempt_prompt)" in source and "images=" not in source + assert "actual_model != self.expected_model" in source + assert "Previous response validation error" in source + + +def test_analyst_output_parser_accepts_fenced_json(tmp_path: Path): + manifest = _r3_manifest(tmp_path) + expected = _valid_output(manifest) + parsed = parse_analyst_output( + "Here is the result:\n```json\n" + expected.model_dump_json() + "\n```" + ) + assert parsed == expected + + +def test_design_spec_uses_manifest_ids_refs_and_no_invented_assets(tmp_path: Path): + manifest = _r3_manifest(tmp_path) + spec = analyst_output_to_design_spec(_valid_output(manifest), manifest) + assert spec.canvas.background_asset_ref == next( + asset.asset_ref for asset in manifest.assets if asset.role == "background" + ) + assert [element.id for element in spec.foreground_elements()] == [ + asset.asset_id for asset in manifest.foreground_assets() + ] + by_id = {asset.asset_id: asset for asset in manifest.assets} + assert all(element.asset_ref == by_id[element.id].asset_ref for element in spec.elements) + + +def test_no_background_produces_explicit_blank_overview(tmp_path: Path): + manifest = _r3_manifest(tmp_path, with_background=False) + overview = build_background_overview(manifest) + assert overview.size == (768, 384) + assert manifest.background_asset_id is None + + +def test_action_source_forbids_text_fallback_and_enforces_model_and_images(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/actions/analyze_a3.py").read_text() + assert "text-only fallback is forbidden" in source + assert "actual_model != self.expected_model" in source + assert "aask(prompt, images=images)" in source + assert "Previous response validation error" in source diff --git a/tests/metagpt/ext/agentlayout/test_compose_concept.py b/tests/metagpt/ext/agentlayout/test_compose_concept.py new file mode 100644 index 000000000..e2d8778ea --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_compose_concept.py @@ -0,0 +1,283 @@ +"""Unit tests for ComposeConcept -- the "先想再畫" Composition Director. + +These tests do NOT hit a real LLM. They exercise the parse / fallback / prompt +helpers directly, plus ``run()`` with a fake llm installed onto the action the +same way ``test_generator_vision_channel.py`` does. + +Run: + pytest tests/metagpt/ext/agentlayout/test_compose_concept.py -v --no-cov +""" +from __future__ import annotations + +import json +from typing import Any, List, Optional + +import pytest + +from metagpt.ext.agentlayout.actions.compose_concept import ComposeConcept +from metagpt.ext.agentlayout.schema import ( + Canvas, + ConceptBatch, + DesignSpec, + Element, + SemanticType, + VisualType, +) + + +# ---------------------------------------------------------------- fixtures + + +def _el(eid: str, sem: SemanticType, vis: VisualType, content: Optional[str] = None) -> Element: + return Element( + id=eid, + semantic_type=sem, + visual_type=vis, + content=content if vis == VisualType.TEXT else None, + inferred=False, + importance=3, + semantic_relevance=0.8, + ) + + +def _spec() -> DesignSpec: + return DesignSpec( + canvas=Canvas(width=1080, height=1920), + elements=[ + _el("bg_1", SemanticType.BACKGROUND_IMAGE, VisualType.IMAGE), + _el("photo_1", SemanticType.PRODUCT_IMAGE, VisualType.IMAGE), + _el("title_1", SemanticType.TITLE, VisualType.TEXT, "Big Sale Today"), + ], + hard_constraints=[], + style_keywords=["bold", "modern"], + language="en", + ) + + +def _concept_obj(name: str, focal: str = "photo_1") -> dict: + return { + "name": name, + "focal_element": focal, + "focal_placement": "left half bleeding to the edge", + "text_placement": "right third, right-aligned", + "visual_flow": "Z-pattern", + "whitespace": "generous right margin", + "typography_mood": "bold display, white on dark", + "text_photo_relation": "beside", + } + + +class _FakeLLM: + """Returns a canned response for every aask; records prompts and images.""" + + def __init__(self, supports_vision: bool, canned_response: str): + self.supports_vision = supports_vision + self.canned_response = canned_response + self.calls: List[dict] = [] + + def support_image_input(self) -> bool: + return self.supports_vision + + async def aask(self, prompt: str, images: Optional[List[str]] = None, **kwargs: Any) -> str: + self.calls.append({"prompt": prompt, "images": images, "kwargs": kwargs}) + return self.canned_response + + +# ---------------------------------------------------------------- _parse + + +def test_parse_bare_array(): + rsp = json.dumps([_concept_obj("A"), _concept_obj("B"), _concept_obj("C")]) + batch = ComposeConcept._parse(rsp, _spec()) + assert isinstance(batch, ConceptBatch) + assert [c.name for c in batch.concepts] == ["A", "B", "C"] + + +def test_parse_strips_markdown_fences(): + rsp = "```json\n" + json.dumps([_concept_obj("A")]) + "\n```" + batch = ComposeConcept._parse(rsp, _spec()) + assert len(batch.concepts) == 1 + assert batch.concepts[0].focal_element == "photo_1" + + +def test_parse_tolerates_dict_wrapper(): + rsp = json.dumps({"concepts": [_concept_obj("A"), _concept_obj("B")]}) + batch = ComposeConcept._parse(rsp, _spec()) + assert len(batch.concepts) == 2 + + +def test_parse_clamps_to_five(): + rsp = json.dumps([_concept_obj(f"c{i}") for i in range(6)]) + batch = ComposeConcept._parse(rsp, _spec()) + assert len(batch.concepts) == 5 # 6 -> clamped, no hard fail + + +def test_parse_rejects_empty_and_nonlist(): + with pytest.raises(ValueError): + ComposeConcept._parse("[]", _spec()) + with pytest.raises(ValueError): + ComposeConcept._parse('"just a string"', _spec()) + + +# ------------------------------------------------------------ _fallback_concept + + +def test_fallback_prefers_product_image(): + c = ComposeConcept._fallback_concept(_spec()) + assert c.focal_element == "photo_1" + assert c.text_photo_relation == "below" + + +def test_fallback_skips_background_when_no_photo(): + spec = DesignSpec( + canvas=Canvas(width=800, height=600), + elements=[ + _el("bg_1", SemanticType.BACKGROUND_IMAGE, VisualType.IMAGE), + _el("title_1", SemanticType.TITLE, VisualType.TEXT, "Hi"), + ], + hard_constraints=[], + style_keywords=[], + language="en", + ) + c = ComposeConcept._fallback_concept(spec) + assert c.focal_element == "title_1" # not the background + + +# ---------------------------------------------------------------- _build_prompt + + +def test_build_prompt_excludes_background_and_names_n(): + prompt = ComposeConcept._build_prompt(_spec(), n=3) + assert "bg_1" not in prompt # background image is the attachment, not an element + assert "photo_1" in prompt and "title_1" in prompt + assert "3 fundamentally DIFFERENT" in prompt + assert "bold, modern" in prompt # style keywords joined + + +def test_build_prompt_without_bg_has_no_underlay_section(): + """Step 76: non-SEGA briefs keep the pre-Step-76 prompt shape.""" + prompt = ComposeConcept._build_prompt(_spec(), n=3) + assert "Pre-placed underlay panels" not in prompt + + +def test_build_prompt_with_underlay_regions_describes_panels_in_words(): + """Step 76: the Director gets panel positions in words + colours, no bbox.""" + from metagpt.ext.agentlayout.schema import BackgroundAnalysis, UnderlayRegion + + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion( + # Canvas 1080x1920; centre (270, 960) -> middle-left. + bbox=[0, 480, 540, 1440], + dominant_color="#1A2B3C", + recommended_text_color="#F4F4F4", + ) + ] + ) + prompt = ComposeConcept._build_prompt(_spec(), n=3, bg=bg) + assert "Pre-placed underlay panels" in prompt + assert "middle-left" in prompt + assert "#1A2B3C" in prompt and "#F4F4F4" in prompt + assert "invitation" in prompt # soft guidance, not a hard rule (Step 62 lesson) + assert "left=0" not in prompt # exact bboxes go to the CoordinateMapper only + + +def test_prompt_requires_text_assignments_and_numbers_panels(): + """Step 77: the Director must assign every text to 'panel N' or a region.""" + from metagpt.ext.agentlayout.schema import BackgroundAnalysis, UnderlayRegion + + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion(bbox=[0, 480, 540, 1440], dominant_color="#1A2B3C", + recommended_text_color="#F4F4F4") + ] + ) + prompt = ComposeConcept._build_prompt(_spec(), n=3, bg=bg) + assert "text_assignments" in prompt + assert "panel 1:" in prompt # panels are numbered for reference + assert "Reference it as 'panel 1'" in prompt + assert "assign EVERY text element" in prompt + + +def test_text_hierarchy_prior_in_prompt_and_constants_pinned(): + """Step 81: GT-calibrated hierarchy guidance must reach the Director. + Re-run the calibration one-liner in IMPLEMENTATION_LOG Step 81 before + changing the constants.""" + from metagpt.ext.agentlayout.actions.compose_concept import TEXT_HIERARCHY_GT + + assert TEXT_HIERARCHY_GT["title_cy_p50"] == 0.475 + assert TEXT_HIERARCHY_GT["title_above_rate"] == 0.662 + assert TEXT_HIERARCHY_GT["info_on_underlay_rate"] == 0.524 + + prompt = ComposeConcept._build_prompt(_spec(), n=3) + assert "TEXT HIERARCHY" in prompt + assert "upper-middle band" in prompt + assert "do not bury it below minor info lines" in prompt + assert "semantic reading order" in prompt + + +def test_rejection_block_shows_prev_concept_and_criticisms(): + """Step 84: on a design reject, the Director must see WHAT was rejected + and WHY, and be told to revise -- not regenerate blind.""" + from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + CompositionConcept, + ConceptBatch, + VisualObservation, + VisualObservationKind, + ) + + prev = ConceptBatch(concepts=[CompositionConcept(**_concept_obj("Old plan"))]) + fb = AestheticFeedback( + common_issues="hierarchy unclear", + suggestions=["group the subtitle with the title"], + visual_observations=[VisualObservation( + kind=VisualObservationKind.TEXT_OVERLAP, target_id="text_1", + second_id="text_2", note="body lines collide")], + ) + prompt = ComposeConcept._build_prompt(_spec(), n=1, feedback=fb, prev_concepts=prev) + assert "previous concept was REJECTED" in prompt + assert "Old plan" in prompt + assert "hierarchy unclear" in prompt + assert "group the subtitle with the title" in prompt + assert "[text_overlap] text_1: body lines collide" in prompt + assert "Do NOT resubmit the same" in prompt + # Step 88: bbox-carrying observations become locked concept constraints. + fb.visual_observations[0].target_bbox = [20, 276, 802, 373] + prompt2 = ComposeConcept._build_prompt(_spec(), n=1, feedback=fb, prev_concepts=prev) + assert "LEDGER CONSTRAINTS" in prompt2 + assert "text_1 must end up INSIDE bbox [20, 276, 802, 373]" in prompt2 + # cold start keeps the prompt clean + assert "REJECTED" not in ComposeConcept._build_prompt(_spec(), n=1) + + +def test_region_position_words_grid(): + assert ComposeConcept._region_position_words([0, 0, 100, 100], 1000, 1000) == "top-left" + assert ComposeConcept._region_position_words([450, 450, 550, 550], 1000, 1000) == "middle-center" + assert ComposeConcept._region_position_words([900, 900, 1000, 1000], 1000, 1000) == "bottom-right" + + +# ---------------------------------------------------------------- run() + + +@pytest.mark.asyncio +async def test_run_parses_three_concepts(): + canned = json.dumps([_concept_obj("A"), _concept_obj("B"), _concept_obj("C")]) + action = ComposeConcept() + fake = _FakeLLM(supports_vision=False, canned_response=canned) + object.__setattr__(action, "llm", fake) + batch = await action.run(spec=_spec()) + assert len(batch.concepts) == 3 + assert len(fake.calls) == 1 # parsed on first attempt, no retry + + +@pytest.mark.asyncio +async def test_run_falls_back_when_llm_unparseable(): + action = ComposeConcept() + fake = _FakeLLM(supports_vision=False, canned_response="I cannot do that.") + object.__setattr__(action, "llm", fake) + batch = await action.run(spec=_spec()) + # No raise: graceful single-concept fallback after MAX_RETRIES attempts. + assert len(batch.concepts) == 1 + assert batch.concepts[0].name == "Centred safe" + assert len(fake.calls) == 3 # MAX_RETRIES exhausted diff --git a/tests/metagpt/ext/agentlayout/test_composition_step62.py b/tests/metagpt/ext/agentlayout/test_composition_step62.py index c930c4226..0431fb787 100644 --- a/tests/metagpt/ext/agentlayout/test_composition_step62.py +++ b/tests/metagpt/ext/agentlayout/test_composition_step62.py @@ -335,20 +335,24 @@ def test_safe_zone_defers_when_directive_present(): ) cand = _compliant_candidate() # photo + title both far outside the tiny zone - # Without a directive the old rule fires on both primaries. + # Without a directive the rule fires on both primaries -- now as a WARNING + # ("先想再畫" refactor downgraded safe-zone from violation to warning). spec.composition = None before = check_candidate(cand, spec, bg=bg) flagged = { t - for v in before.violations - if v.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE - for t in v.targets + for w in before.warnings + if w.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE + for t in w.targets } assert {"photo_1", "title_1"} <= flagged - # With the directive the safe-zone rule defers entirely. + # With the directive the safe-zone rule defers entirely: no warning either. spec.composition = _hero_directive() after = check_candidate(cand, spec, bg=bg) + assert not any( + w.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE for w in after.warnings + ) assert not any( v.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE for v in after.violations ) diff --git a/tests/metagpt/ext/agentlayout/test_crello_preprocessor.py b/tests/metagpt/ext/agentlayout/test_crello_preprocessor.py new file mode 100644 index 000000000..f61a3698b --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_crello_preprocessor.py @@ -0,0 +1,297 @@ +"""Tests for the Step 76 SEGA-style Crello preprocessor. + +All samples are synthetic (tiny PNGs built in tmp_path) -- no cached Crello +data or LLM calls are touched, so the file is CI-safe. +""" +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.schema import BackgroundAnalysis, UnderlayRegion +from metagpt.ext.agentlayout.tools.crello_preprocessor import ( + BG_FILENAME, + INPUT_FILENAME, + PreprocessedSample, + _dominant_color, + _luminance_text_color, + preprocess_sample, +) + +CANVAS_W, CANVAS_H = 200, 100 + + +def _png(path: Path, size, color) -> str: + img = Image.new("RGBA", size, color) + img.save(path, format="PNG") + return str(path) + + +def _make_sample(tmp_path: Path, elements) -> Path: + sample_dir = tmp_path / "crello_test" + sample_dir.mkdir() + meta = { + "id": "test123", + "title": "Synthetic sample", + "canvas_width": CANVAS_W, + "canvas_height": CANVAS_H, + "n_elements": len(elements), + "elements": elements, + } + (sample_dir / "meta.json").write_text(json.dumps(meta)) + return sample_dir + + +@pytest.fixture() +def full_sample(tmp_path: Path): + """Background + photo + large dark underlay + thin divider + text.""" + sample_dir = tmp_path / "crello_full" + sample_dir.mkdir() + bg = _png(sample_dir / "asset_00_background.png", (CANVAS_W, CANVAS_H), (0, 0, 255, 255)) + photo = _png(sample_dir / "asset_01_image.png", (80, 60), (255, 0, 0, 255)) + panel = _png(sample_dir / "asset_02_underlay.png", (100, 40), (32, 32, 32, 255)) + divider = _png(sample_dir / "asset_03_underlay.png", (100, 5), (32, 32, 32, 255)) + elements = [ + {"idx": 0, "kind": "background_candidate", "left": 0, "top": 0, + "width": CANVAS_W, "height": CANVAS_H, "asset_ref": bg}, + {"idx": 1, "kind": "image", "left": 10, "top": 10, "width": 80, "height": 60, + "asset_ref": photo}, + {"idx": 2, "kind": "underlay", "left": 50, "top": 30, "width": 100, "height": 40, + "asset_ref": panel}, + {"idx": 3, "kind": "underlay", "left": 50, "top": 80, "width": 100, "height": 5, + "asset_ref": divider}, + {"idx": 4, "kind": "text", "left": 60, "top": 40, "width": 80, "height": 20, + "content": "HELLO WORLD"}, + ] + meta = { + "id": "full123", + "title": "Full synthetic", + "canvas_width": CANVAS_W, + "canvas_height": CANVAS_H, + "n_elements": len(elements), + "elements": elements, + } + (sample_dir / "meta.json").write_text(json.dumps(meta)) + return sample_dir + + +# ------------------------------------------------------------------ +# Compositing +# ------------------------------------------------------------------ + + +def test_composite_bakes_all_non_text_layers(full_sample, tmp_path): + out = tmp_path / "out" + result = preprocess_sample(full_sample, out) + + bg = Image.open(out / BG_FILENAME).convert("RGB") + assert bg.size == (CANVAS_W, CANVAS_H) + # Outside every foreground layer: background blue shows through. + assert bg.getpixel((195, 95)) == (0, 0, 255) + # Photo pasted over background at (10,10). + assert bg.getpixel((15, 15)) == (255, 0, 0) + # Underlay pasted LAST in z-order wins over the photo on their overlap. + assert bg.getpixel((60, 40)) == (32, 32, 32) + assert result.baked_counts == {"background_candidate": 1, "image": 1, "underlay": 2} + + +def test_text_stays_placeable_not_baked(full_sample, tmp_path): + result = preprocess_sample(full_sample, tmp_path / "out") + assert result.text_contents == ["HELLO WORLD"] + + +def test_negative_offset_plate_crops_cleanly(tmp_path): + photo = _png(tmp_path / "asset_01_image.png", (80, 60), (0, 255, 0, 255)) + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "image", "left": -40, "top": -20, "width": 80, "height": 60, + "asset_ref": photo}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + bg = Image.open(tmp_path / "out" / BG_FILENAME).convert("RGB") + assert bg.getpixel((10, 10)) == (0, 255, 0) # visible part of the plate + assert bg.getpixel((80, 80)) == (255, 255, 255) # white base elsewhere + assert result.baked_counts == {"image": 1} + + +def test_unreadable_asset_is_skipped_not_fatal(tmp_path): + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "image", "left": 0, "top": 0, "width": 50, "height": 50, + "asset_ref": str(tmp_path / "missing.png")}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + assert result.skipped_assets == 1 + assert result.baked_counts == {} + + +# ------------------------------------------------------------------ +# Underlay regions (feed-forward hints) +# ------------------------------------------------------------------ + + +def test_large_underlay_emits_region_thin_divider_filtered(full_sample, tmp_path): + result = preprocess_sample(full_sample, tmp_path / "out") + # Canvas 200x100: min region = max(60, 20)=60 wide, max(24, 6)=24 tall. + # The 100x40 panel passes; the 100x5 divider is filtered out. + assert len(result.underlay_regions) == 1 + region = result.underlay_regions[0] + assert region.bbox == [50, 30, 150, 70] + assert region.dominant_color == "#202020" + assert region.recommended_text_color == "#F4F4F4" # dark panel -> light text + + +def test_region_bbox_clamped_to_canvas(tmp_path): + panel = _png(tmp_path / "asset_02_underlay.png", (120, 60), (240, 240, 240, 255)) + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "underlay", "left": 120, "top": 60, "width": 120, "height": 60, + "asset_ref": panel}, + {"idx": 1, "kind": "text", "left": 130, "top": 70, "width": 60, "height": 20, + "content": "ON PANEL"}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + assert len(result.underlay_regions) == 1 + region = result.underlay_regions[0] + assert region.bbox == [120, 60, CANVAS_W, CANVAS_H] + assert region.recommended_text_color == "#111111" # light panel -> dark text + + +def test_fully_transparent_panel_becomes_frame_with_backdrop_color(tmp_path): + """Step 79 semantics change: a fully transparent shape the GT put text on + is a degenerate FRAME -- the region hint stays valid because its colour is + sampled from the composite backdrop (white base canvas here), not from the + shape's own (non-existent) opaque pixels.""" + panel = _png(tmp_path / "asset_02_underlay.png", (100, 40), (0, 0, 0, 0)) + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "underlay", "left": 50, "top": 30, "width": 100, "height": 40, + "asset_ref": panel}, + {"idx": 1, "kind": "text", "left": 60, "top": 40, "width": 80, "height": 20, + "content": "ON PANEL"}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + assert len(result.underlay_regions) == 1 + region = result.underlay_regions[0] + assert region.panel_type == "frame" + assert region.dominant_color == "#FFFFFF" # white base canvas shows through + assert region.recommended_text_color == "#111111" + + +def test_decorative_shape_without_gt_text_is_not_a_region(tmp_path): + """A large opaque shape nobody put text on (e.g. an illustration) must not + emit a feed-forward hint -- the N=20 eyeball run caught fish ornaments and + a skier silhouette being offered as 'panels'.""" + shape = _png(tmp_path / "asset_02_underlay.png", (100, 40), (32, 32, 32, 255)) + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "underlay", "left": 50, "top": 30, "width": 100, "height": 40, + "asset_ref": shape}, + {"idx": 1, "kind": "text", "left": 10, "top": 80, "width": 60, "height": 15, + "content": "ELSEWHERE"}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + assert result.underlay_regions == [] + assert result.baked_counts == {"underlay": 1} # still baked into the background + + +def test_solid_panel_gets_panel_type_solid(full_sample, tmp_path): + result = preprocess_sample(full_sample, tmp_path / "out") + assert result.underlay_regions[0].panel_type == "solid" + + +def test_outlined_frame_samples_backdrop_not_border(tmp_path): + """Step 79: a white outline box over a dark background must NOT be + reported as a white plate -- the backdrop is dark, so light text is + recommended (the 590afa87 forest-poster failure mode).""" + sample_dir = tmp_path / "crello_frame" + sample_dir.mkdir() + # Dark full-canvas background. + bg = _png(sample_dir / "asset_00_background.png", (CANVAS_W, CANVAS_H), (20, 40, 20, 255)) + # White outline frame: transparent interior, 3px white border. + frame = Image.new("RGBA", (100, 40), (0, 0, 0, 0)) + for x in range(100): + for y in range(40): + if x < 3 or x >= 97 or y < 3 or y >= 37: + frame.putpixel((x, y), (255, 255, 255, 255)) + frame_path = sample_dir / "asset_01_underlay.png" + frame.save(frame_path, format="PNG") + elements = [ + {"idx": 0, "kind": "background_candidate", "left": 0, "top": 0, + "width": CANVAS_W, "height": CANVAS_H, "asset_ref": str(bg)}, + {"idx": 1, "kind": "underlay", "left": 50, "top": 30, "width": 100, "height": 40, + "asset_ref": str(frame_path)}, + {"idx": 2, "kind": "text", "left": 60, "top": 40, "width": 80, "height": 20, + "content": "ON FRAME"}, + ] + meta = {"id": "frame123", "title": "Frame", "canvas_width": CANVAS_W, + "canvas_height": CANVAS_H, "n_elements": 3, "elements": elements} + (sample_dir / "meta.json").write_text(json.dumps(meta)) + + result = preprocess_sample(sample_dir, tmp_path / "out") + assert len(result.underlay_regions) == 1 + region = result.underlay_regions[0] + assert region.panel_type == "frame" + # Backdrop sampled from the composite = dark green, NOT the white border. + assert region.dominant_color == "#142814" + assert region.recommended_text_color == "#F4F4F4" # light text on dark backdrop + + +def test_text_asset_ref_collected_into_text_assets(tmp_path): + """Step 80: text elements with a cached bitmap surface in text_assets.""" + text_png = _png(tmp_path / "asset_01_text.png", (80, 20), (10, 10, 10, 255)) + sample_dir = _make_sample( + tmp_path, + [{"idx": 0, "kind": "text", "left": 10, "top": 10, "width": 80.4, "height": 20.2, + "content": "HELLO", "asset_ref": text_png}, + {"idx": 1, "kind": "text", "left": 10, "top": 50, "width": 60, "height": 15, + "content": "NO IMAGE"}], + ) + result = preprocess_sample(sample_dir, tmp_path / "out") + assert result.text_contents == ["HELLO", "NO IMAGE"] + assert result.text_assets == [ + {"content": "HELLO", "asset_ref": text_png, "width": 80, "height": 20} + ] + + +def test_dominant_color_bucket_voting_ignores_minority_tone(): + img = Image.new("RGBA", (100, 40), (32, 32, 32, 255)) + # Paint a minority stripe (25% of pixels) in near-white. + for x in range(100): + for y in range(30, 40): + img.putpixel((x, y), (250, 250, 250, 255)) + assert _dominant_color(img) == "#202020" + + +def test_luminance_text_color_threshold(): + assert _luminance_text_color("#FFFFFF") == "#111111" + assert _luminance_text_color("#000000") == "#F4F4F4" + + +# ------------------------------------------------------------------ +# Serialisation + schema integration +# ------------------------------------------------------------------ + + +def test_sega_input_json_round_trips(full_sample, tmp_path): + out = tmp_path / "out" + result = preprocess_sample(full_sample, out) + loaded = PreprocessedSample.model_validate_json((out / INPUT_FILENAME).read_text()) + assert loaded == result + + +def test_background_analysis_underlay_regions_default_empty(): + assert BackgroundAnalysis().underlay_regions == [] + + +def test_background_analysis_accepts_underlay_regions(): + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion(bbox=[0, 0, 100, 50], dominant_color="#1A2B3C", + recommended_text_color="#F4F4F4") + ] + ) + assert bg.underlay_regions[0].dominant_color == "#1A2B3C" diff --git a/tests/metagpt/ext/agentlayout/test_elem2design_protocol.py b/tests/metagpt/ext/agentlayout/test_elem2design_protocol.py new file mode 100644 index 000000000..be6ba8bf2 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_elem2design_protocol.py @@ -0,0 +1,180 @@ +"""Tests for the Elem2Design external-baseline protocol logic (pure Python).""" +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path + +import pytest + +_MODULE_PATH = ( + Path(__file__).resolve().parents[4] + / "layout_agent" / "external_baselines" / "elem2design" / "common_protocol.py" +) +_spec = importlib.util.spec_from_file_location("e2d_common_protocol", _MODULE_PATH) +assert _spec is not None and _spec.loader is not None +proto = importlib.util.module_from_spec(_spec) +sys.modules["e2d_common_protocol"] = proto +_spec.loader.exec_module(proto) + + +def _ids(n: int): + return [f"asset_{i:04d}" for i in range(n)] + + +# --------------------------------------------------------------------------- +# Deterministic ordering +# --------------------------------------------------------------------------- + + +def test_layer_order_is_deterministic_and_layer_sorted() -> None: + ids = _ids(30) # >25: must not be truncated + roles = {a: (i % 5) for i, a in enumerate(ids)} + first = proto.deterministic_layer_order(ids, roles, "sampleA") + second = proto.deterministic_layer_order(ids, roles, "sampleA") + assert first == second # deterministic rerun + assert len(first) == 30 and set(first) == set(ids) # no truncation + assert [roles[a] for a in first] == sorted(roles[a] for a in ids) # layer sort + + +def test_layer_order_differs_across_samples_but_not_reruns() -> None: + ids = _ids(10) + roles = {a: 2 for a in ids} # single layer -> pure shuffle visible + order_a = proto.deterministic_layer_order(ids, roles, "sampleA") + order_b = proto.deterministic_layer_order(ids, roles, "sampleB") + assert order_a != order_b # per-sample keying + assert sorted(order_a) == sorted(order_b) == ids + + +def test_index_map_round_trip() -> None: + ordered = ["asset_0002", "asset_0000", "asset_0001"] + mapping = proto.build_index_map(ordered) + for index, asset_id in enumerate(ordered): + assert mapping["index_to_asset"][index] == asset_id + assert mapping["asset_to_index"][asset_id] == index + + +# --------------------------------------------------------------------------- +# Leakage guards +# --------------------------------------------------------------------------- + + +def test_forbidden_key_scan_catches_gt_geometry() -> None: + payload = { + "id": "s1", + "conversations": [{"from": "human", "value": "canvas width 600px"}], + "leak": {"left": 10, "top": 20, "width": 30, "height": 40}, + } + violations = proto.scan_forbidden_keys(payload) + assert {"$.leak.left", "$.leak.top", "$.leak.width", "$.leak.height"} <= set(violations) + + +def test_forbidden_key_scan_allows_canvas_keys_and_clean_payload() -> None: + clean = {"id": "s1", "canvas_width": 600, "canvas_height": 1200, + "conversations": [{"from": "gpt", "value": "{}"}]} + assert proto.scan_forbidden_keys(clean) == [] + + +def test_placeholder_gpt_turns_enforced() -> None: + good = [{"from": "human", "value": "x"}, {"from": "gpt", "value": "{}"}] * 5 + proto.assert_placeholder_gpt_turns(good) + leaked = [dict(t) for t in good] + leaked[1]["value"] = '{"index": 0, "left": 1}' # GT-shaped content + with pytest.raises(ValueError, match="placeholder"): + proto.assert_placeholder_gpt_turns(leaked) + with pytest.raises(ValueError, match="expected 5 gpt turns"): + proto.assert_placeholder_gpt_turns(good[:4]) + + +# --------------------------------------------------------------------------- +# Prediction parsing +# --------------------------------------------------------------------------- + + +def test_split_and_parse_official_concatenation() -> None: + prediction = ( + ' ##### {"index": 0, "left": 1, "top": 2, "width": 3, "height": 4} $$$$$ ' + " ##### {} $$$$$ " + ' ##### {"index": 1, "left": 5, "top": 6, "width": 7, "height": 8}' + ' {"index": 2, "left": 0, "top": 0, "width": 1, "height": 1} $$$$$ ' + ) + turns = proto.split_prediction_turns(prediction) + assert len(turns) == 3 + assert len(proto.parse_elements(turns[0])) == 1 + assert proto.parse_elements(turns[1]) == [] # '{}' marker -> no elements + assert len(proto.parse_elements(turns[2])) == 2 + + +def test_parse_elements_skips_malformed_json() -> None: + assert proto.parse_elements('{"index": 0, "left": bad} {"index": 1, "left": 2.0, ' + '"top": 1, "width": 2, "height": 2}') != [] + assert proto.parse_elements("no json here") == [] + + +# --------------------------------------------------------------------------- +# Conversion (fail-closed) +# --------------------------------------------------------------------------- + + +def _element(index: int, **overrides): + base = {"index": index, "left": 10.0, "top": 20.0, "width": 30.0, "height": 40.0} + base.update(overrides) + return base + + +def test_convert_complete_sample_and_z_order() -> None: + index_to_asset = ["asset_0000", "asset_0001", "asset_0002"] + turns = [[_element(0)], [], [_element(2), _element(1)], [], []] + elements, errors = proto.convert_sample(turns, index_to_asset, {}) + assert errors == [] + by_id = {e["id"]: e for e in elements} + assert by_id["asset_0000"]["z_index"] == 0 # layer 0, order 0 + assert by_id["asset_0002"]["z_index"] == 2000 # layer 2, order 0 + assert by_id["asset_0001"]["z_index"] == 2001 # layer 2, order 1 + assert by_id["asset_0000"]["left"] == 10 and by_id["asset_0000"]["height"] == 40 + + +def test_convert_missing_and_duplicate_fail_closed() -> None: + index_to_asset = ["asset_0000", "asset_0001"] + turns = [[_element(0), _element(0)], [], [], [], []] + _, errors = proto.convert_sample(turns, index_to_asset, {}) + assert any("duplicate prediction" in e for e in errors) + assert any("missing predictions" in e and "asset_0001" in e for e in errors) + + +def test_convert_rejects_invalid_geometry() -> None: + index_to_asset = ["asset_0000"] + for bad in ( + _element(0, width=-5.0), + _element(0, height=0.0), + _element(0, left=float("nan")), + _element(0, top=float("inf")), + _element(0, width="wide"), + {"index": 0, "left": 1.0}, # missing keys + ): + _, errors = proto.convert_sample([[bad], [], [], [], []], index_to_asset, {}) + assert errors, f"expected failure for {bad!r}" + + +def test_convert_rejects_out_of_range_or_extra_index() -> None: + index_to_asset = ["asset_0000"] + turns = [[_element(0), _element(7)], [], [], [], []] + _, errors = proto.convert_sample(turns, index_to_asset, {}) + assert any("bad element index 7" in e for e in errors) + + +def test_convert_text_attributes_mapped_only_for_text_assets() -> None: + index_to_asset = ["asset_0000", "asset_0001"] + texts = {"asset_0000": "Hello", "asset_0001": ""} + turns = [ + [_element(0, font="Roboto", font_size=24.4, color=[255, 0, 10], text_align="center"), + _element(1, font="Roboto", font_size=24.4)], + [], [], [], [], + ] + elements, errors = proto.convert_sample(turns, index_to_asset, texts) + assert errors == [] + text_el = next(e for e in elements if e["id"] == "asset_0000") + image_el = next(e for e in elements if e["id"] == "asset_0001") + assert text_el["font_family"] == "Roboto" and text_el["font_size"] == 24 + assert text_el["color"] == "#ff000a" and text_el["text_align"] == "center" + assert "font_size" not in image_el and "color" not in image_el diff --git a/tests/metagpt/ext/agentlayout/test_feedback_verifier.py b/tests/metagpt/ext/agentlayout/test_feedback_verifier.py new file mode 100644 index 000000000..ba142fea8 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_feedback_verifier.py @@ -0,0 +1,274 @@ +"""Unit tests for the Step 77 feedback verifier (compliance measurement).""" +from __future__ import annotations + +from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + Candidate, + CompositionConcept, + LayoutElement, + VisualObservation, + VisualObservationKind, +) +from metagpt.ext.agentlayout.tools.feedback_verifier import ( + check_observation, + compliance_report, +) + + +def _text_el(eid: str, left: int, top: int, w: int, h: int, + color: str = "#111111", angle: float = 0.0) -> LayoutElement: + return LayoutElement( + id=eid, left=left, top=top, width=w, height=h, z_index=2, angle=angle, + font_family="sans-serif", font_size=40, font_weight="bold", + color=color, text_align="left", + ) + + +def _cand(*els) -> Candidate: + return Candidate(candidate_id="cand_01", elements=list(els)) + + +# ------------------------------------------------------------------ per-kind + + +def test_off_panel_satisfied_when_inside_target_bbox(): + obs = VisualObservation(kind=VisualObservationKind.TEXT_OFF_PANEL, + target_id="title_1", target_bbox=[0, 0, 400, 200]) + inside = check_observation(obs, _cand(_text_el("title_1", 50, 50, 200, 100))) + outside = check_observation(obs, _cand(_text_el("title_1", 500, 500, 200, 100))) + assert inside.verifiable and inside.satisfied is True + assert outside.verifiable and outside.satisfied is False + + +def test_illegible_satisfied_by_color_or_move(): + obs = VisualObservation(kind=VisualObservationKind.TEXT_ILLEGIBLE, + target_id="body_1", target_bbox=[0, 0, 300, 300], + target_color="#F4F4F4") + recolored = check_observation( + obs, _cand(_text_el("body_1", 900, 900, 100, 50, color="#f4f4f4"))) + moved = check_observation( + obs, _cand(_text_el("body_1", 10, 10, 100, 50, color="#111111"))) + neither = check_observation( + obs, _cand(_text_el("body_1", 900, 900, 100, 50, color="#111111"))) + assert recolored.satisfied is True # hex match is case-insensitive + assert moved.satisfied is True # moved into the calm region + assert neither.satisfied is False + + +def test_illegible_color_compliance_uses_tolerance_not_exact_match(): + """#FFFFFF answering a #F4F4F4 target is compliance in spirit; keeping a + dark tone is not (Step 78 measurement-fairness fix).""" + obs = VisualObservation(kind=VisualObservationKind.TEXT_ILLEGIBLE, + target_id="t", target_color="#F4F4F4") + near = check_observation(obs, _cand(_text_el("t", 0, 0, 100, 50, color="#FFFFFF"))) + far = check_observation(obs, _cand(_text_el("t", 0, 0, 100, 50, color="#222222"))) + assert near.satisfied is True + assert far.satisfied is False + + +def test_too_small_and_too_large_check_area_against_target(): + small = VisualObservation(kind=VisualObservationKind.TEXT_TOO_SMALL, + target_id="t", target_area_px=20_000) + grown = check_observation(small, _cand(_text_el("t", 0, 0, 300, 100))) # 30k + still = check_observation(small, _cand(_text_el("t", 0, 0, 100, 100))) # 10k + assert grown.satisfied is True and still.satisfied is False + + large = VisualObservation(kind=VisualObservationKind.TEXT_TOO_LARGE, + target_id="t", target_area_px=20_000) + shrunk = check_observation(large, _cand(_text_el("t", 0, 0, 100, 100))) + assert shrunk.satisfied is True + + +def test_overlap_resolved_when_elements_separate(): + obs = VisualObservation(kind=VisualObservationKind.TEXT_OVERLAP, + target_id="a", second_id="b") + apart = check_observation( + obs, _cand(_text_el("a", 0, 0, 100, 50), _text_el("b", 500, 500, 100, 50))) + colliding = check_observation( + obs, _cand(_text_el("a", 0, 0, 100, 50), _text_el("b", 20, 10, 100, 50))) + assert apart.satisfied is True + assert colliding.satisfied is False + + +def test_tilted_requires_upright_within_tolerance(): + obs = VisualObservation(kind=VisualObservationKind.TEXT_TILTED, target_id="t") + upright = check_observation(obs, _cand(_text_el("t", 0, 0, 100, 50, angle=1.5))) + tilted = check_observation(obs, _cand(_text_el("t", 0, 0, 100, 50, angle=12.0))) + assert upright.satisfied is True + assert tilted.satisfied is False + + +def test_step85_rubric_kinds_verify_as_inside_bbox(): + for kind in (VisualObservationKind.TITLE_MISPLACED, VisualObservationKind.LOCKUP_BROKEN): + obs = VisualObservation(kind=kind, target_id="t", target_bbox=[0, 0, 400, 200]) + inside = check_observation(obs, _cand(_text_el("t", 50, 50, 200, 100))) + outside = check_observation(obs, _cand(_text_el("t", 500, 500, 200, 100))) + assert inside.satisfied is True and outside.satisfied is False + # missing target_bbox -> unverifiable, never a free pass + bare = VisualObservation(kind=kind, target_id="t") + assert check_observation(bare, _cand(_text_el("t", 0, 0, 10, 10))).verifiable is False + + +# ------------------------------------------------------------------ edge cases + + +def test_missing_element_and_missing_target_are_unverifiable(): + gone = check_observation( + VisualObservation(kind=VisualObservationKind.TEXT_TILTED, target_id="ghost"), + _cand(_text_el("t", 0, 0, 100, 50)), + ) + no_target = check_observation( + VisualObservation(kind=VisualObservationKind.TEXT_TOO_SMALL, target_id="t"), + _cand(_text_el("t", 0, 0, 100, 50)), + ) + assert gone.verifiable is False and gone.satisfied is None + assert no_target.verifiable is False + + +def test_compliance_report_rate_excludes_unverifiable(): + cand = _cand(_text_el("t", 50, 50, 200, 100)) + obs = [ + VisualObservation(kind=VisualObservationKind.TEXT_OFF_PANEL, + target_id="t", target_bbox=[0, 0, 400, 200]), # satisfied + VisualObservation(kind=VisualObservationKind.TEXT_TILTED, + target_id="ghost"), # unverifiable + VisualObservation(kind=VisualObservationKind.TEXT_TOO_SMALL, + target_id="t", target_area_px=999_999), # violated + ] + report = compliance_report(obs, cand) + assert report.n_total == 3 + assert report.n_verifiable == 2 + assert report.n_satisfied == 1 + assert report.rate == 0.5 + + +def test_empty_observations_yield_none_rate(): + report = compliance_report([], _cand(_text_el("t", 0, 0, 10, 10))) + assert report.n_total == 0 and report.rate is None + + +# ------------------------------------------------------------------ Step 78 decoupled observer + + +def test_observe_prompt_lists_catalogue_layout_and_panels(): + """Step 78: the inspector prompt is a SEPARATE call -- it carries the + candidate layout, the panel bboxes and the closed catalogue, and it + explicitly de-scopes judging (verdict contamination fix from 77d).""" + from metagpt.ext.agentlayout.actions.judge_aesthetic import JudgeAesthetic + from metagpt.ext.agentlayout.schema import ( + BackgroundAnalysis, + Canvas, + DesignSpec, + Element, + SemanticType, + UnderlayRegion, + VisualType, + ) + + spec = DesignSpec( + canvas=Canvas(width=1080, height=1080), + elements=[Element(id="title_1", semantic_type=SemanticType.TITLE, + visual_type=VisualType.TEXT, content="X", + inferred=False, importance=5, semantic_relevance=0.5)], + hard_constraints=[], style_keywords=[], language="en", + ) + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion(bbox=[36, 30, 1064, 1049], dominant_color="#090102", + recommended_text_color="#F4F4F4") + ] + ) + cand = _cand(_text_el("title_1", 50, 50, 200, 100)) + prompt = JudgeAesthetic._build_observe_prompt(cand, spec, bg) + for kind in ("text_off_panel", "text_illegible", "text_too_small", + "text_too_large", "text_overlap", "text_tilted"): + assert kind in prompt + assert "panel 1: bbox [36, 30, 1064, 1049]" in prompt + assert "title_1: bbox [50, 50, 250, 150]" in prompt + assert "your job is NOT to\njudge it" in prompt # decoupling statement + # Step 87 anti-hallucination guard: per-element 'ok' is a common verdict + assert "COMMON\n verdict" in prompt or "COMMON" in prompt + assert "do NOT invent defects" in prompt + assert "ONE object per element" in prompt + + +def test_judgement_prompt_has_no_catalogue_even_when_flag_on(monkeypatch): + """77d fix: the main judgement prompt must stay byte-identical regardless + of the flag -- the catalogue lives only in the observer call.""" + from metagpt.ext.agentlayout.actions import judge_aesthetic as ja + + monkeypatch.setenv("AGENTLAYOUT_VISUAL_LOOP", "1") + assert "text_off_panel" not in ja.PROMPT_TEMPLATE + assert "visual_observations" not in ja.PROMPT_TEMPLATE + + +def test_parse_observations_tolerates_wrappers_and_drops_invalid(): + from metagpt.ext.agentlayout.actions.judge_aesthetic import JudgeAesthetic + + good = ('[{"kind": "text_off_panel", "target_id": "title_1", ' + '"target_bbox": [0, 0, 100, 100], "note": "x"}]') + assert len(JudgeAesthetic._parse_observations(good)) == 1 + # dict wrapper form + wrapped = '{"visual_observations": %s}' % good + assert len(JudgeAesthetic._parse_observations(wrapped)) == 1 + # invalid kind dropped, valid one kept + mixed = ('[{"kind": "nonsense", "target_id": "a"}, ' + '{"kind": "text_tilted", "target_id": "b"}]') + parsed = JudgeAesthetic._parse_observations(mixed) + assert len(parsed) == 1 and parsed[0].kind.value == "text_tilted" + # garbage / empty + assert JudgeAesthetic._parse_observations("not json") == [] + assert JudgeAesthetic._parse_observations("[]") == [] + + +def test_parse_per_element_reviews_skips_ok_and_maps_fields(): + """Step 87: per-element form -- 'ok' entries confirm coverage without an + observation; issue entries map element_id/verdict/comment onto the + VisualObservation schema.""" + from metagpt.ext.agentlayout.actions.judge_aesthetic import JudgeAesthetic + + rsp = """[ + {"element_id": "text_1", "verdict": "ok", "comment": "fine"}, + {"element_id": "text_2", "verdict": "text_illegible", + "target_color": "#F4F4F4", "target_bbox": [160, 50, 700, 200], + "comment": "sits on the misty subject"}, + {"element_id": "text_3", "verdict": "OK"} + ]""" + parsed = JudgeAesthetic._parse_observations( + rsp, expected_ids={"text_1", "text_2", "text_3"} + ) + assert len(parsed) == 1 + obs = parsed[0] + assert obs.kind.value == "text_illegible" + assert obs.target_id == "text_2" + assert obs.target_bbox == [160, 50, 700, 200] + assert obs.note == "sits on the misty subject" + # all-ok answer parses to no observations + assert JudgeAesthetic._parse_observations( + '[{"element_id": "a", "verdict": "ok"}]', expected_ids={"a"} + ) == [] + + +def test_visual_loop_flag_default_off(monkeypatch): + from metagpt.ext.agentlayout.feature_flags import visual_loop_enabled + + monkeypatch.delenv("AGENTLAYOUT_VISUAL_LOOP", raising=False) + assert visual_loop_enabled() is False + monkeypatch.setenv("AGENTLAYOUT_VISUAL_LOOP", "1") + assert visual_loop_enabled() is True + + +# ------------------------------------------------------------------ schema defaults + + +def test_feedback_visual_observations_default_empty(): + fb = AestheticFeedback(common_issues="x") + assert fb.visual_observations == [] + + +def test_concept_text_assignments_default_empty(): + concept = CompositionConcept( + name="n", focal_element="e", focal_placement="p", text_placement="t", + visual_flow="v", whitespace="w", typography_mood="m", + ) + assert concept.text_assignments == {} diff --git a/tests/metagpt/ext/agentlayout/test_generator_area_prior.py b/tests/metagpt/ext/agentlayout/test_generator_area_prior.py index f2d397ec6..7c7645b36 100644 --- a/tests/metagpt/ext/agentlayout/test_generator_area_prior.py +++ b/tests/metagpt/ext/agentlayout/test_generator_area_prior.py @@ -51,9 +51,16 @@ def _spec(elements: List[Element]) -> DesignSpec: ) -def test_prompt_template_has_photo_size_prior_slot(): - assert "{photo_size_prior}" in PROMPT_TEMPLATE - assert "# GT-calibrated photo size prior (Step 60" in PROMPT_TEMPLATE +def test_photo_size_prior_removed_from_prompt_but_helper_kept(): + """"先想再畫" refactor (2026-06-25): the Step 60 photo-size-prior block was + cut from the lean CoordinateMapper prompt (the art director now owns sizing + via the composition concept). The ``_format_area_hints`` helper and the + PHOTO_AREA_* constants are kept so the calibration is not lost and remains + unit-tested below.""" + assert "{photo_size_prior}" not in PROMPT_TEMPLATE + assert "# GT-calibrated photo size prior (Step 60" not in PROMPT_TEMPLATE + # helper survives and still produces the hint text (tested elsewhere here) + assert callable(GenerateLayout._format_area_hints) def test_calibration_constants_pinned(): @@ -63,6 +70,47 @@ def test_calibration_constants_pinned(): assert PHOTO_AREA_TARGET == (0.20, 0.45) +# ---------------------------------------------------------------- Step 76c text prior + + +def test_text_area_prior_constants_pinned(): + """N=1,902 full-cache calibration (2026-07-02); re-run the calibration + one-liner in IMPLEMENTATION_LOG Step 76c before changing these.""" + from metagpt.ext.agentlayout.actions.generate_layout import ( + TEXT_AREA_GT, + TEXT_AREA_TARGET, + ) + + assert TEXT_AREA_GT == {"p25": 0.103, "p50": 0.152, "p75": 0.213, "p90": 0.289} + assert TEXT_AREA_TARGET == (0.12, 0.25) + + +def test_text_area_prior_in_template_and_emits_canvas_math(): + """The prior slot must exist and render per-canvas pixel targets plus the + executable enlarge-fonts instruction (Step 60 pattern).""" + assert "{text_area_prior}" in PROMPT_TEMPLATE + assert "# GT-calibrated text size prior" in PROMPT_TEMPLATE + + spec = _spec([ + _el("title_1", SemanticType.TITLE, VisualType.TEXT), + _el("body_1", SemanticType.BODY_TEXT, VisualType.TEXT), + _el("photo_1", SemanticType.PRODUCT_IMAGE, VisualType.IMAGE), + ]) + block = GenerateLayout._format_text_area_prior(spec) + # canvas 600x400 = 240,000 px^2 -> 12%-25% = 28,800-60,000 px^2 + assert "28,800" in block and "60,000" in block + assert "12%-25%" in block + assert "title_1" in block and "body_1" in block + assert "photo_1" not in block # text elements only + assert "ENLARGING font sizes" in block + assert "TIMID" in block + + +def test_text_area_prior_none_without_text_elements(): + spec = _spec([_el("photo_1", SemanticType.PRODUCT_IMAGE, VisualType.IMAGE)]) + assert GenerateLayout._format_text_area_prior(spec) == "None" + + def test_hint_emitted_for_product_image(): spec = _spec( [ @@ -114,12 +162,13 @@ def test_non_photo_image_classes_excluded(): assert GenerateLayout._format_area_hints(spec) == "None" -def test_prompt_pins_photo_prominent_bucket_and_attention(): - """Step 60 second lever: the bucket appears in the size table AND as an - end-of-prompt ATTENTION rule (highest-compliance prompt region).""" - assert "photo-prominent: >=20%" in PROMPT_TEMPLATE - assert "ATTENTION: Photo sizing (Step 60" in PROMPT_TEMPLATE - assert "0.20 * canvas_width * canvas_height" in PROMPT_TEMPLATE +def test_attention_blocks_removed_by_refactor(): + """"先想再畫" refactor: the v1 ATTENTION/size-bucket blocks were compensations + for the monolithic Generator's centring bias. Splitting compose/coordinate + removes the need, so these strings must no longer be in the prompt.""" + assert "photo-prominent: >=20%" not in PROMPT_TEMPLATE + assert "ATTENTION: Photo sizing (Step 60" not in PROMPT_TEMPLATE + assert "0.20 * canvas_width * canvas_height" not in PROMPT_TEMPLATE def test_qc_bucket_pinned(): @@ -173,32 +222,29 @@ def test_inject_photo_size_prior_noop_without_photo(): assert spec.hard_constraints == [] -def test_prompt_template_formats_with_twelve_substitutions(): - """Regression: PROMPT_TEMPLATE.format must not raise KeyError after the - photo_size_prior (Step 60), composition_directive (Step 62), self_render - (Step 65) and exemplars (Step 67) slots were added (all literal braces - stay escaped).""" +def test_prompt_template_formats_with_lean_substitutions(): + """Regression: after the "先想再畫" refactor the prompt's substitution set is + the lean CoordinateMapper one; ``.format`` must not raise KeyError.""" rendered = PROMPT_TEMPLATE.format( - design_spec="{}", + concept_block="CONCEPT", + canvas_width=600, + canvas_height=400, + bg_color="#FFFFFF", + element_list="- title_1 (title/text)", safe_zones="[]", dominant_palette="[]", recommended_text_color="#111111", - feedback="None", - previous_attempt="None", - layout_tree="{}", + underlay_panels="None.", + text_area_prior="None", + feedback_block="", format_example="{}", - photo_size_prior="None", - composition_directive="None", - self_render="None", - exemplars="None", ) - assert "# GT-calibrated photo size prior (Step 60" in rendered + assert "CONCEPT" in rendered + assert "{concept_block}" not in rendered + # the old slots are gone assert "{photo_size_prior}" not in rendered - assert "# Composition directive (Step 62" in rendered assert "{composition_directive}" not in rendered assert "{self_render}" not in rendered - assert "# Designer exemplars (Step 67" in rendered - assert "{exemplars}" not in rendered # ============================================================ diff --git a/tests/metagpt/ext/agentlayout/test_generator_prompt_template.py b/tests/metagpt/ext/agentlayout/test_generator_prompt_template.py index ab0c638b4..594cfcfaf 100644 --- a/tests/metagpt/ext/agentlayout/test_generator_prompt_template.py +++ b/tests/metagpt/ext/agentlayout/test_generator_prompt_template.py @@ -1,8 +1,13 @@ """Pinned-string regression tests for ``generate_layout.PROMPT_TEMPLATE``. -These tests catch silent prompt regressions where someone removes a hard-won -ATTENTION block. They do NOT call the LLM; they only assert that specific -guidance text remains in the prompt source. +"先想再畫" refactor (2026-06-25): the v1 prompt's ATTENTION/coverage/refinement +blocks were intentionally removed when the LayoutGenerator was split into a +CompositionDirector (decides the spatial concept) and this CoordinateMapper +(turns ONE concept into pixels). These tests pin the *new* lean-prompt +invariants: the concept block, the single-candidate contract, the essential QC +rules, and that ``.format`` keys line up with ``_build_prompt``. + +They do NOT call the LLM. Run: pytest tests/metagpt/ext/agentlayout/test_generator_prompt_template.py -v --no-cov @@ -10,23 +15,238 @@ from __future__ import annotations -def test_generator_prompt_pins_canvas_vertical_coverage_rule(): - """2026-05-14 step 6: live run #3 PNG showed bottom 1/3 of the 800x1200 - canvas left empty even though all schema constraints were satisfied. The - Aesthetic Judge correctly penalised this on visual_coherence (17/25) and - layout_balance (17/25). The Generator prompt now spells out a vertical - coverage rule (max(top+height) >= 0.85*canvas_height) so the LLM stops - clustering elements in the top half.""" +def test_prompt_is_coordinate_mapper_not_art_director(): + """The mapper realises the art director's concept; it must not re-invent it.""" + from metagpt.ext.agentlayout.actions.generate_layout import PROMPT_TEMPLATE + + assert "layout technician" in PROMPT_TEMPLATE + assert "{concept_block}" in PROMPT_TEMPLATE + # One candidate per concept, not the old "5 distinct candidates". + assert "exactly ONE candidate" in PROMPT_TEMPLATE + assert "5 candidates" not in PROMPT_TEMPLATE + + +def test_prompt_keeps_essential_qc_rules(): + """Hard constraints survive the cut: bounds, ids, z-order, contrast, reading order.""" from metagpt.ext.agentlayout.actions.generate_layout import PROMPT_TEMPLATE - # The coverage thresholds appear in the prompt so the LLM sees the math. - assert "0.85 * canvas_height" in PROMPT_TEMPLATE - assert "0.10 * canvas_height" in PROMPT_TEMPLATE - # The two-sided rule (lowest bottom, highest top) is named explicitly. - assert "max(top + height)" in PROMPT_TEMPLATE - assert "min(top)" in PROMPT_TEMPLATE - # The worked example uses the live-run canvas size so the LLM can copy. - assert "800x1200 canvas" in PROMPT_TEMPLATE - assert "y >= 1020" in PROMPT_TEMPLATE - # The negative instruction prevents top-clustering. - assert "do NOT cluster" in PROMPT_TEMPLATE + assert "left+width <= {canvas_width}" in PROMPT_TEMPLATE + assert "must appear exactly once" in PROMPT_TEMPLATE + assert "LOWER z_index" in PROMPT_TEMPLATE + assert "WCAG AA" in PROMPT_TEMPLATE + + +def test_prompt_allows_chain_of_thought_before_json(): + """The mapper writes reasoning first, then a single JSON candidate.""" + from metagpt.ext.agentlayout.actions.generate_layout import PROMPT_TEMPLATE + + assert "2-3 short sentences" in PROMPT_TEMPLATE + assert "{format_example}" in PROMPT_TEMPLATE + + +def test_prompt_template_formats_with_new_substitutions(): + """Regression: PROMPT_TEMPLATE.format must not raise KeyError for the lean + CoordinateMapper substitution set.""" + from metagpt.ext.agentlayout.actions.generate_layout import ( + FORMAT_EXAMPLE_JSON, + PROMPT_TEMPLATE, + ) + + rendered = PROMPT_TEMPLATE.format( + concept_block="CONCEPT", + canvas_width=1080, + canvas_height=1920, + bg_color="#FFFFFF", + element_list="- title_1 (title/text)", + safe_zones="[]", + dominant_palette="[]", + recommended_text_color="#111111", + underlay_panels="None.", + text_area_prior="None", + feedback_block="", + format_example=FORMAT_EXAMPLE_JSON, + ) + assert "CONCEPT" in rendered + assert "cand_01" in rendered # the format example landed in the prompt + + +def test_rule7_carries_gt_hierarchy_numbers(): + """Step 81: the reading-order rule cites the calibrated dominant-text band.""" + from metagpt.ext.agentlayout.actions.generate_layout import PROMPT_TEMPLATE + + assert "[0.35, 0.57]" in PROMPT_TEMPLATE + assert "median 0.475" in PROMPT_TEMPLATE + assert "ABOVE" in PROMPT_TEMPLATE + + +def test_prompt_template_has_underlay_panels_slot(): + """Step 76: the baked-underlay feed-forward block must be present.""" + from metagpt.ext.agentlayout.actions.generate_layout import PROMPT_TEMPLATE + + assert "{underlay_panels}" in PROMPT_TEMPLATE + assert "Baked underlay panels" in PROMPT_TEMPLATE + + +def test_concept_block_resolves_panel_assignment_to_bbox(): + """Step 77: 'panel N' in text_assignments becomes that panel's exact bbox.""" + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + from metagpt.ext.agentlayout.schema import ( + BackgroundAnalysis, + CompositionConcept, + UnderlayRegion, + ) + + concept = CompositionConcept( + name="n", focal_element="photo_1", focal_placement="p", + text_placement="t", visual_flow="v", whitespace="w", typography_mood="m", + text_assignments={"title_1": "panel 1", "body_1": "bottom-left"}, + ) + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion(bbox=[36, 30, 1064, 1049], dominant_color="#090102", + recommended_text_color="#F4F4F4") + ] + ) + block = GenerateLayout._format_concept_block(concept, bg) + assert "BINDING" in block + assert "title_1 -> panel 1 = bbox [left=36, top=30, right=1064, bottom=1049]" in block + assert "#F4F4F4" in block + assert "body_1 -> bottom-left" in block # non-panel destination passes through + + # No assignments -> block keeps the legacy shape (no BINDING section). + legacy = CompositionConcept( + name="n", focal_element="e", focal_placement="p", text_placement="t", + visual_flow="v", whitespace="w", typography_mood="m", + ) + assert "BINDING" not in GenerateLayout._format_concept_block(legacy, bg) + + +def test_element_list_annotates_text_bitmap_natural_size(tmp_path): + """Step 80: *_text.png elements carry their natural size + no-restyle rule.""" + from PIL import Image as PILImage + + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + from metagpt.ext.agentlayout.schema import ( + Canvas, + DesignSpec, + Element, + SemanticType, + VisualType, + ) + + png = tmp_path / "asset_08_text.png" + PILImage.new("RGBA", (640, 180), (10, 10, 10, 255)).save(png) + spec = DesignSpec( + canvas=Canvas(width=1080, height=1080), + elements=[ + Element(id="title_1", semantic_type=SemanticType.TITLE, + visual_type=VisualType.IMAGE, content="CLEAN UP", + asset_ref=str(png), inferred=False, importance=5, + semantic_relevance=0.5), + Element(id="photo_1", semantic_type=SemanticType.PRODUCT_IMAGE, + visual_type=VisualType.IMAGE, asset_ref="/nonexistent/p.png", + inferred=False, importance=3, semantic_relevance=0.5), + ], + hard_constraints=[], style_keywords=[], language="en", + ) + listing = GenerateLayout._format_element_list(spec) + assert "natural size 640x180px" in listing + assert "KEEP the" in listing and "aspect ratio" in listing + assert "omit" in listing # no re-typesetting instruction + # non-text image without a readable file gets no annotation and no crash + assert "photo_1 (product_image/image)" in listing + + +def test_ledger_target_overrides_concept_assignment(): + """Step 88 precedence: an open ledger target replaces the concept's + BINDING assignment for that element (deadlock fix from the 87 trace).""" + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + BackgroundAnalysis, + CompositionConcept, + VisualObservation, + VisualObservationKind, + ) + + concept = CompositionConcept( + name="n", focal_element="text_6", focal_placement="p", text_placement="t", + visual_flow="v", whitespace="w", typography_mood="m", + text_assignments={"text_6": "top-left", "text_1": "bottom-left"}, + ) + fb = AestheticFeedback( + common_issues="x", + visual_observations=[VisualObservation( + kind=VisualObservationKind.TITLE_MISPLACED, target_id="text_6", + target_bbox=[20, 276, 802, 373])], + ) + block = GenerateLayout._format_concept_block(concept, BackgroundAnalysis(), fb) + assert "text_6 -> LEDGER OVERRIDE (title_misplaced)" in block + assert "INSIDE bbox [left=20, top=276, right=802, bottom=373]" in block + assert "SUPERSEDES the concept's placement" in block + assert "text_6 -> top-left" not in block # 原指派被覆蓋 + assert "text_1 -> bottom-left" in block # 無帳本目標者不受影響 + assert "LEDGER OVERRIDE lines outrank everything else" in block + # 無 feedback 時輸出照舊 + legacy = GenerateLayout._format_concept_block(concept, BackgroundAnalysis()) + assert "LEDGER OVERRIDE" not in legacy + + +def test_keep_constraints_rendered_as_do_not_undo(): + """Step 89: retired targets ride the feedback block as KEEP constraints.""" + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + VisualObservation, + VisualObservationKind, + ) + + fb = AestheticFeedback( + common_issues="x", + keep_constraints=[VisualObservation( + kind=VisualObservationKind.TITLE_MISPLACED, target_id="text_6", + target_bbox=[20, 276, 802, 373])], + ) + block = GenerateLayout()._format_feedback_block(fb, None, None, None) + assert "KEEP constraints" in block + assert "text_6 must STAY INSIDE bbox [20, 276, 802, 373]" in block + assert "do NOT undo" in block + # keep_constraints 不重複出現在 feedback JSON dump 裡 + assert block.count("[20, 276, 802, 373]") == 1 + + +def test_format_underlay_panels_renders_bbox_and_colors(): + """Step 76: exact pixel bbox + contrasting colour for each region.""" + from metagpt.ext.agentlayout.actions.generate_layout import GenerateLayout + from metagpt.ext.agentlayout.schema import BackgroundAnalysis, UnderlayRegion + + bg = BackgroundAnalysis( + underlay_regions=[ + UnderlayRegion( + bbox=[100, 50, 400, 170], + dominant_color="#1A2B3C", + recommended_text_color="#F4F4F4", + ) + ] + ) + block = GenerateLayout._format_underlay_panels(bg) + assert "left=100" in block and "bottom=170" in block + assert "#1A2B3C" in block + assert "#F4F4F4" in block + assert "INSIDE" in block + + assert GenerateLayout._format_underlay_panels(BackgroundAnalysis()) == "None." + + +def test_format_example_is_single_asymmetric_candidate(): + """The example must be one candidate and NOT perfectly centred (anti-imitation).""" + import json + + from metagpt.ext.agentlayout.actions.generate_layout import FORMAT_EXAMPLE_JSON + + data = json.loads(FORMAT_EXAMPLE_JSON) + assert len(data["candidates"]) == 1 + headline = next(e for e in data["candidates"][0]["elements"] if e["id"] == "headline_1") + # Right-aligned, left at 680 on a 1080 canvas -> clearly off-centre. + assert headline["text_align"] == "right" + assert headline["left"] > 540 diff --git a/tests/metagpt/ext/agentlayout/test_generator_vision_channel.py b/tests/metagpt/ext/agentlayout/test_generator_vision_channel.py index c66276054..20486cca2 100644 --- a/tests/metagpt/ext/agentlayout/test_generator_vision_channel.py +++ b/tests/metagpt/ext/agentlayout/test_generator_vision_channel.py @@ -1,9 +1,11 @@ -"""Step 46 unit tests for GenerateLayout vision channel. +"""Unit tests for the GenerateLayout (CoordinateMapper) vision channel. -These tests do NOT hit a real LLM; they install a fake llm onto the action -and verify the image-payload plumbing only. The end-to-end LLM behaviour is -covered by the requires_llm gated suite (test_generator_corner.py) and the -live step41 oracle smoke runs. +These tests do NOT hit a real LLM; they install a fake llm onto the action and +verify the image-payload plumbing and refusal fallback only. + +"先想再畫" refactor (2026-06-25): ``run()`` now requires a ``concept`` and emits +ONE candidate. The Step 65 self-render channel (prev_render_path) was a negative +result and has been removed, so its tests are gone too. """ from __future__ import annotations @@ -19,6 +21,7 @@ from metagpt.ext.agentlayout.pipeline import default_white_background from metagpt.ext.agentlayout.schema import ( Canvas, + CompositionConcept, DesignSpec, Element, LayoutTree, @@ -61,6 +64,18 @@ def _flat_tree(spec: DesignSpec) -> LayoutTree: ) +def _concept() -> CompositionConcept: + return CompositionConcept( + name="Centred", + focal_element="title_1", + focal_placement="centred", + text_placement="centred", + visual_flow="top-down", + whitespace="even", + typography_mood="bold", + ) + + class _FakeLLM: """Records every aask call so the test can assert on (prompt, images).""" @@ -141,6 +156,16 @@ def test_render_bg_image_caps_longest_edge_at_768(tmp_path): assert min(decoded.size) == 576 # 1500 * (768/2000) rounded +def test_load_image_b64_returns_none_for_missing_path(tmp_path): + assert GenerateLayout._load_image_b64(tmp_path / "nope.png") is None + + +def test_load_image_b64_returns_none_for_unreadable_file(tmp_path): + garbage = tmp_path / "garbage.png" + garbage.write_bytes(b"not a png at all") + assert GenerateLayout._load_image_b64(garbage) is None + + @pytest.mark.asyncio async def test_run_attaches_image_when_llm_supports_vision_and_bg_exists(tmp_path): bg = tmp_path / "bg.png" @@ -153,7 +178,7 @@ async def test_run_attaches_image_when_llm_supports_vision_and_bg_exists(tmp_pat gen = GenerateLayout() object.__setattr__(gen, "llm", fake) # bypass pydantic frozen field - batch = await gen.run(spec=spec, tree=tree, bg=bg_analysis, feedback=None) + batch = await gen.run(spec=spec, tree=tree, bg=bg_analysis, concept=_concept()) assert len(batch.candidates) == 1 assert len(fake.calls) == 1 assert isinstance(fake.calls[0]["images"], list) @@ -173,7 +198,7 @@ async def test_run_skips_image_when_llm_lacks_vision_support(tmp_path): gen = GenerateLayout() object.__setattr__(gen, "llm", fake) - await gen.run(spec=spec, tree=tree, bg=bg_analysis, feedback=None) + await gen.run(spec=spec, tree=tree, bg=bg_analysis, concept=_concept()) assert len(fake.calls) == 1 assert fake.calls[0]["images"] is None @@ -188,13 +213,13 @@ async def test_run_skips_image_when_bg_unavailable_even_with_vision_llm(tmp_path gen = GenerateLayout() object.__setattr__(gen, "llm", fake) - await gen.run(spec=spec, tree=tree, bg=bg_analysis, feedback=None) + await gen.run(spec=spec, tree=tree, bg=bg_analysis, concept=_concept()) assert len(fake.calls) == 1 assert fake.calls[0]["images"] is None # ============================================================ -# Step 64: vision refusal fallback +# Vision refusal fallback (carried over from Step 64) # ============================================================ @@ -224,8 +249,6 @@ def test_looks_like_refusal_detection(): f = GenerateLayout._looks_like_refusal assert f("I'm sorry, I can't assist with that.") assert f(" I cannot assist with that request. ") - # Step 65 smoke regression: these phrasings slipped through and burned - # full retry budgets on 5/5 samples. assert f("I'm unable to assist with this request.") assert f( "I'm unable to provide specific coordinates for this layout. " @@ -249,7 +272,7 @@ async def test_run_drops_image_after_vision_refusal(tmp_path): gen = GenerateLayout() object.__setattr__(gen, "llm", fake) - batch = await gen.run(spec=spec, tree=tree, bg=bg_analysis, feedback=None) + batch = await gen.run(spec=spec, tree=tree, bg=bg_analysis, concept=_concept()) assert len(batch.candidates) == 1 assert len(fake.calls) == 2 assert fake.calls[0]["images"], "first call must attach the background image" @@ -269,125 +292,8 @@ async def test_run_raises_when_text_only_fallback_also_refuses(tmp_path): object.__setattr__(gen, "llm", fake) with pytest.raises(ValueError, match="could not produce a valid CandidatesBatch"): - await gen.run(spec=spec, tree=tree, bg=bg_analysis, feedback=None) + await gen.run(spec=spec, tree=tree, bg=bg_analysis, concept=_concept()) # 1 vision refusal (grants +1 budget) + 3 text-only attempts = 4 calls assert len(fake.calls) == 4 assert fake.calls[0]["images"] assert all(not c["images"] for c in fake.calls[1:]) - - -# ============================================================ -# Step 65: visual self-correction (previous render fed back) -# ============================================================ - -_NOTE_MARK = "PREVIOUS ATTEMPT, ALREADY RENDERED" - - -def _vision_setup(tmp_path, llm_cls=_FakeLLM, bg: bool = True): - bg_path = None - if bg: - bg_path = tmp_path / "bg.png" - _bg_png_to_path(bg_path) - spec = _make_spec(bg_path=str(bg_path) if bg_path else None) - tree = _flat_tree(spec) - bg_analysis = default_white_background(spec.canvas) - fake = llm_cls(supports_vision=True, canned_response=_CANNED_BATCH_JSON) - gen = GenerateLayout() - object.__setattr__(gen, "llm", fake) - return gen, fake, spec, tree, bg_analysis - - -def test_load_image_b64_returns_none_for_missing_path(tmp_path): - assert GenerateLayout._load_image_b64(tmp_path / "nope.png") is None - - -def test_load_image_b64_returns_none_for_unreadable_file(tmp_path): - garbage = tmp_path / "garbage.png" - garbage.write_bytes(b"not a png at all") - assert GenerateLayout._load_image_b64(garbage) is None - - -@pytest.mark.asyncio -async def test_run_attaches_prev_render_as_last_image_with_note(tmp_path): - gen, fake, spec, tree, bg_analysis = _vision_setup(tmp_path) - prev = tmp_path / "prev_attempt.png" - _bg_png_to_path(prev) - - batch = await gen.run( - spec=spec, tree=tree, bg=bg_analysis, feedback=None, prev_render_path=prev - ) - assert len(batch.candidates) == 1 - assert len(fake.calls) == 1 - assert len(fake.calls[0]["images"]) == 2 # bg first, self-render last - assert _NOTE_MARK in fake.calls[0]["prompt"] - - -@pytest.mark.asyncio -async def test_run_missing_prev_render_degrades_to_bg_only(tmp_path): - gen, fake, spec, tree, bg_analysis = _vision_setup(tmp_path) - - await gen.run( - spec=spec, - tree=tree, - bg=bg_analysis, - feedback=None, - prev_render_path=tmp_path / "never_rendered.png", - ) - assert len(fake.calls) == 1 - assert len(fake.calls[0]["images"]) == 1 # bg only - assert _NOTE_MARK not in fake.calls[0]["prompt"] - - -@pytest.mark.asyncio -async def test_run_prev_render_without_bg_still_attaches_and_notes(tmp_path): - gen, fake, spec, tree, bg_analysis = _vision_setup(tmp_path, bg=False) - prev = tmp_path / "prev_attempt.png" - _bg_png_to_path(prev) - - await gen.run( - spec=spec, tree=tree, bg=bg_analysis, feedback=None, prev_render_path=prev - ) - assert len(fake.calls) == 1 - assert len(fake.calls[0]["images"]) == 1 # self-render only - assert _NOTE_MARK in fake.calls[0]["prompt"] - - -@pytest.mark.asyncio -async def test_run_skips_prev_render_when_llm_lacks_vision(tmp_path): - bg = tmp_path / "bg.png" - _bg_png_to_path(bg) - spec = _make_spec(bg_path=str(bg)) - tree = _flat_tree(spec) - bg_analysis = default_white_background(spec.canvas) - prev = tmp_path / "prev_attempt.png" - _bg_png_to_path(prev) - - fake = _FakeLLM(supports_vision=False, canned_response=_CANNED_BATCH_JSON) - gen = GenerateLayout() - object.__setattr__(gen, "llm", fake) - - await gen.run( - spec=spec, tree=tree, bg=bg_analysis, feedback=None, prev_render_path=prev - ) - assert len(fake.calls) == 1 - assert fake.calls[0]["images"] is None - assert _NOTE_MARK not in fake.calls[0]["prompt"] - - -@pytest.mark.asyncio -async def test_run_refusal_drops_both_images_and_strips_note(tmp_path): - gen, fake, spec, tree, bg_analysis = _vision_setup(tmp_path, llm_cls=_RefusingVisionLLM) - prev = tmp_path / "prev_attempt.png" - _bg_png_to_path(prev) - - batch = await gen.run( - spec=spec, tree=tree, bg=bg_analysis, feedback=None, prev_render_path=prev - ) - assert len(batch.candidates) == 1 - assert len(fake.calls) == 2 - assert len(fake.calls[0]["images"]) == 2 - assert _NOTE_MARK in fake.calls[0]["prompt"] - # Step 64 fallback + Step 65: text-only retry must not claim an attached - # self-render the model can no longer see. - assert not fake.calls[1]["images"] - assert _NOTE_MARK not in fake.calls[1]["prompt"] diff --git a/tests/metagpt/ext/agentlayout/test_human_tree_metrics.py b/tests/metagpt/ext/agentlayout/test_human_tree_metrics.py new file mode 100644 index 000000000..209f239a7 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_human_tree_metrics.py @@ -0,0 +1,445 @@ +from __future__ import annotations + +import random +from typing import Dict, List, Optional, Sequence, Tuple + +import pytest + +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, +) +from metagpt.ext.agentlayout.schema import Candidate, LayoutElement +from metagpt.ext.agentlayout.tools.human_tree_metrics import ( + evaluate_layout_realization, + evaluate_tree_prediction, + l1_gap, +) + + +Box = Tuple[int, int, int, int] + + +def _asset_id(index: int) -> str: + return f"asset_{index:04d}" + + +def _tree( + groups: Sequence[Sequence[int]], + *, + source: str = "human_oracle", + parents: Optional[Dict[int, int]] = None, + semantic_types: Optional[Dict[int, str]] = None, + semantic_roles: Optional[Dict[int, str]] = None, + confidences: Optional[Dict[int, float]] = None, +) -> A3LayoutTree: + parents = parents or {} + semantic_types = semantic_types or {} + semantic_roles = semantic_roles or {} + confidences = confidences or {} + group_by_asset = { + index: group_index + for group_index, members in enumerate(groups) + for index in members + } + nodes: List[A3TreeNode] = [] + for index in sorted(group_by_asset): + group_index = group_by_asset[index] + parent = parents.get(index) + nodes.append( + A3TreeNode( + asset_id=_asset_id(index), + semantic_type=semantic_types.get(index, "other"), + semantic_role=semantic_roles.get(index, f"role {index}"), + group_id=f"group_{group_index}", + group_label=f"group {group_index}", + parent_id="root" if parent is None else _asset_id(parent), + relation_to_parent="root" if parent is None else "peer", + ordering_priority=index, + confidence=confidences.get(index, 1.0), + ) + ) + tree_groups = [ + A3TreeGroup( + group_id=f"group_{group_index}", + label=f"group {group_index}", + member_ids=[_asset_id(index) for index in members], + ordering_priority=group_index, + confidence=1.0, + ) + for group_index, members in enumerate(groups) + ] + return A3LayoutTree(source=source, nodes=nodes, groups=tree_groups) + + +def _candidate(boxes: Dict[int, Box]) -> Candidate: + return Candidate( + candidate_id="candidate_01", + elements=[ + LayoutElement( + id=_asset_id(index), + left=left, + top=top, + width=width, + height=height, + z_index=index, + ) + for index, (left, top, width, height) in sorted(boxes.items()) + ], + ) + + +def _evaluate(tree: A3LayoutTree, boxes: Dict[int, Box]): + return evaluate_layout_realization( + tree=tree, + candidate=_candidate(boxes), + canvas_width=100, + canvas_height=100, + sample_id="sample_01", + method="test", + ) + + +@pytest.mark.parametrize( + ("left", "right", "expected"), + [ + ((0.0, 0.0, 2.0, 2.0), (1.0, 1.0, 2.0, 2.0), 0.0), + ((0.0, 0.0, 2.0, 2.0), (2.0, 0.5, 1.0, 1.0), 0.0), + ((0.0, 0.0, 2.0, 2.0), (3.0, 0.5, 1.0, 1.0), 1.0), + ((0.0, 0.0, 2.0, 2.0), (0.5, 4.0, 1.0, 1.0), 2.0), + ((0.0, 0.0, 2.0, 2.0), (4.0, 5.0, 1.0, 1.0), 5.0), + ], + ids=["overlap", "touch", "horizontal", "vertical", "diagonal"], +) +def test_l1_gap_five_required_cases(left, right, expected): + assert l1_gap(left, right) == expected + + +def test_compact_groups_score_near_one_and_scattered_groups_score_below_half(): + tree = _tree([[0, 1], [2, 3]], parents={1: 0, 3: 2}) + compact = _evaluate( + tree, + { + 0: (0, 0, 10, 10), + 1: (10, 0, 10, 10), + 2: (80, 80, 10, 10), + 3: (90, 80, 10, 10), + }, + ) + assert compact.sgc is not None and compact.sgc > 0.999 + assert compact.tlc == 1.0 + assert compact.pca == 1.0 + + scattered = _evaluate( + tree, + { + 0: (0, 0, 10, 10), + 1: (80, 0, 10, 10), + 2: (10, 0, 10, 10), + 3: (90, 0, 10, 10), + }, + ) + assert scattered.sgc is not None and scattered.sgc < 0.5 + assert scattered.tlc is not None and scattered.tlc < 0.5 + + +def test_all_overlapping_boxes_make_tlc_exactly_half(): + result = _evaluate( + _tree([[0, 1], [2, 3]]), + {index: (20, 20, 10, 10) for index in range(4)}, + ) + assert result.tlc == 0.5 + + +def test_single_group_and_all_singletons_record_metric_specific_skips(): + single_group = _evaluate( + _tree([[0, 1]], parents={1: 0}), + {0: (0, 0, 10, 10), 1: (50, 0, 10, 10)}, + ) + assert single_group.sgc is None + assert "sgc:single_group" in single_group.skip_reasons + assert single_group.tlc is None + assert "tlc:no_triplets" in single_group.skip_reasons + + all_singletons = _evaluate( + _tree([[0], [1]]), + {0: (0, 0, 10, 10), 1: (50, 0, 10, 10)}, + ) + assert all_singletons.sgc is None + assert "sgc:all_groups_singleton" in all_singletons.skip_reasons + assert all_singletons.tlc is None + assert "tlc:no_triplets" in all_singletons.skip_reasons + assert all_singletons.pca is None + assert "pca:no_edges" in all_singletons.skip_reasons + + +def test_pca_uses_non_root_edges_and_parent_distance_median(): + tree = _tree([[0, 1], [2], [3]], parents={1: 0}) + result = _evaluate( + tree, + { + 0: (0, 0, 5, 5), + 1: (90, 0, 5, 5), + 2: (10, 0, 5, 5), + 3: (20, 0, 5, 5), + }, + ) + assert result.pca == 0.0 + + +def test_sgc_uses_group_level_not_pair_level_intra_mean(): + tree = _tree([[0, 1], [2, 3, 4]]) + result = _evaluate( + tree, + { + 0: (0, 0, 1, 1), + 1: (10, 0, 1, 1), + 2: (20, 0, 1, 1), + 3: (21, 0, 1, 1), + 4: (22, 0, 1, 1), + }, + ) + # Normalized D_intra = mean(0.09, mean(0, 0.01, 0)) = 0.046666...; + # D_inter = mean(0.19, 0.20, 0.21, 0.09, 0.10, 0.11) = 0.15. + expected = 0.15 / (0.04666666666666667 + 0.15 + 1e-6) + assert result.sgc == pytest.approx(expected) + + +def test_candidate_boxes_are_normalized_and_non_tree_elements_are_ignored(): + tree = _tree([[0, 1], [2, 3]], parents={1: 0, 3: 2}) + base = _evaluate( + tree, + { + 0: (0, 0, 10, 10), + 1: (10, 0, 10, 10), + 2: (80, 80, 10, 10), + 3: (90, 80, 10, 10), + }, + ) + scaled = _candidate( + { + 0: (0, 0, 20, 20), + 1: (20, 0, 20, 20), + 2: (160, 160, 20, 20), + 3: (180, 160, 20, 20), + } + ) + scaled.elements.append( + LayoutElement( + id="bg_canvas", + left=0, + top=0, + width=200, + height=200, + z_index=0, + ) + ) + scaled.elements.append(scaled.elements[-1].model_copy()) + normalized = evaluate_layout_realization( + tree=tree, + candidate=scaled, + canvas_width=200, + canvas_height=200, + sample_id="sample_01", + method="scaled", + ) + assert normalized.sgc == base.sgc + assert normalized.tlc == base.tlc + assert normalized.pca == base.pca + assert normalized.n_elements == 4 + + +def test_layout_id_mismatches_are_skipped_without_guessing(): + tree = _tree([[0, 1], [2]], parents={1: 0}) + missing = evaluate_layout_realization( + tree=tree, + candidate=_candidate({0: (0, 0, 10, 10), 1: (20, 0, 10, 10)}), + canvas_width=100, + canvas_height=100, + sample_id="sample_01", + method="missing", + ) + assert missing.sgc is None and missing.tlc is None and missing.pca is None + assert missing.skip_reasons == ["layout:missing_elements:asset_0002"] + + duplicate = _candidate( + {0: (0, 0, 10, 10), 1: (20, 0, 10, 10), 2: (40, 0, 10, 10)} + ) + duplicate.elements.append(duplicate.elements[0].model_copy()) + duplicate_result = evaluate_layout_realization( + tree=tree, + candidate=duplicate, + canvas_width=100, + canvas_height=100, + sample_id="sample_01", + method="duplicate", + ) + assert duplicate_result.sgc is None + assert duplicate_result.skip_reasons == [ + "layout:duplicate_elements:asset_0000" + ] + + +def test_random_layouts_have_half_tlc_in_fixed_seed_monte_carlo(): + rng = random.Random(20260711) + tree = _tree([[0, 1], [2, 3]]) + values = [] + for _ in range(1000): + candidate = _candidate( + { + index: (rng.randrange(0, 951), rng.randrange(0, 951), 50, 50) + for index in range(4) + } + ) + result = evaluate_layout_realization( + tree=tree, + candidate=candidate, + canvas_width=1000, + canvas_height=1000, + sample_id="monte_carlo", + method="random", + ) + assert result.tlc is not None + values.append(result.tlc) + assert sum(values) / len(values) == pytest.approx(0.5, abs=0.05) + + +REFERENCE_TYPES = { + 0: "title", + 1: "pricetag", + 2: "product_image", + 3: "logo", +} +REFERENCE_ROLES = {index: f"reference role {index}" for index in range(4)} + + +def test_tree_prediction_metrics_perfect_case(): + human = _tree( + [[0, 1, 2], [3]], + parents={1: 0, 2: 1}, + semantic_types=REFERENCE_TYPES, + semantic_roles=REFERENCE_ROLES, + ) + predicted = _tree( + [[0, 1, 2], [3]], + source="predicted", + parents={1: 0, 2: 1}, + semantic_types=REFERENCE_TYPES, + semantic_roles=REFERENCE_ROLES, + ) + result = evaluate_tree_prediction(predicted, human) + assert result.same_group.precision == 1.0 + assert result.same_group.recall == 1.0 + assert result.same_group.f1 == 1.0 + assert result.parent_child.f1 == 1.0 + assert result.semantic_type_accuracy == 1.0 + assert result.semantic_role_accuracy == 1.0 + assert result.n_uncertain_nodes == 0 + + +def test_tree_prediction_metrics_partial_case(): + human = _tree( + [[0, 1, 2], [3]], + parents={1: 0, 2: 1}, + semantic_types=REFERENCE_TYPES, + semantic_roles=REFERENCE_ROLES, + ) + predicted_types = dict(REFERENCE_TYPES) + predicted_types.update({2: "caption", 3: "cta"}) + predicted_roles = dict(REFERENCE_ROLES) + predicted_roles.update({1: "wrong role 1", 3: "wrong role 3"}) + predicted = _tree( + [[0, 1], [2, 3]], + source="predicted", + parents={1: 0, 2: 0}, + semantic_types=predicted_types, + semantic_roles=predicted_roles, + ) + result = evaluate_tree_prediction(predicted, human) + assert result.same_group.precision == 0.5 + assert result.same_group.recall == pytest.approx(1 / 3) + assert result.same_group.f1 == pytest.approx(0.4) + assert result.parent_child.precision == 0.5 + assert result.parent_child.recall == 0.5 + assert result.parent_child.f1 == 0.5 + assert result.semantic_type_accuracy == 0.5 + assert result.semantic_role_accuracy == 0.5 + + +def test_tree_prediction_metrics_zero_overlap_case(): + human = _tree( + [[0, 1], [2, 3]], + parents={1: 0, 3: 2}, + semantic_types=REFERENCE_TYPES, + semantic_roles=REFERENCE_ROLES, + ) + predicted = _tree( + [[0, 2], [1, 3]], + source="predicted", + parents={2: 0, 3: 1}, + semantic_types={0: "logo", 1: "product_image", 2: "pricetag", 3: "title"}, + semantic_roles={index: f"wrong role {index}" for index in range(4)}, + ) + result = evaluate_tree_prediction(predicted, human) + assert result.same_group.precision == 0.0 + assert result.same_group.recall == 0.0 + assert result.same_group.f1 == 0.0 + assert result.parent_child.precision == 0.0 + assert result.parent_child.recall == 0.0 + assert result.parent_child.f1 == 0.0 + assert result.semantic_type_accuracy == 0.0 + assert result.semantic_role_accuracy == 0.0 + + +def test_uncertain_human_nodes_are_excluded_and_reported_separately(): + human = _tree( + [[0, 1], [2]], + parents={1: 0}, + semantic_types={0: "title", 1: "pricetag", 2: "logo"}, + semantic_roles={0: "headline", 1: "offer", 2: "brand"}, + confidences={1: 0.5}, + ) + predicted = _tree( + [[0], [1, 2]], + source="predicted", + parents={1: 2}, + semantic_types={0: "title", 1: "caption", 2: "logo"}, + semantic_roles={0: "headline", 1: "wrong", 2: "brand"}, + ) + result = evaluate_tree_prediction(predicted, human) + assert result.same_group.f1 == 1.0 + assert result.parent_child.f1 == 1.0 + assert result.semantic_type_accuracy == 1.0 + assert result.semantic_role_accuracy == 1.0 + assert result.n_uncertain_nodes == 1 + assert result.uncertain_node_ids == ["asset_0001"] + assert result.uncertain_same_group is not None + assert result.uncertain_same_group.f1 == 0.0 + assert result.uncertain_parent_child is not None + assert result.uncertain_parent_child.f1 == 0.0 + assert result.uncertain_semantic_type_accuracy == 0.0 + assert result.uncertain_semantic_role_accuracy == 0.0 + assert result.excluded_reference_same_group_pairs == 1 + assert result.excluded_reference_parent_child_edges == 1 + + +def test_tree_prediction_requires_same_asset_coverage_and_tree_sources(): + human = _tree([[0], [1]]) + predicted = _tree([[0], [1]], source="predicted") + with pytest.raises(ValueError, match="coverage mismatch"): + evaluate_tree_prediction(_tree([[0]], source="predicted"), human) + with pytest.raises(ValueError, match="source='predicted'"): + evaluate_tree_prediction(human, human) + with pytest.raises(ValueError, match="source='human_oracle'"): + evaluate_tree_prediction(predicted, predicted) + + with pytest.raises(ValueError, match="source='human_oracle'"): + evaluate_layout_realization( + tree=predicted, + candidate=_candidate({0: (0, 0, 10, 10), 1: (20, 0, 10, 10)}), + canvas_width=100, + canvas_height=100, + sample_id="sample_01", + method="wrong_tree", + ) diff --git a/tests/metagpt/ext/agentlayout/test_iteration_state.py b/tests/metagpt/ext/agentlayout/test_iteration_state.py index 7fc938795..934f1fa7c 100644 --- a/tests/metagpt/ext/agentlayout/test_iteration_state.py +++ b/tests/metagpt/ext/agentlayout/test_iteration_state.py @@ -26,7 +26,8 @@ IterationStateRole, IterationStop, RetryAnalyst, - RetryGeneration, + RetryComposition, + RetryCoordinates, RetryPayload, ) from metagpt.ext.agentlayout.schema import ( @@ -65,14 +66,18 @@ def _judgement(decision: JudgeDecision, cand_id: str = "r0_cand_01") -> Aestheti suggestions=["nudge headline_1 +5% width"], ) else: + # "先想再畫" routing: typography_color is the unique worst axis so the + # reject routes to the CoordinateMapper (RetryCoordinates), not the + # CompositionDirector. A design_layout-worst case is covered by its own + # dedicated test below. scores = JudgeScores( design_layout=6, content_relevance=6, - typography_color=6, + typography_color=5, graphics_images=6, innovation_originality=6, ) - total = 30 + total = 29 feedback = AestheticFeedback( common_issues="title too small", suggestions=[ @@ -130,8 +135,8 @@ async def test_boundary_max_rounds_emits_iterationstop_at_third_reject(): chain = [_cause(out1), _cause(out2), _cause(out3)] - assert out1.cause_by == any_to_str(RetryGeneration), f"got {chain[0]}" - assert out2.cause_by == any_to_str(RetryGeneration), f"got {chain[1]}" + assert out1.cause_by == any_to_str(RetryCoordinates), f"got {chain[0]}" + assert out2.cause_by == any_to_str(RetryCoordinates), f"got {chain[1]}" assert out3.cause_by == any_to_str(IterationStop), f"got {chain[2]}" assert out3.instruct_content is None assert role.state.iteration == 3 @@ -182,10 +187,10 @@ async def test_accept_routes_to_refinement_until_two_consecutive(): chain: list = [] for decision in ( - JudgeDecision.REJECT, # iter 1, ca 0 -> RetryGeneration - JudgeDecision.ACCEPT, # iter 2, ca 1 -> RetryGeneration (refinement) - JudgeDecision.REJECT, # iter 3, ca 0 -> RetryGeneration - JudgeDecision.ACCEPT, # iter 4, ca 1 -> RetryGeneration (refinement) + JudgeDecision.REJECT, # iter 1, ca 0 -> RetryCoordinates + JudgeDecision.ACCEPT, # iter 2, ca 1 -> RetryCoordinates (refinement) + JudgeDecision.REJECT, # iter 3, ca 0 -> RetryCoordinates + JudgeDecision.ACCEPT, # iter 4, ca 1 -> RetryCoordinates (refinement) JudgeDecision.ACCEPT, # iter 5, ca 2 -> IterationStop (converged) ): msg = await _feed(role, _judgement(decision)) @@ -196,10 +201,10 @@ async def test_accept_routes_to_refinement_until_two_consecutive(): assert snapshots == [0, 1, 2, 3, 4, 5], f"got {snapshots}" assert consecutive_snaps == [0, 0, 1, 0, 1, 2], f"got {consecutive_snaps}" assert chain == [ - "RetryGeneration", - "RetryGeneration", - "RetryGeneration", - "RetryGeneration", + "RetryCoordinates", + "RetryCoordinates", + "RetryCoordinates", + "RetryCoordinates", "IterationStop", ], f"got {chain}" @@ -213,7 +218,7 @@ async def test_two_consecutive_accepts_terminate_immediately(): out1 = await _feed(role, _judgement(JudgeDecision.ACCEPT)) out2 = await _feed(role, _judgement(JudgeDecision.ACCEPT)) - assert out1.cause_by == any_to_str(RetryGeneration), f"got {_cause(out1)}" + assert out1.cause_by == any_to_str(RetryCoordinates), f"got {_cause(out1)}" assert out2.cause_by == any_to_str(IterationStop), f"got {_cause(out2)}" assert role.state.iteration == 2 assert role.state.consecutive_accepts == 2 @@ -229,7 +234,7 @@ async def test_mvp_3rejects_then_accept_routes_correctly(): """3 rejects (Gen, Gen, Analyst per GENERATOR_FEEDBACK_ROUNDS=2) then ACCEPT. Refinement Loop (2026-05-20): the ACCEPT no longer terminates the loop — - it instead emits a RetryGeneration carrying prev_best_layout so the + it instead emits a RetryCoordinates carrying prev_best_layout so the Generator runs a mandatory polish pass. """ role = IterationStateRole(max_total_rounds=5) @@ -239,15 +244,58 @@ async def test_mvp_3rejects_then_accept_routes_correctly(): out3 = await _feed(role, _judgement(JudgeDecision.REJECT)) out4 = await _feed(role, _judgement(JudgeDecision.ACCEPT)) - assert out1.cause_by == any_to_str(RetryGeneration) - assert out2.cause_by == any_to_str(RetryGeneration) + assert out1.cause_by == any_to_str(RetryCoordinates) + assert out2.cause_by == any_to_str(RetryCoordinates) assert out3.cause_by == any_to_str(RetryAnalyst), f"got {_cause(out3)}" # New Refinement Loop: accept routes to Generator (not IterationStop) for # the mandatory polish round. - assert out4.cause_by == any_to_str(RetryGeneration), f"got {_cause(out4)}" + assert out4.cause_by == any_to_str(RetryCoordinates), f"got {_cause(out4)}" assert all( isinstance(m.instruct_content, RetryPayload) for m in (out1, out2, out3, out4) ) assert role.state.iteration == 4 assert role.state.consecutive_accepts == 1 + + +# ============================================================ +# "先想再畫" three-way routing: design_layout-worst -> CompositionDirector +# ============================================================ + + +def _reject_design_worst() -> AestheticJudgement: + """A reject whose unique worst axis is design_layout -> re-imagine concept.""" + scores = JudgeScores( + design_layout=4, + content_relevance=7, + typography_color=7, + graphics_images=7, + innovation_originality=7, + ) + return AestheticJudgement( + decision=JudgeDecision.REJECT, + best_candidate_id="r0_cand_01", + evaluations=[ + Evaluation( + candidate_id="r0_cand_01", + total=32, + scores=scores, + strengths="ok", + weaknesses="weak composition", + ) + ], + feedback=AestheticFeedback(common_issues="composition is off", suggestions=["rethink layout"]), + ) + + +@pytest.mark.asyncio +async def test_design_layout_worst_routes_to_composition_director(): + """A reject with design_layout as the worst axis (within the generator-feedback + budget) routes to the CompositionDirector via RetryComposition, not the + CoordinateMapper.""" + role = IterationStateRole(max_total_rounds=5) + out = await _feed(role, _reject_design_worst()) + assert out.cause_by == any_to_str(RetryComposition), f"got {_cause(out)}" + assert isinstance(out.instruct_content, RetryPayload) + # Re-imagining throws away the layout anchor. + assert out.instruct_content.prev_best_layout is None diff --git a/tests/metagpt/ext/agentlayout/test_judge_a3_general_cole_hardening.py b/tests/metagpt/ext/agentlayout/test_judge_a3_general_cole_hardening.py new file mode 100644 index 000000000..8d87bf6a0 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_judge_a3_general_cole_hardening.py @@ -0,0 +1,556 @@ +"""Offline guard tests for the paid General-N100 COLE runner. + +All provider objects are fakes, and an autouse fixture makes network and real +client construction fail immediately. +""" +from __future__ import annotations + +import asyncio +import base64 +import hashlib +import io +import json +import socket +import stat +import sys +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path +from types import SimpleNamespace + +import pytest +from PIL import Image + +import layout_agent.judge_a3_general_cole as runner + + +@pytest.fixture(autouse=True) +def _forbid_real_provider(monkeypatch): + def forbidden(*_args, **_kwargs): + raise AssertionError("network/provider access is forbidden in this module") + + monkeypatch.setattr(runner.s21, "_load_openai_client", forbidden) + monkeypatch.setattr(socket.socket, "connect", forbidden) + + +def _png_bytes(size=(32, 24), color=(10, 20, 30)) -> bytes: + stream = io.BytesIO() + Image.new("RGB", size, color).save(stream, format="PNG") + return stream.getvalue() + + +def _task(tmp_path: Path, value: bytes | None = None) -> tuple[dict, bytes]: + value = value or _png_bytes() + path = tmp_path / "input.png" + path.write_bytes(value) + return ( + { + "arm": "general", + "sample_id": "sample-000", + "path": path, + "sha256": hashlib.sha256(value).hexdigest(), + "mime": "image/png", + }, + value, + ) + + +def _usage_response(content: str, input_tokens=20, output_tokens=10): + return SimpleNamespace( + usage=SimpleNamespace( + prompt_tokens=input_tokens, + completion_tokens=output_tokens, + ), + choices=[SimpleNamespace(message=SimpleNamespace(content=content))], + ) + + +class _FakeCompletions: + def __init__(self, outcomes): + self.outcomes = list(outcomes) + self.requests = [] + + async def create(self, **request): + self.requests.append(request) + outcome = self.outcomes.pop(0) + if isinstance(outcome, BaseException): + raise outcome + return outcome + + +def _fake_client(*outcomes): + completions = _FakeCompletions(outcomes) + client = SimpleNamespace(chat=SimpleNamespace(completions=completions)) + return client, completions + + +def _zero_prior_budget(**overrides) -> runner.Budget: + values = { + "call_cap": 20, + "input_token_cap": 1_000_000, + "output_token_cap": 20_000, + "usd_cap": 100.0, + "prior_calls": 0, + "prior_input_tokens": 0, + "prior_output_tokens": 0, + } + values.update(overrides) + return runner.Budget(**values) + + +def test_paid_run_lock_is_nonblocking_private_and_never_unlinked( + tmp_path, monkeypatch +): + lock_path = tmp_path / "stable-paid.lock" + monkeypatch.setattr(runner, "PAID_RUN_LOCK", lock_path) + + with runner._paid_run_lock(): + assert stat.S_IMODE(lock_path.stat().st_mode) == 0o600 + with pytest.raises(runner.PaidRunLockError, match="paid_run_lock_contended"): + with runner._paid_run_lock(): + pass + + assert lock_path.is_file() + with runner._paid_run_lock(): + assert lock_path.is_file() + + with pytest.raises(RuntimeError, match="synthetic lock-body failure"): + with runner._paid_run_lock(): + raise RuntimeError("synthetic lock-body failure") + with runner._paid_run_lock(): + assert lock_path.is_file() + + +def test_offline_preflight_main_never_acquires_paid_lock(monkeypatch): + calls = [] + + def lock_forbidden(): + raise AssertionError("offline preflight must not acquire paid lock") + + monkeypatch.setattr(sys, "argv", ["judge_a3_general_cole.py", "--preflight"]) + monkeypatch.setattr( + runner, "_load_tasks", lambda: ([], [], "synthetic-snapshot") + ) + monkeypatch.setattr( + runner, + "_preflight", + lambda tasks, snapshot: calls.append((tasks, snapshot)), + ) + monkeypatch.setattr(runner, "_paid_run_lock", lock_forbidden) + + assert runner.main() == 0 + assert calls == [([], "synthetic-snapshot")] + + +def test_concurrent_reservations_cannot_oversubscribe_any_cap(): + budget = _zero_prior_budget( + call_cap=8, + input_token_cap=800, + output_token_cap=80, + usd_cap=1.0, + ) + + with ThreadPoolExecutor(max_workers=16) as executor: + reservations = list( + executor.map(lambda _index: budget.reserve(100, 10), range(16)) + ) + + accepted = [reservation for reservation in reservations if reservation is not None] + assert len(accepted) == 8 + state = budget.as_dict() + assert state["reserved_calls"] == 8 + assert state["reserved_input_tokens"] == 800 + assert state["reserved_output_tokens"] == 80 + assert budget.reserve(1, 1) is None + + for reservation in accepted: + budget.settle_failure(reservation) + assert budget.as_dict()["calls"] == 8 + assert budget.as_dict()["input_tokens"] == 800 + assert budget.as_dict()["output_tokens"] == 80 + + +def test_concurrent_reservations_cannot_oversubscribe_usd_cap(): + unit_usd = runner.Budget._usd(100, 10) + budget = _zero_prior_budget( + call_cap=20, + input_token_cap=10_000, + output_token_cap=1_000, + usd_cap=unit_usd * 3.5, + ) + + with ThreadPoolExecutor(max_workers=10) as executor: + reservations = list( + executor.map(lambda _index: budget.reserve(100, 10), range(10)) + ) + + accepted = [reservation for reservation in reservations if reservation] + assert len(accepted) == 3 + state = budget.as_dict() + assert state["reserved_estimated_usd"] <= budget.usd_cap + assert budget.reserve(100, 10) is None + + +def test_budget_preserves_historical_reserves_and_settles_actual_usage(): + historical = runner.Budget().as_dict() + assert historical["calls"] == runner.PRIOR_INTERRUPTED_CALLS + assert historical["input_tokens"] == runner.PRIOR_INPUT_TOKEN_RESERVE + assert historical["output_tokens"] == runner.PRIOR_OUTPUT_TOKEN_RESERVE + + budget = _zero_prior_budget() + reservation = budget.reserve(1_000, 600) + usage = budget.settle_response( + reservation, _usage_response("ok", input_tokens=17, output_tokens=3) + ) + assert usage == { + "input_tokens": 17, + "output_tokens": 3, + "usage_reported": True, + "conservative": False, + "reservation_bound_exceeded": False, + } + assert budget.as_dict()["input_tokens"] == 17 + assert budget.as_dict()["output_tokens"] == 3 + + +def test_missing_usage_retains_full_conservative_charge(): + budget = _zero_prior_budget() + reservation = budget.reserve(321, 123) + usage = budget.settle_response( + reservation, + SimpleNamespace(usage=None, choices=[]), + ) + assert usage["conservative"] is True + assert usage["usage_reported"] is False + assert budget.as_dict()["input_tokens"] == 321 + assert budget.as_dict()["output_tokens"] == 123 + assert budget.as_dict()["reserved_calls"] == 0 + + +def test_missing_usage_response_never_becomes_a_score(tmp_path, monkeypatch): + async def no_sleep(_seconds): + return None + + task, _value = _task(tmp_path) + runner._pin_verified_inputs([task]) + monkeypatch.setattr(runner, "REPO", tmp_path) + monkeypatch.setattr(runner.asyncio, "sleep", no_sleep) + monkeypatch.setattr( + runner.s21, + "_parse_cole_json", + lambda _text: {"SDL": 5, "SQL": 5, "STV": 5, "SGI": 5, "SIO": 5}, + ) + missing_usage = SimpleNamespace( + usage=None, + choices=[SimpleNamespace(message=SimpleNamespace(content="valid"))], + ) + client, _completions = _fake_client(missing_usage, missing_usage) + budget = _zero_prior_budget() + + row = asyncio.run( + runner._score_task( + client, + task, + {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS}, + budget, + ) + ) + + assert row["status"] == "failed" + assert row["error_code"] == "provider_usage_missing" + assert budget.as_dict()["calls"] == 2 + assert budget.as_dict()["usage_reported_calls"] == 0 + + +def test_request_bound_uses_exact_payload_and_verified_image_tiles(tmp_path): + task, _value = _task(tmp_path, _png_bytes((3000, 2000))) + runner._pin_verified_inputs([task]) + messages = runner._score_messages(task) + kwargs = {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS} + bound = runner._request_input_token_bound( + messages, kwargs, task[runner.PINNED_SIZE_KEY] + ) + no_image_bound = runner._request_input_token_bound(messages, kwargs) + tile_bound = ( + runner.VISION_BASE_TOKEN_BOUND + + runner.VISION_TILE_TOKEN_BOUND + * runner._normalized_vision_tiles((3000, 2000)) + ) + assert bound == no_image_bound + tile_bound + assert no_image_bound > len(runner.s21.COLE_PROMPT.encode("utf-8")) + + +def test_malformed_image_bytes_fail_before_reservation_or_fake_create(tmp_path): + task, _value = _task(tmp_path, b"not-an-image") + client, completions = _fake_client() + budget = _zero_prior_budget() + + with pytest.raises(RuntimeError, match="invalid judge input image"): + runner._pin_verified_inputs([task]) + + assert client.chat.completions is completions + assert completions.requests == [] + assert budget.as_dict()["calls"] == 0 + assert budget.as_dict()["reserved_calls"] == 0 + assert budget.has_active_reservations() is False + + +def test_invalid_image_dimensions_fail_before_reservation_or_fake_create( + tmp_path, monkeypatch +): + class ZeroWidthImage: + size = (0, 10) + + def __enter__(self): + return self + + def __exit__(self, *_args): + return None + + def verify(self): + return None + + task, _value = _task(tmp_path) + client, completions = _fake_client() + budget = _zero_prior_budget() + monkeypatch.setattr( + runner.Image, "open", lambda _stream: ZeroWidthImage() + ) + + with pytest.raises(RuntimeError, match="invalid judge input dimensions"): + runner._pin_verified_inputs([task]) + + assert client.chat.completions is completions + assert completions.requests == [] + assert budget.as_dict()["calls"] == 0 + assert budget.as_dict()["reserved_calls"] == 0 + assert budget.has_active_reservations() is False + + +def test_scoring_uses_preflight_bytes_and_postflight_rejects_mutation( + tmp_path, monkeypatch +): + task, original = _task(tmp_path) + runner._pin_verified_inputs([task]) + task["path"].write_bytes(_png_bytes(color=(200, 10, 20))) + monkeypatch.setattr(runner, "REPO", tmp_path) + scores = {"SDL": 6, "SQL": 7, "STV": 8, "SGI": 5, "SIO": 9} + monkeypatch.setattr(runner.s21, "_parse_cole_json", lambda _text: scores) + client, completions = _fake_client(_usage_response("valid-json")) + + row = asyncio.run( + runner._score_task( + client, + task, + {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS}, + _zero_prior_budget(), + ) + ) + + url = completions.requests[0]["messages"][0]["content"][1]["image_url"]["url"] + assert base64.b64decode(url.partition(",")[2]) == original + assert row["status"] == "ok" + assert runner.PINNED_BYTES_KEY not in row + assert original not in json.dumps(row, sort_keys=True).encode() + with pytest.raises(RuntimeError, match="changed during paid execution"): + runner._verify_inputs_unchanged([task]) + + +def test_secret_bearing_provider_exception_is_sanitized(tmp_path, monkeypatch): + class SecretBearingError(Exception): + pass + + async def no_sleep(_seconds): + return None + + secret = "Authorization: Bearer sk-test-never-persist" + task, _value = _task(tmp_path) + runner._pin_verified_inputs([task]) + monkeypatch.setattr(runner, "REPO", tmp_path) + monkeypatch.setattr(runner.asyncio, "sleep", no_sleep) + client, _completions = _fake_client( + SecretBearingError(secret), SecretBearingError(secret) + ) + + row = asyncio.run( + runner._score_task( + client, + task, + {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS}, + _zero_prior_budget(), + ) + ) + + persisted = json.dumps(row, sort_keys=True) + assert row["error_code"] == "provider_error" + assert secret not in persisted + assert "sk-test" not in persisted + + +def test_cancellation_conservatively_commits_in_flight_reservation( + tmp_path, monkeypatch +): + class BlockingCompletions: + def __init__(self): + self.started = None + self.requests = [] + + async def create(self, **request): + self.requests.append(request) + assert self.started is not None + self.started.set() + await asyncio.Future() + + task, _value = _task(tmp_path) + runner._pin_verified_inputs([task]) + monkeypatch.setattr(runner, "REPO", tmp_path) + kwargs = {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS} + messages = runner._score_messages(task) + input_bound = runner._request_input_token_bound( + messages, kwargs, task[runner.PINNED_SIZE_KEY] + ) + budget = _zero_prior_budget( + call_cap=2, + input_token_cap=input_bound, + output_token_cap=runner.MAX_COMPLETION_TOKENS, + ) + completions = BlockingCompletions() + client = SimpleNamespace(chat=SimpleNamespace(completions=completions)) + + async def cancel_in_flight(): + completions.started = asyncio.Event() + scoring = asyncio.create_task( + runner._score_task(client, task, kwargs, budget) + ) + await completions.started.wait() + scoring.cancel() + with pytest.raises(asyncio.CancelledError): + await scoring + + asyncio.run(cancel_in_flight()) + + state = budget.as_dict() + assert len(completions.requests) == 1 + assert state["calls"] == 1 + assert state["input_tokens"] == input_bound + assert state["output_tokens"] == runner.MAX_COMPLETION_TOKENS + assert state["usage_reported_calls"] == 0 + assert state["reserved_calls"] == 0 + assert state["reserved_input_tokens"] == 0 + assert state["reserved_output_tokens"] == 0 + assert budget.has_active_reservations() is False + assert budget.reserve(1, 1) is None + + +def test_secret_bearing_unparseable_response_is_sanitized(tmp_path, monkeypatch): + async def no_sleep(_seconds): + return None + + secret = "Bearer sk-test-response-secret" + task, _value = _task(tmp_path) + runner._pin_verified_inputs([task]) + monkeypatch.setattr(runner, "REPO", tmp_path) + monkeypatch.setattr(runner.asyncio, "sleep", no_sleep) + monkeypatch.setattr(runner.s21, "_parse_cole_json", lambda _text: None) + client, _completions = _fake_client( + _usage_response(secret), _usage_response(secret) + ) + + row = asyncio.run( + runner._score_task( + client, + task, + {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS}, + _zero_prior_budget(), + ) + ) + + persisted = json.dumps(row, sort_keys=True) + assert row["error_code"] == "response_unparseable" + assert secret not in persisted + assert "sk-test" not in persisted + + +def test_probe_failure_commits_conservative_reservation_before_fallback(capsys): + class BadRequestError(Exception): + code = "unsupported_parameter" + param = "max_tokens" + + secret = "Authorization Bearer sk-test-probe-secret" + client, _completions = _fake_client(BadRequestError(secret)) + budget = _zero_prior_budget() + legacy = {"temperature": 0.0, "max_tokens": runner.MAX_COMPLETION_TOKENS} + messages = [{"role": "user", "content": "Reply with the word ok."}] + expected_input = runner._request_input_token_bound(messages, legacy) + expected_usd = runner.Budget._usd( + expected_input, runner.MAX_COMPLETION_TOKENS + ) + + kwargs = asyncio.run(_resolve(client, budget)) + + assert kwargs == {"max_completion_tokens": runner.MAX_COMPLETION_TOKENS} + assert secret not in capsys.readouterr().out + state = budget.as_dict() + assert state["calls"] == 1 + assert state["input_tokens"] == expected_input + assert state["output_tokens"] == runner.MAX_COMPLETION_TOKENS + assert state["usage_reported_calls"] == 0 + assert state["estimated_usd"] == round(expected_usd, 6) + assert state["reserved_calls"] == 0 + assert state["reserved_input_tokens"] == 0 + assert state["reserved_output_tokens"] == 0 + assert state["reserved_estimated_usd"] == 0 + assert budget.has_active_reservations() is False + + +async def _resolve(client, budget): + return await runner._resolve_params(client, budget) + + +def _complete_rows(ids): + scores = {"SDL": 5, "SQL": 5, "STV": 5, "SGI": 5, "SIO": 5} + return [ + { + "arm": arm, + "sample_id": sample_id, + "status": "ok", + "scores": scores, + "smean4": 5.0, + } + for arm in ("general", "gt") + for sample_id in ids + ] + + +@pytest.mark.parametrize( + "bad_status", ["failed", "aborted", "authorization_cap_reached"] +) +def test_incomplete_or_cap_rows_never_create_staging_or_final( + tmp_path, monkeypatch, bad_status +): + ids = [f"sample-{index:03d}" for index in range(100)] + rows = _complete_rows(ids) + rows[37] = {**rows[37], "status": bad_status} + monkeypatch.setattr(runner, "OUT_ROOT", tmp_path / "cole") + + with pytest.raises(RuntimeError, match="all 200 scoring rows"): + runner._publish(rows, _zero_prior_budget(), 1.0, ids, "snapshot") + + final, staging = runner._target_paths() + assert not final.exists() + assert not staging.exists() + + +def test_publication_contract_rejects_duplicate_or_reordered_pairs(): + ids = [f"sample-{index:03d}" for index in range(100)] + rows = _complete_rows(ids) + runner._validate_complete_rows(rows, ids) + + duplicate = list(rows) + duplicate[1] = duplicate[0] + with pytest.raises(RuntimeError, match="unique arm/sample pairs"): + runner._validate_complete_rows(duplicate, ids) + + reordered = list(rows) + reordered[0], reordered[1] = reordered[1], reordered[0] + with pytest.raises(RuntimeError, match="IDs or order"): + runner._validate_complete_rows(reordered, ids) diff --git a/tests/metagpt/ext/agentlayout/test_judge_critic_a3.py b/tests/metagpt/ext/agentlayout/test_judge_critic_a3.py new file mode 100644 index 000000000..d0814e439 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_judge_critic_a3.py @@ -0,0 +1,153 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest +from PIL import Image +from pydantic import ValidationError + +from metagpt.ext.agentlayout.tools.judge_critic import ( + ActionableIssue, + CriticIssueType, + JudgeCriticResult, + build_judge_critic_prompt, + build_judge_critic_request, + parse_judge_critic_result, + save_judge_critic_request, + validate_critic_targets, +) +from metagpt.ext.agentlayout.tools.judge_select import JudgeSelectResult + + +KNOWN_IDS = ["asset_0001", "asset_0002", "asset_0003"] + + +def _issue(**overrides) -> dict: + payload = { + "target_asset_ids": ["asset_0001"], + "issue_type": "overlap", + "observation": "headline overlaps the product image", + "desired_change": "move asset_0001 above asset_0003 with clear separation", + } + payload.update(overrides) + return payload + + +def _result(issue_count: int = 1) -> JudgeCriticResult: + issues = [ + ActionableIssue.model_validate(_issue(target_asset_ids=[KNOWN_IDS[i]])) + for i in range(issue_count) + ] + return JudgeCriticResult(issues=issues) + + +def test_at_most_two_actionable_issues_are_allowed(): + assert len(_result(2).issues) == 2 + with pytest.raises(ValidationError, match="at most 2"): + JudgeCriticResult( + issues=[ + ActionableIssue.model_validate(_issue(target_asset_ids=[asset_id])) + for asset_id in KNOWN_IDS + ] + ) + + +def test_vague_opinions_are_structurally_unrepresentable(): + for vague in ("not_beautiful_enough", "lacks_creativity", "boring", "low_quality"): + with pytest.raises(ValidationError): + ActionableIssue.model_validate(_issue(issue_type=vague)) + assert "not_beautiful_enough" not in {item.value for item in CriticIssueType} + + +def test_every_issue_requires_targets_closed_type_and_desired_change(): + with pytest.raises(ValidationError): + ActionableIssue.model_validate(_issue(target_asset_ids=[])) + with pytest.raises(ValidationError): + ActionableIssue.model_validate(_issue(desired_change="")) + with pytest.raises(ValidationError, match="duplicates"): + ActionableIssue.model_validate( + _issue(target_asset_ids=["asset_0001", "asset_0001"]) + ) + + +def test_result_has_no_overall_score_ranking_or_verdict_fields(): + assert set(JudgeCriticResult.model_fields) == {"schema_version", "issues"} + payload = _result().model_dump(mode="json") + for forbidden in ("overall_score", "total", "ranking", "verdict", "selected_candidate_id"): + with pytest.raises(ValidationError): + JudgeCriticResult.model_validate({**payload, forbidden: 1}) + + +def test_zero_issues_is_a_valid_outcome(): + empty = JudgeCriticResult(issues=[]) + assert empty.issues == [] + validate_critic_targets(empty, KNOWN_IDS) + + +def test_issue_targets_must_exist_in_the_layout(): + result = _result() + validate_critic_targets(result, KNOWN_IDS) + with pytest.raises(ValueError, match="unknown asset IDs"): + validate_critic_targets(result, ["asset_0002", "asset_0003"]) + + +def test_prompt_sees_only_b0_and_forbids_scores_and_reranking(): + prompt = build_judge_critic_prompt("r0_candidate_02", KNOWN_IDS) + assert "Judge-Critic" in prompt + assert "ONLY the already-selected best candidate" in prompt + assert "r0_candidate_02" in prompt + assert "ACCEPT" not in prompt + assert "REJECT" not in prompt + assert "threshold" not in prompt + assert "Do NOT output an overall score" in prompt + assert "at most 2" in prompt + assert '"not beautiful enough"' in prompt and '"lacks creativity"' in prompt + + +def test_request_records_b0_render_hash_and_is_write_once(tmp_path): + render = tmp_path / "b0.png" + Image.new("RGB", (4, 4), "white").save(render) + request = build_judge_critic_request( + b0_candidate_id="r0_candidate_02", + render_ref=str(render), + known_asset_ids=KNOWN_IDS, + ) + assert request.version == "a3.judge-critic-request.v1" + assert len(request.prompt_sha256) == 64 + assert len(request.render_sha256) == 64 + assert request.b0_candidate_id == "r0_candidate_02" + + output = tmp_path / "judge_critic" + save_judge_critic_request(request, output) + assert (output / "judge_critic_request.json").exists() + with pytest.raises(FileExistsError): + save_judge_critic_request(request, output) + + +def test_parser_accepts_fenced_json(): + result = _result() + parsed = parse_judge_critic_result("```json\n" + result.model_dump_json() + "\n```") + assert parsed == result + + +def test_selection_and_critique_contracts_are_disjoint(): + select_fields = set(JudgeSelectResult.model_fields) + critic_fields = set(JudgeCriticResult.model_fields) + assert "issues" not in select_fields + assert "ranking" not in critic_fields + assert "selected_candidate_id" not in critic_fields + assert select_fields & critic_fields == {"schema_version"} + + critic_prompt = build_judge_critic_prompt("r0_candidate_02", KNOWN_IDS) + assert "Judge-Select" not in critic_prompt + + +def test_action_enforces_vision_exact_model_single_render_and_retry(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/actions/judge_critic_a3.py").read_text() + assert "support_image_input" in source + assert "actual_model != self.expected_model" in source + assert "images = [image_to_base64(render)]" in source + assert "aask(prompt, images=images)" in source + assert "Previous response validation error" in source + assert "validate_critic_targets" in source diff --git a/tests/metagpt/ext/agentlayout/test_judge_select_a3.py b/tests/metagpt/ext/agentlayout/test_judge_select_a3.py new file mode 100644 index 000000000..d94da3dfd --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_judge_select_a3.py @@ -0,0 +1,127 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest +from PIL import Image +from pydantic import ValidationError + +from metagpt.ext.agentlayout.tools.judge_select import ( + JudgeSelectCandidate, + JudgeSelectResult, + build_judge_select_prompt, + build_judge_select_request, + parse_judge_select_result, + save_judge_select_request, + validate_selection, +) + + +def _render(tmp_path: Path, name: str) -> str: + path = tmp_path / f"{name}.png" + Image.new("RGB", (4, 4), "white").save(path) + return str(path) + + +def _candidates(tmp_path: Path) -> list[JudgeSelectCandidate]: + return [ + JudgeSelectCandidate( + candidate_id=f"r0_candidate_{index:02d}", + render_ref=_render(tmp_path, f"r0_candidate_{index:02d}"), + qc_passed=index != 2, + qc_violations=[] if index != 2 else ["element out of canvas"], + ) + for index in (1, 2, 3) + ] + + +def _result() -> JudgeSelectResult: + return JudgeSelectResult( + ranking=["r0_candidate_02", "r0_candidate_01", "r0_candidate_03"], + selected_candidate_id="r0_candidate_02", + ) + + +def test_result_is_pure_ranking_without_score_or_verdict_fields(): + result = _result() + assert result.schema_version == "a3.judge-select-result.v1" + assert set(JudgeSelectResult.model_fields) == { + "schema_version", + "ranking", + "selected_candidate_id", + } + payload = result.model_dump(mode="json") + for forbidden in ("total", "scores", "verdict", "feedback", "suggestions"): + with pytest.raises(ValidationError): + JudgeSelectResult.model_validate({**payload, forbidden: 40}) + + +def test_ranking_must_be_unique_and_selection_must_be_first(): + payload = _result().model_dump(mode="json") + payload["ranking"] = ["r0_candidate_02", "r0_candidate_02", "r0_candidate_03"] + with pytest.raises(ValidationError, match="duplicate"): + JudgeSelectResult.model_validate(payload) + + payload = _result().model_dump(mode="json") + payload["selected_candidate_id"] = "r0_candidate_03" + with pytest.raises(ValidationError, match="first ranking entry"): + JudgeSelectResult.model_validate(payload) + + +def test_selection_must_be_exact_permutation_of_submitted_candidates(): + result = _result() + validate_selection( + result, ["r0_candidate_01", "r0_candidate_02", "r0_candidate_03"] + ) + with pytest.raises(ValueError, match="permutation"): + validate_selection( + result, ["r0_candidate_01", "r0_candidate_02", "r0_candidate_99"] + ) + + +def test_prompt_ranks_only_without_accept_reject_threshold_or_critique(tmp_path): + prompt = build_judge_select_prompt(_candidates(tmp_path)) + assert "Judge-Select" in prompt + assert "rank" in prompt.lower() + assert "ACCEPT" not in prompt + assert "REJECT" not in prompt + assert "threshold" not in prompt + assert "35" not in prompt + assert "Do NOT write critique" in prompt + assert "r0_candidate_01" in prompt and "r0_candidate_03" in prompt + + +def test_exactly_three_candidates_are_required(tmp_path): + with pytest.raises(ValueError, match="exactly 3"): + build_judge_select_prompt(_candidates(tmp_path)[:2]) + + +def test_parser_accepts_fenced_json(): + result = _result() + parsed = parse_judge_select_result("```json\n" + result.model_dump_json() + "\n```") + assert parsed == result + + +def test_request_records_render_hashes_and_is_write_once(tmp_path): + request = build_judge_select_request(_candidates(tmp_path)) + assert request.version == "a3.judge-select-request.v1" + assert len(request.prompt_sha256) == 64 + assert set(request.render_sha256) == set(request.candidate_ids) + assert all(len(digest) == 64 for digest in request.render_sha256.values()) + + output = tmp_path / "judge_select" + save_judge_select_request(request, output) + assert (output / "judge_select_request.json").exists() + with pytest.raises(FileExistsError): + save_judge_select_request(request, output) + + +def test_action_enforces_vision_exact_model_three_renders_and_retry(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/actions/judge_select_a3.py").read_text() + assert "support_image_input" in source + assert "actual_model != self.expected_model" in source + assert "JUDGE_SELECT_CANDIDATE_COUNT" in source + assert "aask(prompt, images=images)" in source + assert "Previous response validation error" in source + assert "validate_selection" in source diff --git a/tests/metagpt/ext/agentlayout/test_layout_metrics.py b/tests/metagpt/ext/agentlayout/test_layout_metrics.py new file mode 100644 index 000000000..921eb3c90 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_layout_metrics.py @@ -0,0 +1,134 @@ +"""Unit tests for Step 83 layout metrics + judge integration.""" +from __future__ import annotations + +from metagpt.ext.agentlayout.schema import ( + BackgroundAnalysis, + Candidate, + Canvas, + DesignSpec, + Element, + LayoutElement, + SemanticType, + UnderlayRegion, + VisualType, +) +from metagpt.ext.agentlayout.tools.layout_metrics import ( + GT_METRICS, + format_metrics_block, + measure_layout, +) + + +def _el(eid: str, left: int, top: int, w: int, h: int) -> LayoutElement: + return LayoutElement(id=eid, left=left, top=top, width=w, height=h, z_index=2) + + +def _spec(n_texts: int = 4) -> DesignSpec: + els = [ + Element(id=f"text_{i}", semantic_type=SemanticType.BODY_TEXT, + visual_type=VisualType.IMAGE, content=f"t{i}", + asset_ref=f"/x/asset_{i:02d}_text.png", inferred=False, + importance=3, semantic_relevance=0.5) + for i in range(1, n_texts + 1) + ] + els.append(Element(id="photo_1", semantic_type=SemanticType.PRODUCT_IMAGE, + visual_type=VisualType.IMAGE, asset_ref="/x/p.png", + inferred=False, importance=3, semantic_relevance=0.5)) + return DesignSpec(canvas=Canvas(width=1000, height=1000), elements=els, + hard_constraints=[], style_keywords=[], language="en") + + +def test_gt_constants_pinned(): + """Re-run the Step 83 calibration one-liner before changing these.""" + assert GT_METRICS["lockup_gap_p50"] == 0.014 + assert GT_METRICS["left_groups_p50"] == 3 + assert GT_METRICS["fully_centered_rate"] == 0.223 + + +def test_centered_alignment_and_lockup(): + # title (largest) at top; one text right below (tight lockup); two far. + cand = Candidate(candidate_id="c", elements=[ + _el("text_1", 100, 100, 800, 200), # title, centered (cx=500) + _el("text_2", 300, 310, 400, 50), # centered, 10px below title + _el("text_3", 50, 700, 300, 40), # left-ish + _el("text_4", 50, 800, 300, 40), # same left edge as text_3 + _el("photo_1", 0, 0, 10, 10), # non-text: ignored + ]) + m = measure_layout(cand, _spec()) + assert m.n_texts == 4 + assert m.centered_count == 2 and m.centered_fraction == 0.5 + # left edges: 100, 300, 50, 50 -> groups {50,50},{100},{300} = 3 + assert m.n_left_groups == 3 + assert m.lockup_gap_frac == 0.01 # 10px / 1000 + assert m.n_overlap_pairs == 0 + + +def test_overlap_pairs_and_panel_utilization(): + cand = Candidate(candidate_id="c", elements=[ + _el("text_1", 100, 100, 400, 100), + _el("text_2", 150, 150, 400, 100), # overlaps text_1 + _el("text_3", 600, 600, 200, 100), # inside panel + ]) + regions = [UnderlayRegion(bbox=[600, 600, 1000, 800], dominant_color="#000000", + recommended_text_color="#F4F4F4")] + m = measure_layout(cand, _spec(3), regions) + assert m.n_overlap_pairs == 1 + # panel 400x200=80k; text_3 fully inside = 20k -> 0.25 + assert m.panel_utilization == 0.25 + + +def test_format_block_is_neutral_and_cites_gt(): + cand = Candidate(candidate_id="c", elements=[ + _el("text_1", 100, 100, 800, 200), + _el("text_2", 300, 310, 400, 50), + ]) + block = format_metrics_block(measure_layout(cand, _spec(2))) + assert "NEUTRAL measurements" in block + assert "legitimate style" in block # centering not framed as a flaw + assert "designer p50=0.014" in block + assert "22%" in block + + +def test_canvas_resources_block_lists_panels_zones_and_frame_semantics(): + """Step 86: judge + observer get panels (frame/solid) AND CV placeable + regions -- the terrain for image-specific target_bbox estimates.""" + from metagpt.ext.agentlayout.actions.judge_aesthetic import JudgeAesthetic + from metagpt.ext.agentlayout.schema import SafeZone + + bg = BackgroundAnalysis( + safe_zones=[SafeZone(region="top-left", bbox=[0, 0, 400, 300], confidence=0.9)], + underlay_regions=[ + UnderlayRegion(bbox=[104, 408, 836, 717], dominant_color="#28312A", + recommended_text_color="#F4F4F4", panel_type="frame"), + UnderlayRegion(bbox=[0, 900, 500, 1000], dominant_color="#000000", + recommended_text_color="#F4F4F4"), + ], + ) + block = JudgeAesthetic._canvas_resources_block(bg) + assert "panel 1: bbox [104, 408, 836, 717], transparent frame, backdrop ~#28312A" in block + assert "panel 2: bbox [0, 900, 500, 1000], solid fill #000000" in block + assert "top-left: bbox [0, 0, 400, 300] (confidence 0.90)" in block + assert "anchors for target_bbox estimates" in block + assert JudgeAesthetic._canvas_resources_block(BackgroundAnalysis()) == \ + "(no panel / region data available)" + + +def test_judge_prompt_gets_anchors_and_geometry(tmp_path): + from metagpt.ext.agentlayout.actions.judge_aesthetic import ( + JudgeAesthetic, + _SCORING_ANCHORS, + ) + + assert "Scoring anchors" in _SCORING_ANCHORS + assert "INVALID weaknesses" in _SCORING_ANCHORS + + cand = Candidate(candidate_id="cand_01", elements=[ + _el("text_1", 100, 100, 800, 200), + _el("text_2", 300, 310, 400, 50), + ]) + block = JudgeAesthetic._geometry_facts_block( + [cand], _spec(2), BackgroundAnalysis() + ) + assert "Machine-measured geometry" in block + assert "Candidate cand_01" in block + assert "lockup" in block diff --git a/tests/metagpt/ext/agentlayout/test_layout_tree_v3.py b/tests/metagpt/ext/agentlayout/test_layout_tree_v3.py new file mode 100644 index 000000000..ac419d232 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_layout_tree_v3.py @@ -0,0 +1,302 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest +from pydantic import ValidationError + +import json + +from metagpt.ext.agentlayout.layout_tree_v3 import ( + A3LayoutTree, + A3TreeGroup, + A3TreeNode, + TreeRelation, + apply_analyst_semantics, + build_tree_request, + make_tree_condition, + parse_layout_tree, + save_tree_request, + validate_tree_against_analyst, +) +from metagpt.ext.agentlayout.tools.analyst_vision import ( + A3AnalystOutput, + A3AssetUnderstanding, +) + + +def _analyst() -> A3AnalystOutput: + return A3AnalystOutput( + background_summary="Quiet blue background", + design_intent="Promote a summer sale", + style_keywords=["bright", "commercial"], + language="en", + assets=[ + A3AssetUnderstanding( + asset_id="asset_0001", + semantic_type="title", + description="Main sale heading", + semantic_role="primary message", + key_message="SUMMER SALE", + ), + A3AssetUnderstanding( + asset_id="asset_0002", + semantic_type="pricetag", + description="Discount price", + semantic_role="offer qualifier", + key_message="50% OFF", + ), + A3AssetUnderstanding( + asset_id="asset_0003", + semantic_type="product_image", + description="Featured shoe", + semantic_role="focal product", + ), + ], + ) + + +def _tree(source="predicted") -> A3LayoutTree: + return A3LayoutTree( + source=source, + nodes=[ + A3TreeNode( + asset_id="asset_0001", + semantic_type="title", + semantic_role="primary message", + group_id="group_offer", + group_label="offer lockup", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.95, + ), + A3TreeNode( + asset_id="asset_0002", + semantic_type="pricetag", + semantic_role="offer qualifier", + group_id="group_offer", + group_label="offer lockup", + parent_id="asset_0001", + relation_to_parent="qualifies", + ordering_priority=1, + confidence=0.9, + ), + A3TreeNode( + asset_id="asset_0003", + semantic_type="product_image", + semantic_role="focal product", + group_id="group_product", + group_label="product", + parent_id="root", + relation_to_parent="root", + ordering_priority=0, + confidence=0.92, + ), + ], + groups=[ + A3TreeGroup( + group_id="group_offer", + label="offer lockup", + member_ids=["asset_0001", "asset_0002"], + ordering_priority=0, + confidence=0.94, + ), + A3TreeGroup( + group_id="group_product", + label="product", + member_ids=["asset_0003"], + ordering_priority=1, + confidence=0.92, + ), + ], + ) + + +def test_valid_tree_has_explicit_roles_groups_edges_order_and_confidence(): + tree = _tree() + validate_tree_against_analyst(tree, _analyst()) + assert tree.schema_version == "a3.layout-tree.v1" + price = next(node for node in tree.nodes if node.asset_id == "asset_0002") + assert price.parent_id == "asset_0001" + assert price.relation_to_parent == TreeRelation.QUALIFIES + assert price.group_id == "group_offer" + assert price.ordering_priority == 1 + assert price.confidence == 0.9 + + +def test_missing_parent_is_rejected(): + payload = _tree().model_dump(mode="json") + payload["nodes"][1]["parent_id"] = "asset_9999" + with pytest.raises(ValidationError, match="missing parent"): + A3LayoutTree.model_validate(payload) + + +def test_cycle_is_rejected(): + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["parent_id"] = "asset_0002" + payload["nodes"][0]["relation_to_parent"] = "supports" + with pytest.raises(ValidationError, match="cycle"): + A3LayoutTree.model_validate(payload) + + +def test_group_partition_is_exact_and_non_overlapping(): + payload = _tree().model_dump(mode="json") + payload["groups"][1]["member_ids"].append("asset_0002") + with pytest.raises(ValidationError, match="multiple groups"): + A3LayoutTree.model_validate(payload) + + payload = _tree().model_dump(mode="json") + payload["groups"][0]["member_ids"].remove("asset_0002") + with pytest.raises(ValidationError, match="missing group membership"): + A3LayoutTree.model_validate(payload) + + +def test_node_group_label_must_match_group_contract(): + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["group_label"] = "different" + with pytest.raises(ValidationError, match="group_label"): + A3LayoutTree.model_validate(payload) + + +def test_confidence_and_root_relation_are_validated(): + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["confidence"] = 1.1 + with pytest.raises(ValidationError, match="less than or equal to 1"): + A3LayoutTree.model_validate(payload) + + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["relation_to_parent"] = "peer" + with pytest.raises(ValidationError, match="root children"): + A3LayoutTree.model_validate(payload) + + +def test_tree_must_exactly_cover_analyst_ids_and_semantic_types(): + analyst = _analyst() + missing_payload = _tree().model_dump(mode="json") + missing_payload["nodes"] = missing_payload["nodes"][:-1] + missing_payload["groups"] = missing_payload["groups"][:-1] + missing = A3LayoutTree.model_validate(missing_payload) + with pytest.raises(ValueError, match="coverage mismatch"): + validate_tree_against_analyst(missing, analyst) + + mismatch_payload = _tree().model_dump(mode="json") + mismatch_payload["nodes"][0]["semantic_type"] = "caption" + mismatch = A3LayoutTree.model_validate(mismatch_payload) + with pytest.raises(ValueError, match="semantic_type mismatch"): + validate_tree_against_analyst(mismatch, analyst) + + role_payload = _tree().model_dump(mode="json") + role_payload["nodes"][0]["semantic_role"] = "rewritten role" + role_mismatch = A3LayoutTree.model_validate(role_payload) + with pytest.raises(ValueError, match="semantic_role mismatch"): + validate_tree_against_analyst(role_mismatch, analyst) + + +def test_request_is_versioned_hashed_and_contains_no_paths_or_geometry_values(): + request = build_tree_request(_analyst()) + assert request.version == "a3.layout-tree-request.v1" + assert len(request.prompt_sha256) == 64 + assert "/home/" not in request.prompt + assert "asset_0001" in request.prompt + assert "primary message" in request.prompt + # Geometry words occur only in the explicit prohibition, never as input values. + assert '"left"' not in request.prompt + assert '"top"' not in request.prompt + assert '"width"' not in request.prompt + assert '"height"' not in request.prompt + + +def test_parser_accepts_fenced_tree_json(): + tree = _tree() + parsed = parse_layout_tree("```json\n" + tree.model_dump_json() + "\n```") + assert parsed == tree + + +def test_parser_normalizes_root_child_relation(): + # A3-08 smoke fix: a root child has exactly one legal relation value, so + # the parser coerces it instead of burning a schema retry. + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["relation_to_parent"] = "peer" + parsed = parse_layout_tree(json.dumps(payload)) + assert parsed.nodes[0].relation_to_parent == TreeRelation.ROOT + # The inverse mistake stays a hard error. + bad = _tree().model_dump(mode="json") + bad["nodes"][1]["relation_to_parent"] = "root" + with pytest.raises(ValidationError, match="non-root edges"): + parse_layout_tree(json.dumps(bad)) + + +def test_apply_analyst_semantics_enforces_fidelity_by_construction(): + # A3-08 smoke fix: Planner paraphrases of free-text roles must not fail + # T2 fidelity; both semantic fields are overwritten deterministically. + analyst = _analyst() + payload = _tree().model_dump(mode="json") + payload["nodes"][0]["semantic_role"] = "planner paraphrased role" + payload["nodes"][1]["semantic_type"] = "caption" + drifted = A3LayoutTree.model_validate(payload) + with pytest.raises(ValueError, match="mismatch"): + validate_tree_against_analyst(drifted, analyst) + repaired = apply_analyst_semantics(drifted, analyst) + validate_tree_against_analyst(repaired, analyst) + assert repaired.nodes[0].semantic_role == "primary message" + assert repaired.nodes[1].semantic_type == "pricetag" + # Grouping/edges — the Planner's actual judgement — are untouched. + assert repaired.nodes[1].parent_id == "asset_0001" + assert repaired.groups == drifted.groups + + +def test_tree_request_artifact_is_non_overwritable(tmp_path: Path): + request = build_tree_request(_analyst()) + output = tmp_path / "planner" + save_tree_request(request, output) + assert (output / "planner_request.json").exists() + with pytest.raises(FileExistsError): + save_tree_request(request, output) + + +def test_t0_t1_t2_t3_conditions_change_only_tree_information(): + analyst = _analyst() + t0 = make_tree_condition("T0", analyst) + t1 = make_tree_condition("T1", analyst) + t2 = make_tree_condition("T2", analyst, tree=_tree("predicted")) + t3 = make_tree_condition("T3", analyst, tree=_tree("human_oracle")) + expected_ids = [asset.asset_id for asset in analyst.assets] + assert all(condition.asset_ids == expected_ids for condition in (t0, t1, t2, t3)) + assert t0.flat_roles is None and t0.tree is None + assert t1.flat_roles is not None and t1.tree is None + assert t2.tree.source == "predicted" + assert t3.tree.source == "human_oracle" + + +def test_t3_oracle_may_correct_analyst_semantics_but_not_asset_ids(): + analyst = _analyst() + oracle_payload = _tree("human_oracle").model_dump(mode="json") + oracle_payload["nodes"][0]["semantic_type"] = "subtitle" + oracle_payload["nodes"][0]["semantic_role"] = "human corrected role" + oracle = A3LayoutTree.model_validate(oracle_payload) + condition = make_tree_condition("T3", analyst, tree=oracle) + assert condition.tree.nodes[0].semantic_role == "human corrected role" + + missing_payload = oracle.model_dump(mode="json") + missing_payload["nodes"] = missing_payload["nodes"][:-1] + missing_payload["groups"] = missing_payload["groups"][:-1] + missing = A3LayoutTree.model_validate(missing_payload) + with pytest.raises(ValueError, match="coverage mismatch"): + make_tree_condition("T3", analyst, tree=missing) + + +def test_wrong_tree_source_for_ablation_arm_is_rejected(): + with pytest.raises(ValidationError, match="T2 requires"): + make_tree_condition("T2", _analyst(), tree=_tree("human_oracle")) + with pytest.raises(ValidationError, match="T3 requires"): + make_tree_condition("T3", _analyst(), tree=_tree("predicted")) + + +def test_planner_action_enforces_model_retry_and_no_images(): + repo = Path(__file__).resolve().parents[4] + source = (repo / "metagpt/ext/agentlayout/actions/plan_assets_a3.py").read_text() + assert "actual_model != self.expected_model" in source + assert "Previous response validation error" in source + assert "aask(prompt)" in source + assert "images=" not in source diff --git a/tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py b/tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py new file mode 100644 index 000000000..679ee57ae --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_pfull_preprocessor.py @@ -0,0 +1,335 @@ +from __future__ import annotations + +import json +import subprocess +import sys +from pathlib import Path + +import pytest +from PIL import Image + +from metagpt.ext.agentlayout.run_manifest import A3RunStore +from metagpt.ext.agentlayout.tools.pfull_preprocessor import ( + A3_TEXT_BITMAP_SIDECAR_VERSION, + ASSET_MANIFEST_FILENAME, + FORBIDDEN_GT_KEYS, + PFULL_POLICY_VERSION, + TEXT_BITMAP_SIDECAR_FILENAME, + PFullInputError, + build_prepared_input, + prepare_pfull_sample, +) + + +def _png(path: Path, size, color) -> str: + Image.new("RGBA", size, color).save(path) + return str(path) + + +def _sample(tmp_path: Path, elements, *, width=200, height=100) -> Path: + source = tmp_path / "source" + source.mkdir(parents=True, exist_ok=True) + meta = { + "id": "sample-001", + "title": "A Theme", + "canvas_width": width, + "canvas_height": height, + "elements": elements, + } + (source / "meta.json").write_text(json.dumps(meta)) + return source + + +def test_pfull_keeps_every_non_background_asset_separate(tmp_path: Path): + background = _png(tmp_path / "bg.png", (200, 100), (20, 30, 40, 255)) + product = _png(tmp_path / "product.png", (40, 60), (255, 0, 0, 255)) + text = _png(tmp_path / "text.png", (90, 20), (255, 255, 255, 255)) + elements = [ + {"idx": 0, "type_code": 2, "kind": "image", "asset_ref": background, + "left": 91, "top": 92, "width": 1, "height": 2}, + {"idx": 1, "type_code": 4, "kind": "background_candidate", "asset_ref": product, + "left": 0, "top": 0, "width": 200, "height": 100, + "classifier_signals": {"area_ratio": 1.0}}, + {"idx": 2, "type_code": 1, "kind": "text", "asset_ref": text, + "content": "SALE", "left": 50, "top": 50, "width": 90, "height": 20}, + ] + source = _sample(tmp_path, elements) + manifest = prepare_pfull_sample(source, tmp_path / "prepared") + + assert manifest.policy_version == PFULL_POLICY_VERSION + assert manifest.background_asset_id == "asset_0000" + assert [a.asset_id for a in manifest.foreground_assets()] == [ + "asset_0001", + "asset_0002", + ] + assert all(Path(a.asset_ref).is_file() for a in manifest.assets) + assert not (tmp_path / "prepared" / "bg_composite.png").exists() + + prepared = build_prepared_input(manifest) + assert prepared.background_asset_ref == manifest.assets[0].asset_ref + assert [a.asset_id for a in prepared.foreground_assets] == ["asset_0001", "asset_0002"] + + +def test_manifest_contains_no_gt_geometry_or_derived_area(tmp_path: Path): + image = _png(tmp_path / "image.png", (20, 20), (1, 2, 3, 255)) + source = _sample( + tmp_path, + [{"idx": 7, "type_code": 4, "kind": "background_candidate", "asset_ref": image, + "left": -999, "top": 888, "width": 777, "height": 666, + "classifier_signals": {"area_ratio": 99.0}}], + ) + prepare_pfull_sample(source, tmp_path / "prepared") + raw = (tmp_path / "prepared" / ASSET_MANIFEST_FILENAME).read_text() + payload = json.loads(raw) + + def keys(value): + if isinstance(value, dict): + for key, child in value.items(): + yield key + yield from keys(child) + elif isinstance(value, list): + for child in value: + yield from keys(child) + + assert FORBIDDEN_GT_KEYS.isdisjoint(set(keys(payload))) + assert payload["assets"][0]["role"] == "placeable" + + +def test_geometry_changes_do_not_change_classification(tmp_path: Path): + image = _png(tmp_path / "image.png", (30, 40), (10, 20, 30, 255)) + first = _sample( + tmp_path / "a", + [{"idx": 0, "type_code": 4, "kind": "image", "asset_ref": image, + "left": 0, "top": 0, "width": 30, "height": 40}], + ) + second = _sample( + tmp_path / "b", + [{"idx": 0, "type_code": 4, "kind": "background_candidate", "asset_ref": image, + "left": -500, "top": 900, "width": 200, "height": 100, + "classifier_signals": {"area_ratio": 1.0}}], + ) + one = prepare_pfull_sample(first, tmp_path / "out-a") + two = prepare_pfull_sample(second, tmp_path / "out-b") + assert one.assets[0].role == two.assets[0].role == "placeable" + assert one.assets[0].semantic_hint == two.assets[0].semantic_hint == "image" + assert one.assets[0].native_width == two.assets[0].native_width == 30 + assert one.assets[0].native_height == two.assets[0].native_height == 40 + + +def test_multiple_pixel_backgrounds_choose_lowest_index_and_keep_other_placeable(tmp_path: Path): + a = _png(tmp_path / "a.png", (200, 100), (1, 1, 1, 255)) + b = _png(tmp_path / "b.png", (200, 100), (2, 2, 2, 255)) + source = _sample( + tmp_path, + [ + {"idx": 4, "type_code": 2, "asset_ref": a}, + {"idx": 2, "type_code": 2, "asset_ref": b}, + ], + ) + manifest = prepare_pfull_sample(source, tmp_path / "prepared") + assert manifest.background_asset_id == "asset_0002" + assert [(a.asset_id, a.role) for a in manifest.assets] == [ + ("asset_0002", "background"), + ("asset_0004", "placeable"), + ] + + +def test_no_pixel_background_uses_blank_base_and_keeps_all_assets(tmp_path: Path): + image = _png(tmp_path / "photo.png", (80, 80), (0, 0, 0, 255)) + source = _sample(tmp_path, [{"idx": 0, "type_code": 2, "asset_ref": image}]) + manifest = prepare_pfull_sample(source, tmp_path / "prepared") + assert manifest.background_asset_id is None + assert len(manifest.foreground_assets()) == 1 + assert build_prepared_input(manifest).background_asset_ref is None + + +def test_text_bitmap_sidecar_resolves_without_touching_meta(tmp_path: Path): + # A3-09 data fix: sidecar supplies text bitmaps for caches step80 never + # covered, and the legacy meta.json stays byte-identical. + background = _png(tmp_path / "bg.png", (200, 100), (20, 30, 40, 255)) + elements = [ + {"idx": 0, "type_code": 2, "kind": "image", "asset_ref": background, + "left": 0, "top": 0, "width": 200, "height": 100}, + {"idx": 1, "type_code": 1, "kind": "text", "content": "SALE", + "left": 50, "top": 50, "width": 90, "height": 20}, + ] + source = _sample(tmp_path, elements) + meta_before = (source / "meta.json").read_bytes() + _png(source / "a3_text_0001.png", (300, 64), (255, 255, 255, 255)) + (source / TEXT_BITMAP_SIDECAR_FILENAME).write_text( + json.dumps( + { + "version": A3_TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": "sample-001", + "bitmaps": {"1": "a3_text_0001.png"}, + } + ) + ) + manifest = prepare_pfull_sample(source, tmp_path / "prepared_sidecar") + text_asset = next(a for a in manifest.assets if a.asset_id == "asset_0001") + assert text_asset.semantic_hint == "text_bitmap" + # The snapshot copies the sidecar's RAW render size, not GT geometry. + assert (text_asset.native_width, text_asset.native_height) == (300, 64) + assert (source / "meta.json").read_bytes() == meta_before + + +def test_sidecar_takes_precedence_over_legacy_gt_sized_asset_ref(tmp_path: Path): + background = _png(tmp_path / "bg.png", (200, 100), (20, 30, 40, 255)) + legacy = _png(tmp_path / "legacy_text.png", (90, 20), (0, 0, 0, 255)) + elements = [ + {"idx": 0, "type_code": 2, "kind": "image", "asset_ref": background, + "left": 0, "top": 0, "width": 200, "height": 100}, + {"idx": 1, "type_code": 1, "kind": "text", "content": "SALE", + "asset_ref": legacy, "left": 50, "top": 50, "width": 90, "height": 20}, + ] + source = _sample(tmp_path, elements) + _png(source / "a3_text_0001.png", (300, 64), (255, 255, 255, 255)) + (source / TEXT_BITMAP_SIDECAR_FILENAME).write_text( + json.dumps( + { + "version": A3_TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": "sample-001", + "bitmaps": {"1": "a3_text_0001.png"}, + } + ) + ) + manifest = prepare_pfull_sample(source, tmp_path / "prepared_precedence") + text_asset = next(a for a in manifest.assets if a.asset_id == "asset_0001") + assert (text_asset.native_width, text_asset.native_height) == (300, 64) + + +def test_unsupported_sidecar_version_fails_closed(tmp_path: Path): + background = _png(tmp_path / "bg.png", (200, 100), (20, 30, 40, 255)) + elements = [ + {"idx": 0, "type_code": 2, "kind": "image", "asset_ref": background, + "left": 0, "top": 0, "width": 200, "height": 100}, + ] + source = _sample(tmp_path, elements) + (source / TEXT_BITMAP_SIDECAR_FILENAME).write_text( + json.dumps({"version": "a3.text-bitmap-sidecar.v999", "bitmaps": {}}) + ) + with pytest.raises(PFullInputError, match="sidecar version"): + prepare_pfull_sample(source, tmp_path / "prepared_badversion") + + +def test_missing_non_text_asset_fails_instead_of_silently_dropping(tmp_path: Path): + source = _sample( + tmp_path, + [{"idx": 0, "type_code": 4, "kind": "image", "asset_ref": str(tmp_path / "missing.png")}], + ) + with pytest.raises(PFullInputError, match="missing"): + prepare_pfull_sample(source, tmp_path / "prepared") + + +def test_output_directory_is_non_overwritable(tmp_path: Path): + image = _png(tmp_path / "photo.png", (20, 20), (0, 0, 0, 255)) + source = _sample(tmp_path, [{"idx": 0, "type_code": 2, "asset_ref": image}]) + output = tmp_path / "prepared" + prepare_pfull_sample(source, output) + with pytest.raises(FileExistsError): + prepare_pfull_sample(source, output) + + +def test_cli_prepares_initialized_run_without_api_calls(tmp_path: Path): + config = tmp_path / "config.json" + ids = tmp_path / "ids.json" + models = { + stage: {"model": "gpt-test-snapshot"} + for stage in ( + "analyst", + "asset_planner", + "composition_director", + "coordinate_mapper", + "judge_select", + ) + } + config.write_text( + json.dumps( + { + "loop": "L0", + "internal_judge": "gpt-test-snapshot", + "dataset_split": "synthetic-test", + "models": models, + } + ) + ) + ids.write_text(json.dumps(["sample-001"])) + store = A3RunStore.create( + runs_root=tmp_path / "runs", + run_id="a3-pfull-cli", + config_path=config, + sample_ids_path=ids, + repo_root=tmp_path, + ) + + crello_root = tmp_path / "crello" + source = crello_root / "crello_sample-001" + source.mkdir(parents=True) + asset = _png(source / "asset.png", (20, 20), (1, 2, 3, 255)) + (source / "meta.json").write_text( + json.dumps( + { + "id": "sample-001", + "title": "CLI", + "canvas_width": 200, + "canvas_height": 100, + "elements": [{"idx": 0, "type_code": 4, "asset_ref": asset}], + } + ) + ) + repo = Path(__file__).resolve().parents[4] + proc = subprocess.run( + [ + sys.executable, + "layout_agent/run_a3.py", + "prepare-pfull", + "--run-dir", + str(store.run_dir), + "--crello-root", + str(crello_root), + ], + cwd=repo, + capture_output=True, + text=True, + check=True, + ) + assert json.loads(proc.stdout) == {"total": 1, "failed": 0} + output = store.run_dir / "samples" / "sample-001" / "inputs" / "pfull" + assert (output / ASSET_MANIFEST_FILENAME).exists() + assert json.loads((store.run_dir / "pfull_preparation.json").read_text())["failed"] == 0 + + normalize = subprocess.run( + [ + sys.executable, + "layout_agent/run_a3.py", + "normalize-r3", + "--run-dir", + str(store.run_dir), + ], + cwd=repo, + capture_output=True, + text=True, + check=True, + ) + assert json.loads(normalize.stdout) == {"total": 1, "failed": 0} + assert (store.run_dir / "samples" / "sample-001" / "inputs" / "r3" / + "r3_asset_manifest.json").exists() + + vision = subprocess.run( + [ + sys.executable, + "layout_agent/run_a3.py", + "prepare-analyst-vision", + "--run-dir", + str(store.run_dir), + ], + cwd=repo, + capture_output=True, + text=True, + check=True, + ) + assert json.loads(vision.stdout) == {"total": 1, "failed": 0} + vision_dir = store.run_dir / "samples" / "sample-001" / "inputs" / "analyst_vision" + assert (vision_dir / "background_overview.png").exists() + assert (vision_dir / "asset_contact_sheet_01.png").exists() + assert (vision_dir / "analyst_request.json").exists() diff --git a/tests/metagpt/ext/agentlayout/test_pipeline_compose_routing.py b/tests/metagpt/ext/agentlayout/test_pipeline_compose_routing.py new file mode 100644 index 000000000..5854ec5d9 --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_pipeline_compose_routing.py @@ -0,0 +1,543 @@ +"""Pipeline-level routing tests for the "先想再畫" two-LLM architecture. + +No real LLM: fake Action objects with the same ``.run()`` shape are installed +onto a ``LayoutPipeline``. The tests assert the compose -> per-concept generate +-> judge -> feedback-routing control flow: + + * happy path: one candidate per concept, accept terminates; + * design_layout-low reject -> CompositionDirector (re-compose next round); + * typography-low reject -> CoordinateMapper (concepts reused, feedback fed). + +Run: + pytest tests/metagpt/ext/agentlayout/test_pipeline_compose_routing.py -v --no-cov +""" +from __future__ import annotations + +from typing import List, Optional + +import pytest + +from metagpt.ext.agentlayout.pipeline import LayoutPipeline, PipelineConfig +from metagpt.ext.agentlayout.schema import ( + AestheticFeedback, + AestheticJudgement, + BackgroundAnalysis, + Candidate, + CandidatesBatch, + Canvas, + CompositionConcept, + ConceptBatch, + DesignSpec, + Element, + Evaluation, + JudgeDecision, + JudgeScores, + LayoutElement, + LayoutTree, + LayoutTreeNode, + SemanticType, + VisualType, +) + + +def _spec() -> DesignSpec: + return DesignSpec( + canvas=Canvas(width=1080, height=1920, background_color="#FFFFFF"), + elements=[ + Element( + id="title_1", + semantic_type=SemanticType.TITLE, + visual_type=VisualType.TEXT, + content="Hello", + inferred=False, + importance=5, + semantic_relevance=0.9, + ) + ], + hard_constraints=[], + style_keywords=["bold"], + language="en", + ) + + +def _concept(name: str) -> CompositionConcept: + return CompositionConcept( + name=name, + focal_element="title_1", + focal_placement="x", + text_placement="y", + visual_flow="z", + whitespace="w", + typography_mood="m", + ) + + +def _candidate() -> Candidate: + return Candidate( + candidate_id="cand_01", + elements=[ + LayoutElement( + id="title_1", + left=40, + top=40, + width=1000, + height=300, + z_index=2, + font_family="sans-serif", + font_size=80, + font_weight="bold", + color="#111111", + text_align="center", + ) + ], + ) + + +def _scores(**overrides) -> JudgeScores: + base = dict( + design_layout=8, + content_relevance=8, + typography_color=8, + graphics_images=8, + innovation_originality=8, + ) + base.update(overrides) + return JudgeScores(**base) + + +class _FakeAnalyze: + def __init__(self, spec: DesignSpec): + self._spec = spec + self.calls = 0 + + async def run(self, **kwargs): + self.calls += 1 + return self._spec + + +class _FakeAssetAnalyzer: + def run(self, spec): # sync, like the real one + return spec + + +class _FakePlan: + async def run(self, *, spec): + return LayoutTree(root=LayoutTreeNode(id="root", children=[LayoutTreeNode(id="title_1")])) + + +class _FakeCompose: + def __init__(self, n: int = 3): + self.n = n + self.calls = 0 + self.n_seen = [] # Step 83: records the n kwarg the pipeline passed + self.feedback_seen = [] # Step 84: records the feedback kwarg + + async def run(self, *, spec, bg=None, n=None, feedback=None, prev_concepts=None): + self.calls += 1 + self.n_seen.append(n) + self.feedback_seen.append(feedback) + count = n if n is not None else self.n + return ConceptBatch(concepts=[_concept(f"concept_{i}") for i in range(count)]) + + +class _FakeGenerate: + def __init__(self): + self.calls = 0 + self.feedback_seen: List[Optional[AestheticFeedback]] = [] + self.revision_seen: List[bool] = [] # Step 84b + self.prev_layout_seen: List[Optional[dict]] = [] + + async def run(self, *, spec, tree, bg, concept, feedback=None, + prev_best_layout=None, revision=False, **kwargs): + self.calls += 1 + self.feedback_seen.append(feedback) + self.revision_seen.append(revision) + self.prev_layout_seen.append(prev_best_layout) + return CandidatesBatch(candidates=[_candidate()]) + + +class _FakeJudge: + """Returns a scripted verdict per round; best candidate = first kept.""" + + def __init__(self, scripted): + # scripted: list of (decision, scores) per round + self.scripted = scripted + self.round = 0 + + async def run(self, *, candidates, spec, tree, bg): + decision, scores = self.scripted[min(self.round, len(self.scripted) - 1)] + self.round += 1 + best = candidates[0].candidate_id + total = ( + scores.design_layout + + scores.content_relevance + + scores.typography_color + + scores.graphics_images + + scores.innovation_originality + ) + return AestheticJudgement( + decision=decision, + best_candidate_id=best, + evaluations=[ + Evaluation( + candidate_id=best, + total=total, + scores=scores, + strengths="s", + weaknesses="w", + ) + ], + feedback=AestheticFeedback(common_issues="x", suggestions=["y"]), + best_candidate_layout={"title_1": (40.0, 40.0, 1000.0, 300.0)}, + ) + + +def _make_pipeline(compose, generate, judge, spec, max_rounds=5): + pipe = LayoutPipeline(config=PipelineConfig(max_total_rounds=max_rounds)) + pipe.analyze = _FakeAnalyze(spec) + pipe.asset_analyzer = _FakeAssetAnalyzer() + pipe.plan = _FakePlan() + pipe.compose = compose + pipe.generate = generate + pipe.judge = judge + return pipe + + +@pytest.mark.asyncio +async def test_happy_path_one_candidate_per_concept_then_accept(): + spec = _spec() + compose = _FakeCompose(n=3) + generate = _FakeGenerate() + # Two accepts in a row -> converged (ACCEPT_CONSECUTIVE_STOP = 2). + judge = _FakeJudge([(JudgeDecision.ACCEPT, _scores()), (JudgeDecision.ACCEPT, _scores())]) + pipe = _make_pipeline(compose, generate, judge, spec) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + assert result.accepted_candidate is not None + assert compose.calls == 1 # composed once, reused for the refinement round + # 3 concepts/round * 2 rounds (initial + refinement) = 6 generate calls + assert generate.calls == 6 + + +@pytest.mark.asyncio +async def test_design_layout_reject_recomposes(): + spec = _spec() + compose = _FakeCompose(n=2) + generate = _FakeGenerate() + # Round 0: reject with design_layout the worst axis -> re-compose. + # Round 1: accept twice to terminate. + judge = _FakeJudge( + [ + (JudgeDecision.REJECT, _scores(design_layout=2)), + (JudgeDecision.ACCEPT, _scores()), + (JudgeDecision.ACCEPT, _scores()), + ] + ) + pipe = _make_pipeline(compose, generate, judge, spec) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + assert result is not None + # design_layout-low reject forces a second compose call. + assert compose.calls >= 2 + # the re-compose path must clear coordinate feedback (cold concepts) + assert generate.feedback_seen[0] is None + # Step 84: the SECOND compose call must carry the judge's feedback + # (design-reject loop closure); the first (cold) call must not. + assert compose.feedback_seen[0] is None + assert compose.feedback_seen[1] is not None + assert compose.feedback_seen[1].common_issues == "x" + # Step 84b: the round AFTER the design reject runs the mapper in revision + # mode with the rejected layout as contrast reference; the cold round and + # later rounds do not. + assert generate.revision_seen[0] is False + # n=2 concepts per round -> calls 0-1 are round 0, calls 2-3 are round 1. + assert generate.revision_seen[2] is True + assert generate.prev_layout_seen[2] is not None + assert generate.feedback_seen[2] is not None + + +@pytest.mark.asyncio +async def test_compliance_measured_on_round_after_observations(): + """Step 77: observations fed to the CoordinateMapper are machine-checked + against the NEXT round's best candidate and recorded in the trace.""" + from metagpt.ext.agentlayout.schema import VisualObservation, VisualObservationKind + + class _ObservingJudge(_FakeJudge): + async def run(self, *, candidates, spec, tree, bg): + judgement = await super().run(candidates=candidates, spec=spec, tree=tree, bg=bg) + if judgement.decision == JudgeDecision.REJECT: + judgement.feedback.visual_observations = [ + # _candidate() puts title_1 at (40,40,1000,300): fully inside + # this bbox -> the retry candidate satisfies the observation. + VisualObservation( + kind=VisualObservationKind.TEXT_OFF_PANEL, + target_id="title_1", + target_bbox=[0, 0, 1080, 400], + ), + VisualObservation( + kind=VisualObservationKind.TEXT_TOO_SMALL, + target_id="title_1", + target_area_px=999_999_999, # unreachable -> violated + ), + ] + return judgement + + spec = _spec() + judge = _ObservingJudge( + [ + (JudgeDecision.REJECT, _scores(typography_color=2)), # -> CoordinateMapper + (JudgeDecision.ACCEPT, _scores()), + (JudgeDecision.ACCEPT, _scores()), + ] + ) + pipe = _make_pipeline(_FakeCompose(n=1), _FakeGenerate(), judge, spec) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + assert result.trace[0].compliance is None # no observations pending in round 0 + comp = result.trace[1].compliance + assert comp is not None + assert comp["n_verifiable"] == 2 + assert comp["n_satisfied"] == 1 # off_panel satisfied, too_small violated + assert comp["rate"] == 0.5 + + +@pytest.mark.asyncio +async def test_n_concepts_config_reaches_compose(): + """Step 83 single-candidate mode: PipelineConfig.n_concepts overrides the + Director's concept count; None keeps the action default.""" + spec = _spec() + compose = _FakeCompose() + judge = _FakeJudge([(JudgeDecision.ACCEPT, _scores()), (JudgeDecision.ACCEPT, _scores())]) + pipe = _make_pipeline(compose, _FakeGenerate(), judge, spec) + pipe.config = PipelineConfig(max_total_rounds=5, n_concepts=1) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + assert result.accepted_candidate is not None + assert compose.n_seen == [1] # composed once, with the override + + compose2 = _FakeCompose() + pipe2 = _make_pipeline(compose2, _FakeGenerate(), judge.__class__( + [(JudgeDecision.ACCEPT, _scores()), (JudgeDecision.ACCEPT, _scores())]), spec) + await pipe2.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + assert compose2.n_seen == [None] # default config leaves n to the action + + +@pytest.mark.asyncio +async def test_issue_ledger_persists_dedups_and_retires(): + """Step 85: an opened issue keeps its ORIGINAL target across rounds (no + re-litigation) until the verifier retires it geometrically; judge + re-raising the same (kind, target_id) with a new bbox is ignored.""" + from metagpt.ext.agentlayout.schema import VisualObservation, VisualObservationKind + + class _RubricJudge(_FakeJudge): + async def run(self, *, candidates, spec, tree, bg): + judgement = await super().run(candidates=candidates, spec=spec, tree=tree, bg=bg) + if judgement.decision == JudgeDecision.REJECT: + judgement.feedback.visual_observations = [ + # _candidate(): title_1 at (40,40,1000,300). + VisualObservation( # NOT satisfied by the static candidate + kind=VisualObservationKind.TITLE_MISPLACED, + target_id="title_1", + target_bbox=[0, 700, 1080, 1100], + note="round-specific bbox that must NOT overwrite round 0's", + ), + VisualObservation( # satisfied immediately -> retires next round + kind=VisualObservationKind.LOCKUP_BROKEN, + target_id="title_1", + target_bbox=[0, 0, 1080, 400], + ), + ] + return judgement + + spec = _spec() + judge = _RubricJudge([ + (JudgeDecision.REJECT, _scores(typography_color=2)), # -> mapper path + (JudgeDecision.REJECT, _scores(typography_color=2)), + (JudgeDecision.ACCEPT, _scores()), + (JudgeDecision.ACCEPT, _scores()), + ]) + generate = _FakeGenerate() + pipe = _make_pipeline(_FakeCompose(n=1), generate, judge, spec) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + # Round 0 opened 2 issues; round 1 verification retires lockup (satisfied) + # and keeps title_misplaced open with the ORIGINAL bbox. + assert result.trace[0].ledger_open == 2 + assert result.trace[1].ledger_open == 1 + fed_round1 = generate.feedback_seen[1].visual_observations + kinds_round1 = {o.kind.value for o in fed_round1} + assert kinds_round1 == {"title_misplaced", "lockup_broken"} + # Round 2's fed view: only the persistent title issue, original target. + fed_round2 = generate.feedback_seen[2].visual_observations + assert [o.kind.value for o in fed_round2] == ["title_misplaced"] + assert fed_round2[0].target_bbox == [0, 700, 1080, 1100] + assert "round-specific" in fed_round2[0].note # round 0's original object + + +@pytest.mark.asyncio +async def test_retired_ledger_issue_reopens_on_geometric_regression(): + """Step 88b: retirement is not immunity -- when a fixed defect comes back, + the issue re-opens with its ORIGINAL target (the 88-trace failure: title + fixed in R1 drifted back to the top in R2-R4 unpoliced).""" + from metagpt.ext.agentlayout.schema import VisualObservation, VisualObservationKind + + class _FlipGenerate(_FakeGenerate): + """Round 0: violating position; round 1: satisfied; round 2: regressed.""" + + async def run(self, *, spec, tree, bg, concept, feedback=None, + prev_best_layout=None, revision=False, **kwargs): + await super().run(spec=spec, tree=tree, bg=bg, concept=concept, + feedback=feedback, prev_best_layout=prev_best_layout, + revision=revision, **kwargs) + top = 40 if self.calls != 2 else 40 # calls counts up in super() + # call 1 (round 0): top=800 violates; call 2 (round 1): top=100 + # satisfies; call 3 (round 2): top=800 regresses. + top = {1: 800, 2: 100, 3: 800, 4: 800}.get(self.calls, 800) + cand = _candidate() + cand.elements[0].top = top + return CandidatesBatch(candidates=[cand]) + + class _ObsJudge(_FakeJudge): + async def run(self, *, candidates, spec, tree, bg): + judgement = await super().run(candidates=candidates, spec=spec, tree=tree, bg=bg) + if judgement.decision == JudgeDecision.REJECT: + judgement.feedback.visual_observations = [ + VisualObservation( + kind=VisualObservationKind.TITLE_MISPLACED, + target_id="title_1", + target_bbox=[0, 0, 1080, 500], # 滿足條件: top 區 + ) + ] + return judgement + + spec = _spec() + judge = _ObsJudge([ + (JudgeDecision.REJECT, _scores(typography_color=2)), # R0: 開帳 + (JudgeDecision.REJECT, _scores(typography_color=2)), # R1: 修好->銷帳 + (JudgeDecision.REJECT, _scores(typography_color=2)), # R2: 回歸->重開 + (JudgeDecision.ACCEPT, _scores()), + (JudgeDecision.ACCEPT, _scores()), + ]) + generate = _FlipGenerate() + pipe = _make_pipeline(_FakeCompose(n=1), generate, judge, spec) + pipe.config = PipelineConfig(max_total_rounds=5) + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + # 用 trace 的帳本計數驗證(對 Analyst 預算路由穩健): + # R0 開帳 1 -> R1 候選滿足銷帳 0 -> R2 候選回歸重開 1。 + assert result.trace[0].ledger_open == 1 + assert result.trace[1].ledger_open == 0 + assert result.trace[2].ledger_open == 1 # Step 88b: 回歸即重開(原目標) + # Step 89: R1 銷帳後 keep_constraints 帶著已修好的目標(餵給下一輪)。 + fed_after_r1 = generate.feedback_seen[2] + assert fed_after_r1 is not None + assert [o.target_bbox for o in fed_after_r1.keep_constraints] == [[0, 0, 1080, 500]] + + +@pytest.mark.asyncio +async def test_round_callback_called_every_round_and_errors_swallowed(): + """Step 82: the observer fires once per judge round; its crash never + breaks the run.""" + spec = _spec() + judge = _FakeJudge([(JudgeDecision.ACCEPT, _scores()), (JudgeDecision.ACCEPT, _scores())]) + pipe = _make_pipeline(_FakeCompose(n=2), _FakeGenerate(), judge, spec) + + calls = [] + + def cb(round_idx, kept, judgement, cb_spec): + calls.append((round_idx, len(kept), judgement.decision, cb_spec is spec)) + raise RuntimeError("observer crash must be swallowed") + + result = await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis(), + round_callback=cb) + assert result.accepted_candidate is not None + assert [c[0] for c in calls] == [0, 1] # once per round + assert all(c[3] for c in calls) + + +@pytest.mark.asyncio +async def test_exhausted_pipeline_error_carries_last_best_candidate(): + """Step 76b selection-effect fix: when every round is rejected, the raised + PipelineError must carry the last round's judge-preferred candidate so + evaluation drivers can still render and blind-judge the run.""" + from metagpt.ext.agentlayout.pipeline import PipelineError + + spec = _spec() + judge = _FakeJudge([(JudgeDecision.REJECT, _scores(typography_color=2))]) + pipe = _make_pipeline(_FakeCompose(n=2), _FakeGenerate(), judge, spec, max_rounds=2) + + with pytest.raises(PipelineError) as excinfo: + await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + err = excinfo.value + assert err.best_candidate is not None + assert err.best_candidate.candidate_id.endswith("cand_01") + assert err.spec is spec + assert err.judgement is not None + assert err.judgement.decision == JudgeDecision.REJECT + assert err.trace is not None and len(err.trace) == 2 # compliance rows survive + + +@pytest.mark.asyncio +async def test_underlay_regions_param_merges_into_bg(): + """Step 76: pipe.run(underlay_regions=...) must surface in the bg every + downstream stage sees (Director and CoordinateMapper).""" + from metagpt.ext.agentlayout.schema import UnderlayRegion + + spec = _spec() + + class _BgCapturingGenerate(_FakeGenerate): + def __init__(self): + super().__init__() + self.bg_seen = [] + + async def run(self, *, spec, tree, bg, concept, feedback=None, **kwargs): + self.bg_seen.append(bg) + return await super().run( + spec=spec, tree=tree, bg=bg, concept=concept, feedback=feedback, **kwargs + ) + + generate = _BgCapturingGenerate() + judge = _FakeJudge([(JudgeDecision.ACCEPT, _scores()), (JudgeDecision.ACCEPT, _scores())]) + pipe = _make_pipeline(_FakeCompose(n=1), generate, judge, spec) + + region = UnderlayRegion( + bbox=[10, 10, 200, 100], dominant_color="#1A2B3C", + recommended_text_color="#F4F4F4", + ) + await pipe.run( + user_brief="x", asset_list=[], bg=BackgroundAnalysis(), + underlay_regions=[region], + ) + + assert generate.bg_seen + assert all(b.underlay_regions == [region] for b in generate.bg_seen) + + +@pytest.mark.asyncio +async def test_typography_reject_reuses_concepts_and_feeds_coordinate_mapper(): + spec = _spec() + compose = _FakeCompose(n=2) + generate = _FakeGenerate() + # Round 0: reject with typography_color the worst axis -> CoordinateMapper, + # concepts reused. Round 1+: accept to terminate. + judge = _FakeJudge( + [ + (JudgeDecision.REJECT, _scores(typography_color=2)), + (JudgeDecision.ACCEPT, _scores()), + (JudgeDecision.ACCEPT, _scores()), + ] + ) + pipe = _make_pipeline(compose, generate, judge, spec) + + await pipe.run(user_brief="x", asset_list=[], bg=BackgroundAnalysis()) + + # Typography reject must NOT re-compose: concepts are reused. + assert compose.calls == 1 + # The second round's generate calls must carry the judge feedback. + assert any(fb is not None for fb in generate.feedback_seen) diff --git a/tests/metagpt/ext/agentlayout/test_prepare_full_crello.py b/tests/metagpt/ext/agentlayout/test_prepare_full_crello.py new file mode 100644 index 000000000..8ee9e9fed --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_prepare_full_crello.py @@ -0,0 +1,344 @@ +from __future__ import annotations + +import json +import socket +from pathlib import Path + +import pytest +from PIL import Image + +from layout_agent.prepare_full_crello import ( + BATCH_SCHEMA_VERSION, + DATASET_REVISION, + FullCrelloPreparationError, + _pretty_json_bytes, + _publish_text_sidecar, + _sha256_bytes, + _verify_cache_tree, + build_batch_bundle, + materialize_cache_row, + snapshot_ordered_ids, + verify_batch_bundle, + verify_id_snapshot, +) +from metagpt.ext.agentlayout.tools.pfull_preprocessor import ( + A3_TEXT_BITMAP_SIDECAR_VERSION, +) + + +@pytest.fixture(autouse=True) +def _no_network(monkeypatch): + def blocked(*_args, **_kwargs): + raise AssertionError("network access is forbidden in focused preparation tests") + + monkeypatch.setattr(socket, "create_connection", blocked) + monkeypatch.setattr(socket.socket, "connect", blocked) + + +class FakeDataset(list): + def __init__(self, rows): + super().__init__(rows) + self.selected = None + + def select_columns(self, columns): + self.selected = list(columns) + return FakeDataset([{name: row[name] for name in columns} for row in self]) + + +def _valid_config(path: Path) -> None: + path.write_text( + json.dumps( + { + "loop": "L0", + "internal_judge": "gpt-5.4-mini-2026-03-17", + "evaluation_judge": None, + "dataset_split": "crello-official-test-n1971-batched-v1", + "seed": 42, + "models": { + "analyst": {"model": "gpt-5.4-mini-2026-03-17"}, + "asset_planner": {"model": "gpt-5.4-mini-2026-03-17"}, + "composition_director": {"model": "gpt-5.4-mini-2026-03-17"}, + "coordinate_mapper": {"model": "gpt-5.4-mini-2026-03-17"}, + "judge_select": {"model": "gpt-5.4-mini-2026-03-17"}, + }, + } + ), + encoding="utf-8", + ) + + +def _solid(size, color): + return Image.new("RGBA", size, color) + + +def _photo(size=(20, 20)): + image = Image.new("RGBA", size) + for y in range(size[1]): + for x in range(size[0]): + image.putpixel((x, y), ((x * 17) % 256, (y * 19) % 256, (x + y) % 256, 255)) + return image + + +def _ambiguous(size=(20, 20)): + image = Image.new("RGBA", size) + colors = [(index * 7, index * 5, index * 3, 255) for index in range(32)] + for y in range(size[1]): + for x in range(size[0]): + image.putpixel((x, y), colors[(x + y * size[0]) % len(colors)]) + return image + + +def _row(sample_id="sample-1"): + types = [3, 0, 2, 0, 1] + return { + "id": sample_id, + "length": len(types), + "title": "Synthetic", + "canvas_width": 100, + "canvas_height": 100, + "type": types, + "image": [ + _solid((100, 100), (20, 20, 20, 255)), + _solid((20, 20), (200, 0, 0, 255)), + _photo(), + _ambiguous(), + _solid((30, 10), (0, 0, 0, 255)), + ], + "text": ["", "", "", "", "HELLO"], + "left": [0, 10, 20, 30, 40], + "top": [0, 10, 20, 30, 40], + "width": [100, 20, 20, 20, 30], + "height": [100, 20, 20, 20, 10], + "preview": _solid((100, 100), (240, 240, 240, 255)), + } + + +def test_snapshot_ids_pins_revision_projects_id_only_and_is_idempotent(tmp_path): + calls = [] + fake = FakeDataset([{"id": f"id-{index}", "large": "ignored"} for index in range(5)]) + + def loader(*args, **kwargs): + calls.append((args, kwargs)) + return fake + + target = tmp_path / "snapshot" + status, result = snapshot_ordered_ids( + target, + load_dataset_fn=loader, + expected_count=5, + ) + assert status == "created" + assert result["count"] == 5 + assert calls[0][1] == { + "split": "test", + "streaming": True, + "revision": DATASET_REVISION, + } + assert fake.selected == ["id"] + status, second = snapshot_ordered_ids( + target, + load_dataset_fn=lambda *_args, **_kwargs: pytest.fail("existing snapshot reloaded network"), + expected_count=5, + ) + assert status == "verified-existing" + assert second["count"] == 5 + + +def test_snapshot_rejects_duplicate_ids_without_publishing(tmp_path): + fake = FakeDataset([{"id": "same"}, {"id": "same"}]) + target = tmp_path / "snapshot" + with pytest.raises(FullCrelloPreparationError, match="duplicates"): + snapshot_ordered_ids( + target, + load_dataset_fn=lambda *_args, **_kwargs: fake, + expected_count=2, + ) + assert not target.exists() + assert not list(tmp_path.glob(".snapshot.staging-*")) + + +def test_materialize_cache_row_matches_classifier_mapping_and_is_no_replace(tmp_path): + root = tmp_path / "cache" + result = materialize_cache_row(_row(), root) + final = root / "crello_sample-1" + assert result["sample_id"] == "sample-1" + meta = json.loads((final / "meta.json").read_text()) + assert [element["kind"] for element in meta["elements"]] == [ + "background_candidate", + "underlay", + "image", + "image", + "text", + ] + assert [element.get("classifier_label") for element in meta["elements"][:4]] == [ + "full_canvas", + "shape", + "photo", + "ambiguous", + ] + assert (final / "asset_00_background.png").is_file() + assert (final / "asset_01_underlay.png").is_file() + assert (final / "asset_02_image.png").is_file() + assert (final / "asset_03_image.png").is_file() + assert (final / "a3_text_0004.png").is_file() + assert (final / "ground_truth_preview.jpg").is_file() + sidecar = json.loads((final / "a3_text_bitmaps.json").read_text()) + assert sidecar["bitmaps"] == {"4": "a3_text_0004.png"} + assert json.loads((final / "a3_cache_provenance.json").read_text())[ + "dataset_revision" + ] == DATASET_REVISION + with pytest.raises(FullCrelloPreparationError, match="already exists"): + materialize_cache_row(_row(), root) + + +def test_materialize_invalid_row_cleans_staging(tmp_path): + row = _row("broken") + row["height"] = row["height"][:-1] + root = tmp_path / "cache" + with pytest.raises(FullCrelloPreparationError, match="array lengths"): + materialize_cache_row(row, root) + assert not (root / "crello_broken").exists() + assert not list(root.glob(".crello_broken.staging-*")) + + +def test_cache_provenance_detects_post_publish_tamper(tmp_path): + root = tmp_path / "cache" + materialize_cache_row(_row(), root) + final = root / "crello_sample-1" + with (final / "asset_01_underlay.png").open("ab") as handle: + handle.write(b"tamper") + with pytest.raises(FullCrelloPreparationError, match="file snapshot mismatch"): + _verify_cache_tree( + final, + final_dir=final, + sample_id="sample-1", + require_provenance=True, + ) + + +def test_existing_cache_text_sidecar_never_changes_meta(tmp_path): + root = tmp_path / "cache" + final = root / "crello_sample-1" + final.mkdir(parents=True) + row = _row() + meta = { + "id": "sample-1", + "title": "Synthetic", + "canvas_width": 100, + "canvas_height": 100, + "n_elements": 5, + "elements": [{"idx": index} for index in range(5)], + } + meta_payload = json.dumps(meta, indent=2).encode() + (final / "meta.json").write_bytes(meta_payload) + assert _publish_text_sidecar(row, final) == "created" + assert (final / "meta.json").read_bytes() == meta_payload + assert _publish_text_sidecar(row, final) == "verified-existing" + + +def test_build_and_verify_batch_bundle_covers_union_without_overlap(tmp_path): + official = [f"id-{index}" for index in range(7)] + snapshot_dir = tmp_path / "snapshot" + snapshot_ordered_ids( + snapshot_dir, + load_dataset_fn=lambda *_args, **_kwargs: FakeDataset( + [{"id": sample_id} for sample_id in official] + ), + expected_count=7, + ) + existing_path = tmp_path / "existing.json" + existing_path.write_bytes(_pretty_json_bytes(official[:2])) + config_path = tmp_path / "config.json" + _valid_config(config_path) + cache_root = tmp_path / "cache" + cache_root.mkdir() + for sample_id in official: + directory = cache_root / f"crello_{sample_id}" + directory.mkdir() + (directory / "meta.json").write_text(json.dumps({"id": sample_id})) + (directory / "a3_text_bitmaps.json").write_text( + json.dumps( + { + "version": A3_TEXT_BITMAP_SIDECAR_VERSION, + "sample_id": sample_id, + "bitmaps": {}, + } + ) + ) + bundle = tmp_path / "bundle" + status, result = build_batch_bundle( + bundle, + snapshot_dir=snapshot_dir, + existing_ids_path=existing_path, + config_path=config_path, + crello_root=cache_root, + runs_root=tmp_path / "runs", + evaluations_root=tmp_path / "evaluations", + batch_size=2, + expected_official_count=7, + expected_existing_ids_sha256=_sha256_bytes(existing_path.read_bytes()), + completed_artifacts={}, + ) + assert status == "created" + assert result == { + "official_count": 7, + "reused_count": 2, + "new_count": 5, + "new_batch_count": 3, + "manifest_sha256": result["manifest_sha256"], + } + manifest = json.loads((bundle / "manifest.json").read_text()) + assert manifest["schema_version"] == BATCH_SCHEMA_VERSION + assert [row["count"] for row in manifest["new_batches"]] == [2, 2, 1] + assert manifest["cache_snapshot"]["valid_count"] == 7 + assert manifest["cache_snapshot"]["missing_count"] == 0 + verified = verify_batch_bundle( + bundle, + snapshot_dir=snapshot_dir, + existing_ids_path=existing_path, + expected_official_count=7, + ) + assert verified["new_count"] == 5 + + +def test_batch_bundle_refuses_incomplete_cache_readiness(tmp_path): + official = ["one", "two", "three"] + snapshot_dir = tmp_path / "snapshot" + snapshot_ordered_ids( + snapshot_dir, + load_dataset_fn=lambda *_args, **_kwargs: FakeDataset( + [{"id": sample_id} for sample_id in official] + ), + expected_count=3, + ) + existing_path = tmp_path / "existing.json" + existing_path.write_bytes(_pretty_json_bytes(["one"])) + config_path = tmp_path / "config.json" + _valid_config(config_path) + cache_root = tmp_path / "cache" + cache_root.mkdir() + with pytest.raises(FullCrelloPreparationError, match="cache readiness incomplete"): + build_batch_bundle( + tmp_path / "bundle", + snapshot_dir=snapshot_dir, + existing_ids_path=existing_path, + config_path=config_path, + crello_root=cache_root, + runs_root=tmp_path / "runs", + evaluations_root=tmp_path / "evaluations", + batch_size=2, + expected_official_count=3, + expected_existing_ids_sha256=_sha256_bytes(existing_path.read_bytes()), + completed_artifacts={}, + ) + assert not (tmp_path / "bundle").exists() + + +def test_tool_source_exposes_no_paid_api_flag(): + source = (Path(__file__).parents[4] / "layout_agent" / "prepare_full_crello.py").read_text() + assert "--allow-api-calls" not in source + assert "--allow-network" in source + assert "--allow-dataset-download" in source + from layout_agent.prepare_full_crello import TEXT_BITMAP_SIDECAR_VERSION + + assert TEXT_BITMAP_SIDECAR_VERSION == A3_TEXT_BITMAP_SIDECAR_VERSION diff --git a/tests/metagpt/ext/agentlayout/test_quality_checker_position_hints.py b/tests/metagpt/ext/agentlayout/test_quality_checker_position_hints.py index 3d8e8480a..ea04de20f 100644 --- a/tests/metagpt/ext/agentlayout/test_quality_checker_position_hints.py +++ b/tests/metagpt/ext/agentlayout/test_quality_checker_position_hints.py @@ -1316,11 +1316,11 @@ def test_step43_primary_inside_safe_zone_passes(): assert out == [], f"in-zone title must pass; got {out}" -def test_step43_primary_outside_safe_zone_flags(): - """Step 43: a title centred in the saliency-high region (no safe-zone - overlap) MUST trigger PRIMARY_OUTSIDE_SAFE_ZONE. Replicates the 5928 - 'title centred at x=500-950 outside any safe_zone' failure observed - under Step 42 before this rule was wired in.""" +def test_step43_primary_outside_safe_zone_warns(): + """"先想再畫" refactor (2026-06-25): a title outside every safe_zone now + raises PRIMARY_OUTSIDE_SAFE_ZONE as a WARNING (not a hard violation), so + ``passed`` stays True. The art director may deliberately place text off the + calm bands; QC records the advisory but does not reject the candidate.""" from metagpt.ext.agentlayout.tools.quality_checker import ( ViolationType, check_candidate, @@ -1331,9 +1331,15 @@ def test_step43_primary_outside_safe_zone_flags(): title_left=600, title_top=400, title_w=300, title_h=200 ) result = check_candidate(cand, spec, bg=bg) - out = [v for v in result.violations if v.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE] - assert len(out) == 1, f"outside-zone title must flag; got {result.violations}" + out = [w for w in result.warnings if w.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE] + assert len(out) == 1, f"outside-zone title must warn; got {result.warnings}" assert out[0].targets == ["title_1"] + # The key contract: safe-zone is no longer a HARD violation (other rules + # such as coverage may still fire for this tiny fixture, so we do not + # assert passed here -- only that this specific finding moved to warnings). + assert not any( + v.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE for v in result.violations + ), "safe-zone must no longer be a hard violation" def test_step43_skipped_when_bg_is_none(): @@ -1368,7 +1374,7 @@ def test_step67_filter_valid_forwards_bg_to_safe_zone_rule(): *when bg is passed*. ``spec.composition`` is left as None so the Step 63 deference short-circuit does not mask the regression. """ - from metagpt.ext.agentlayout.tools.quality_checker import filter_valid + from metagpt.ext.agentlayout.tools.quality_checker import ViolationType, filter_valid # Title sized to satisfy other QC rules (Step 57 coverage >=10%, # Step 36 title size >=8% etc.) and positioned ENTIRELY outside the @@ -1378,21 +1384,29 @@ def test_step67_filter_valid_forwards_bg_to_safe_zone_rule(): title_left=500, title_top=350, title_w=500, title_h=300 ) - # Without bg: safe-zone rule is inert, candidate is kept. + # Without bg: safe-zone rule is inert, candidate kept, no warning. kept_no_bg, reports_no_bg = filter_valid([cand], spec) assert kept_no_bg == [cand], ( f"bg=None must keep the candidate (rule inert); " f"got violations={reports_no_bg[0].violations}" ) assert reports_no_bg[0].passed, "bg=None must report passed" + assert not reports_no_bg[0].warnings, "bg=None must emit no safe-zone warning" - # With bg: safe-zone rule fires, candidate is dropped. + # With bg: the safe-zone rule fires but ("先想再畫" refactor) it is now a + # WARNING, so filter_valid still KEEPS the candidate. The bg-forwarding + # contract is verified by the warning's presence, not by a drop. kept_with_bg, reports_with_bg = filter_valid([cand], spec, bg=bg) - assert kept_with_bg == [], ( - "filter_valid must forward bg so the Step 43 safe-zone rule fires; " - f"unexpectedly kept {kept_with_bg}" + assert kept_with_bg == [cand], ( + "safe-zone is a soft warning now; filter_valid must keep the candidate; " + f"unexpectedly dropped (violations={reports_with_bg[0].violations})" ) - assert not reports_with_bg[0].passed, "candidate outside every safe_zone must fail QC" + assert reports_with_bg[0].passed + warn = [ + w for w in reports_with_bg[0].warnings + if w.type == ViolationType.PRIMARY_OUTSIDE_SAFE_ZONE + ] + assert len(warn) == 1, "filter_valid must forward bg so the safe-zone WARNING fires" def test_step67_filter_valid_bg_defers_when_composition_present(): diff --git a/tests/metagpt/ext/agentlayout/test_sega_metrics.py b/tests/metagpt/ext/agentlayout/test_sega_metrics.py index 6e0c8cb39..94f57ebf4 100644 --- a/tests/metagpt/ext/agentlayout/test_sega_metrics.py +++ b/tests/metagpt/ext/agentlayout/test_sega_metrics.py @@ -1,15 +1,14 @@ """Unit tests for SEGA / PKU PosterLayout rule-based metrics. -Sanity inputs only (geometric corner cases on a 1000x1000 canvas); -the file does not exercise readability / occlusion that need pixel -inputs -- those are integration-tested by the step20 driver against -real Crello backgrounds. +All inputs are deterministic geometry or tiny synthetic pixel arrays. The +suite never calls an MLLM or downloads saliency-model weights. """ from __future__ import annotations import numpy as np import pytest +import metagpt.ext.agentlayout.evaluation.saliency_basnet_isnet as saliency_module from metagpt.ext.agentlayout.evaluation.sega_metrics import ( CLS_IMAGE_LOGO, CLS_TEXT, @@ -59,6 +58,34 @@ def test_overlay_excludes_underlay_class(): assert metric_overlay([layout]) == pytest.approx(0.5) +def test_overlay_three_boxes_divides_pairwise_iou_sum_by_element_count(): + """Three non-underlays use ``sum(pair IoU) / n_elements``. + + Only the first two boxes overlap, so the pairwise-IoU sum is 1 and the + element denominator is 3. + """ + overlapping = to_xyxy(0, 0, 100, 100) + disjoint = to_xyxy(500, 500, 100, 100) + layout = [ + (CLS_TEXT, overlapping), + (CLS_IMAGE_LOGO, overlapping), + (CLS_TEXT, disjoint), + ] + assert metric_overlay([layout]) == pytest.approx(1.0 / 3.0) + + +def test_overlay_four_boxes_distinguishes_element_from_pair_denominator(): + """With four boxes, element-count (4) differs from pair-count (6).""" + overlapping = to_xyxy(0, 0, 100, 100) + layout = [ + (CLS_TEXT, overlapping), + (CLS_IMAGE_LOGO, overlapping), + (CLS_TEXT, to_xyxy(300, 0, 100, 100)), + (CLS_IMAGE_LOGO, to_xyxy(600, 0, 100, 100)), + ] + assert metric_overlay([layout]) == pytest.approx(1.0 / 4.0) + + # ============================================================ # Alignment # ============================================================ @@ -90,6 +117,45 @@ def test_alignment_no_shared_axis_scores_positive(): assert score < 5.0 # log-clipped, not inf +def test_alignment_reproduces_pku_layout_wide_minimum_quirk(): + """One aligned pair zeroes PKU's layout-wide score for a third box. + + A conventional per-element-nearest implementation would give the third + box a positive penalty because it shares no edge or centre coordinate. + PKU first takes a layout-wide pair minimum for each axis, however, so the + first two boxes' shared left edge supplies a zero to every element. + """ + canvas_w = canvas_h = 1000 + boxes = [ + to_xyxy(100, 100, 100, 100), + to_xyxy(100, 400, 150, 150), # shares only the left edge with box 1 + to_xyxy(700, 700, 120, 80), # shares no edge or centre coordinate + ] + layout = [(CLS_TEXT, box) for box in boxes] + + pku_score = metric_alignment([layout], canvas_w=canvas_w, canvas_h=canvas_h) + + # Independent conventional reference: for each element and each axis, + # find that element's nearest neighbour before reducing across axes. + features = [] + for xl, yl, xr, yr in boxes: + left, top = xl / canvas_w, yl / canvas_h + right, bottom = xr / canvas_w, yr / canvas_h + features.append( + [left, top, (left + right) / 2.0, (top + bottom) / 2.0, right, bottom] + ) + feature_array = np.asarray(features, dtype=np.float64) + conventional_score = 0.0 + for index in range(len(feature_array)): + neighbours = np.delete(feature_array, index, axis=0) + nearest_by_axis = np.abs(neighbours - feature_array[index]).min(axis=0) + penalties = -np.log10(1.0 - np.clip(nearest_by_axis, 0.0, 0.999999)) + conventional_score += float(penalties.min()) + + assert pku_score == pytest.approx(0.0) + assert conventional_score > 0.0 + + # ============================================================ # Underlay loose / strict # ============================================================ @@ -114,6 +180,21 @@ def test_underlay_loose_perfect_cover_scores_one(): assert metric_underlay_loose([layout]) == pytest.approx(1.0) +def test_underlay_loose_uses_per_underlay_maximum_with_two_by_two_boxes(): + """Each underlay takes its own best coverage before the underlay mean.""" + first_underlay = to_xyxy(0, 0, 100, 100) + second_underlay = to_xyxy(200, 0, 100, 100) + first_text = to_xyxy(0, 0, 100, 100) # first underlay coverage = 1 + second_text = to_xyxy(200, 0, 200, 100) # second underlay coverage = 1/2 + layout = [ + (CLS_UNDERLAY, first_underlay), + (CLS_UNDERLAY, second_underlay), + (CLS_TEXT, first_text), + (CLS_IMAGE_LOGO, second_text), + ] + assert metric_underlay_loose([layout]) == pytest.approx((1.0 + 0.5) / 2.0) + + def test_underlay_strict_one_contained_is_one(): """1 deco fully containing 1 text -> strict = 1/1 = 1.0.""" deco = to_xyxy(0, 0, 500, 500) @@ -202,6 +283,95 @@ def test_layout_has_underlay_true_false(): assert layout_has_underlay(with_u) is True +def test_underlay_caller_returns_none_when_no_layout_is_applicable(): + """The public applicability helper lets dataset callers report N/A. + + The scalar metric functions retain PKU's ``0.0`` empty fallback, so a + caller must filter with ``layout_has_underlay`` before aggregation. + """ + layouts = [ + [(CLS_TEXT, to_xyxy(0, 0, 100, 100))], + [(CLS_IMAGE_LOGO, to_xyxy(200, 0, 100, 100))], + ] + applicable = [layout for layout in layouts if layout_has_underlay(layout)] + aggregate = metric_underlay_loose(applicable) if applicable else None + assert aggregate is None + + +# ============================================================ +# Readability -- deterministic synthetic backgrounds +# ============================================================ + + +def test_readability_constant_background_is_zero(): + bg = np.full((10, 10, 3), 127, dtype=np.uint8) + layout = [(CLS_TEXT, to_xyxy(0, 0, 10, 10))] + assert metric_readability([layout], [bg], 10, 10) == pytest.approx(0.0) + + +def test_readability_only_counts_edges_inside_text_mask(): + bg = np.zeros((20, 20, 3), dtype=np.uint8) + bg[:, 10:, :] = 255 # Sobel response is local to the vertical centre edge. + on_edge = [(CLS_TEXT, to_xyxy(8, 0, 4, 20))] + on_flat_region = [(CLS_TEXT, to_xyxy(0, 0, 4, 20))] + + edge_score = metric_readability([on_edge], [bg], 20, 20) + flat_score = metric_readability([on_flat_region], [bg], 20, 20) + + assert edge_score > 0.0 + assert flat_score == pytest.approx(0.0) + + +def test_readability_strong_edge_is_not_lowered_by_uint8_square_overflow(): + """A 255-level edge must remain stronger than a 25-level edge. + + Squaring the uint8 Sobel values before casting would wrap 255**2 to 1 + while 100**2 wraps to 16, incorrectly reversing this ordering. + """ + bg = np.zeros((8, 12, 3), dtype=np.uint8) + bg[:, 3:6, :] = 25 # positive weak edge at columns 2/3 (Sobel ~= 100) + bg[:, 9:, :] = 255 # positive strong edge at columns 8/9 (Sobel = 255) + weak_edge_text = [(CLS_TEXT, to_xyxy(2, 0, 2, 8))] + strong_edge_text = [(CLS_TEXT, to_xyxy(8, 0, 2, 8))] + + weak_score = metric_readability([weak_edge_text], [bg], 12, 8) + strong_score = metric_readability([strong_edge_text], [bg], 12, 8) + + assert weak_score > 0.0 + assert strong_score > weak_score + + +# ============================================================ +# Occlusion / saliency fusion -- deterministic synthetic maps +# ============================================================ + + +def test_occlusion_averages_over_element_union_mask_only(): + """Overlapping elements count their shared pixel once; outside is ignored.""" + saliency = np.zeros((4, 4), dtype=np.float32) + saliency[1, 1] = 1.0 # shared by both elements + saliency[3, 3] = 1.0 # salient but outside the element union + layout = [ + (CLS_TEXT, to_xyxy(0, 0, 2, 2)), + (CLS_IMAGE_LOGO, to_xyxy(1, 1, 2, 2)), + ] + # Union area = 4 + 4 - 1 = 7 pixels; only one union pixel has saliency 1. + assert metric_occlusion([layout], [saliency], 4, 4) == pytest.approx(1.0 / 7.0) + + +def test_basnet_isnet_fusion_is_pixelwise_max_without_model_download(monkeypatch): + basnet = np.asarray([[0.1, 0.8], [0.5, 0.2]], dtype=np.float32) + isnet = np.asarray([[0.9, 0.2], [0.4, 0.7]], dtype=np.float32) + monkeypatch.setattr(saliency_module, "_basnet_saliency", lambda _bg: basnet) + monkeypatch.setattr(saliency_module, "_isnet_saliency", lambda _bg: isnet) + + bg = np.zeros((2, 2, 3), dtype=np.uint8) + fused = saliency_module.basnet_isnet_saliency(bg, out_hw=(2, 2)) + + np.testing.assert_allclose(fused, np.maximum(basnet, isnet)) + assert fused.dtype == np.float32 + + # ============================================================ # A4 -- Readability / Occlusion denominator counts every evaluable sample # ============================================================ diff --git a/tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py b/tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py new file mode 100644 index 000000000..45225eaad --- /dev/null +++ b/tests/metagpt/ext/agentlayout/test_text_bitmap_normalizer.py @@ -0,0 +1,199 @@ +from __future__ import annotations + +import json +from pathlib import Path +from typing import Optional + +import pytest +from PIL import Image, ImageChops, ImageDraw + +from metagpt.ext.agentlayout.schema import ( + Candidate, + Canvas, + DesignSpec, + Element, + LayoutElement, +) +from metagpt.ext.agentlayout.tools.pfull_preprocessor import prepare_pfull_sample +from metagpt.ext.agentlayout.tools.renderer import render +from metagpt.ext.agentlayout.tools.text_bitmap_normalizer import ( + R3_MANIFEST_FILENAME, + R3NormalizationConfig, + R3NormalizationError, + alpha_tight_bbox, + contain_size, + normalize_text_bitmap, + prepare_r3_sample, + r3_prompt_descriptor, +) + + +def _text_bitmap(path: Path, canvas_size, glyph_box, color=(220, 20, 20, 255)) -> str: + image = Image.new("RGBA", canvas_size, (0, 0, 0, 0)) + ImageDraw.Draw(image).rectangle(glyph_box, fill=color) + image.save(path) + return str(path) + + +def _pfull_source(tmp_path: Path, bitmap_ref: Optional[str]) -> Path: + source = tmp_path / "source" + source.mkdir(parents=True) + element = { + "idx": 3, + "type_code": 1, + "kind": "text", + "content": "SUMMER SALE", + "left": 111, + "top": 222, + "width": 333, + "height": 44, + "font_size": 55, + } + if bitmap_ref: + element["asset_ref"] = bitmap_ref + (source / "meta.json").write_text( + json.dumps( + { + "id": "r3-sample", + "title": "R3", + "canvas_width": 800, + "canvas_height": 600, + "elements": [element], + } + ) + ) + return source + + +def test_alpha_tight_crop_padding_and_frozen_long_edge(tmp_path: Path): + source = Path(_text_bitmap(tmp_path / "source.png", (300, 120), (70, 40, 229, 79))) + destination = tmp_path / "asset_0003_r3_text.png" + config = R3NormalizationConfig(long_edge_px=512, padding_px=8, alpha_threshold=1) + width, height, _ = normalize_text_bitmap(source, destination, config) + + normalized = Image.open(destination).convert("RGBA") + assert (width, height) == normalized.size + assert max(normalized.size) == 512 + assert alpha_tight_bbox(normalized, 1) == (8, 8, width - 8, height - 8) + + +def test_same_glyph_with_different_gt_canvas_and_offset_normalizes_identically(tmp_path: Path): + first = Path(_text_bitmap(tmp_path / "first.png", (300, 120), (70, 40, 229, 79))) + second = Path(_text_bitmap(tmp_path / "second.png", (500, 250), (180, 130, 339, 169))) + config = R3NormalizationConfig(long_edge_px=256, padding_px=6) + one = normalize_text_bitmap(first, tmp_path / "one_r3_text.png", config) + two = normalize_text_bitmap(second, tmp_path / "two_r3_text.png", config) + assert one == two + assert (tmp_path / "one_r3_text.png").read_bytes() == ( + tmp_path / "two_r3_text.png" + ).read_bytes() + + +def test_r3_manifest_removes_original_text_geometry_and_dimensions(tmp_path: Path): + bitmap = _text_bitmap(tmp_path / "text.png", (333, 44), (20, 10, 310, 35)) + source = _pfull_source(tmp_path, bitmap) + pfull_dir = tmp_path / "pfull" + prepare_pfull_sample(source, pfull_dir) + r3_dir = tmp_path / "r3" + manifest = prepare_r3_sample( + pfull_dir / "asset_manifest.json", + r3_dir, + R3NormalizationConfig(long_edge_px=512, padding_px=8), + ) + text = manifest.assets[0] + assert text.asset_id == "asset_0003" + assert text.media_type == "text_bitmap" + assert text.content == "SUMMER SALE" + assert max(text.bitmap_width, text.bitmap_height) == 512 + + payload = json.loads((r3_dir / R3_MANIFEST_FILENAME).read_text()) + serialized = json.dumps(payload) + for forbidden in ('"left"', '"top"', '"font_size"', '"native_width"', '"native_height"'): + assert forbidden not in serialized + + +def test_r3_rejects_text_without_bitmap(tmp_path: Path): + source = _pfull_source(tmp_path, None) + pfull_dir = tmp_path / "pfull" + prepare_pfull_sample(source, pfull_dir) + with pytest.raises(R3NormalizationError, match="no bitmap"): + prepare_r3_sample( + pfull_dir / "asset_manifest.json", + tmp_path / "r3", + R3NormalizationConfig(), + ) + + +def test_prompt_descriptor_exposes_aspect_not_pixel_or_natural_size(tmp_path: Path): + bitmap = Path(_text_bitmap(tmp_path / "asset_0003_r3_text.png", (512, 128), (8, 8, 503, 119))) + descriptor = r3_prompt_descriptor(str(bitmap)) + assert "aspect ratio 4.000000" in descriptor + assert "512" not in descriptor + assert "128" not in descriptor + assert "natural size" not in descriptor.lower() + + +def test_generator_and_observer_route_r3_around_legacy_natural_size_branch(): + repo = Path(__file__).resolve().parents[4] + generator = ( + repo / "metagpt/ext/agentlayout/actions/generate_layout.py" + ).read_text() + observer = ( + repo / "metagpt/ext/agentlayout/actions/judge_aesthetic.py" + ).read_text() + r3_branch = generator.index("if is_r3_text_bitmap(el.asset_ref):") + legacy_branch = generator.index('elif el.asset_ref and el.asset_ref.endswith("_text.png"):') + assert r3_branch < legacy_branch + assert "and not is_r3_text_bitmap(spec_el.asset_ref)" in observer + + +def test_contain_size_preserves_aspect_ratio(): + assert contain_size((400, 100), (200, 200)) == (200, 50) + assert contain_size((100, 400), (200, 100)) == (25, 100) + + +def test_r3_renderer_contains_bitmap_without_stretching(tmp_path: Path): + bitmap = tmp_path / "asset_0003_r3_text.png" + image = Image.new("RGBA", (400, 100), (220, 20, 20, 255)) + image.save(bitmap) + spec = DesignSpec( + canvas=Canvas(width=300, height=300, background_color="#FFFFFF"), + elements=[ + Element( + id="asset_0003", + semantic_type="title", + visual_type="image", + content="SALE", + asset_ref=str(bitmap), + ) + ], + ) + candidate = Candidate( + candidate_id="r3", + elements=[ + LayoutElement( + id="asset_0003", + left=50, + top=50, + width=200, + height=200, + z_index=1, + ) + ], + ) + rendered = render(candidate, spec).convert("RGB") + white = Image.new("RGB", rendered.size, "white") + bbox = ImageChops.difference(rendered, white).getbbox() + assert bbox == (50, 125, 250, 175) + assert (bbox[2] - bbox[0]) / (bbox[3] - bbox[1]) == pytest.approx(4.0) + + +def test_normalizer_refuses_transparent_bitmap(tmp_path: Path): + source = tmp_path / "blank.png" + Image.new("RGBA", (100, 40), (0, 0, 0, 0)).save(source) + with pytest.raises(R3NormalizationError, match="no alpha pixels"): + normalize_text_bitmap( + source, + tmp_path / "blank_r3_text.png", + R3NormalizationConfig(), + )