CoolFace
Datasetpublic

emanuelevivoli/comix-v0_1-books-tiny

Comic Books Dataset v0.1 - Books Full dataset of book-level metadata from Digital Comic Museum. This is the PRODUCTION dataset. For testing, use comix_v0_tiny_books. What's Included Each book has: {book_id}.json - Book metadata with page references Purpose This dataset provides book-level metadata to group pages from comix-v0_1-pages. Workflow: Download comix-v0_1-pages (with images) Download comix-v0_1-books (metadata only) Use WebDataset… See the full description on the dataset page: https://huggingface.co/datasets/emanuelevivoli/comix-v0_1-books-tiny.

sourceHugging Facecc0-1.0updated 10mo agoView on Hugging Face
0likes67downloads
Dataset Card

Comic Books Dataset v0.1 - Books

Full dataset of book-level metadata from Digital Comic Museum.

This is the PRODUCTION dataset. For testing, use comix_v0_tiny_books.

Dataset Description

  • Total Books: 83
  • Source: Digital Comic Museum (DCM-22K)
  • Format: WebDataset (tar files)
  • Content: Metadata only (NO images)
  • License: Public Domain (CC0-1.0)
  • Version: 0.1 (Group-based processing)

What's Included

Each book has:

  • {book_id}.json - Book metadata with page references

Purpose

This dataset provides book-level metadata to group pages from comix-v0_1-pages.

Workflow:

  1. 1.Download comix-v0_1-pages (with images)
  2. 2.Download comix-v0_1-books (metadata only)
  3. 3.Use WebDataset pipeline to group pages by book

Quick Start

python
from datasets import load_dataset
import json

# Load books dataset
books = load_dataset(
    "emanuelevivoli/comix-v0_1-books",
    split="train",
    streaming=True
)

# Iterate through books
for book in books:
    book_data = json.loads(book["json"])
    
    book_id = book_data["book_id"]
    total_pages = book_data["book_metadata"]["total_pages"]
    
    # Get page references
    for page_ref in book_data["pages"]:
        page_id = page_ref["page_id"]
        page_number = page_ref["page_number"]
        tar_file = page_ref["tar_file"]
        has_seg = page_ref["has_segmentation"]
    
    print(f"Book {book_id}: {total_pages} pages")

Dataset Structure

Book JSON Schema (v0.1)

json
{
  "book_id": "c00004",
  "book_metadata": {
    "series_title": null,
    "issue_number": null,
    "publication_date": null,
    "publisher": null,
    "total_pages": 68,
    "license_status": "Public Domain",
    "digital_source": "Digital Comic Museum"
  },
  "pages": [
    {
      "page_number": 0,
      "page_id": "c00004_p000",
      "tar_file": "pages-train-00000.tar",
      "has_segmentation": true
    },
    ...
  ],
  "segments": [],     // v2: story segments (to be added)
  "characters": []    // v2: character bank (to be added)
}

Data Splits

SplitBooks
Train78
Validation2
Test3
Total83

Split Strategy: Books are assigned to splits based on MD5 hash matching with C100 and DCM benchmark datasets.

Use Cases

Book-level Analysis: Analyze complete comic books ✅ Page Grouping: Group pages by book for sequential tasks ✅ Metadata Management: Access book-level information ✅ Benchmark Alignment: Use predefined train/val/test splits

Version 0.1 (Primordial)

This is a primordial v0.1 with:

  • ✅ Basic structure
  • ✅ Page references
  • ⏳ Empty book_metadata fields (to be populated in v2)
  • ⏳ Empty segments (to be added in v2)
  • ⏳ Empty characters (to be added in v2)

Future (v2+) will include:

  • Bibliographic information (series, issue, publisher)
  • Story segments with summaries
  • Character banks with appearances

Companion Dataset

comix-v0_1-pages: Individual pages with images

Example: Group Pages by Book

python
# Load both datasets
pages = load_dataset("emanuelevivoli/comix-v0_1-pages", split="train")
books = load_dataset("emanuelevivoli/comix-v0_1-books", split="train")

# Create page index
page_index = {p["json"]["page_id"]: p for p in pages}

# Get a book and its pages
book = books[0]
book_data = json.loads(book["json"])

book_pages = []
for page_ref in book_data['pages']:
    page_id = page_ref['page_id']
    if page_id in page_index:
        book_pages.append(page_index[page_id])

print(f"Book {book_data['book_id']}: {len(book_pages)} pages loaded")

Processing Pipeline

Books are created from the pages dataset by:

  1. 1.Grouping pages by book_id
  2. 2.Creating page references with tar file locations
  3. 3.Adding placeholder metadata fields
  4. 4.Organizing by splits

Citation

bibtex
@dataset{comix_v0_1_books_2025,
  title={Comic Books Dataset v0.1 - Books},
  author={Emanuele Vivoli},
  year={2025},
  publisher={Hugging Face},
  note={Production dataset - DCM-22K source},
  url={https://huggingface.co/datasets/emanuelevivoli/comix-v0_1-books}
}

License

Public Domain (CC0-1.0) - Digital Comic Museum

Updates

  • v0.1 (2025-11-19): Initial release
  • 83 books from DCM-22K
  • Group-based processing (15 groups)
  • Split-organized tar files
  • Primordial version with placeholder fields