Spaces:
Running
Running
Add Negative Prompt parameter
Browse files
app.py
CHANGED
|
@@ -55,20 +55,20 @@ def calculate_resolution(aspect_ratio, mode='landscape', total_pixels=1024*1024,
|
|
| 55 |
|
| 56 |
# Example prompts with ckpt, aspect, and mode
|
| 57 |
examples = [
|
| 58 |
-
{"prompt": "A futuristic cityscape at sunset", "ckpt": "4-Step", "aspect": "16:9", "mode": "landscape"},
|
| 59 |
-
{"prompt": "pair of shoes made of dried fruit skins, 3d render, bright colours, clean composition, beautiful artwork, logo", "ckpt": "2-Step", "aspect": "1:1", "mode": "portrait"},
|
| 60 |
-
{"prompt": "A portrait of a robot in the style of Renaissance art", "ckpt": "2-Step", "aspect": "1:1", "mode": "portrait"},
|
| 61 |
-
{"prompt": "full body of alien shaped like woman, big golden eyes, mars planet, photo, digital art, fantasy", "ckpt": "4-Step", "aspect": "1:1", "mode": "portrait"},
|
| 62 |
-
{"prompt": "A serene landscape with mountains and a river", "ckpt": "8-Step", "aspect": "3:2", "mode": "landscape"},
|
| 63 |
-
{"prompt": "post-apocalyptic wasteland, the most delicate beautiful flower with green leaves growing from dust and rubble, vibrant colours, cinematic", "ckpt": "8-Step", "aspect": "16:9", "mode": "landscape"}
|
| 64 |
]
|
| 65 |
# Define a function to set the example inputs
|
| 66 |
def set_example(selected_prompt):
|
| 67 |
# Find the example that matches the selected prompt
|
| 68 |
for example in examples:
|
| 69 |
if example["prompt"] == selected_prompt:
|
| 70 |
-
return example["prompt"], example["ckpt"], example["aspect"], example["mode"]
|
| 71 |
-
return None, None, None, None # Default values if not found
|
| 72 |
|
| 73 |
# Check if CUDA is available (GPU support), and set the appropriate device
|
| 74 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
|
@@ -114,7 +114,7 @@ def check_nsfw_images(
|
|
| 114 |
|
| 115 |
# Function
|
| 116 |
@spaces.GPU(enable_queue=True)
|
| 117 |
-
def generate_image(prompt, ckpt, aspect_ratio, mode):
|
| 118 |
width, height = calculate_resolution(aspect_ratio, mode) # Calculate resolution based on the aspect ratio
|
| 119 |
checkpoint = checkpoints[ckpt][0]
|
| 120 |
num_inference_steps = checkpoints[ckpt][1]
|
|
@@ -127,7 +127,7 @@ def generate_image(prompt, ckpt, aspect_ratio, mode):
|
|
| 127 |
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config, timestep_spacing="trailing")
|
| 128 |
|
| 129 |
pipe.unet.load_state_dict(load_file(hf_hub_download(repo, checkpoint), device=device))
|
| 130 |
-
results = pipe(prompt, num_inference_steps=num_inference_steps, guidance_scale=0, width=width, height=height )
|
| 131 |
|
| 132 |
if SAFETY_CHECKER:
|
| 133 |
images, has_nsfw_concepts = check_nsfw_images(results.images)
|
|
@@ -152,6 +152,8 @@ with gr.Blocks(css="style.css") as demo:
|
|
| 152 |
with gr.Group():
|
| 153 |
with gr.Row():
|
| 154 |
prompt = gr.Textbox(label='Enter you image prompt:', scale=8)
|
|
|
|
|
|
|
| 155 |
with gr.Row():
|
| 156 |
ckpt = gr.Dropdown(label='Select inference steps',choices=['1-Step', '2-Step', '4-Step', '8-Step'], value='4-Step', interactive=True)
|
| 157 |
aspect = gr.Dropdown(label='Aspect Ratio', choices=list(aspect_ratios.keys()), value='1:1', interactive=True)
|
|
@@ -161,15 +163,15 @@ with gr.Blocks(css="style.css") as demo:
|
|
| 161 |
img = gr.Image(label='SDXL-Lightning Generated Image')
|
| 162 |
|
| 163 |
prompt.submit(fn=generate_image,
|
| 164 |
-
inputs=[prompt, ckpt, aspect, mode],
|
| 165 |
outputs=img,
|
| 166 |
)
|
| 167 |
submit.click(fn=generate_image,
|
| 168 |
-
inputs=[prompt, ckpt, aspect, mode],
|
| 169 |
outputs=img,
|
| 170 |
)
|
| 171 |
# Dropdown for selecting examples
|
| 172 |
example_dropdown = gr.Dropdown(label='Select an Example', choices=[e["prompt"] for e in examples])
|
| 173 |
-
example_dropdown.change(fn=set_example, inputs=example_dropdown, outputs=[prompt, ckpt, aspect, mode])
|
| 174 |
|
| 175 |
demo.queue().launch()
|
|
|
|
| 55 |
|
| 56 |
# Example prompts with ckpt, aspect, and mode
|
| 57 |
examples = [
|
| 58 |
+
{"prompt": "A futuristic cityscape at sunset", "negative_prompt": "Ugly", "ckpt": "4-Step", "aspect": "16:9", "mode": "landscape"},
|
| 59 |
+
{"prompt": "pair of shoes made of dried fruit skins, 3d render, bright colours, clean composition, beautiful artwork, logo", "negative_prompt": "Ugly", "ckpt": "2-Step", "aspect": "1:1", "mode": "portrait"},
|
| 60 |
+
{"prompt": "A portrait of a robot in the style of Renaissance art", "negative_prompt": "Ugly", "ckpt": "2-Step", "aspect": "1:1", "mode": "portrait"},
|
| 61 |
+
{"prompt": "full body of alien shaped like woman, big golden eyes, mars planet, photo, digital art, fantasy", "negative_prompt": "Ugly", "ckpt": "4-Step", "aspect": "1:1", "mode": "portrait"},
|
| 62 |
+
{"prompt": "A serene landscape with mountains and a river", "negative_prompt": "Ugly", "ckpt": "8-Step", "aspect": "3:2", "mode": "landscape"},
|
| 63 |
+
{"prompt": "post-apocalyptic wasteland, the most delicate beautiful flower with green leaves growing from dust and rubble, vibrant colours, cinematic", "negative_prompt": "Ugly", "ckpt": "8-Step", "aspect": "16:9", "mode": "landscape"}
|
| 64 |
]
|
| 65 |
# Define a function to set the example inputs
|
| 66 |
def set_example(selected_prompt):
|
| 67 |
# Find the example that matches the selected prompt
|
| 68 |
for example in examples:
|
| 69 |
if example["prompt"] == selected_prompt:
|
| 70 |
+
return example["prompt"], example["negative_prompt"], example["ckpt"], example["aspect"], example["mode"]
|
| 71 |
+
return None, None, None, None, None # Default values if not found
|
| 72 |
|
| 73 |
# Check if CUDA is available (GPU support), and set the appropriate device
|
| 74 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
|
|
|
| 114 |
|
| 115 |
# Function
|
| 116 |
@spaces.GPU(enable_queue=True)
|
| 117 |
+
def generate_image(prompt, negative_prompt, ckpt, aspect_ratio, mode):
|
| 118 |
width, height = calculate_resolution(aspect_ratio, mode) # Calculate resolution based on the aspect ratio
|
| 119 |
checkpoint = checkpoints[ckpt][0]
|
| 120 |
num_inference_steps = checkpoints[ckpt][1]
|
|
|
|
| 127 |
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config, timestep_spacing="trailing")
|
| 128 |
|
| 129 |
pipe.unet.load_state_dict(load_file(hf_hub_download(repo, checkpoint), device=device))
|
| 130 |
+
results = pipe(prompt, negative_prompt=negative_prompt, num_inference_steps=num_inference_steps, guidance_scale=0, width=width, height=height )
|
| 131 |
|
| 132 |
if SAFETY_CHECKER:
|
| 133 |
images, has_nsfw_concepts = check_nsfw_images(results.images)
|
|
|
|
| 152 |
with gr.Group():
|
| 153 |
with gr.Row():
|
| 154 |
prompt = gr.Textbox(label='Enter you image prompt:', scale=8)
|
| 155 |
+
with gr.Row():
|
| 156 |
+
negative_prompt = gr.Textbox(label='Optional negative prompt:', scale=8)
|
| 157 |
with gr.Row():
|
| 158 |
ckpt = gr.Dropdown(label='Select inference steps',choices=['1-Step', '2-Step', '4-Step', '8-Step'], value='4-Step', interactive=True)
|
| 159 |
aspect = gr.Dropdown(label='Aspect Ratio', choices=list(aspect_ratios.keys()), value='1:1', interactive=True)
|
|
|
|
| 163 |
img = gr.Image(label='SDXL-Lightning Generated Image')
|
| 164 |
|
| 165 |
prompt.submit(fn=generate_image,
|
| 166 |
+
inputs=[prompt, negative_prompt, ckpt, aspect, mode],
|
| 167 |
outputs=img,
|
| 168 |
)
|
| 169 |
submit.click(fn=generate_image,
|
| 170 |
+
inputs=[prompt, negative_prompt, ckpt, aspect, mode],
|
| 171 |
outputs=img,
|
| 172 |
)
|
| 173 |
# Dropdown for selecting examples
|
| 174 |
example_dropdown = gr.Dropdown(label='Select an Example', choices=[e["prompt"] for e in examples])
|
| 175 |
+
example_dropdown.change(fn=set_example, inputs=example_dropdown, outputs=[prompt, negative_prompt, ckpt, aspect, mode])
|
| 176 |
|
| 177 |
demo.queue().launch()
|