import os import gc import gradio as gr import numpy as np import torch import json import spaces import random import config import utils import logging import prompt_generator from PIL import Image, PngImagePlugin from datetime import datetime from diffusers.models import AutoencoderKL from diffusers import StableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipeline from config import ( MODEL, MIN_IMAGE_SIZE, MAX_IMAGE_SIZE, USE_TORCH_COMPILE, ENABLE_CPU_OFFLOAD, OUTPUT_DIR, DEFAULT_NEGATIVE_PROMPT, DEFAULT_ASPECT_RATIO, sampler_list, aspect_ratios, style_list, # 設定 TEXT_TO_PROMPT_ENABLED, DEFAULT_CATEGORY, DEFAULT_SERIES, DEFAULT_CHARACTER, series_list, character_list, category_list, ) import time from typing import List, Dict, Tuple, Optional # Enhanced logging configuration logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) logger = logging.getLogger(__name__) # Constants IS_COLAB = utils.is_google_colab() or os.getenv("IS_COLAB") == "1" HF_TOKEN = os.getenv("HF_TOKEN") CACHE_EXAMPLES = torch.cuda.is_available() and os.getenv("CACHE_EXAMPLES") == "1" # Create CSS with improved buttons and styling custom_css = """ .header { text-align: center; margin-bottom: 2rem; background: linear-gradient(to right, #4a69bd, #6a89cc); padding: 1.5rem; border-radius: 10px; color: white; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .title { margin: 0; font-size: 2.5rem; font-weight: 700; } .subtitle { font-size: 1.1rem; margin-top: 0.5rem; opacity: 0.9; } .subtitle-inline { font-size: 1.3rem; font-weight: 400; opacity: 0.9; } .notification { background-color: #fff8e1; border-left: 5px solid #ffc107; padding: 20px; margin: 20px 0; font-size: 1.2rem; border-radius: 10px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } .notification-title { color: #e65100; font-size: 1.5rem; margin-bottom: 10px; font-weight: 600; } .en-message { margin-bottom: 15px; } .jp-message { font-weight: 500; } """ # Create the Gradio interface with gr.Blocks(css=custom_css) as demo: gr.HTML("
Illustrate your fan stories with beautiful AI-generated art
二次創作ファン小説にAIで魅力的な挿絵を