angtrim's picture
controlnet
0d259be
import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import DiffusionPipeline
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel, UniPCMultistepScheduler
device = "cuda" if torch.cuda.is_available() else "cpu"
controlnet = ControlNetModel.from_pretrained("CrucibleAI/ControlNetMediaPipeFace", torch_dtype=torch.float16)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"krnl/venereital-IA-23", controlnet=controlnet, torch_dtype=torch.float16
).to("cuda")
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
def genie (prompt, negative_prompt):
generator = torch.Generator(device=device)
prompt = "photo of sks person, " + prompt
centered = Image.open("centered.png").convert("RGB")
images = pipe(prompt, controlnet_conditioning_scale=0.99, image=centered, negative_prompt=negative_prompt, width=512, height=512, num_inference_steps=18, guidance_scale=3.5, num_images_per_prompt=1).images[0]
return images
desc = "Questo progetto è solo un PoC, sviluppato in circa 3 ore di lavoro. A volte la generazione non funziona, a volte funziona male, a volte funziona davvero bene. (Decliniamo ogni responsabilità per danni a persone, cose, o animali.)"
gr.Interface(fn=genie, inputs=[gr.Textbox(label='Descrivi la tua venere ideale (IN ENGLISH) ex: wearing sunglasses'), gr.Textbox(label='Descrivi cosa non vorresti vedere, (IN ENGLISH) ex: wearing hat')], outputs='image', title="Generatore di Venere", description=desc).launch(debug=True, max_threads=True)