File size: 3,408 Bytes
ce4a26c d8a7986 4c39cdd ce4a26c 3c29761 56a5b46 30fab0b ce4a26c 8a209c5 30fab0b dc7da60 ce4a26c 30fab0b 8a209c5 30fab0b ce4a26c adf3a99 ce4a26c 92ce956 47cff6c 92ce956 8a209c5 ce4a26c 8a209c5 c9ef98c b7b4bb2 ce4a26c b683344 39476fe b683344 92bd5be ce4a26c df900dd ce4a26c |
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 |
import gradio as gr
import requests
import os
# GPT-J-6B API
API_URL = "https://api-inference.huggingface.co/models/EleutherAI/gpt-j-6B"
HF_TOKEN = os.environ["HF_TOKEN"]
headers = {"Authorization": f"Bearer {HF_TOKEN}"}
prompt = """
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: bird
poem using word: She sights a bird, she chuckles
She flattens, then she crawls
She runs without the look of feet
Her eyes increase to Balls.
word: """
examples = [["river"], ["night"], ["trees"],["table"],["laughs"]]
def poem_generate(word):
p = prompt + word.lower() + "\n" + "poem using word: "
print(f"*****Inside poem_generate - Prompt is :{p}")
json_ = {"inputs": p,
"parameters":
{
"top_p": 0.9,
"temperature": 1.1,
"max_new_tokens": 50,
"return_full_text": False
}}
response = requests.post(API_URL, headers=headers, json=json_)
output = response.json()
print(f"If there was an error? Reason is : {output}")
output_tmp = output[0]['generated_text']
print(f"GPTJ response without splits is: {output_tmp}")
#poem = output[0]['generated_text'].split("\n\n")[0] # +"."
if "\n\n" not in output_tmp:
if output_tmp.find('.') != -1:
idx = output_tmp.find('.')
poem = output_tmp[:idx+1]
else:
idx = output_tmp.rfind('\n')
poem = output_tmp[:idx]
else:
poem = output_tmp.split("\n\n")[0] # +"."
poem = poem.replace('?','')
print(f"Poem being returned is: {poem}")
return poem
def poem_to_image(poem):
print("*****Inside Poem_to_image")
poem = " ".join(poem.split('\n'))
poem = poem + " oil on canvas."
steps, width, height, images, diversity = '50','256','256','1',15
img = gr.Interface.load("spaces/multimodalart/latentdiffusion")(poem, steps, width, height, images, diversity)[0]
return img
demo = gr.Blocks()
with demo:
gr.Markdown("<h1><center>Generate Short Poem along with an Illustration</center></h1>")
gr.Markdown(
"""Enter a single word you would want GPTJ-6B to write Poetry π€ on. A Space by [Yuvraj Sharma](https://huggingface.co/ysharma)."""
)
gr.Markdown("""<div>Generate an illustration π¨ provided by Latent Diffusion model.</div><div>GPJ-6B is a 6 Billion parameter autoregressive language model. It generates the Poem based on how it has been 'prompt-engineered' π€ The complete text of generated poem then goes in as a prompt to the amazing Latent Diffusion Art space by <a href='https://huggingface.co/spaces/multimodalart/latentdiffusion' target='_blank'>Multimodalart</a>.</div>Please note that some of the Poems/Illustrations might not look at par, and well, this is what happens when you can't 'cherry-pick' and post π <div> Some of the example words that you can use are 'river', 'night', 'trees', 'table', 'laughs' or maybe on similar lines to get best results!"""
)
with gr.Row():
input_word = gr.Textbox(placeholder="Enter a word here to create a Poem on..")
poem_txt = gr.Textbox(lines=7)
output_image = gr.Image(type="filepath", shape=(256,256))
b1 = gr.Button("Generate Poem")
b2 = gr.Button("Generate Image")
b1.click(poem_generate, input_word, poem_txt)
b2.click(poem_to_image, poem_txt, output_image)
#examples=examples
demo.launch(enable_queue=True, debug=True) |