import gradio as gr from model import get_device, load_model from utils import build_prompt, generate_image from translations import TRANSLATIONS from image_guide import create_guide_tab device = get_device() pipe = load_model(device) def create_main_tab(): with gr.Blocks(theme=gr.themes.Soft()) as main_tab: gr.Markdown("""

🎨Retrato WaifuStudio

Genera fotos de perfil estilo anime totalmente personalizables

Si disfrutas de esta herramienta y deseas apoyar su desarrollo continuo, considera realizar una donación para contribuir a futuras mejoras, incluyendo la posibilidad de generar contenido sin limitaciones, tanto creativo como explícito.

Apoya con una donación
""") user_inputs = {} with gr.Row(): with gr.Column(): for category, options in TRANSLATIONS.items(): with gr.Accordion(category, open=False): user_inputs[category] = gr.CheckboxGroup( options, label=category ) with gr.Column(): with gr.Row(): clear_button = gr.Button("🧹 Limpiar texto") generate_button = gr.Button("🚀 Generar Imagen") prompt_output = gr.Textbox(label="📝 Características de la imagen", interactive=True) image_output = gr.Image(label="📥 Imagen generada") gr.Markdown(""" ```bash Proximamente ejemplos completos 😎 """) def update_prompt(*args): kwargs = {key: value for key, value in zip(TRANSLATIONS.keys(), args)} return build_prompt(**kwargs) def on_generate_image(*args): kwargs = {key: value for key, value in zip(TRANSLATIONS.keys(), args)} prompt = build_prompt(**kwargs) image = generate_image(prompt, pipe, device) return prompt, image def clear_fields(): return ([],) * len(TRANSLATIONS) + ("",) for input_component in user_inputs.values(): input_component.change( fn=update_prompt, inputs=list(user_inputs.values()), outputs=prompt_output ) clear_button.click( fn=clear_fields, inputs=[], outputs=list(user_inputs.values()) + [prompt_output] ) generate_button.click( fn=on_generate_image, inputs=list(user_inputs.values()), outputs=[prompt_output, image_output] ) gr.HTML("""
""") gr.Markdown(""" --- © 2024 Retrato WaifuStudio. Usando el modelo Waifu Diffusion de [Hakurei](https://huggingface.co/hakurei/waifu-diffusion). Desarrollado con ❤️ por [@srjosueaaron](https://www.instagram.com/srjosueaaron/). """) return main_tab def create_interface(): with gr.Blocks(theme=gr.themes.Soft()) as demo: with gr.Tabs(): with gr.Tab("Retrato WaifuStudio"): create_main_tab() with gr.Tab("Guía para generar"): create_guide_tab() return demo demo = create_interface() demo.launch(debug=True, share=True)