aifeifei798's picture
Update feifeiui/feifeiui.py
3a679b1 verified
raw
history blame
9.88 kB
import gradio as gr
import numpy as np
import config
from feifeilib.feifeichat import feifeichat
from feifeilib.feifeitexttoimg import feifeitexttoimg
from feifeilib.feifeiflorence import feifeiflorence
from feifeilib.feifeifluxapi import feifeifluxapi
MAX_SEED = np.iinfo(np.int32).max
MAX_IMAGE_SIZE = 2048
css = """
#col-container {
width: auto;
height: 898px;
}
"""
def create_ui():
with gr.Blocks(css=css) as FeiFei:
with gr.Row():
with gr.Column(scale=3):
with gr.Tab("FeiFei"):
with gr.Row():
with gr.Column(scale=1):
prompt = gr.Text(
label="Prompt",
show_label=False,
placeholder="Enter your prompt",
value="A detailed real photo, A beautiful jpop 18 yo Whispery cutesy little girl,Slim figure with Gigantic breasts, look at viewer,",
max_lines=12,
container=False,
)
feifei_button = gr.Button("FeiFei")
quality_select = gr.Checkbox(label="high quality")
sharpened_select = gr.Checkbox(label="Sharpened")
FooocusExpansion_select = gr.Checkbox(
label="FooocusExpansion")
styles_name = [
style["name"] for style in config.style_list
]
styles_Radio = gr.Dropdown(styles_name,
label="Styles",
multiselect=True)
seed = gr.Slider(
label="Seed",
minimum=0,
maximum=MAX_SEED,
step=1,
value=0,
)
randomize_seed = gr.Checkbox(label="Randomize seed",
value=True)
width = gr.Slider(
label="Width",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=896,
)
height = gr.Slider(
label="Height",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=1152,
)
num_inference_steps = gr.Slider(
label="Number of inference steps",
minimum=1,
maximum=50,
step=1,
value=8,
)
guidancescale = gr.Slider(
label="Guidance scale",
minimum=0,
maximum=10,
step=0.1,
value=3.5,
)
num_strength = gr.Slider(
label="strength",
minimum=0,
maximum=2,
step=0.001,
value=0.035,
)
with gr.Column(scale=2):
result = gr.Image(label="Result",
show_label=False,
interactive=False,
height=840)
with gr.Tab("DarkIdol"):
with gr.Row():
flux_prompt = gr.Text(
label="Prompt",
show_label=False,
placeholder="Enter your prompt",
max_lines=12,
container=False,
)
flux_button = gr.Button("Flux")
flux_result = gr.Image(label="Result",
show_label=False,
interactive=False,
height=520)
with gr.Accordion("Advanced Settings", open=False):
flux_seed = gr.Slider(
label="Seed",
minimum=0,
maximum=MAX_SEED,
step=1,
value=0,
)
flux_randomize_seed = gr.Checkbox(label="Randomize seed",
value=True)
with gr.Row():
flux_width = gr.Slider(
label="Width",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=896,
)
flux_height = gr.Slider(
label="Height",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=1152,
)
with gr.Row():
flux_num_inference_steps = gr.Slider(
label="Number of inference steps",
minimum=1,
maximum=50,
step=1,
value=4,
)
flux_guidancescale = gr.Slider(
label="Guidance scale",
minimum=0,
maximum=10,
step=0.1,
value=3.5,
)
flux_num_strength = gr.Slider(
label="strength",
minimum=0,
maximum=2,
step=0.001,
value=0.035,
)
with gr.Tab("GenPrompt"):
input_img = gr.Image(label="Input Picture",
show_label=False,
height=320,
type="filepath")
florence_btn = gr.Button(value="GenPrompt")
output_text = gr.Textbox(label="Output Text",
show_label=False,
container=False)
with gr.Column(scale=1, elem_id="col-container"):
gr.ChatInterface(
feifeichat,
type="messages",
multimodal=True,
additional_inputs=[
gr.Checkbox(label="Feifei", value=True),
gr.Dropdown(
["meta-llama/Llama-3.3-70B-Instruct",
"CohereForAI/c4ai-command-r-plus-08-2024",
"Qwen/Qwen2.5-72B-Instruct",
"nvidia/Llama-3.1-Nemotron-70B-Instruct-HF",
"NousResearch/Hermes-3-Llama-3.1-8B",
"mistralai/Mistral-Nemo-Instruct-2411",
"microsoft/Phi-3.5-mini-instruct"],
value="mistralai/Mistral-Nemo-Instruct-2411",
show_label=False,
container=False),
gr.Radio(
["pixtral", "Vsiion"],
value="pixtral",
show_label=False,
container=False)
],
)
feifei_button.click(
fn=feifeitexttoimg, # Function to run for this button
inputs=[
prompt,
quality_select,
sharpened_select,
styles_Radio,
FooocusExpansion_select,
seed,
randomize_seed,
width,
height,
num_inference_steps,
guidancescale,
num_strength,
],
outputs=[result],
)
flux_button.click(
fn=feifeifluxapi, # Function to run for this button
inputs=[
flux_prompt,
flux_height,
flux_width,
flux_guidancescale
],
outputs=[flux_result],
)
florence_btn.click(
fn=feifeiflorence, # Function to run when the button is clicked
inputs=[input_img], # Input components for the function
outputs=[output_text], # Output component for the function
)
return FeiFei