{ "manifestVersion": 2, "imageVersion": "2.0.0", "pythonVersion": { "amd64": "3.12", "arm64": "3.11" }, "basePackages": [ "numpy==1.26.4", "Pillow==12.3.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", "huggingface-hub==0.36.2", "tokenizers==0.20.3", "onnxruntime==1.20.1" ], "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-r2.tar.gz", "sha256": "61a7036d3c78a410b2237bd158b8f9d6ac51c38a623f3506243b608e62f92d33", "compressedSize": 4826542966, "extractedSize": 7177444273 }, "arm64-cpu": { "file": "v2.0.0/background-removal-arm64-cpu-r2.tar.gz", "sha256": "eb453211098ca6a90b23bae987c3be6873cf7f0f7d67e1855d34f335a2add076", "compressedSize": 4535687017, "extractedSize": 6375426284 } }, "packages": { "common": ["rembg==2.0.62"], "amd64": ["onnxruntime-gpu==1.20.2", "mediapipe>=0.10.21"], "arm64": ["onnxruntime==1.20.1", "mediapipe>=0.10.18"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "rembg-u2net", "downloadFn": "rembg_session", "args": ["u2net"], "sha256": "8d10d2f3bb75ae3b6d527c77944fc5e7dcd94b29809d47a739a7a728a912b491" }, { "id": "rembg-isnet-general-use", "downloadFn": "rembg_session", "args": ["isnet-general-use"], "sha256": "60920e99c45464f2ba57bee2ad08c919a52bbf852739e96947fbb4358c0d964a" }, { "id": "rembg-bria-rmbg", "downloadFn": "rembg_session", "args": ["bria-rmbg"], "sha256": "5b486f08200f513f460da46dd701db5fbb47d79b4be4b708a19444bcd4e79958" }, { "id": "rembg-birefnet-general-lite", "downloadFn": "rembg_session", "args": ["birefnet-general-lite"], "sha256": "5600024376f572a557870a5eb0afb1e5961636bef4e1e22132025467d0f03333" }, { "id": "rembg-birefnet-portrait", "downloadFn": "rembg_session", "args": ["birefnet-portrait"], "sha256": "1ba1c8ff5a7bbfadc8d8d13fb11d7be793f91f23d9d466549e37a854f6668f99" }, { "id": "rembg-birefnet-general", "downloadFn": "rembg_session", "args": ["birefnet-general"], "sha256": "58f621f00f5d756097615970a88a791584600dcf7c45b18a0a6267535a1ebd3c" }, { "id": "rembg-birefnet-matting", "downloadFn": "rembg_session", "args": ["birefnet-matting"], "sha256": "6065d27c615ea27308f5b88598dd8db116eb07436c7a323ca40d13b2866c309e" }, { "id": "rembg-birefnet-hr-matting", "downloadFn": "rembg_session", "args": ["birefnet-hr-matting"], "sha256": "45b7d92ce0e2e75e1c8a564a9e84c87ac9da7f4315d2deeef3674864e809aef3" } ], "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-r2.tar.gz", "sha256": "ff242709bd03befe424fa5096a9d60c6b70f22fcef8af803a1c86838140832be", "compressedSize": 88895081, "extractedSize": 260502197 }, "arm64-cpu": { "file": "v2.0.0/face-detection-arm64-cpu-r2.tar.gz", "sha256": "c66d494c03beb3988decb2eea528ba4dced95956f337855ee6efee9b95f03720", "compressedSize": 81361023, "extractedSize": 232238876 } }, "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", "sha256": "b4578f35940bf5a1a655214a1cce5cab13eba73c1297cd78e1a04c2380b0152f", "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", "sha256": "64184e229b263107bc2b804c6625db1341ff2bb731874b0bcc2fe6544e0bc9ff", "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-r2.tar.gz", "sha256": "0d858f287b9ab57a60e9e3209eae1c14a6a0792687f7105d40b1f4c2a19ef102", "compressedSize": 1532343662, "extractedSize": 2204704276 }, "arm64-cpu": { "file": "v2.0.0/object-eraser-colorize-arm64-cpu-r3.tar.gz", "sha256": "18aaf0bc507e94e248296f3092e625ff6339365b6df7030439c4ec9465098bfa", "compressedSize": 1253914457, "extractedSize": 1437568952 } }, "packages": { "common": ["huggingface-hub[hf_xet]==0.36.2"], "amd64": ["onnxruntime-gpu==1.20.2"], "arm64": ["onnxruntime==1.20.1"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "lama-onnx", "downloadFn": "hf_snapshot", "args": ["Carve/LaMa-ONNX", "lama"], "revision": "c3c0c9e468934d62e79c329e35d82dd09ff8c444", "file": "lama_fp32.onnx", "path": "lama/lama_fp32.onnx", "minSize": 100000000 }, { "id": "ddcolor-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "ddcolor"], "revision": "728b9659bd9691bf32cbf7f61af478d94b7ba81e", "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", "sha256": "d16418cef8df4ccd703a55ae0ef3960861d5010418f77c90d0a47689998a7169", "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"], "revision": "41c04215906bbd3d8e2a09c07b3e76f42f0cd65e", "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", "sha256": "b5dec01315c34f43f1c8c089e84c45ae35d1838d8e77ed0e7ca930f79ffa450e", "path": "colorize-opencv/pts_in_hull.npy", "minSize": 0 } ], "smokeImports": ["onnxruntime"], "enablesTools": ["erase-object", "colorize", "ai-canvas-expand"] }, "inpaint-hq": { "name": "High-Quality Inpainting", "description": "Diffusion-based object removal for large objects and detailed textures", "estimatedSize": "5-7 GB", "archives": { "amd64-gpu": { "file": "v2.0.0/inpaint-hq-amd64-gpu.tar.gz", "sha256": "da65c2b7e678b50815c7c2d8ae4594ad7bbf4c1e84682bfc91b46948cdff71de", "compressedSize": 7283076233, "extractedSize": 10745029298 }, "arm64-cpu": { "file": "v2.0.0/inpaint-hq-arm64-cpu.tar.gz", "sha256": "b854b101a6190dde94d9d0039129941122c62df7c9a6429d425231cf4fa4630f", "compressedSize": 5130985609, "extractedSize": 7159491153 } }, "packages": { "common": [ "diffusers==0.31.0", "transformers==4.46.3", "accelerate==1.2.1", "safetensors==0.4.5", "huggingface-hub[hf_xet]==0.36.2" ], "amd64": [ "torch==2.7.0+cu126 torchvision==0.22.0+cu126 --index-url https://download.pytorch.org/whl/cu126" ], "arm64": [ "torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cpu" ] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "sd15-inpainting", "downloadFn": "hf_snapshot", "args": ["stable-diffusion-v1-5/stable-diffusion-inpainting", "sd15-inpainting"], "revision": "8a4288a76071f7280aedbdb3253bdb9e9d5d84bb", "allowPatterns": ["*.json", "*.txt", "tokenizer/*", "*.fp16.safetensors"], "path": "sd15-inpainting/unet/diffusion_pytorch_model.fp16.safetensors", "minSize": 1000000000 } ], "smokeImports": ["diffusers", "torch", "transformers"], "enablesTools": ["erase-object"] }, "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-r2.tar.gz", "sha256": "81f0c688abcdd277fbcdd5501aa22a4fe789e08fe9822811ea326a3de1a8b15d", "compressedSize": 5371590150, "extractedSize": 8454624391 }, "arm64-cpu": { "file": "v2.0.0/upscale-enhance-arm64-cpu-r2.tar.gz", "sha256": "d2d9745d2ca1b546c4e5399d5bf8c024bad349135fdb1ad0e4da28b7ac19fc9e", "compressedSize": 2209931629, "extractedSize": 3246159800 } }, "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", "sha256": "4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1", "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", "sha256": "49fafd45f8fd7aa8d31ab2a22d14d91b536c34494a5cfe31eb5d89c2fa266abb", "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", "sha256": "c953a88f2727c85c3d9ae72e2bd4846bbaf59fe6972ad94130e23e7017524a70", "path": "gfpgan/GFPGANv1.3.pth", "minSize": 300000000 }, { "id": "codeformer-pth", "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth", "sha256": "1009e537e0c2a07d4cabce6355f53cb66767cd4b4297ec7a4a64ca4b8a5684b7", "path": "codeformer/codeformer.pth", "minSize": 350000000 }, { "id": "codeformer-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "codeformer"], "revision": "728b9659bd9691bf32cbf7f61af478d94b7ba81e", "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", "sha256": "6d1de9c2944f2ccddca5f5e010ea5ae64a39845a86311af6fdf30841b0a5a16d", "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", "sha256": "3d558d8d0e42c20224f13cf5a29c79eba2d59913419f945545d8cf7b72920de2", "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", "sha256": "fa78899ba2caec9d235a900e91d96c689da71c42029230c2028b00f09f809c2e", "path": "scunet/scunet_color_real_psnr.pth", "minSize": 3000000 }, { "id": "nafnet-sidd", "downloadFn": "hf_snapshot", "args": ["mikestealth/nafnet-models", "nafnet"], "revision": "cd3a91ddc41c9c3a53ee809b3ddd5263c9e94e51", "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-r2.tar.gz", "sha256": "38c82e61acf03980b97f6f2a4754dd7cdbc3d4d64f864bf2776168fc8fb91eea", "compressedSize": 4693244387, "extractedSize": 8220630756 }, "arm64-cpu": { "file": "v2.0.0/photo-restoration-arm64-cpu-r2.tar.gz", "sha256": "86f1b261314f9f66146c02fddcbeff1880da0b52716e21126c75c7eee00e445d", "compressedSize": 1252233816, "extractedSize": 2238681871 } }, "packages": { "common": ["codeformer-pip==0.0.4", "huggingface-hub[hf_xet]==0.36.2", "setuptools<75"], "amd64": [ "onnxruntime-gpu==1.20.2", "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"], "revision": "c3c0c9e468934d62e79c329e35d82dd09ff8c444", "file": "lama_fp32.onnx", "path": "lama/lama_fp32.onnx", "minSize": 100000000 }, { "id": "codeformer-onnx", "downloadFn": "hf_snapshot", "args": ["facefusion/models-3.0.0", "codeformer"], "revision": "728b9659bd9691bf32cbf7f61af478d94b7ba81e", "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", "sha256": "4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1", "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", "sha256": "6d1de9c2944f2ccddca5f5e010ea5ae64a39845a86311af6fdf30841b0a5a16d", "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", "sha256": "3d558d8d0e42c20224f13cf5a29c79eba2d59913419f945545d8cf7b72920de2", "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", "sha256": "b4578f35940bf5a1a655214a1cce5cab13eba73c1297cd78e1a04c2380b0152f", "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", "sha256": "64184e229b263107bc2b804c6625db1341ff2bb731874b0bcc2fe6544e0bc9ff", "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", "sha256": "fa78899ba2caec9d235a900e91d96c689da71c42029230c2028b00f09f809c2e", "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": "High-accuracy local OCR for images and PDFs", "estimatedSize": "~208-234 MiB download / ~409-488 MiB installed", "runtimeFormatVersion": 3, "runtimeFamily": "ocr", "modelManifest": "docker/ocr-runtime-models.json", "targets": { "linux-amd64-cpu-py312": { "file": "v3/ocr-linux-amd64-cpu-py312.tar.gz", "compressedSizeEstimate": 244622462, "extractedSizeEstimate": 510762511, "sizeKind": "measured-estimate", "minimumMemoryBytes": 4294967296, "requirements": "docker/ocr-runtime-requirements-amd64.txt" }, "linux-arm64-cpu-py311": { "file": "v3/ocr-linux-arm64-cpu-py311.tar.gz", "compressedSizeEstimate": 218031562, "extractedSizeEstimate": 428565655, "sizeKind": "measured-estimate", "minimumMemoryBytes": 4294967296, "requirements": "docker/ocr-runtime-requirements-arm64.txt" } }, "packages": { "common": ["rapidocr==3.9.1", "onnxruntime==1.20.1"], "amd64": [], "arm64": [] }, "pipFlags": {}, "postInstall": [], "models": [], "smokeImports": ["rapidocr", "onnxruntime"], "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-r2.tar.gz", "sha256": "6229180f698d1ceb0866df4b1c091ed4a89f6324427d373dbbc13a763ae26ce2", "compressedSize": 845757082, "extractedSize": 1647328796 }, "arm64-cpu": { "file": "v2.0.0/transcription-arm64-cpu-r3.tar.gz", "sha256": "19938e1220bdcfdbdb0e6c5019971b38b4a519f818d9cd29b789bc19de661485", "compressedSize": 536230905, "extractedSize": 781074121 } }, "packages": { "common": ["faster-whisper>=1.0.0", "huggingface-hub[hf_xet]==0.36.2"], "amd64": ["onnxruntime-gpu==1.20.2"], "arm64": ["onnxruntime==1.20.1"] }, "pipFlags": {}, "postInstall": [], "models": [ { "id": "faster-whisper-small", "downloadFn": "hf_snapshot", "args": ["Systran/faster-whisper-small", "faster-whisper-small"], "revision": "536b0662742c02347bc0e980a01041f333bce120" } ], "smokeImports": ["faster_whisper", "ctranslate2"], "enablesTools": ["transcribe-audio", "auto-subtitles"] } } }