File size: 4,154 Bytes
1c86ad8
 
 
3f12a86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1c86ad8
 
 
 
3f12a86
1c86ad8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3f12a86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1c86ad8
aa6883b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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()