text2image_1 / app.py
RanM's picture
Update app.py
046e4ad verified
raw
history blame
3.97 kB
# import gradio as gr
# import torch
# from diffusers import DiffusionPipeline, AutoPipelineForText2Image
# import base64
# from io import BytesIO
# def load_amused_model():
# # pipeline = DiffusionPipeline.from_pretrained("Bakanayatsu/ponyDiffusion-V6-XL-Turbo-DPO")
# # AutoPipelineForText2Image.from_pretrained("stabilityai/sd-turbo")
# # AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
# return DiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4",
# safety_checker = None,
# requires_safety_checker = False)
# # Generate image from prompt using AmusedPipeline
# def generate_image(prompt):
# try:
# pipe = load_amused_model()
# generator = torch.Generator().manual_seed(8) # Create a generator for reproducibility
# image = pipe(prompt, generator=generator).images[0] # Generate image from prompt
# # image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
# return image, None
# except Exception as e:
# return None, str(e)
# def inference(prompt):
# print(f"Received prompt: {prompt}") # Debugging statement
# image, error = generate_image(prompt)
# if error:
# print(f"Error generating image: {error}") # Debugging statement
# return "Error: " + error
# buffered = BytesIO()
# image.save(buffered, format="PNG")
# img_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
# return img_str
# gradio_interface = gr.Interface(
# fn=inference,
# inputs="text",
# outputs="text" # Change output to text to return base64 string
# )
# if __name__ == "__main__":
# gradio_interface.launch()
import gradio as gr
from diffusers import DiffusionPipeline, DPMSolverSinglestepScheduler
import torch
import base64
from io import BytesIO
def load_amused_model():
# pipeline = DiffusionPipeline.from_pretrained("Bakanayatsu/ponyDiffusion-V6-XL-Turbo-DPO")
# AutoPipelineForText2Image.from_pretrained("stabilityai/sd-turbo")
# AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo")
return DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float32).to("cpu")
# Generate image from prompt using AmusedPipeline
def generate_image(prompt):
try:
pipe = load_amused_model()
pipe.load_lora_weights(
"mann-e/Mann-E_Turbo",
weight_name="manne_turbo.safetensors",
)
# This is equivalent to DPM++ SDE Karras, as noted in https://huggingface.co/docs/diffusers/main/en/api/schedulers/overview
pipe.scheduler = DPMSolverSinglestepScheduler.from_config(pipe.scheduler.config, use_karras_sigmas=True)
#generator = torch.Generator().manual_seed(8) # Create a generator for reproducibility
#image = pipe(prompt, generator=generator).images[0] # Generate image from prompt
# image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
image = pipe(
prompt="a cat in a bustling middle eastern city",
num_inference_steps=8,
guidance_scale=4,
width=768,
height=768,
clip_skip=1
).images[0]
return image, None
except Exception as e:
return None, str(e)
def inference(prompt):
print(f"Received prompt: {prompt}") # Debugging statement
image, error = generate_image(prompt)
if error:
print(f"Error generating image: {error}") # Debugging statement
return "Error: " + error
buffered = BytesIO()
image.save(buffered, format="PNG")
img_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
return img_str
gradio_interface = gr.Interface(
fn=inference,
inputs="text",
outputs="text" # Change output to text to return base64 string
)
if __name__ == "__main__":
gradio_interface.launch()