signlab / README.md
cagrigungor's picture
Update README.md
2b16ef9 verified

A newer version of the Gradio SDK is available: 6.13.0

Upgrade
metadata
title: SignLib - AI Signature Generator
emoji: 🖋️
colorFrom: purple
colorTo: indigo
sdk: gradio
sdk_version: 6.5.1
app_file: app.py
pinned: false
license: mit
tags:
  - signature
  - synthetic-data
  - ai
  - machine-learning
  - document-processing
  - dataset-generation

🖋️ SignLib - AI Signature Generator

Automatically add signatures to documents for synthetic data generation and AI training datasets.

🎯 Features

  • Automatic Background Removal - Removes signature background automatically
  • Smart Positioning - Finds optimal white space in document
  • Color Adaptation - Auto-detects text color or use custom colors
  • Position Control - Customize placement with bottom_percent and right_percent
  • Multiple Formats - Supports PDF, TIFF, PNG, JPEG

🚀 How to Use

  1. Upload Document: PDF, TIFF, PNG, or JPEG file
  2. Upload Signature: PNG file (transparent background recommended)
  3. Adjust Parameters:
    • Color Mode: Auto-detect or choose custom color
    • Size: 5-30% of document width (12% recommended)
    • Rotation: -20° to +20° for natural variation
    • Position: Control search area from bottom and right
  4. Click "Add Signature": Generate signed document instantly!

💡 Use Cases

  • AI Training Data: Generate synthetic signed documents for ML models
  • Dataset Augmentation: Create diverse training samples
  • Document Automation: Batch process documents
  • Testing & Development: Generate test documents

📦 Installation

pip install signlib

🐍 Python Usage

from signlib import create_sign

# Simple usage
create_sign('document.pdf', 'signature.png')

# With position control
create_sign(
    'document.pdf',
    'signature.png',
    bottom_percent=40,
    right_percent=40
)

# Full control
create_sign(
    document_path='document.pdf',
    sign_path='signature.png',
    signature_color=(0, 0, 255),  # Blue
    scale_factor=0.12,             # 12% size
    rotation_angle=5.0,            # 5° rotation
    bottom_percent=25,
    right_percent=50
)

📊 Batch Processing Example

Generate 1000 synthetic training samples:

from signlib import create_sign
import random
from pathlib import Path

documents = list(Path('documents').glob('*.pdf'))
signatures = list(Path('signatures').glob('*.png'))

for i in range(1000):
    doc = random.choice(documents)
    sig = random.choice(signatures)
    
    create_sign(
        str(doc),
        str(sig),
        output_path=f'training_data/sample_{i:04d}.pdf',
        scale_factor=random.uniform(0.10, 0.15),
        rotation_angle=random.uniform(-10, 10),
        bottom_percent=random.randint(20, 35),
        right_percent=random.randint(40, 60)
    )

🔗 Links

📄 License

MIT License - Free for commercial and open-source use.


Perfect for AI researchers, ML engineers, and data scientists! 🚀