aifeifei798's picture
Upload 5 files
31ef714 verified
raw
history blame
9.99 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: 750px;
}
"""
def create_ui():
with gr.Blocks(css=css) as FeiFei:
with gr.Row():
with gr.Column(scale=1):
with gr.Tab("FeiFei"):
prompt = gr.Text(
label="Prompt",
show_label=False,
placeholder="Enter your prompt",
max_lines=12,
container=False,
)
feifei_button = gr.Button("FeiFei")
result = gr.Image(label="Result",
show_label=False,
interactive=False)
with gr.Accordion("Advanced Settings", open=False):
seed = gr.Slider(
label="Seed",
minimum=0,
maximum=MAX_SEED,
step=1,
value=0,
)
randomize_seed = gr.Checkbox(label="Randomize seed",
value=True)
with gr.Row():
width = gr.Slider(
label="Width",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=1088,
)
height = gr.Slider(
label="Height",
minimum=512,
maximum=MAX_IMAGE_SIZE,
step=64,
value=1920,
)
with gr.Row():
num_inference_steps = gr.Slider(
label="Number of inference steps",
minimum=1,
maximum=50,
step=1,
value=4,
)
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.Tab("Styles"):
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)
with gr.Tab("Florence-2"):
input_img = gr.Image(label="Input Picture",
show_label=False)
florence_btn = gr.Button(value="Florence")
output_text = gr.Textbox(label="Output Text",
max_lines=12,
show_label=False,
container=False)
output_size = gr.Textbox(label="Output size",
max_lines=2,
show_label=False,
container=False)
output_img = gr.Image(label="Input Picture",
interactive=False,
show_label=False)
with gr.Tab("Flux"):
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)
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.Column(scale=3, elem_id="col-container"):
gr.ChatInterface(
feifeichat,
type="messages",
multimodal=True,
additional_inputs=[
gr.Checkbox(label="Feifei"),
gr.Dropdown(
["meta-llama/Meta-Llama-3.1-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_seed,
flux_prompt,
quality_select,
sharpened_select,
styles_Radio,
FooocusExpansion_select,
flux_height,
flux_width,
flux_guidancescale,
num_strength
],
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_size,
output_img], # Output component for the function
)
return FeiFei