Spaces:
Runtime error
Runtime error
import streamlit as st | |
import torch | |
import torchvision.transforms as T | |
from PIL import Image | |
# Assuming the necessary packages (featup, clip, etc.) are installed and accessible | |
from featup.util import norm, unnorm | |
from featup.plotting import plot_feats | |
# Setup - ensure the repository content is accessible in the environment | |
# Streamlit UI | |
st.title("Feature Upsampling Demo") | |
# File uploader | |
uploaded_file = st.file_uploader("Choose an image...", type=["png", "jpg", "jpeg"]) | |
if uploaded_file is not None: | |
image = Image.open(uploaded_file).convert("RGB") | |
# Image preprocessing | |
input_size = 224 | |
transform = T.Compose([ | |
T.Resize(input_size), | |
T.CenterCrop((input_size, input_size)), | |
T.ToTensor(), | |
norm | |
]) | |
image_tensor = transform(image).unsqueeze(0) # Assuming CUDA is available, .cuda() | |
# Model selection | |
model_option = st.selectbox( | |
'Choose a model for feature upsampling', | |
('dino16', 'dinov2', 'clip', 'resnet50') | |
) | |
if st.button('Upsample Features'): | |
# Load the selected model | |
upsampler = torch.hub.load("mhamilton723/FeatUp", model_option).cuda() | |
hr_feats = upsampler(image_tensor) | |
lr_feats = upsampler.model(image_tensor) | |
# Plotting - adjust the plot_feats function or find an alternative to display images in Streamlit | |
# This step will likely need customization to display within Streamlit's interface | |
plot_feats(unnorm(image_tensor)[0], lr_feats[0], hr_feats[0]) | |