|
import gradio as gr |
|
|
|
from happytransformer import HappyGeneration |
|
|
|
happy_gen = HappyGeneration("GPT2", "DarwinAnim8or/GPT-Greentext-1.5b") |
|
|
|
from happytransformer import GENSettings |
|
|
|
def generate(text, length=100, penalty=3, temperature=0.8): |
|
args_top_k = GENSettings(no_repeat_ngram_size=penalty, do_sample=True, top_k=80, temperature=temperature, max_length=length, early_stopping=False) |
|
|
|
inputText = "Write a greentext from 4chan.org. The story should be like a bullet-point list using > as the start of each line. It must be funny and have a twist near the end.\n" |
|
inputText += ">" + text + "\n>" |
|
|
|
print(inputText) |
|
|
|
result = happy_gen.generate_text(inputText, args=args_top_k) |
|
generated_text = result.text |
|
|
|
|
|
generated_text = generated_text.replace('\\n', '\n') |
|
|
|
|
|
generated_text = generated_text.replace('>', '\n>') |
|
generated_text = generated_text.replace('\\"', "\"") |
|
|
|
generated_text = ">" + text + "\n>" + generated_text |
|
|
|
return generated_text |
|
|
|
examples = [ |
|
["be me"], |
|
["be going to heaven"], |
|
|
|
|
|
|
|
["be a plague doctor"] |
|
] |
|
|
|
demo = gr.Interface( |
|
fn=generate, |
|
inputs=[ |
|
gr.inputs.Textbox(lines=5, label="Input Text"), |
|
gr.inputs.Slider(5, 200, label='Length', default=100, step=5), |
|
gr.inputs.Slider(1, 10, label='no repeat ngram size', default=2, step=1), |
|
gr.inputs.Slider(0.0, 1.0, label='Temperature - control randomness', default=0.6, step=0.1) |
|
], |
|
outputs=gr.outputs.Textbox(label="Generated Text"), |
|
examples=examples, |
|
title="GPT-Greentext Playground", |
|
description="Using the 1.5b size model. You may need to run it a few times in order to get something good!" |
|
) |
|
|
|
demo.launch() |