File size: 7,168 Bytes
230feb9
eec14a9
230feb9
70dfd40
 
 
 
230feb9
 
 
816523e
 
230feb9
 
5e128e1
9c37fd7
4c0e317
 
 
 
 
 
70dfd40
230feb9
3366bb0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ac47b95
3366bb0
70dfd40
 
 
 
 
 
3366bb0
 
 
be2cce1
 
 
4978bf7
3366bb0
be2cce1
 
 
4978bf7
3366bb0
cd0b91f
4978bf7
7611fed
3366bb0
 
 
 
 
70dfd40
3366bb0
 
 
230feb9
817f443
230feb9
70dfd40
ac47b95
 
 
fba21b8
230feb9
60826d9
eec14a9
817f443
dcd0322
e095f1c
817f443
5b9fc64
a3478cf
dcd0322
6cf144f
 
f50b6a2
a2657fd
6cf144f
230feb9
f902b80
b036d2a
4e54cd8
063bf56
f8ce710
4e54cd8
063bf56
2100671
3366bb0
d097c3a
230feb9
 
 
 
 
c49d20b
230feb9
5a8dedb
230feb9
 
19e6c05
b5e28dd
 
 
 
 
 
 
 
510f936
162a61b
e8037e0
3366bb0
 
ac47b95
 
70dfd40
 
72aba1d
7611fed
70dfd40
817f443
be2cce1
817f443
 
3366bb0
72aba1d
c49d20b
89577da
230feb9
817f443
d71a252
d32064a
230feb9
dcf8851
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
161
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}"}


#Complete below sentence in fun way.
prompt4 = """Distracted from: hubble
by: james webb
Distracted from: homework
by: side project
Distracted from: goals
by: new goals
Distracted from: 
"""

prompt5 = """Distracted from: homework
by: side project
Distracted from: goals
by: new goals
Distracted from: working hard
by: hardly working
Distracted from: twitter
by: open in browser
Distracted from:
"""

"""Distracted from: homework
by: side project
Distracted from: goals
by: new goals
Distracted from: working hard
by: hardly working
Distracted from: twitter
by:  open in browser
Distracted from: code
by: blog post
Distracted from: code
by: blog post
Distracted from:"""

#prompt = """Distracted from: homework\nby: side project\nDistracted from: goals\nby: new goals\nDistracted from: working hard\nby: hardly working\nDistracted from: twitter\nby: open in browser\nDistracted 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)
  
  prompt_list = final_solution.split('\n')
  girlfriend = prompt_list[8].split(':')[1].strip()
  girlfriend_list = girlfriend.split()
  if len(girlfriend_list) >= 2:
    girlfriend = '\n'.join(girlfriend_list)
  print(f"girlfriend  is : {girlfriend }")
  new_girl = prompt_list[9].split(':')[1].strip()
  new_girl_list = new_girl.split()
  if len(new_girl_list) > 2:
    new_girl = '\n'.join(new_girl_list)  
  print(f"new_girl is : {new_girl}")
  prompt_list.pop(0)
  prompt_list.pop(0)
  prompt_list = prompt_list[:8]
  prompt_list.append('Distracted from:')
  print(f"prompt list is : {prompt_list}")
  new_prompt = '\n'.join(prompt_list)
  print(f"final_solution is : {new_prompt}")
  
  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, new_prompt

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

  print(f"*****Inside meme_generate - Prompt is :{prompt}")
  if len(prompt) == 0:
    prompt = """Distracted from: homework\nby: side project\nDistracted from: goals\nby: new goals\nDistracted from: working hard\nby: hardly working\nDistracted from: twitter\nby: open in browser\nDistracted from:"""
  
  json_ = {"inputs": prompt,
            "parameters":
            {
          #"top_p": 0.95, 
          "top_p": top_p, #0.90,
          #"top_k":0,
          "max_new_tokens": 250,
          "temperature": temp, #1.1,
          #"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}")
    
  meme_image, new_prompt = write_on_image(solution)  
  return meme_image, new_prompt #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", visible=False)
    in_image_display = gr.Image(value="./distracted00.jpg", visible=True)
    input_prompt = gr.Textbox(label="Write some prompt...", lines=5, visible=False)
                              #value = """Distracted from: homework\nby: side project\nDistracted from: goals\nby: new goals\nDistracted from: working hard\nby: hardly   
  #with gr.Row():
    #generated_txt = gr.Textbox(lines=7, visible = True)

  #with gr.Row():
    output_image = gr.Image() #type="filepath", shape=(256,256))
  with gr.Row():
    in_slider_temp = gr.Slider(minimum=0.0, maximum=1.4, value=1.1, step=0.1, label='Temperature')
    in_slider_top_p = gr.Slider(minimum=0.50, maximum=0.99, value=0.90, step=0.01, label='Top_p')
  
    #output_prompt = gr.Textbox(label="Text generated", lines=5)
    
  b1 = gr.Button("Generate")
  #b2 = gr.Button("Generate Image") 

  b1.click(meme_generate, inputs=[in_image, input_prompt, in_slider_temp, in_slider_top_p] , outputs=[output_image,input_prompt])  #output_prompt  
  #b2.click(poem_to_image, poem_txt, output_image)
  #examples=examples 

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