|
from diffusers import DiffusionPipeline,UniPCMultistepScheduler |
|
import gradio as gr |
|
import torch |
|
import gc |
|
from style_trsfer import style_transfer_method |
|
|
|
|
|
def generate(style_image,text, negative_prompts,steps,guidance_scale): |
|
pipeline = DiffusionPipeline.from_pretrained("./CCLAP") |
|
pipeline.scheduler = UniPCMultistepScheduler.from_config( |
|
pipeline.scheduler.config) |
|
device = torch.device( |
|
'cuda:0' if torch.cuda.is_available() else 'cpu') |
|
if device.type == 'cuda': |
|
pipeline.enable_xformers_memory_efficient_attention() |
|
pipeline.to(device) |
|
torch.cuda.empty_cache() |
|
gc.collect() |
|
content_image = pipeline(text, |
|
num_inference_steps=steps, |
|
negative_prompt=negative_prompts, |
|
guidance_scale=guidance_scale).images[0] |
|
result = style_transfer_method(content_image,style_image) |
|
return content_image,result |
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
demo = gr.Interface(title="CCLAP", |
|
description = ( |
|
"This is the demo of CCLAP to generate Chinese landscape painting." |
|
), |
|
css="", |
|
fn=generate, |
|
inputs=[gr.Image(label="Style Image",shape=(512,512)), |
|
gr.Textbox(lines=3, placeholder="Input the prompt", label="Prompt"), |
|
gr.Textbox(lines=3, placeholder="low quality", label="Negative prompt"), |
|
gr.Slider(minimum=0, maximum=100, value=20,label='Steps'), |
|
gr.Slider(minimum=0, maximum=30, value=7.5,label='Guidance_scale'), |
|
], |
|
outputs=[gr.Image(label="Content Output",shape=(256,256)), |
|
gr.Image(label="Final Output",shape=(256,256))], |
|
examples = [ |
|
[ |
|
'style_image/style1.jpg', |
|
'A Chinese landscape painting of a mountain landscape with trees', |
|
'low quality', |
|
20, |
|
7.5 |
|
], |
|
[ |
|
'style_image/style2.jpg', |
|
'A Chinese landscape painting of a building with trees in front of it', |
|
'low quality', |
|
20, |
|
7.5 |
|
], |
|
[ |
|
'style_image/style3.jpg', |
|
'A Chinese landscape painting of a landscape with mountains in the background', |
|
'low quality', |
|
20, |
|
7.5 |
|
], |
|
[ |
|
'style_image/style4.jpg', |
|
'A Chinese landscape painting of a landscape with mountains and a river', |
|
'low quality', |
|
20, |
|
7.5 |
|
], |
|
], |
|
) |
|
|
|
demo.launch() |