import gradio as gr from livro import processar_e_mostrar, verificar_contraste, gerar_preview_kdp with gr.Blocks() as demo: with gr.Row(): imagem_input = gr.Image(label="Imagem Original", type="filepath") mascara = gr.ImageEditor(label="Marcar áreas para preservar (opcional)") with gr.Row(): idade = gr.Slider(minimum=4, maximum=12, step=1, value=6, label="Idade da criança (ajusta número de pontos)") contraste_alerta = gr.Textbox(label="Aviso de Contraste", interactive=False) with gr.Row(): imagem_resultado = gr.Image(label="Prévia com Pontos Numerados") with gr.Row(): gerar_btn = gr.Button("Gerar Pontos") salvar_btn = gr.Button("Salvar como PDF") capa_btn = gr.Button("Gerar Preview da Capa") saida_pdf = gr.File(label="Download do PDF") saida_capa = gr.Image(label="Preview da Capa") resultado = {} def gerar(imagem_path, mask, idade): global resultado aviso = verificar_contraste(imagem_path) resultado = processar_e_mostrar(imagem_path, mask, idade) return aviso, resultado["preview"] def salvar_pdf(): return resultado.get("pdf") def gerar_capa(): return gerar_preview_kdp() gerar_btn.click(gerar, inputs=[imagem_input, mascara, idade], outputs=[contraste_alerta, imagem_resultado]) salvar_btn.click(salvar_pdf, outputs=saida_pdf) capa_btn.click(gerar_capa, outputs=saida_capa) demo.launch()