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("

FanFic Illustrator with Animagine XL 4.0 Opt

Illustrate your fan stories with beautiful AI-generated art
二次創作ファン小説にAIで魅力的な挿絵を

") with gr.Column(): # Service temporarily unavailable notification gr.HTML("""
Service Temporarily Suspended
This service has been temporarily suspended due to frequent ZERO GPU allocation failures.
You can try it for free using Google Colab FanFic Illustrator demo
ZERO GPUの割当に失敗する事が多すぎるので一時停止しました。
Google Colab FanFic Illustrator demoで無料で試す事ができます
""") # Launch the app if __name__ == "__main__": demo.launch(server_name="0.0.0.0", share=IS_COLAB)