Generated Asset Gallery
Generated Images
Click a tile to inspect it, select multiple assets to regenerate, or rate strong images as reinforcement.
Section Editor
PDF Layout Standard
Codex QA Workflow Test 20260608 · approved
Review / Edit / Regenerate / Lock
Locked Section
This section is approved and locked. Unlock it before editing or regenerating.
Preview
Rendered Section Preview
PDF Layout Standard
Approved layout: Table-Ready Classic
Target pages: 8 / max 10
Design Notes
- Two-column interior with compact sidebars. - Small portrait and token strips only where they help scanning. - Battlemaps appear as thumbnails with encounter notes; full-size images go in the package.
Page Plan
1. Cover and One-Shot Brief - Title, level range, party size, premise, stakes, cover/setting image. 2. Adventure Overview - GM summary, scene flow, clocks/timers, objective, fail-forward guidance. 3. Scene 1-2 - Opening, first location, read-aloud, clues, quick checks. 4. Scene 3-4 - Core investigation or exploration scenes with callouts. 5. Finale Encounter - Battlefield notes, boss objective, hazards, scaling. 6. NPC and Clue Reference - NPC cards, clue matrix, secrets, stuck-player rescues. 7. Stat Blocks - Compact stat blocks and tactics. 8. Assets and Handouts - Map thumbnails, token reference, rewards, package manifest.
```odos-pdf-layout-manifest { "schema": "odos.pdf_layout_standard.v1", "approved_at": "2026-06-08T08:47:11+00:00", "project_id": 2, "draft": { "key": "table_ready_classic", "name": "Table-Ready Classic", "target_pages": 8, "best_for": "Fast DM scanning, print-friendly tables, strongest default for repeatable monthly releases.", "design_notes": [ "Two-column interior with compact sidebars.", "Small portrait and token strips only where they help scanning.", "Battlemaps appear as thumbnails with encounter notes; full-size images go in the package." ], "pages": [ { "page": 1, "title": "Cover and One-Shot Brief", "content": "Title, level range, party size, premise, stakes, cover/setting image." }, { "page": 2, "title": "Adventure Overview", "content": "GM summary, scene flow, clocks/timers, objective, fail-forward guidance." }, { "page": 3, "title": "Scene 1-2", "content": "Opening, first location, read-aloud, clues, quick checks." }, { "page": 4, "title": "Scene 3-4", "content": "Core investigation or exploration scenes with callouts." }, { "page": 5, "title": "Finale Encounter", "content": "Battlefield notes, boss objective, hazards, scaling." }, { "page": 6, "title": "NPC and Clue Reference", "content": "NPC cards, clue matrix, secrets, stuck-player rescues." }, { "page": 7, "title": "Stat Blocks", "content": "Compact stat blocks and tactics." }, { "page": 8, "title": "Assets and Handouts", "content": "Map thumbnails, token reference, rewards, package manifest." } ], "coverage": { "sections": [ { "key": "locked_concept", "label": "Locked Concept", "status": "approved", "words": 73 }, { "key": "dm_packet", "label": "Dm Packet", "status": "approved", "words": 3544 }, { "key": "npc_suite", "label": "Npc Suite", "status": "approved", "words": 3133 }, { "key": "clue_web", "label": "Clue Web", "status": "approved", "words": 3524 }, { "key": "stat_blocks", "label": "Stat Blocks", "status": "approved", "words": 2812 }, { "key": "art_prompts", "label": "Art Prompts", "status": "approved", "words": 2230 } ], "assets": { "setting_images": { "label": "Setting Images", "folder": "setting_images", "count": 4, "files": [ { "public_path": "/assets/generated-art/project_2/setting_images/20260608-081906-cover-9a90d6.png", "title": "Cover", "size_bytes": 2877207 }, { "public_path": "/assets/generated-art/project_2/setting_images/20260608-082012-primary-location-07ecb2.png", "title": "Primary Location", "size_bytes": 2661292 }, { "public_path": "/assets/generated-art/project_2/setting_images/20260608-082123-key-scene-02b527.png", "title": "Key Scene", "size_bytes": 2794681 }, { "public_path": "/assets/generated-art/project_2/setting_images/20260608-082418-secondary-location-9794a9.png", "title": "Secondary Location", "size_bytes": 2848704 } ] }, "npc_images": { "label": "NPC Images", "folder": "npc_images", "count": 4, "files": [ { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083044-elsbeth-vane-873ac7.png", "title": "Elsbeth Vane", "size_bytes": 2112063 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083129-tovin-quill-0e4300.png", "title": "Tovin Quill", "size_bytes": 2004349 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083210-archive-sprite-pell-53cd30.png", "title": "Archive Sprite Pell", "size_bytes": 2388961 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083324-sheriff-brin-hollow-f3812d.png", "title": "Sheriff Brin Hollow", "size_bytes": 2123797 } ] }, "monster_art": { "label": "Monster Art", "folder": "monster_images", "count": 4, "files": [ { "public_path": "/assets/generated-art/project_2/monster_images/20260608-083554-animated-paper-scrap-e8ecd0.png", "title": "Animated Paper Scrap", "size_bytes": 3217166 }, { "public_path": "/assets/generated-art/project_2/monster_images/20260608-083643-living-seal-e8d8da.png", "title": "Living Seal", "size_bytes": 3310618 }, { "public_path": "/assets/generated-art/project_2/monster_images/20260608-083740-ink-bite-swarm-59dd3d.png", "title": "Ink Bite Swarm", "size_bytes": 3158565 }, { "public_path": "/assets/generated-art/project_2/monster_images/20260608-083832-copy-rite-ward-b5f1ae.png", "title": "Copy Rite Ward", "size_bytes": 3201612 } ] }, "token_pack": { "label": "Token Pack", "folder": "token_pack", "count": 8, "files": [ { "public_path": "/assets/generated-art/project_2/token_pack/animated-paper-scrap-token-48294f6d.png", "title": "Animated Paper Scrap Token 48294f6d", "size_bytes": 291343 }, { "public_path": "/assets/generated-art/project_2/token_pack/archive-sprite-pell-token-92c9220d.png", "title": "Archive Sprite Pell Token 92c9220d", "size_bytes": 313633 }, { "public_path": "/assets/generated-art/project_2/token_pack/copy-rite-ward-token-8a7e9075.png", "title": "Copy Rite Ward Token 8a7e9075", "size_bytes": 300987 }, { "public_path": "/assets/generated-art/project_2/token_pack/elsbeth-vane-token-045038d5.png", "title": "Elsbeth Vane Token 045038d5", "size_bytes": 298880 }, { "public_path": "/assets/generated-art/project_2/token_pack/ink-bite-swarm-token-750cea8a.png", "title": "Ink Bite Swarm Token 750cea8a", "size_bytes": 316138 }, { "public_path": "/assets/generated-art/project_2/token_pack/living-seal-token-28df5ebc.png", "title": "Living Seal Token 28df5ebc", "size_bytes": 285090 }, { "public_path": "/assets/generated-art/project_2/token_pack/sheriff-brin-hollow-token-090d4c5f.png", "title": "Sheriff Brin Hollow Token 090d4c5f", "size_bytes": 301670 }, { "public_path": "/assets/generated-art/project_2/token_pack/tovin-quill-token-420b22c8.png", "title": "Tovin Quill Token 420b22c8", "size_bytes": 301087 } ] }, "battlemaps": { "label": "Battlemaps", "folder": "battlemaps", "count": 2, "files": [ { "public_path": "/assets/generated-art/project_2/battlemaps/20260608-084217-primary-encounter-map-cebf5f.png", "title": "Primary Encounter Map", "size_bytes": 2810048 }, { "public_path": "/assets/generated-art/project_2/battlemaps/20260608-084323-finale-battlemap-27dec6.png", "title": "Finale Battlemap", "size_bytes": 2792023 } ] } }, "has_core_text": true, "approved_layout": null }, "preview_assets": { "cover": { "public_path": "/assets/generated-art/project_2/setting_images/20260608-081906-cover-9a90d6.png", "title": "Cover", "size_bytes": 2877207 }, "scene": { "public_path": "/assets/generated-art/project_2/setting_images/20260608-081906-cover-9a90d6.png", "title": "Cover", "size_bytes": 2877207 }, "map": { "public_path": "/assets/generated-art/project_2/battlemaps/20260608-084217-primary-encounter-map-cebf5f.png", "title": "Primary Encounter Map", "size_bytes": 2810048 }, "portraits": [ { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083044-elsbeth-vane-873ac7.png", "title": "Elsbeth Vane", "size_bytes": 2112063 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083129-tovin-quill-0e4300.png", "title": "Tovin Quill", "size_bytes": 2004349 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083210-archive-sprite-pell-53cd30.png", "title": "Archive Sprite Pell", "size_bytes": 2388961 }, { "public_path": "/assets/generated-art/project_2/npc_images/20260608-083324-sheriff-brin-hollow-f3812d.png", "title": "Sheriff Brin Hollow", "size_bytes": 2123797 } ], "tokens": [ { "public_path": "/assets/generated-art/project_2/token_pack/animated-paper-scrap-token-48294f6d.png", "title": "Animated Paper Scrap Token 48294f6d", "size_bytes": 291343 }, { "public_path": "/assets/generated-art/project_2/token_pack/archive-sprite-pell-token-92c9220d.png", "title": "Archive Sprite Pell Token 92c9220d", "size_bytes": 313633 }, { "public_path": "/assets/generated-art/project_2/token_pack/copy-rite-ward-token-8a7e9075.png", "title": "Copy Rite Ward Token 8a7e9075", "size_bytes": 300987 }, { "public_path": "/assets/generated-art/project_2/token_pack/elsbeth-vane-token-045038d5.png", "title": "Elsbeth Vane Token 045038d5", "size_bytes": 298880 }, { "public_path": "/assets/generated-art/project_2/token_pack/ink-bite-swarm-token-750cea8a.png", "title": "Ink Bite Swarm Token 750cea8a", "size_bytes": 316138 }, { "public_path": "/assets/generated-art/project_2/token_pack/living-seal-token-28df5ebc.png", "title": "Living Seal Token 28df5ebc", "size_bytes": 285090 } ], "layout": [] } }, "rules": { "max_pages": 10, "target_pages": 8, "deterministic_template": true, "battlemap_delivery": "Thumbnail and tactical notes in PDF; full-size maps packaged separately.", "token_delivery": "Reference strip in PDF; PNG token files packaged separately." } } ```