import os from PIL import Image import gradio as gr def create_interface_cyclegan(runner): with gr.Blocks(): with gr.Row(): gr.Markdown( '1. 上传内容图像和风格图像作为输入.\n' '2. 点击`Run`转换.' ) with gr.Row(): with gr.Column(): with gr.Row(): content_image = gr.Image(label='内容图像', type='pil', interactive=True, value=None) style_image = gr.Image(label='风格图像',type='pil',interactive=True, value=None) run_button = gr.Button(value='Run') with gr.Accordion('选项',open=True): input_nc = gr.Number(label = '输入图像通道数',value=3,precision=0,minimum=0,maximum=6) output_nc = gr.Number(label = '输出图像通道数',value=3,precision=0,minimum=0,maximum=6) nfc = gr.Number(label='生成器过滤器数量',value=64, precision=0, minimum=0,maximum=516) init_gain = gr.Slider(label='初始值', minimum=0, maximum=1, value=0.02) netG = gr.Radio(choices=['resnet_9blocks', 'resnet_6blocks'], value='resnet_9blocks', label='生成器模型') norm = gr.Radio(choices=['batch', 'instance','none'], value='instance', label='归一化类型') init_type = gr.Radio(choices=['normal', 'xavier','kaiming','orthogonal'], value='normal', label='初始化类型') no_dropout = gr.Checkbox(label='No Dropout', value=True) with gr.Column(): gr.Markdown('#### 输出图像:\n') result_gallery = gr.Gallery(label='Output', elem_id='gallery', columns=2, height='auto', preview=True) ips = [content_image, style_image, input_nc, output_nc, nfc, netG, norm, no_dropout, init_type, init_gain] run_button.click(fn=runner.run_cyclegan,inputs=ips,outputs=[result_gallery])