import streamlit as st from transformers import pipeline from huggingface_hub import login from PIL import Image import os login(token=os.getenv("HUGGINGFACE_TOKEN")) st.header("Character Captions (IN PROGRESS!)") st.write("Have a character caption any image you upload!") character = st.selectbox("Choose a character", ["rapper", "monkey", "shrek", "unintelligible"]) uploaded_img = st.file_uploader("Upload an image") if uploaded_img is not None: image = Image.open(uploaded_img) st.image(image) image_captioner = pipeline("image-to-text", model="Salesforce/blip-image-captioning-large") response = image_captioner(image) caption = response[0]['generated_text'] st.write("Caption:", caption) character_prompts = { "rapper": f"Describe this scene like you're a rapper: {caption}.", "monkey": f"Describe this scene like you're a monkey going bananas: {caption}.", "shrek": f"Describe this scene like you're Shrek: {caption}.", "unintelligible": f"Describe this scene in a way that makes no sense: {caption}." } prompt = character_prompts[character] st.write(prompt) personality = "rapper" prompt = character_prompts[personality] text_generator = pipeline("text-generation", model="meta-llama/Llama-2-7b-hf", framework="pt") prompt = character_prompts[character] st.write("Styled Prompt:", prompt) generated_text = text_generator(prompt, max_length=50, do_sample=True) styled_caption = generated_text[0]['generated_text'] st.write("Character-Styled Caption:", styled_caption)