Spaces:
Sleeping
Sleeping
Commit
·
686fe7a
1
Parent(s):
1f62c1a
Update app.py
Browse files
app.py
CHANGED
|
@@ -5,7 +5,6 @@ import random
|
|
| 5 |
import os
|
| 6 |
from PIL import Image
|
| 7 |
|
| 8 |
-
List of available models
|
| 9 |
list_models = [
|
| 10 |
"SDXL-1.0",
|
| 11 |
"SD-1.5",
|
|
@@ -17,10 +16,8 @@ list_models = [
|
|
| 17 |
"Midjourney-V4-XL",
|
| 18 |
]
|
| 19 |
|
| 20 |
-
Function to generate image from text prompt using selected model and style
|
| 21 |
def generate_txt2img(current_model, prompt, is_negative=False, image_style="None style", steps=50, cfg_scale=7,
|
| 22 |
seed=None):
|
| 23 |
-
# API URLs for different models
|
| 24 |
if current_model == "SD-1.5":
|
| 25 |
API_URL = "https://api-inference.huggingface.co/models/runwayml/stable-diffusion-v1-5"
|
| 26 |
elif current_model == "SDXL-1.0":
|
|
@@ -41,7 +38,6 @@ elif current_model == "Midjourney-V4-XL":
|
|
| 41 |
API_TOKEN = os.environ.get("HF_READ_TOKEN")
|
| 42 |
headers = {"Authorization": f"Bearer {API_TOKEN}"}
|
| 43 |
|
| 44 |
-
# Construct payload based on selected style and options
|
| 45 |
if image_style == "None style":
|
| 46 |
payload = {
|
| 47 |
"inputs": prompt + ", 8k",
|
|
@@ -75,20 +71,17 @@ elif image_style == "Portrait":
|
|
| 75 |
"seed": seed if seed is not None else random.randint(-1, 2147483647)
|
| 76 |
}
|
| 77 |
|
| 78 |
-
# Send request to API and retrieve image
|
| 79 |
image_bytes = requests.post(API_URL, headers=headers, json=payload).content
|
| 80 |
image = Image.open(io.BytesIO(image_bytes))
|
| 81 |
return image
|
| 82 |
-
|
| 83 |
css = """
|
| 84 |
-
/* General Container Styles */
|
| 85 |
.gradio-container {
|
| 86 |
max-width: 800px !important;
|
| 87 |
margin: auto;
|
| 88 |
padding-top: 1.5rem;
|
| 89 |
}
|
| 90 |
|
| 91 |
-
/* Button Styles */
|
| 92 |
.gr-button {
|
| 93 |
color: white;
|
| 94 |
border-color: black;
|
|
@@ -107,7 +100,6 @@ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow
|
|
| 107 |
--tw-ring-opacity: .5;
|
| 108 |
}
|
| 109 |
|
| 110 |
-
/* Footer Styles */
|
| 111 |
.footer, .dark .footer {
|
| 112 |
margin-bottom: 45px;
|
| 113 |
margin-top: 35px;
|
|
@@ -131,7 +123,6 @@ border-color: #303030;
|
|
| 131 |
background: #0b0f19;
|
| 132 |
}
|
| 133 |
|
| 134 |
-
/* Share Button Styles */
|
| 135 |
#share-btn-container {
|
| 136 |
padding: 0 0.5rem !important;
|
| 137 |
background-color: #000000;
|
|
@@ -157,7 +148,6 @@ padding: 0.5rem !important;
|
|
| 157 |
right: 0;
|
| 158 |
}
|
| 159 |
|
| 160 |
-
/* Animation Styles */
|
| 161 |
.animate-spin {
|
| 162 |
animation: spin 1s linear infinite;
|
| 163 |
}
|
|
@@ -167,7 +157,6 @@ from { transform: rotate(0deg); }
|
|
| 167 |
to { transform: rotate(360deg); }
|
| 168 |
}
|
| 169 |
|
| 170 |
-
/* Other Styles */
|
| 171 |
#gallery {
|
| 172 |
min-height: 22rem;
|
| 173 |
margin-bottom: 15px;
|
|
@@ -178,8 +167,7 @@ border-bottom-left-radius: .5rem !important;
|
|
| 178 |
}
|
| 179 |
"""
|
| 180 |
|
| 181 |
-
|
| 182 |
-
with gr.Interface(generate_txt2img,
|
| 183 |
title="AI Diffusion",
|
| 184 |
description="Generate images from text prompts using different AI models and styles",
|
| 185 |
examples=[
|
|
@@ -188,26 +176,4 @@ examples=[
|
|
| 188 |
["a fantasy world"]
|
| 189 |
],
|
| 190 |
layout="vertical",
|
| 191 |
-
css=css)
|
| 192 |
-
# Add model selection dropdown
|
| 193 |
-
demo.inputs[0].label = "Current Model"
|
| 194 |
-
|
| 195 |
-
# Add prompt text input and generate button
|
| 196 |
-
demo.inputs[1].label = "Prompt"
|
| 197 |
-
demo.inputs[1].placeholder = "Enter your text prompt here"
|
| 198 |
-
demo.inputs[1].lines = 1
|
| 199 |
-
demo.inputs[2].visibility = "hidden" # Hide negative prompt textbox initially
|
| 200 |
-
|
| 201 |
-
@demo.inputs[3].callback
|
| 202 |
-
def style_selected(value):
|
| 203 |
-
# Show or hide negative prompt textbox based on the selected style
|
| 204 |
-
if value == "None style":
|
| 205 |
-
demo.inputs[2].visibility = "hidden"
|
| 206 |
-
else:
|
| 207 |
-
demo.inputs[2].visibility = "visible"
|
| 208 |
-
|
| 209 |
-
# Add image output
|
| 210 |
-
demo.outputs[0].label = "Generated Image"
|
| 211 |
-
|
| 212 |
-
# Run the app
|
| 213 |
-
demo.launch()
|
|
|
|
| 5 |
import os
|
| 6 |
from PIL import Image
|
| 7 |
|
|
|
|
| 8 |
list_models = [
|
| 9 |
"SDXL-1.0",
|
| 10 |
"SD-1.5",
|
|
|
|
| 16 |
"Midjourney-V4-XL",
|
| 17 |
]
|
| 18 |
|
|
|
|
| 19 |
def generate_txt2img(current_model, prompt, is_negative=False, image_style="None style", steps=50, cfg_scale=7,
|
| 20 |
seed=None):
|
|
|
|
| 21 |
if current_model == "SD-1.5":
|
| 22 |
API_URL = "https://api-inference.huggingface.co/models/runwayml/stable-diffusion-v1-5"
|
| 23 |
elif current_model == "SDXL-1.0":
|
|
|
|
| 38 |
API_TOKEN = os.environ.get("HF_READ_TOKEN")
|
| 39 |
headers = {"Authorization": f"Bearer {API_TOKEN}"}
|
| 40 |
|
|
|
|
| 41 |
if image_style == "None style":
|
| 42 |
payload = {
|
| 43 |
"inputs": prompt + ", 8k",
|
|
|
|
| 71 |
"seed": seed if seed is not None else random.randint(-1, 2147483647)
|
| 72 |
}
|
| 73 |
|
|
|
|
| 74 |
image_bytes = requests.post(API_URL, headers=headers, json=payload).content
|
| 75 |
image = Image.open(io.BytesIO(image_bytes))
|
| 76 |
return image
|
| 77 |
+
|
| 78 |
css = """
|
|
|
|
| 79 |
.gradio-container {
|
| 80 |
max-width: 800px !important;
|
| 81 |
margin: auto;
|
| 82 |
padding-top: 1.5rem;
|
| 83 |
}
|
| 84 |
|
|
|
|
| 85 |
.gr-button {
|
| 86 |
color: white;
|
| 87 |
border-color: black;
|
|
|
|
| 100 |
--tw-ring-opacity: .5;
|
| 101 |
}
|
| 102 |
|
|
|
|
| 103 |
.footer, .dark .footer {
|
| 104 |
margin-bottom: 45px;
|
| 105 |
margin-top: 35px;
|
|
|
|
| 123 |
background: #0b0f19;
|
| 124 |
}
|
| 125 |
|
|
|
|
| 126 |
#share-btn-container {
|
| 127 |
padding: 0 0.5rem !important;
|
| 128 |
background-color: #000000;
|
|
|
|
| 148 |
right: 0;
|
| 149 |
}
|
| 150 |
|
|
|
|
| 151 |
.animate-spin {
|
| 152 |
animation: spin 1s linear infinite;
|
| 153 |
}
|
|
|
|
| 157 |
to { transform: rotate(360deg); }
|
| 158 |
}
|
| 159 |
|
|
|
|
| 160 |
#gallery {
|
| 161 |
min-height: 22rem;
|
| 162 |
margin-bottom: 15px;
|
|
|
|
| 167 |
}
|
| 168 |
"""
|
| 169 |
|
| 170 |
+
gr.Interface(generate_txt2img,
|
|
|
|
| 171 |
title="AI Diffusion",
|
| 172 |
description="Generate images from text prompts using different AI models and styles",
|
| 173 |
examples=[
|
|
|
|
| 176 |
["a fantasy world"]
|
| 177 |
],
|
| 178 |
layout="vertical",
|
| 179 |
+
css=css).launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|