File size: 3,029 Bytes
d51fb42
 
 
 
242052f
d51fb42
 
022deaa
d51fb42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import newspaper
from newspaper import*
import gradio as gr
import openai
import pyshine as ps
openai.api_key = "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"
import validators
import ast
def predict(image, model, url_or_text, prompt, temperature, max_tokens, text_in_image, x_cor, y_cor,
            font_size, backgound_RGB, text_RGB, thickness, opacity, line_space):
    if text_in_image == "use_url":
        text = url_or_text
        if validators.url(url_or_text):
            article = Article(url="%s" % (url_or_text), language='en')
            article.download()
            article.parse()
            text = article.text
        response = openai.Completion.create(
            model=model,
            prompt = text + "\n"+ prompt,
            temperature=int(temperature),
            max_tokens=int(max_tokens),
            top_p=1,
            frequency_penalty=0.0,
            presence_penalty=1
        )
        text_in_image = response.choices[0].text
    y_gap = 0
    for i in text_in_image.split("\n"):
        image = ps.putBText(image, i, text_offset_x = int(x_cor),
                            text_offset_y = int(y_cor)+y_gap, vspace = 5,
                            hspace = 2, font_scale = int(font_size),
                            background_RGB = ast.literal_eval(backgound_RGB),
                            text_RGB = ast.literal_eval(text_RGB), thickness = int(thickness),
                            alpha = float(opacity))
        y_gap+= int(line_space)
    return image, response.choices[0].text 
intr = gr.Interface(predict,
                    ["image",
                     gr.Dropdown(["text-curie-001", "text-davinci-003"], value = "text-curie-001", label = "GPT3- Model"),
                     gr.Textbox(value="https://www.datasciencecentral.com/will-chatgpt-make-fraud-easier/", label = "Provide blog url or directly input the text for better results"),
                     gr.Textbox(value="Title for instagram post", label= "Prompt for what you want the model to do"),
                     gr.Number(value=0.7, label = "How random you want the results to be"),
                     gr.Number(value=100, label= "Max number of words in output"),
                     gr.Textbox(value="use_url"),
                     gr.Number(value=20, label = "X co-ordinate"),
                     gr.Number(value=20, label = "Y co-ordiante"),
                     gr.Number(value=1.0, label = "Font size"),
                     gr.Textbox(value="(228, 225, 222, 211)", label = "Box Color (RGB)"),
                     gr.Textbox(value= "(0, 255,1)", label = "Text Color (RGB)"),
                     gr.Number(value=1, label = "text Thickness"),
                     gr.Number(value=0.8, label = "Opacity of Box"),
                     gr.Number(value=50, label = "Line sapcing")], 
                    ["image","text"],
                    title = "Auto Insta Post",
                    description = "Image and url to Instagram Post"
                    )
intr.launch(inline = False)