daniellefranca96's picture
Update app.py
aa6883b
import os
import gradio as gr
from style_scribble import StyleScribble
seed_text = "To serve the intricate and varied demands of image editing, precise and flexible manipulation " \
"of image content is indispensable. Recently, DragGAN has achieved impressive editing results" \
" through point-based manipulation. However, we have observed that DragGAN struggles with miss " \
"tracking, where DragGAN encounters difficulty in effectively tracking the desired handle points, " \
"and ambiguous tracking, where the tracked points are situated within other regions that bear " \
"resemblance to the handle points. To deal with the above issues, we propose FreeDrag, which adopts " \
"a feature-oriented approach to free the burden on point tracking within the point-oriented methodology" \
" of DragGAN. The FreeDrag incorporates adaptive template features, line search, and fuzzy localization " \
"techniques to perform stable and efficient point-based image editing. Extensive experiments demonstrate" \
" that our method is superior to the DragGAN and enables stable point-based editing in challenging " \
"scenarios with similar structures, fine details, or under multi-point targets."
prompt_example = "Write a story about a girl participating in a dancing competition"
def process(model, key, repo, example, prompt):
set_key(key)
generate_text = StyleScribble(example=example, prompt=prompt)
if model == "HugginFaceHub":
model = repo
generate_text.set_imp_llm(model)
return generate_text.run()
def set_key(key):
os.environ['OPENAI_API_KEY'] = key
os.environ['HUGGINGFACEHUB_API_TOKEN'] = key
os.environ['ANTHROPIC_API_KEY'] = key
description = "This is a demo of StyleScribble the AI powered app that generates text in your writing style, " \
"you can learn more and sign-up for full launch here: https://stylescribble.fly.dev"
with gr.Blocks(css=".no-border {border: none !important;} center: {justify-content: center;}") as demo:
with gr.Box(elem_classes="no-border"):
with gr.Row():
with gr.Box(elem_classes="no-border"):
gr.Markdown(
f"""
# StyleScribble Demo
{description}
""", elem_classes="text")
with gr.Row():
with gr.Box(elem_classes="no-border"):
example = gr.Button(value="Example")
with gr.Row():
with gr.Box(elem_classes="no-border"):
model_c = gr.Dropdown(choices=["GPT3", "GPT4", "Claude", "HugginFaceHub"], label="Model",
value="GPT3")
key_c = gr.Textbox(label="API Key")
repo_c = gr.Textbox(label="HF Repo", visible=False)
example_c = gr.Textbox(label="Paste here a style of text you want to imitate", lines=15)
prompt_c = gr.Textbox(label="Write here the desription of the text you want to generate", lines=5)
with gr.Box(elem_classes="no-border"):
output = gr.Textbox(label="Generated Text:", lines=34, show_copy_button=True)
with gr.Row():
with gr.Box(elem_classes="no-border center"):
with gr.Row():
with gr.Column():
with gr.Row():
gr.ClearButton([key_c, repo_c, example_c, prompt_c, output])
run = gr.Button(variant="primary")
with gr.Column():
pass
def show_example():
return [gr.update(value=seed_text), gr.update(value=prompt_example)]
def show_repo_id(model):
return gr.update(visible=model == "HugginFaceHub")
run.click(fn=process, inputs=[model_c, key_c, repo_c, example_c, prompt_c], outputs=output)
example.click(show_example, [], [example_c, prompt_c])
model_c.select(show_repo_id, inputs=[model_c], outputs=[repo_c])
demo.launch()