File size: 1,596 Bytes
b0f6ad7
63eb096
cb0665f
63eb096
cb0665f
b0f6ad7
63eb096
cb0665f
 
d5986ec
63eb096
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b7b26d6
63eb096
 
 
 
 
 
 
 
68763ab
 
b7b26d6
 
 
9180ad3
b7b26d6
 
 
 
 
 
 
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
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)