{ "manifestVersion": 2, "imageVersion": "2.0.0", "pythonVersion": { "amd64": "3.12", "arm64": "3.11" }, "basePackages": [ "numpy==1.26.4", "Pillow==12.2.0", "opencv-python-headless==4.10.0.84", "huggingface-hub[hf_xet,hf_transfer]==0.36.2" ], "constraints": [ "numpy==1.26.4", "scipy==1.12.0", "scikit-learn==1.4.2", "scikit-image==0.24.0", "pandas==2.2.2" ], "bundleRepo": "deepsafe/feature-bundles", "bundles": { "background-removal": { "name": "Background Removal", "description": "Remove image backgrounds with AI", "estimatedSize": "4-5 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/background-removal-amd64-gpu.tar.gz", "sha256": "a1dfbdd5862fd32c7719ca79b0c7e4b76a327330a5991ddad98a2761abca10cb", "compressedSize": 4808242472, "extractedSize": 0 }, "arm64-cpu": { "file": "v2.0.0/background-removal-arm64-cpu.tar.gz", "sha256": "cbb570b81bfd740dd05e265dd8c93ade53a9f41fdd30cc8b3fbc47a8daa824af", "compressedSize": 4631430295, "extractedSize": 0 } }, "packages": { "common": ["rembg==2.0.62"], "amd64": ["onnxruntime-gpu==1.20.1", "mediapipe>=0.10.21"], "arm64": ["onnxruntime==1.20.1", "mediapipe>=0.10.18"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "rembg-u2net", "downloadFn": "rembg_session", "args": ["u2net"] }, { "id": "rembg-isnet-general-use", "downloadFn": "rembg_session", "args": ["isnet-general-use"] }, { "id": "rembg-bria-rmbg", "downloadFn": "rembg_session", "args": ["bria-rmbg"] }, { "id": "rembg-birefnet-general-lite", "downloadFn": "rembg_session", "args": ["birefnet-general-lite"] }, { "id": "rembg-birefnet-portrait", "downloadFn": "rembg_session", "args": ["birefnet-portrait"] }, { "id": "rembg-birefnet-general", "downloadFn": "rembg_session", "args": ["birefnet-general"] }, { "id": "rembg-birefnet-matting", "downloadFn": "rembg_session", "args": ["birefnet-matting"] }, { "id": "rembg-birefnet-hr-matting", "downloadFn": "rembg_session", "args": ["birefnet-hr-matting"] } ], "smokeImports": ["rembg", "onnxruntime"], "enablesTools": [ "remove-background", "remove-gif-background", "passport-photo", "transparency-fixer", "background-replace", "blur-background" ] }, "face-detection": { "name": "Face Detection", "description": "Detect and blur faces, fix red-eye, smart crop", "estimatedSize": "200-300 MB", "archives": { "amd64-gpu": { "file": "v2.0.0/face-detection-amd64-gpu.tar.gz", "sha256": "0ee28b86dac88c60e005604ba0595746f455ec97f08d0c8307ba9b57e131bc7f", "compressedSize": 75358868, "extractedSize": 209838080 }, "arm64-cpu": { "file": "v2.0.0/face-detection-arm64-cpu.tar.gz", "sha256": "8ad922514aba1721de154d370f9335f78c5ce5aceade5b19515e0192d4367909", "compressedSize": 222878753, "extractedSize": 704276480 } }, "packages": { "common": [], "amd64": ["mediapipe>=0.10.21"], "arm64": ["mediapipe>=0.10.18"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "mediapipe-face-detector", "url": "https://storage.googleapis.com/mediapipe-models/face_detector/blaze_face_short_range/float16/latest/blaze_face_short_range.tflite", "path": "mediapipe/blaze_face_short_range.tflite", "minSize": 100000 }, { "id": "mediapipe-face-landmarker", "url": "https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/latest/face_landmarker.task", "path": "mediapipe/face_landmarker.task", "minSize": 1000000 } ], "smokeImports": ["mediapipe"], "enablesTools": ["blur-faces", "red-eye-removal", "smart-crop"] }, "object-eraser-colorize": { "name": "Object Eraser & Colorize", "description": "Erase objects from photos and colorize B&W images", "estimatedSize": "1-2 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/object-eraser-colorize-amd64-gpu.tar.gz", "sha256": "a3f6cd2eca9e5dd907497d0d58ca5f6532887bb748e4062de0f4fb9815782c31", "compressedSize": 1545472964, "extractedSize": 2249379840 }, "arm64-cpu": { "file": "v2.0.0/object-eraser-colorize-arm64-cpu.tar.gz", "sha256": "252c0b4fc4ca6f807b2b93038a98469323d906d5c4d75df88e9f47497d30e67c", "compressedSize": 1263259968, "extractedSize": 1464884023 } }, "packages": { "common": ["huggingface-hub[hf_xet]==0.36.2"], "amd64": ["onnxruntime-gpu==1.20.1"], "arm64": ["onnxruntime==1.20.1", "protobuf>=4.25.3,<5"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "lama-onnx", "downloadFn": "hf_snapshot", "args": ["Carve/LaMa-ONNX", "lama"], "file": "lama_fp32.onnx", "path": "lama/lama_fp32.onnx", "minSize": 100000000 }, { "id": "ddcolor-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "ddcolor"], "file": "ddcolor.onnx", "path": "ddcolor/ddcolor.onnx", "minSize": 50000000 }, { "id": "opencv-colorize-prototxt", "url": "https://raw.githubusercontent.com/richzhang/colorization/caffe/colorization/models/colorization_deploy_v2.prototxt", "path": "colorize-opencv/colorization_deploy_v2.prototxt", "minSize": 0 }, { "id": "opencv-colorize-caffemodel", "downloadFn": "hf_snapshot", "args": ["BilalSardar/Black-N-White-To-Color", "colorize-opencv"], "file": "colorization_release_v2.caffemodel", "path": "colorize-opencv/colorization_release_v2.caffemodel", "minSize": 100000000, "repoType": "space" }, { "id": "opencv-colorize-points", "url": "https://raw.githubusercontent.com/richzhang/colorization/caffe/colorization/resources/pts_in_hull.npy", "path": "colorize-opencv/pts_in_hull.npy", "minSize": 0 } ], "smokeImports": ["onnxruntime"], "enablesTools": ["erase-object", "colorize", "ai-canvas-expand"] }, "upscale-enhance": { "name": "Upscale & Enhance", "description": "AI upscaling, face enhancement, and noise removal", "estimatedSize": "4-5 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/upscale-enhance-amd64-gpu.tar.gz", "sha256": "b725a0b18a8295cb87e15f79b31c294f1de98101dedd76389728300a8d377a15", "compressedSize": 5358573124, "extractedSize": 8406943960 }, "arm64-cpu": { "file": "v2.0.0/upscale-enhance-arm64-cpu.tar.gz", "sha256": "bfb25ff1468d426ba6a125632beabece11e1afebfa6a3adefc64f7b81d7bf469", "compressedSize": 2319501276, "extractedSize": 3661453942 } }, "packages": { "common": [ "codeformer-pip==0.0.4", "huggingface-hub[hf_xet]==0.36.2", "einops", "setuptools<75" ], "amd64": [ "torch==2.7.0+cu126 torchvision==0.22.0+cu126 --index-url https://download.pytorch.org/whl/cu126", "lpips", "basicsr==1.4.2", "realesrgan==0.3.0", "mediapipe>=0.10.21" ], "arm64": [ "torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cpu", "lpips", "basicsr==1.4.2", "realesrgan==0.3.0", "mediapipe>=0.10.18" ] }, "pipFlags": { "codeformer-pip==0.0.4": "--no-deps", "basicsr==1.4.2": "--no-build-isolation" }, "postInstall": ["numpy==1.26.4"], "models": [ { "id": "realesrgan-x4plus", "url": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth", "path": "realesrgan/RealESRGAN_x4plus.pth", "minSize": 60000000 }, { "id": "realesrgan-x2plus", "url": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth", "path": "realesrgan/RealESRGAN_x2plus.pth", "minSize": 60000000 }, { "id": "gfpgan-v1.3", "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth", "path": "gfpgan/GFPGANv1.3.pth", "minSize": 300000000 }, { "id": "codeformer-pth", "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth", "path": "codeformer/codeformer.pth", "minSize": 350000000 }, { "id": "codeformer-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "codeformer"], "file": "codeformer.onnx", "path": "codeformer/codeformer.onnx", "minSize": 100000000 }, { "id": "facexlib-detection", "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth", "path": "gfpgan/facelib/detection_Resnet50_Final.pth", "minSize": 100000000 }, { "id": "facexlib-parsing", "url": "https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth", "path": "gfpgan/facelib/parsing_parsenet.pth", "minSize": 80000000 }, { "id": "scunet-color-real", "url": "https://github.com/cszn/KAIR/releases/download/v1.0/scunet_color_real_psnr.pth", "path": "scunet/scunet_color_real_psnr.pth", "minSize": 3000000 }, { "id": "nafnet-sidd", "downloadFn": "hf_snapshot", "args": ["mikestealth/nafnet-models", "nafnet"], "file": "NAFNet-SIDD-width64.pth", "path": "nafnet/NAFNet-SIDD-width64.pth", "minSize": 60000000 } ], "patches": [ { "file": "basicsr/data/degradations.py", "search": "from torchvision.transforms.functional_tensor import rgb_to_grayscale", "replace": "from torchvision.transforms.functional import rgb_to_grayscale" } ], "smokeImports": ["torch", "torchvision"], "enablesTools": ["upscale", "enhance-faces", "noise-removal"] }, "photo-restoration": { "name": "Photo Restoration", "description": "Restore old or damaged photos", "estimatedSize": "800 MB - 1 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/photo-restoration-amd64-gpu.tar.gz", "sha256": "4747953db35c71b83db19ce12cc6c591730f0cb9f64621f239db17ae3e3563fd", "compressedSize": 4680254837, "extractedSize": 8172949791 }, "arm64-cpu": { "file": "v2.0.0/photo-restoration-arm64-cpu.tar.gz", "sha256": "261a27a176b9f3e76d8cd92576b73a1c014b19e87b4f16e58ed46d17c77697c0", "compressedSize": 1361837793, "extractedSize": 2584214411 } }, "packages": { "common": ["codeformer-pip==0.0.4", "huggingface-hub[hf_xet]==0.36.2", "setuptools<75"], "amd64": [ "onnxruntime-gpu==1.20.1", "mediapipe>=0.10.21", "torch==2.7.0+cu126 torchvision==0.22.0+cu126 --index-url https://download.pytorch.org/whl/cu126", "lpips", "basicsr==1.4.2", "realesrgan==0.3.0" ], "arm64": [ "torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cpu", "onnxruntime==1.20.1", "mediapipe>=0.10.18", "lpips", "basicsr==1.4.2", "realesrgan==0.3.0" ] }, "pipFlags": { "codeformer-pip==0.0.4": "--no-deps", "basicsr==1.4.2": "--no-build-isolation" }, "postInstall": ["numpy==1.26.4"], "models": [ { "id": "lama-onnx", "downloadFn": "hf_snapshot", "args": ["Carve/LaMa-ONNX", "lama"], "file": "lama_fp32.onnx", "path": "lama/lama_fp32.onnx", "minSize": 100000000 }, { "id": "codeformer-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "codeformer"], "file": "codeformer.onnx", "path": "codeformer/codeformer.onnx", "minSize": 100000000 }, { "id": "realesrgan-x4plus", "url": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth", "path": "realesrgan/RealESRGAN_x4plus.pth", "minSize": 60000000 }, { "id": "facexlib-detection", "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth", "path": "gfpgan/facelib/detection_Resnet50_Final.pth", "minSize": 100000000 }, { "id": "facexlib-parsing", "url": "https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth", "path": "gfpgan/facelib/parsing_parsenet.pth", "minSize": 80000000 }, { "id": "mediapipe-face-detector", "url": "https://storage.googleapis.com/mediapipe-models/face_detector/blaze_face_short_range/float16/latest/blaze_face_short_range.tflite", "path": "mediapipe/blaze_face_short_range.tflite", "minSize": 100000 }, { "id": "mediapipe-face-landmarker", "url": "https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/latest/face_landmarker.task", "path": "mediapipe/face_landmarker.task", "minSize": 1000000 }, { "id": "scunet-color-real", "url": "https://github.com/cszn/KAIR/releases/download/v1.0/scunet_color_real_psnr.pth", "path": "scunet/scunet_color_real_psnr.pth", "minSize": 3000000 } ], "patches": [ { "file": "basicsr/data/degradations.py", "search": "from torchvision.transforms.functional_tensor import rgb_to_grayscale", "replace": "from torchvision.transforms.functional import rgb_to_grayscale" } ], "smokeImports": ["onnxruntime", "torch", "mediapipe"], "enablesTools": ["restore-photo"] }, "ocr": { "name": "OCR", "description": "Extract text from images", "estimatedSize": "3-4 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/ocr-amd64-gpu.tar.gz", "sha256": "2a00a3184f6a635f1fa9ae2a6517ad740a11f9e5ff58c098d2fd369a2bb1e16b", "compressedSize": 5933794814, "extractedSize": 9343914078 }, "arm64-cpu": { "file": "v2.0.0/ocr-arm64-cpu.tar.gz", "sha256": "6868c264069dcb74c6675c0b1f58dc1c9f60d9aa4459725e3dbde07a99a6a09a", "compressedSize": 1984611355, "extractedSize": 3103671712 } }, "packages": { "common": ["huggingface-hub[hf_xet]==0.36.2"], "amd64": [ "paddlepaddle-gpu>=3.2.1 --index-url https://www.paddlepaddle.org.cn/packages/stable/cu126/ --extra-index-url https://pypi.org/simple/", "paddleocr[doc-parser]>=3.4.0,<3.5.0" ], "arm64": [ "paddlepaddle>=3.2.1", "paddleocr[doc-parser]>=3.4.0,<3.5.0", "protobuf>=4.25.3,<5" ] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "paddleocr-server-det", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PP-OCRv5_server_det", "PP-OCRv5_server_det"] }, { "id": "paddleocr-server-rec", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PP-OCRv5_server_rec", "PP-OCRv5_server_rec"] }, { "id": "paddleocr-mobile-det", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PP-OCRv5_mobile_det", "PP-OCRv5_mobile_det"] }, { "id": "paddleocr-mobile-rec", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PP-OCRv5_mobile_rec", "PP-OCRv5_mobile_rec"] }, { "id": "paddleocr-latin-rec", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/latin_PP-OCRv5_mobile_rec", "latin_PP-OCRv5_mobile_rec"] }, { "id": "paddleocr-korean-rec", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/korean_PP-OCRv5_mobile_rec", "korean_PP-OCRv5_mobile_rec"] }, { "id": "paddleocr-textline-ori", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PP-LCNet_x1_0_textline_ori", "PP-LCNet_x1_0_textline_ori"] }, { "id": "paddleocr-vl", "downloadFn": "hf_snapshot", "args": ["PaddlePaddle/PaddleOCR-VL-1.5", "PaddleOCR-VL-1.5"] } ], "smokeImports": ["paddle", "paddleocr"], "enablesTools": ["ocr", "ocr-pdf"] }, "transcription": { "name": "Transcription", "description": "Speech to text for audio and video (subtitles)", "estimatedSize": "~600 MB", "archives": { "amd64-gpu": { "file": "v2.0.0/transcription-amd64-gpu.tar.gz", "sha256": "3033d480c6183df66855d78c355233dbc86a754d07414e544e1df1038337c9e1", "compressedSize": 559189061, "extractedSize": 845987840 }, "arm64-cpu": { "file": "v2.0.0/transcription-arm64-cpu.tar.gz", "sha256": "07088951300dec14b80f4723a3d5bd968574ce2650259be3fd487e7abb47e120", "compressedSize": 528491203, "extractedSize": 741534382 } }, "packages": { "common": ["faster-whisper>=1.0.0"], "amd64": [], "arm64": ["protobuf>=4.25.3,<5"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "faster-whisper-small", "downloadFn": "hf_snapshot", "args": ["Systran/faster-whisper-small", "faster-whisper-small"] } ], "smokeImports": ["faster_whisper", "ctranslate2"], "enablesTools": ["transcribe-audio", "auto-subtitles"] } } }