Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from share_btn import community_icon_html, loading_icon_html, share_js | |
| import random | |
| import re | |
| import torch | |
| from transformers import AutoModelWithLMHead, AutoTokenizer, pipeline, set_seed | |
| import gradio as grad | |
| from diffusers import StableDiffusionPipeline | |
| tokenizer = AutoTokenizer.from_pretrained("shahp7575/gpt2-horoscopes") | |
| model = AutoModelWithLMHead.from_pretrained("shahp7575/gpt2-horoscopes") | |
| def fn(sign, cat): | |
| sign = "scorpio" | |
| prompt = f"<|category|> {cat} <|horoscope|> {sign}" | |
| prompt_encoded = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0) | |
| sample_outputs = model.generate( | |
| prompt_encoded, | |
| do_sample=True, | |
| top_k=40, | |
| max_length=300, | |
| top_p=0.95, | |
| temperature=0.95, | |
| num_beams=4, | |
| num_return_sequences=4, | |
| ) | |
| final_out = tokenizer.decode(sample_outputs[0], skip_special_tokens=True) | |
| starting_text = " ".join(final_out.split(" ")[4:]) | |
| pipe = pipeline("text-generation", model="Gustavosta/MagicPrompt-Stable-Diffusion", tokenizer="gpt2") | |
| seed = random.randint(100, 1000000) | |
| set_seed(seed) | |
| response = pipe(starting_text, max_length=(len(starting_text) + random.randint(60, 90)), num_return_sequences=1) | |
| pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4") | |
| image = pipe(response[0]["generated_text"], num_inference_steps=10).images[0] | |
| return [image, starting_text] | |
| block = gr.Blocks(css="./css.css") | |
| with block: | |
| with gr.Group(): | |
| with gr.Box(): | |
| with gr.Row(elem_id="prompt-container").style(mobile_collapse=False, equal_height=True): | |
| text = gr.Dropdown( | |
| label="Star Sign", | |
| choices=["aries", "taurus","gemini", "cancer", "leo", "virgo", "libra", "scorpio", "sagittarius", "capricorn", "aquarius", "Pisces"], | |
| show_label=True, | |
| max_lines=1, | |
| placeholder="Enter your prompt", | |
| elem_id="prompt-text-input", | |
| ).style( | |
| border=(True, False, True, True), | |
| rounded=(True, False, False, True), | |
| container=False, | |
| ) | |
| text2 = gr.Dropdown( | |
| choices=["love", "career", "wellness"], | |
| label="Category", | |
| show_label=True, | |
| max_lines=1, | |
| placeholder="Enter your prompt", | |
| elem_id="prompt-text-input", | |
| ).style( | |
| border=(True, True, True, True), | |
| rounded=(True, False, False, True), | |
| container=False, | |
| ) | |
| btn = gr.Button("Generate image").style( | |
| margin=False, | |
| rounded=(False, True, True, False), | |
| full_width=False, | |
| ) | |
| gallery = gr.Image( | |
| interactive=False, | |
| label="Generated images", show_label=False, elem_id="gallery" | |
| ).style(grid=[2], height="auto") | |
| text = gr.Textbox("Text") | |
| with gr.Group(elem_id="container-advanced-btns"): | |
| with gr.Group(elem_id="share-btn-container"): | |
| community_icon = gr.HTML(community_icon_html) | |
| loading_icon = gr.HTML(loading_icon_html) | |
| share_button = gr.Button("Share to community", elem_id="share-btn") | |
| btn.click(fn=fn, inputs=[text, text2], outputs=[gallery, text]) | |
| share_button.click( | |
| None, | |
| [], | |
| [], | |
| _js=share_js, | |
| ) | |
| block.queue(concurrency_count=40, max_size=20).launch(max_threads=150) | |