File size: 7,632 Bytes
230feb9
 
 
70dfd40
 
 
 
230feb9
 
 
816523e
 
230feb9
 
578f72e
230feb9
 
 
 
 
 
 
 
 
 
 
ed301a5
9bbeeb3
 
 
08e91ac
578f72e
fba21b8
ed301a5
 
5e128e1
49048f0
02d89d6
 
e0d0478
70dfd40
230feb9
70dfd40
 
 
 
 
 
 
 
 
 
230feb9
70dfd40
230feb9
70dfd40
1484fcc
 
4c52314
 
162a61b
fba21b8
230feb9
60826d9
5b304ce
e13f5d2
 
e095f1c
e13f5d2
71e40d7
a3478cf
5b304ce
6cf144f
 
f50b6a2
b26644f
6cf144f
230feb9
f902b80
b036d2a
4e54cd8
063bf56
f8ce710
4e54cd8
063bf56
e8037e0
 
 
 
c5e7afd
e8037e0
 
 
4d09f3b
712d883
e9bead6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70dfd40
 
 
230feb9
 
 
 
 
c49d20b
230feb9
5a8dedb
230feb9
 
19e6c05
b5e28dd
 
 
 
 
 
 
 
510f936
162a61b
e8037e0
70dfd40
 
41d03bf
c85a2a5
 
fba21b8
70dfd40
 
 
230feb9
c49d20b
89577da
230feb9
6821470
d71a252
d32064a
230feb9
d6e3d69
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
import gradio as gr
import requests
import os 
import PIL
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

##Bloom
API_URL = "https://api-inference.huggingface.co/models/bigscience/bloom"
HF_TOKEN = os.environ["HF_TOKEN"]
headers = {"Authorization": f"Bearer {HF_TOKEN}"}


prompt1 = """
word: risk
poem using word: And then the day came,
when the risk
to remain tight
in a bud
was more painful
than the risk
it took
to blossom.
word: """

prompt2 = """
Q: Joy has 5 balls. He buys 2 more cans of balls. Each can has 3 balls. How many balls he has now?
A: Joy had 5 balls. 2 cans of 3 balls each is 6 balls. 5 + 6 = 11. Answer is 11.
Q: Jane has 16 balls. Half balls are golf balls, and half golf balls are red. How many red golf balls are there?
A: """

prompt3 = """Q: A juggler can juggle 16 balls. Half of the balls are golf balls, and half of the golf balls are blue. How many blue golf balls are there?
A: Let’s think step by step.
"""
#Complete below sentence in fun way.
prompt = """Distracted from hubble by james webb.
Distracted from homework by side project.
Distracted from goals by new goals.
Distracted from
"""

def write_on_image(final_solution):
  print("************ Inside write_on_image ***********")
  image_path0 = "./distracted0.jpg"
  image0 = Image.open(image_path0)
  I1 = ImageDraw.Draw(image0)
  myfont = ImageFont.truetype('./font1.ttf', 30)
  I1.text((613, 89), "girlfriend",font=myfont, fill =(255, 255, 255))
  I1.text((371, 223), "ME", font=myfont, fill =(255, 255, 255))
  I1.text((142, 336), "new girl",font=myfont, fill =(255, 255, 255))
  return image0

def meme_generate(img): #prompt, generated_txt): #, input_prompt_sql ): #, input_prompt_dalle2):

  print(f"*****Inside meme_generate - Prompt is :{prompt}")
  #if input_prompt_sql != '':
  #  prompt = input_prompt_sql #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: " +input_prompt_sql + "\nPostgreSQL query: "
  #elif input_prompt_dalle2 !='':
  #  prompt = "Dalle Prompt: " + input_prompt_dalle2 + "\nNew Dalle Prompt: "
    
  json_ = {"inputs": prompt,
            "parameters":
            {
          #"top_p": 0.95,
          #"top_p": 0.90,
          "top_k":50,
          "max_new_tokens": 250,
          #"temperature": 0.5,
          "num_return_sequences": 3,
          "return_full_text": True,
          "do_sample": True,
          }, 
          "options": 
          {"use_cache": True,
          "wait_for_model": True,
          },}
  response = requests.post(API_URL, headers=headers, json=json_)
  print(f"Response  is : {response}")
  output = response.json()
  print(f"output is : {output}") 
  output_tmp = output[0]['generated_text']
  print(f"output_tmp is: {output_tmp}")
  solution = output_tmp.split("\nQ:")[0]   
  print(f"Final response after splits is: {solution}")
  if '\nOutput:' in solution:
    final_solution = solution.split("\nOutput:")[0] 
    print(f"Response after removing output is: {final_solution}")
  elif '\n\n' in solution:
    final_solution = solution.split("\n\n")[0] 
    print(f"Response after removing new line entries is: {final_solution}")
  else:
    final_solution = solution
  
  
  #if len(generated_txt) == 0 :
  #  display_output = final_solution
  #else:
  #  display_output = generated_txt[:-len(prompt)] + final_solution
  #new_prompt = final_solution[len(prompt):]
  #print(f"new prompt for next cycle is : {new_prompt}")
  #print(f"display_output for printing on screen is : {display_output}")
  #if len(new_prompt) == 0:
  #  temp_text = display_output[::-1]
  #  print(f"What is the last character of sentence? : {temp_text[0]}")
  #  if temp_text[1] == '.':
  #    first_period_loc = temp_text[2:].find('.') + 1
  #    print(f"Location of last Period is: {first_period_loc}")
  #    new_prompt = display_output[-first_period_loc:-1]
  #    print(f"Not sending blank as prompt so new prompt for next cycle is : {new_prompt}")
  #  else:
  #    print("HERE")
  #    first_period_loc = temp_text.find('.')
  #    print(f"Location of last Period is : {first_period_loc}")
  #    new_prompt = display_output[-first_period_loc:-1]
  #    print(f"Not sending blank as prompt so new prompt for next cycle is : {new_prompt}")
  #  display_output = display_output[:-1]
  
  meme_image = write_on_image(final_solution)  
  return meme_image #final_solution #display_output, new_prompt  #generated_txt+prompt


demo = gr.Blocks()

with demo:
  gr.Markdown("<h1><center>Testing</center></h1>")
  gr.Markdown(
        """Work In Progress"""
        )
  with gr.Row():
    #example_prompt = gr.Radio( ["Q: A juggler can juggle 16 balls. Half of the balls are golf balls, and half of the golf balls are blue. How many blue golf balls are there?\nA: Let’s think step by step.\n"], label= "Choose a sample Prompt")
    #example_prompt = gr.Radio( [
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: How many users signed up in the past month?\nPostgreSQL query: ", 
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL\nInput: Create a query that displays empfname, emplname, deptid, deptname, location from employee table. Results should be in the ascending order based on the empfname and location.\nPostgreSQL query: ", 
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: What is the total salary paid to all the employees?\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: List names of all the employees whose name end with 'r'.\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use tables called 'employees'.\nInput: What are the number of employees in each department?\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use table called 'employees'.\nInput: Select names of all theemployees who have third character in their name as 't'.\nPostgreSQL query: ",
    #"Instruction: Given an input question, respond with syntactically correct PostgreSQL. Only use table called 'employees'.\nInput: Select names of all the employees who are working under 'Peter'\nPostgreSQL query: ",  ], label= "Choose a sample Prompt")
    #"Dalle Prompt: Cyberwave vaporpunk art of a kneeling figure, looking up at a glowing neon book icon, smoke and mist, pink and blue lighting, cybernetic sci-fi render\nNew Dalle Prompt: " ], label= "Choose a sample Prompt")
    
  #with gr.Row():
    in_image = gr.Image(value="./distracted0.jpg")
    #input_prompt = gr.Textbox(label="Write some text to get started...", lines=3)  #input_prompt_sql
    #input_prompt_dalle2 = gr.Textbox(label="Or Write sample Dalle2 prompts to get more Prompt ideas...")
    #input_prompt2 = gr.Textbox(label="Write some text to get started...", lines=3, visible=False)  #input_prompt_sql
    
    #input_word = gr.Textbox(placeholder="Enter a word here to generate text ...")
  #with gr.Row():
    #generated_txt = gr.Textbox(lines=7, visible = True)
    output_image = gr.Image() #type="filepath", shape=(256,256))
  
  b1 = gr.Button("Generate")
  #b2 = gr.Button("Generate Image") 

  b1.click(meme_generate, inputs=in_image, outputs=output_image) #input_word #input_prompt_dalle2 #input_prompt_sql #example_prompt
  #b2.click(poem_to_image, poem_txt, output_image)
  #examples=examples 

demo.launch(enable_queue=True, debug=True)