|
import gradio as gr |
|
from PIL import Image |
|
import torch |
|
from diffusers import StableDiffusionPipeline |
|
|
|
|
|
device = "cuda" if torch.cuda.is_available() else "cpu" |
|
model_id = "CompVis/stable-diffusion-v1-4" |
|
pipe = StableDiffusionPipeline.from_pretrained(model_id).to(device) |
|
|
|
def cartoonize_image(image): |
|
prompt = "A Pixar-style cartoon character" |
|
|
|
|
|
image = image.convert("RGB") |
|
image = image.resize((512, 512)) |
|
|
|
|
|
with torch.no_grad(): |
|
result = pipe(prompt=prompt, init_image=image, strength=0.75).images[0] |
|
|
|
return result |
|
|
|
|
|
def main(): |
|
with gr.Blocks() as demo: |
|
gr.Markdown("## Conversi贸n de Imagen a Caricatura Estilo Pixar") |
|
with gr.Row(): |
|
with gr.Column(): |
|
input_image = gr.Image(type="pil", label="Sube tu imagen") |
|
output_image = gr.Image(type="pil", label="Imagen Caricaturizada") |
|
|
|
input_image.change( |
|
fn=cartoonize_image, |
|
inputs=input_image, |
|
outputs=output_image |
|
) |
|
|
|
demo.launch() |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|