| import streamlit as st |
| from PIL import Image |
| import numpy as np |
| import io |
| import torch |
| from diffusers import DiffusionPipeline |
| from diffusers import StableDiffusionPipeline |
|
|
| |
| def generate_images(text, size, num_images, quality): |
| |
| generated_images = [] |
| for _ in range(num_images): |
| |
| |
| |
| |
| pass |
| return generated_images |
|
|
| |
| def pil_to_bytes(image): |
| img_byte_array = io.BytesIO() |
| image.save(img_byte_array, format='PNG') |
| return img_byte_array.getvalue() |
|
|
| |
| st.title('Text-to-Image AI-based Chatbot') |
|
|
| |
| user_input = st.text_input("Enter your text here:") |
|
|
| |
| model_opts = ["amused/amused-256", "amused/amused-512", "runwayml/stable-diffusion-v1-5"] |
| selected_model = st.selectbox("Select model:", model_opts) |
|
|
| if selected_model == 'amused/amused-256': |
| print("Model selected: 256") |
| pipe = DiffusionPipeline.from_pretrained('amused/amused-256', variant="fp16", torch_dtype=torch.float16) |
| elif selected_model == 'amused/amused-512': |
| print("Model selected: 512") |
| pipe = DiffusionPipeline.from_pretrained('amused/amused-512', variant="fp16", torch_dtype=torch.float16) |
| else: |
| print("Model selected: diffusion") |
| pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", variant="fp16", torch_dtype=torch.float16) |
|
|
| |
| |
| |
|
|
| |
| |
|
|
| |
| num_images = st.number_input("Number of images to generate:", min_value=1, max_value=10, value=3, step=1) |
| |
| image_quality = st.slider("Select image quality:", min_value=1, max_value=100, value=50, step=1) |
|
|
| |
| if st.button("Generate Images"): |
| if user_input: |
| |
| |
| |
| |
| |
| |
| pipe = pipe.to('cuda') |
|
|
| with st.spinner('Generating...'): |
| image = pipe( |
| user_input, |
| num_images_per_prompt=num_images, |
| num_inference_steps=image_quality, |
| generator=torch.Generator('cuda').manual_seed(8) |
| ).images |
| st.image(image , use_column_width=True) |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |