Spaces:
Paused
Paused
Update backup.app.py
Browse files- backup.app.py +40 -19
backup.app.py
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
|
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
-
|
| 3 |
-
import torch
|
| 4 |
import os
|
| 5 |
-
import
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
import time
|
|
|
|
|
|
|
| 7 |
from PIL import Image
|
| 8 |
-
import re
|
| 9 |
-
import base64
|
| 10 |
from io import BytesIO
|
| 11 |
-
import
|
|
|
|
| 12 |
|
| 13 |
try:
|
| 14 |
import intel_extension_for_pytorch as ipex
|
| 15 |
except:
|
| 16 |
pass
|
| 17 |
|
| 18 |
-
from PIL import Image
|
| 19 |
-
import numpy as np
|
| 20 |
-
import gradio as gr
|
| 21 |
-
import psutil
|
| 22 |
-
import time
|
| 23 |
-
|
| 24 |
SAFETY_CHECKER = os.environ.get("SAFETY_CHECKER", None)
|
| 25 |
TORCH_COMPILE = os.environ.get("TORCH_COMPILE", None)
|
| 26 |
HF_TOKEN = os.environ.get("HF_TOKEN", None)
|
|
@@ -76,6 +76,12 @@ def encode_image(image):
|
|
| 76 |
buffered = BytesIO()
|
| 77 |
#image.save(buffered, format="PNG")
|
| 78 |
return base64.b64encode(buffered.getvalue()).decode()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
def predict(prompt, guidance, steps, seed=1231231):
|
| 81 |
generator = torch.manual_seed(seed)
|
|
@@ -99,11 +105,6 @@ def predict(prompt, guidance, steps, seed=1231231):
|
|
| 99 |
if nsfw_content_detected:
|
| 100 |
nsfw=gr.Button("🕹️NSFW🎨", scale=1)
|
| 101 |
|
| 102 |
-
# Generate file name
|
| 103 |
-
#date_str = datetime.datetime.now().strftime("%Y%m%d")
|
| 104 |
-
#safe_prompt = prompt.replace(" ", "_")[:50] # Truncate long prompts
|
| 105 |
-
#filename = f"{date_str}_{safe_prompt}.png"
|
| 106 |
-
|
| 107 |
central = pytz.timezone('US/Central')
|
| 108 |
safe_date_time = datetime.datetime.now().strftime("%Y%m%d")
|
| 109 |
replaced_prompt = prompt.replace(" ", "_").replace("\n", "_")
|
|
@@ -116,8 +117,6 @@ def predict(prompt, guidance, steps, seed=1231231):
|
|
| 116 |
image_path = os.path.join("", filename) # Specify your directory
|
| 117 |
results.images[0].save(image_path)
|
| 118 |
print(f"#Image saved as {image_path}")
|
| 119 |
-
#filename = safe_filename(prompt)
|
| 120 |
-
#image.save(filename)
|
| 121 |
encoded_image = encode_image(image)
|
| 122 |
html_link = f'<a href="data:image/png;base64,{encoded_image}" download="{filename}">Download Image</a>'
|
| 123 |
gr.Markdown(html_link)
|
|
@@ -151,7 +150,23 @@ with gr.Blocks(css=css) as demo:
|
|
| 151 |
)
|
| 152 |
generate_bt = gr.Button("Generate", scale=1)
|
| 153 |
|
|
|
|
| 154 |
image = gr.Image(type="filepath")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 155 |
with gr.Accordion("Advanced options", open=False):
|
| 156 |
guidance = gr.Slider(
|
| 157 |
label="Guidance", minimum=0.0, maximum=5, value=0.3, step=0.001
|
|
@@ -160,6 +175,8 @@ with gr.Blocks(css=css) as demo:
|
|
| 160 |
seed = gr.Slider(
|
| 161 |
randomize=True, minimum=0, maximum=12013012031030, label="Seed", step=1
|
| 162 |
)
|
|
|
|
|
|
|
| 163 |
with gr.Accordion("Run with diffusers"):
|
| 164 |
gr.Markdown(
|
| 165 |
"""## Running LCM-LoRAs it with `diffusers`
|
|
@@ -169,9 +186,11 @@ with gr.Blocks(css=css) as demo:
|
|
| 169 |
|
| 170 |
```py
|
| 171 |
from diffusers import DiffusionPipeline, LCMScheduler
|
|
|
|
| 172 |
pipe = DiffusionPipeline.from_pretrained("Lykon/dreamshaper-7").to("cuda")
|
| 173 |
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
|
| 174 |
pipe.load_lora_weights("latent-consistency/lcm-lora-sdv1-5") #yes, it's a normal LoRA
|
|
|
|
| 175 |
results = pipe(
|
| 176 |
prompt="ImageEditor",
|
| 177 |
num_inference_steps=4,
|
|
@@ -182,8 +201,10 @@ with gr.Blocks(css=css) as demo:
|
|
| 182 |
"""
|
| 183 |
)
|
| 184 |
|
|
|
|
| 185 |
inputs = [prompt, guidance, steps, seed]
|
| 186 |
generate_bt.click(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
|
|
|
| 187 |
prompt.input(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
| 188 |
guidance.change(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
| 189 |
steps.change(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
|
|
|
| 1 |
+
import base64
|
| 2 |
+
import datetime
|
| 3 |
import gradio as gr
|
| 4 |
+
import numpy as np
|
|
|
|
| 5 |
import os
|
| 6 |
+
import pytz
|
| 7 |
+
import psutil
|
| 8 |
+
import re
|
| 9 |
+
import random
|
| 10 |
+
import torch
|
| 11 |
import time
|
| 12 |
+
import time
|
| 13 |
+
|
| 14 |
from PIL import Image
|
|
|
|
|
|
|
| 15 |
from io import BytesIO
|
| 16 |
+
from PIL import Image
|
| 17 |
+
from diffusers import DiffusionPipeline, LCMScheduler, AutoencoderTiny
|
| 18 |
|
| 19 |
try:
|
| 20 |
import intel_extension_for_pytorch as ipex
|
| 21 |
except:
|
| 22 |
pass
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
SAFETY_CHECKER = os.environ.get("SAFETY_CHECKER", None)
|
| 25 |
TORCH_COMPILE = os.environ.get("TORCH_COMPILE", None)
|
| 26 |
HF_TOKEN = os.environ.get("HF_TOKEN", None)
|
|
|
|
| 76 |
buffered = BytesIO()
|
| 77 |
#image.save(buffered, format="PNG")
|
| 78 |
return base64.b64encode(buffered.getvalue()).decode()
|
| 79 |
+
|
| 80 |
+
def fake_gan():
|
| 81 |
+
base_dir = os.getcwd() # Get the current base directory
|
| 82 |
+
img_files = [file for file in os.listdir(base_dir) if file.lower().endswith((".png", ".jpg", ".jpeg"))] # List all files ending with ".jpg" or ".jpeg"
|
| 83 |
+
images = [(random.choice(img_files), os.path.splitext(file)[0]) for file in img_files]
|
| 84 |
+
return images
|
| 85 |
|
| 86 |
def predict(prompt, guidance, steps, seed=1231231):
|
| 87 |
generator = torch.manual_seed(seed)
|
|
|
|
| 105 |
if nsfw_content_detected:
|
| 106 |
nsfw=gr.Button("🕹️NSFW🎨", scale=1)
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
central = pytz.timezone('US/Central')
|
| 109 |
safe_date_time = datetime.datetime.now().strftime("%Y%m%d")
|
| 110 |
replaced_prompt = prompt.replace(" ", "_").replace("\n", "_")
|
|
|
|
| 117 |
image_path = os.path.join("", filename) # Specify your directory
|
| 118 |
results.images[0].save(image_path)
|
| 119 |
print(f"#Image saved as {image_path}")
|
|
|
|
|
|
|
| 120 |
encoded_image = encode_image(image)
|
| 121 |
html_link = f'<a href="data:image/png;base64,{encoded_image}" download="{filename}">Download Image</a>'
|
| 122 |
gr.Markdown(html_link)
|
|
|
|
| 150 |
)
|
| 151 |
generate_bt = gr.Button("Generate", scale=1)
|
| 152 |
|
| 153 |
+
# Image Result from last prompt
|
| 154 |
image = gr.Image(type="filepath")
|
| 155 |
+
|
| 156 |
+
# Gallery of Generated Images with Image Names in Random Set to Download
|
| 157 |
+
with gr.Row(variant="compact"):
|
| 158 |
+
text = gr.Textbox(
|
| 159 |
+
label="Image Sets",
|
| 160 |
+
show_label=False,
|
| 161 |
+
max_lines=1,
|
| 162 |
+
placeholder="Enter your prompt",
|
| 163 |
+
)
|
| 164 |
+
btn = gr.Button("Generate Gallery of Saved Images")
|
| 165 |
+
gallery = gr.Gallery(
|
| 166 |
+
label="Generated Images", show_label=False, elem_id="gallery"
|
| 167 |
+
)
|
| 168 |
+
|
| 169 |
+
# Advanced Generate Options
|
| 170 |
with gr.Accordion("Advanced options", open=False):
|
| 171 |
guidance = gr.Slider(
|
| 172 |
label="Guidance", minimum=0.0, maximum=5, value=0.3, step=0.001
|
|
|
|
| 175 |
seed = gr.Slider(
|
| 176 |
randomize=True, minimum=0, maximum=12013012031030, label="Seed", step=1
|
| 177 |
)
|
| 178 |
+
|
| 179 |
+
# Diffusers
|
| 180 |
with gr.Accordion("Run with diffusers"):
|
| 181 |
gr.Markdown(
|
| 182 |
"""## Running LCM-LoRAs it with `diffusers`
|
|
|
|
| 186 |
|
| 187 |
```py
|
| 188 |
from diffusers import DiffusionPipeline, LCMScheduler
|
| 189 |
+
|
| 190 |
pipe = DiffusionPipeline.from_pretrained("Lykon/dreamshaper-7").to("cuda")
|
| 191 |
pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
|
| 192 |
pipe.load_lora_weights("latent-consistency/lcm-lora-sdv1-5") #yes, it's a normal LoRA
|
| 193 |
+
|
| 194 |
results = pipe(
|
| 195 |
prompt="ImageEditor",
|
| 196 |
num_inference_steps=4,
|
|
|
|
| 201 |
"""
|
| 202 |
)
|
| 203 |
|
| 204 |
+
# Function IO Eventing and Controls
|
| 205 |
inputs = [prompt, guidance, steps, seed]
|
| 206 |
generate_bt.click(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
| 207 |
+
btn.click(fake_gan, None, gallery)
|
| 208 |
prompt.input(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
| 209 |
guidance.change(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|
| 210 |
steps.change(fn=predict, inputs=inputs, outputs=image, show_progress=False)
|