Commit
·
e339223
1
Parent(s):
d8366c4
Update app.py
Browse files
app.py
CHANGED
@@ -3,12 +3,38 @@ import numpy as np
|
|
3 |
import torch
|
4 |
from PIL import Image
|
5 |
from diffusers import StableDiffusionPipeline
|
|
|
|
|
|
|
6 |
|
7 |
model_id = "runwayml/stable-diffusion-v1-5"
|
8 |
|
9 |
pipe = StableDiffusionPipeline.from_pretrained(model_id).to('cpu')
|
10 |
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
generator = torch.Generator(device='cpu').manual_seed(seed)
|
13 |
img = pipe(
|
14 |
prompt,
|
@@ -25,6 +51,14 @@ block = gr.Blocks()
|
|
25 |
|
26 |
with block:
|
27 |
with gr.Group():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
with gr.Box():
|
29 |
with gr.Row(elem_id="prompt-container").style(mobile_collapse=False, equal_height=True):
|
30 |
with gr.Column():
|
@@ -63,6 +97,8 @@ with block:
|
|
63 |
scale = gr.Slider(label="Guidance Scale", minimum=0, maximum=50, value=7.5, step=0.1, interactive=True)
|
64 |
seed = gr.Slider(label="Random seed",minimum=0,maximum=2147483647,step=1,randomize=True,interactive=True)
|
65 |
|
66 |
-
|
|
|
|
|
67 |
|
68 |
-
block.launch(show_api=False)
|
|
|
3 |
import torch
|
4 |
from PIL import Image
|
5 |
from diffusers import StableDiffusionPipeline
|
6 |
+
from transformers import pipeline, set_seed
|
7 |
+
import random
|
8 |
+
import re
|
9 |
|
10 |
model_id = "runwayml/stable-diffusion-v1-5"
|
11 |
|
12 |
pipe = StableDiffusionPipeline.from_pretrained(model_id).to('cpu')
|
13 |
|
14 |
+
gpt2_pipe = pipeline('text-generation', model='Gustavosta/MagicPrompt-Stable-Diffusion', tokenizer='gpt2')
|
15 |
+
|
16 |
+
def infer1(starting_text):
|
17 |
+
seed = random.randint(100, 1000000)
|
18 |
+
set_seed(seed)
|
19 |
+
|
20 |
+
if starting_text == "":
|
21 |
+
starting_text: str = re.sub(r"[,:\-–.!;?_]", '', starting_text)
|
22 |
+
|
23 |
+
response = gpt2_pipe(starting_text, max_length=(len(starting_text) + random.randint(60, 90)), num_return_sequences=4)
|
24 |
+
response_list = []
|
25 |
+
for x in response:
|
26 |
+
resp = x['generated_text'].strip()
|
27 |
+
if resp != starting_text and len(resp) > (len(starting_text) + 4) and resp.endswith((":", "-", "—")) is False:
|
28 |
+
response_list.append(resp+'\n')
|
29 |
+
|
30 |
+
response_end = "\n".join(response_list)
|
31 |
+
response_end = re.sub('[^ ]+\.[^ ]+','', response_end)
|
32 |
+
response_end = response_end.replace("<", "").replace(">", "")
|
33 |
+
|
34 |
+
if response_end != "":
|
35 |
+
return response_end
|
36 |
+
|
37 |
+
def infer2(prompt, negative, steps, scale, seed):
|
38 |
generator = torch.Generator(device='cpu').manual_seed(seed)
|
39 |
img = pipe(
|
40 |
prompt,
|
|
|
51 |
|
52 |
with block:
|
53 |
with gr.Group():
|
54 |
+
with gr.Box():
|
55 |
+
txt = gr.Textbox(lines=1, label="Initial Text", placeholder="English Text here")
|
56 |
+
gpt_btn = gr.Button("Generate prompt").style(
|
57 |
+
margin=False,
|
58 |
+
rounded=(False, True, True, False),
|
59 |
+
)
|
60 |
+
out = gr.Textbox(lines=4, label="Generated Prompts")
|
61 |
+
|
62 |
with gr.Box():
|
63 |
with gr.Row(elem_id="prompt-container").style(mobile_collapse=False, equal_height=True):
|
64 |
with gr.Column():
|
|
|
97 |
scale = gr.Slider(label="Guidance Scale", minimum=0, maximum=50, value=7.5, step=0.1, interactive=True)
|
98 |
seed = gr.Slider(label="Random seed",minimum=0,maximum=2147483647,step=1,randomize=True,interactive=True)
|
99 |
|
100 |
+
title = "Stable Diffusion Prompt Generator"
|
101 |
+
gpt_btn.click(infer1,inputs=txt,outputs=out)
|
102 |
+
btn.click(infer2, inputs=[text, negative, steps, scale, seed], outputs=[gallery])
|
103 |
|
104 |
+
block.launch(show_api=False,enable_queue=True, debug=True)
|