cursor_slides_internvl2 / upload_simple_app.py
mknolan's picture
Upload InternVL2 implementation
02532a9 verified
raw
history blame
3.45 kB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script to upload a simple BLIP model to test GPU functionality on Hugging Face Spaces
"""
import os
import sys
from huggingface_hub import HfApi, create_repo, upload_file
# Default repository name
DEFAULT_REPO = "mknolan/simple-gpu-test"
# Token should be provided at runtime
DEFAULT_TOKEN = ""
def main():
"""Main function to upload files to Hugging Face Spaces"""
# Get Hugging Face token
token = DEFAULT_TOKEN if DEFAULT_TOKEN else input("Enter your Hugging Face token (with WRITE access): ")
# Get repository name
repo_name = input("Enter repository name (default: {}): ".format(DEFAULT_REPO)) or DEFAULT_REPO
print("Uploading to Space: {}".format(repo_name))
# Initialize Hugging Face API
api = HfApi(token=token)
try:
# Try to get the repository, create if it doesn't exist
try:
repo = api.repo_info(repo_id=repo_name, repo_type="space")
print("Repo {} ready".format(repo_name))
except Exception:
print("Creating new Space: {}".format(repo_name))
create_repo(
repo_id=repo_name,
token=token,
repo_type="space",
space_sdk="docker",
private=False
)
print("Uploading files to Hugging Face Space...")
# Upload Dockerfile
api.upload_file(
path_or_fileobj="Dockerfile.simple",
path_in_repo="Dockerfile",
repo_id=repo_name,
repo_type="space",
token=token,
commit_message="Add Docker configuration for simple GPU test"
)
print("Uploaded Dockerfile")
# Upload the Python script
api.upload_file(
path_or_fileobj="simple_gpu_app.py",
path_in_repo="app.py",
repo_id=repo_name,
repo_type="space",
token=token,
commit_message="Add simple GPU test application"
)
print("Uploaded simple_gpu_app.py as app.py")
# Create a README.md file
readme_content = """# Simple GPU Test with BLIP
This Space provides a simple test of GPU functionality using the BLIP image captioning model.
## Features
- Uses a lightweight model (~1GB) that runs efficiently even on limited GPU resources
- Provides GPU detection and memory usage information
- Simple interface for testing if GPU is working
## How to Use
1. Upload an image
2. Click "Generate Caption"
3. View the results, including GPU usage information
"""
# Write README to a temporary file
with open("temp_readme.md", "w") as f:
f.write(readme_content)
# Upload README
api.upload_file(
path_or_fileobj="temp_readme.md",
path_in_repo="README.md",
repo_id=repo_name,
repo_type="space",
token=token,
commit_message="Add README"
)
print("Uploaded README.md")
# Clean up temp file
os.remove("temp_readme.md")
print("Upload completed!")
print("Check your Space at: https://huggingface.co/spaces/{}".format(repo_name))
except Exception as e:
print("Error: {}".format(e))
return 1
return 0
if __name__ == "__main__":
sys.exit(main())