Setup Guide for Colorize API
Prerequisites
- Python 3.10+
- Docker (for containerized deployment)
- Firebase Admin SDK credentials file
- Hugging Face account with access to the Colorize Space
Local Development Setup
1. Install Dependencies
pip install -r requirements.txt
2. Firebase Credentials
Copy your Firebase Admin SDK JSON file to the project root:
- Source:
C:\Colorize\colorize-662df-firebase-adminsdk-fbsvc-e080668793.json - Destination:
colorize-662df-firebase-adminsdk-fbsvc-e080668793.json
Or set the path in environment variable:
export FIREBASE_CREDENTIALS_PATH=/path/to/your/firebase-credentials.json
3. Run the API
uvicorn app.main:app --reload --port 7860
The API will be available at http://localhost:7860
Docker Setup
1. Build the Docker Image
docker build -t colorize-api .
2. Run the Container
docker run -p 7860:7860 \
-v $(pwd)/colorize-662df-firebase-adminsdk-fbsvc-e080668793.json:/app/colorize-662df-firebase-adminsdk-fbsvc-e080668793.json \
-e BASE_URL=http://localhost:7860 \
colorize-api
Hugging Face Spaces Deployment
1. Prepare Your Repository
# Initialize git repository
git init
git add .
git commit -m "Initial commit: Colorize API with Firebase App Check"
2. Set Up Hugging Face Space
- Go to https://huggingface.co/spaces/LogicGoInfotechSpaces/Colorize
- If the space doesn't exist, create a new Docker space
3. Add Firebase Credentials as Secret
In Hugging Face Space settings:
- Go to Settings → Secrets
- Add a new secret:
- Name:
FIREBASE_CREDENTIALS - Value: Contents of your Firebase Admin SDK JSON file
- Name:
4. Update Dockerfile for Secrets (if needed)
The Dockerfile will automatically use the credentials file if it exists. For Hugging Face Spaces, you may need to create the file from secrets:
# Add this to Dockerfile if using HF secrets
RUN echo "$FIREBASE_CREDENTIALS" > colorize-662df-firebase-adminsdk-fbsvc-e080668793.json || true
5. Push to Hugging Face
git remote add origin https://huggingface.co/spaces/LogicGoInfotechSpaces/Colorize
git push -u origin main
Testing the API
Health Check
curl http://localhost:7860/health
Upload Image (with App Check token)
curl -X POST http://localhost:7860/upload \
-H "X-Firebase-AppCheck: YOUR_APP_CHECK_TOKEN" \
-F "file=@path/to/image.jpg"
Colorize Image (with App Check token)
curl -X POST http://localhost:7860/colorize \
-H "X-Firebase-AppCheck: YOUR_APP_CHECK_TOKEN" \
-F "file=@path/to/grayscale_image.jpg"
Frontend Integration
Initialize Firebase App Check
import { initializeApp } from "firebase/app";
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check";
const firebaseConfig = {
apiKey: "AIzaSyBIB6rcfyyqy5niERTXWvVD714Ter4Vx68",
authDomain: "colorize-662df.firebaseapp.com",
projectId: "colorize-662df",
storageBucket: "colorize-662df.firebasestorage.app",
messagingSenderId: "69166278311",
appId: "1:69166278311:web:0e8c50b8dd8627aaeadd82",
measurementId: "G-58CC2J8XKX"
};
const app = initializeApp(firebaseConfig);
// Initialize App Check
const appCheck = initializeAppCheck(app, {
provider: new ReCaptchaEnterpriseProvider('YOUR_RECAPTCHA_SITE_KEY'),
isTokenAutoRefreshEnabled: true
});
// Get token and make API call
async function colorizeImage(imageFile) {
const token = await appCheck.getToken();
const formData = new FormData();
formData.append('file', imageFile);
const response = await fetch('https://your-space.hf.space/colorize', {
method: 'POST',
headers: {
'X-Firebase-AppCheck': token.token
},
body: formData
});
const result = await response.json();
console.log('Colorized image URL:', result.download_url);
return result;
}
Troubleshooting
Model Loading Issues
If the ColorizeNet model fails to load:
- Check your internet connection (model downloads from Hugging Face)
- Verify you have sufficient disk space
- Check logs for specific error messages
Firebase App Check Issues
If App Check verification fails:
- Verify your Firebase credentials file is correct
- Check that App Check is enabled in Firebase Console
- Ensure the token is being sent in the
X-Firebase-AppCheckheader
Port Issues
Hugging Face Spaces uses port 7860 by default. Make sure your Dockerfile exposes this port.
Environment Variables
FIREBASE_CREDENTIALS_PATH: Path to Firebase Admin SDK JSON fileENABLE_APP_CHECK: Enable/disable Firebase App Check (true/false)BASE_URL: Base URL for generating download URLsPORT: Port to run the API on (default: 7860)MODEL_ID: Hugging Face model ID (default: rsortino/ColorizeNet)NUM_INFERENCE_STEPS: Number of inference steps (default: 20)