HexAI_Demo / signature_verification /signature_generator.py
Ankit Thakur
Resolve merge conflicts
12f2295
import os
import logging
import numpy as np
import cv2
from dotenv import load_dotenv
from huggingface_hub import InferenceClient, HfFolder
from PIL import Image
load_dotenv()
# Acquire token
hf_token = os.getenv("HUGGING_FACE_HUB_TOKEN") or HfFolder.get_token()
if not hf_token:
print("❌ No Hugging Face token found. Signature generation will fail.")
CLIENT = None
else:
print("✅ Using Hugging Face token for signature generation.")
CLIENT = InferenceClient(token=hf_token)
MODEL_ID = "stabilityai/stable-diffusion-xl-base-1.0"
def generate_signatures(name: str, num_variations: int = 3) -> list:
"""Generates multiple signature variations for a given name."""
if CLIENT is None:
return []
prompts = [
f"A clean, elegant, handwritten signature of the name '{name}' on a plain white background. Cursive, professional.",
f"Calligraphy signature of '{name}'. Black ink on white paper. Minimalist, artistic.",
f"A doctor's signature for '{name}'. Quick, scribbled, but legible. Official-looking script."
]
images = []
for i in range(num_variations):
prompt = prompts[i % len(prompts)]
logging.info(f"Generating signature variation {i+1} for '{name}'…")
try:
pil_img = CLIENT.text_to_image(
prompt,
model=MODEL_ID,
negative_prompt=(
"photograph, text, multiple signatures, watermark, blurry, colorful, background"
),
guidance_scale=8.0
)
np_img = np.array(pil_img)
cv_img = cv2.cvtColor(np_img, cv2.COLOR_RGB2BGR)
images.append(cv_img)
except Exception as e:
logging.error(f"❌ Signature generation failed: {e}")
return images