Spaces:
Running on Zero
Running on Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,9 +2,9 @@ import gradio as gr
|
|
| 2 |
import numpy as np
|
| 3 |
import random
|
| 4 |
import spaces # [uncomment to use ZeroGPU]
|
| 5 |
-
from diffusers import DiffusionPipeline
|
| 6 |
import torch
|
| 7 |
-
from tags import participant_tags, tribe_tags, skin_tone_tags, body_type_tags, tattoo_tags, piercing_tags, expression_tags, eye_tags, hair_style_tags, position_tags, fetish_tags, location_tags, camera_tags, atmosphere_tags
|
| 8 |
|
| 9 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 10 |
model_repo_id = "John6666/wai-ani-nsfw-ponyxl-v8-sdxl" # Replace with your desired model
|
|
@@ -22,13 +22,16 @@ MAX_IMAGE_SIZE = 1024
|
|
| 22 |
|
| 23 |
@spaces.GPU # [uncomment to use ZeroGPU]
|
| 24 |
def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps,
|
| 25 |
-
selected_participant_tags, selected_tribe_tags, selected_skin_tone_tags, selected_body_type_tags,
|
| 26 |
-
selected_tattoo_tags, selected_piercing_tags, selected_expression_tags, selected_eye_tags,
|
| 27 |
-
selected_hair_style_tags, selected_position_tags, selected_fetish_tags, selected_location_tags,
|
| 28 |
-
selected_camera_tags, selected_atmosphere_tags,
|
| 29 |
|
| 30 |
-
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
| 32 |
selected_tags = (
|
| 33 |
[participant_tags[tag] for tag in selected_participant_tags] +
|
| 34 |
[tribe_tags[tag] for tag in selected_tribe_tags] +
|
|
@@ -47,8 +50,6 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance
|
|
| 47 |
)
|
| 48 |
tags_text = ', '.join(selected_tags)
|
| 49 |
final_prompt = f'score_9, score_8_up, score_7_up, source_anime, {tags_text}'
|
| 50 |
-
else:
|
| 51 |
-
final_prompt = f'score_9, score_8_up, score_7_up, source_anime, {prompt}'
|
| 52 |
|
| 53 |
# Concatenate user-provided negative prompt with additional restrictions
|
| 54 |
additional_negatives = "worst quality, bad quality, jpeg artifacts, source_cartoon, 3d, (censor), monochrome, blurry, lowres, watermark"
|
|
@@ -103,7 +104,7 @@ with gr.Blocks(css=css) as demo:
|
|
| 103 |
|
| 104 |
# Tabbed interface to select either Prompt or Tags
|
| 105 |
with gr.Tabs() as tabs:
|
| 106 |
-
with gr.TabItem("Prompt Input"):
|
| 107 |
prompt = gr.Textbox(
|
| 108 |
label="Prompt",
|
| 109 |
show_label=False,
|
|
@@ -111,9 +112,8 @@ with gr.Blocks(css=css) as demo:
|
|
| 111 |
placeholder="Enter your prompt",
|
| 112 |
container=False,
|
| 113 |
)
|
| 114 |
-
use_tags = gr.State(False)
|
| 115 |
|
| 116 |
-
with gr.TabItem("Tag Selection"):
|
| 117 |
# Tag selection checkboxes for each tag group
|
| 118 |
selected_participant_tags = gr.CheckboxGroup(choices=list(participant_tags.keys()), label="Participant Tags")
|
| 119 |
selected_tribe_tags = gr.CheckboxGroup(choices=list(tribe_tags.keys()), label="Tribe Tags")
|
|
@@ -130,8 +130,6 @@ with gr.Blocks(css=css) as demo:
|
|
| 130 |
selected_camera_tags = gr.CheckboxGroup(choices=list(camera_tags.keys()), label="Camera Tags")
|
| 131 |
selected_atmosphere_tags = gr.CheckboxGroup(choices=list(atmosphere_tags.keys()), label="Atmosphere Tags")
|
| 132 |
|
| 133 |
-
use_tags = gr.State(True)
|
| 134 |
-
|
| 135 |
# Full-width "Run" button
|
| 136 |
run_button = gr.Button("Run", scale=0, elem_id="run-button")
|
| 137 |
|
|
@@ -194,11 +192,11 @@ with gr.Blocks(css=css) as demo:
|
|
| 194 |
|
| 195 |
run_button.click(
|
| 196 |
infer,
|
| 197 |
-
inputs=[prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps,
|
| 198 |
-
selected_participant_tags, selected_tribe_tags, selected_skin_tone_tags, selected_body_type_tags,
|
| 199 |
-
selected_tattoo_tags, selected_piercing_tags, selected_expression_tags, selected_eye_tags,
|
| 200 |
-
selected_hair_style_tags, selected_position_tags, selected_fetish_tags, selected_location_tags,
|
| 201 |
-
selected_camera_tags, selected_atmosphere_tags,
|
| 202 |
outputs=[result, seed, prompt_info]
|
| 203 |
)
|
| 204 |
|
|
|
|
| 2 |
import numpy as np
|
| 3 |
import random
|
| 4 |
import spaces # [uncomment to use ZeroGPU]
|
| 5 |
+
from diffusers import DiffusionPipeline
|
| 6 |
import torch
|
| 7 |
+
from tags import participant_tags, tribe_tags, skin_tone_tags, body_type_tags, tattoo_tags, piercing_tags, expression_tags, eye_tags, hair_style_tags, position_tags, fetish_tags, location_tags, camera_tags, atmosphere_tags
|
| 8 |
|
| 9 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 10 |
model_repo_id = "John6666/wai-ani-nsfw-ponyxl-v8-sdxl" # Replace with your desired model
|
|
|
|
| 22 |
|
| 23 |
@spaces.GPU # [uncomment to use ZeroGPU]
|
| 24 |
def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps,
|
| 25 |
+
selected_participant_tags, selected_tribe_tags, selected_skin_tone_tags, selected_body_type_tags,
|
| 26 |
+
selected_tattoo_tags, selected_piercing_tags, selected_expression_tags, selected_eye_tags,
|
| 27 |
+
selected_hair_style_tags, selected_position_tags, selected_fetish_tags, selected_location_tags,
|
| 28 |
+
selected_camera_tags, selected_atmosphere_tags, active_tab, progress=gr.Progress(track_tqdm=True)):
|
| 29 |
|
| 30 |
+
if active_tab == "Prompt Input":
|
| 31 |
+
# Use the user-provided prompt
|
| 32 |
+
final_prompt = f'score_9, score_8_up, score_7_up, source_anime, {prompt}'
|
| 33 |
+
else:
|
| 34 |
+
# Use tags from the "Tag Selection" tab
|
| 35 |
selected_tags = (
|
| 36 |
[participant_tags[tag] for tag in selected_participant_tags] +
|
| 37 |
[tribe_tags[tag] for tag in selected_tribe_tags] +
|
|
|
|
| 50 |
)
|
| 51 |
tags_text = ', '.join(selected_tags)
|
| 52 |
final_prompt = f'score_9, score_8_up, score_7_up, source_anime, {tags_text}'
|
|
|
|
|
|
|
| 53 |
|
| 54 |
# Concatenate user-provided negative prompt with additional restrictions
|
| 55 |
additional_negatives = "worst quality, bad quality, jpeg artifacts, source_cartoon, 3d, (censor), monochrome, blurry, lowres, watermark"
|
|
|
|
| 104 |
|
| 105 |
# Tabbed interface to select either Prompt or Tags
|
| 106 |
with gr.Tabs() as tabs:
|
| 107 |
+
with gr.TabItem("Prompt Input") as prompt_tab:
|
| 108 |
prompt = gr.Textbox(
|
| 109 |
label="Prompt",
|
| 110 |
show_label=False,
|
|
|
|
| 112 |
placeholder="Enter your prompt",
|
| 113 |
container=False,
|
| 114 |
)
|
|
|
|
| 115 |
|
| 116 |
+
with gr.TabItem("Tag Selection") as tag_tab:
|
| 117 |
# Tag selection checkboxes for each tag group
|
| 118 |
selected_participant_tags = gr.CheckboxGroup(choices=list(participant_tags.keys()), label="Participant Tags")
|
| 119 |
selected_tribe_tags = gr.CheckboxGroup(choices=list(tribe_tags.keys()), label="Tribe Tags")
|
|
|
|
| 130 |
selected_camera_tags = gr.CheckboxGroup(choices=list(camera_tags.keys()), label="Camera Tags")
|
| 131 |
selected_atmosphere_tags = gr.CheckboxGroup(choices=list(atmosphere_tags.keys()), label="Atmosphere Tags")
|
| 132 |
|
|
|
|
|
|
|
| 133 |
# Full-width "Run" button
|
| 134 |
run_button = gr.Button("Run", scale=0, elem_id="run-button")
|
| 135 |
|
|
|
|
| 192 |
|
| 193 |
run_button.click(
|
| 194 |
infer,
|
| 195 |
+
inputs=[prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps,
|
| 196 |
+
selected_participant_tags, selected_tribe_tags, selected_skin_tone_tags, selected_body_type_tags,
|
| 197 |
+
selected_tattoo_tags, selected_piercing_tags, selected_expression_tags, selected_eye_tags,
|
| 198 |
+
selected_hair_style_tags, selected_position_tags, selected_fetish_tags, selected_location_tags,
|
| 199 |
+
selected_camera_tags, selected_atmosphere_tags, tabs],
|
| 200 |
outputs=[result, seed, prompt_info]
|
| 201 |
)
|
| 202 |
|