Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import pipeline | |
from text_utils import wrap_text, compute_text_position | |
from gan_utils import load_img_generator, generate_img | |
from PIL import ImageFont, ImageDraw | |
import torch | |
# device = 'cuda' if torch.cuda.is_available() else 'cpu' | |
device = "cpu" | |
text_generator = pipeline('text-generation', model='huggingtweets/bestmusiclyric') | |
def generate_captioned_img(lyrics_prompt, gan_model): | |
gan_image = generate_img(device, gan_model) | |
generated_text = text_generator(lyrics_prompt)[0]["generated_text"] | |
wrapped_text = wrap_text(generated_text) | |
text_pos = compute_text_position(wrapped_text) | |
# Source: https://stackoverflow.com/a/16377244 | |
draw = ImageDraw.Draw(gan_image) | |
font = ImageFont.truetype("DejaVuSans.ttf", 64) | |
draw.text((10, text_pos), text=wrapped_text, fill_color=(255, 255, 255), font=font, stroke_fill=(0, 0, 0), | |
stroke_width=5) | |
return gan_image | |
iface = gr.Interface(fn=generate_captioned_img, inputs=[gr.Textbox(value="Running with the wolves", label="Lyrics prompt", lines=1), | |
gr.Radio(value="aurora", | |
choices=["painting", "fauvism-still-life", "aurora", | |
"universe", "moongate"], | |
label="FastGAN model") | |
], | |
outputs="image", | |
allow_flagging="never", | |
title="Illustrated lyrics generator", | |
description="Combines song lyrics generation via the [Best Music Lyric Bot]" | |
"(https://huggingface.co/huggingtweets/bestmusiclyric) with an artwork randomly " | |
"generated by a [FastGAN model](https://huggingface.co/spaces/huggan/FastGan).\n\n" | |
"Text and lyrics are generated independently. " | |
"If you can implement this idea with images conditioned on the lyrics," | |
" I'd be very interested in seeing that!π€\n\n" | |
"At the bottom of the page, you can click some example inputs to get you started.", | |
examples=[["Hey now", "fauvism-still-life"], ["It's gonna take a lot", "universe"], | |
["Running with the wolves", "aurora"], ["His palms are sweaty", "painting"], | |
["I just met you", "moongate"]] | |
) | |
iface.launch() | |
#examples=[["Hey now", "painting"], ["It's gonna take a lot", "universe"], ["So close", "aurora"], ["I just met you", "moongate"], | |
# ["His palms are sweaty", "aurora"]]) |