mini-unet-colorizer / DEPLOYMENT.md
User-2468's picture
Release v3.0: selected sub-4M semantic colorizer, inference and verified ONNX
1a9eb8a verified
|
Raw History Blame
2.47 kB

v3 deployment

Local Python

Use Python 3.10 or 3.11 with the supplied requirements. CPU inference works without a GPU. Install a CUDA-compatible PyTorch build for GPU execution. Load once, put the model in evaluation mode, and reuse it across requests. The supplied loader does this automatically.

from inference import load_colorizer, colorize
model = load_colorizer('.', 'cpu')

The runtime loads a single 3,994,676-parameter network. The training-only teacher and discriminator are not required or downloaded.

Hugging Face Space

Copy app.py, inference.py, semantic_model.py, and requirements-space.txt into a Gradio Space. Rename the latter to requirements.txt. Use Gradio 6.28.0 in the Space README and choose ZeroGPU hardware.

The released app pins MODEL_REVISION to the verified model commit. Setting this environment variable deliberately overrides that pin. MODEL_ID can be a local directory for offline use or a Hub repository ID.

Import spaces before PyTorch. The model is placed on CUDA once at startup, and only the network stage is inside @spaces.GPU. Image preparation and full-resolution rendering happen on CPU. ZEROGPU_CPU_TEST=1 enables the local CPU path for verification.

Input handling

The image pipeline applies EXIF orientation, preserves alpha, rejects images over 12 megapixels, and restores colour at the original output dimensions. Network processing preserves aspect ratio with a maximum 256-pixel side. Errors are returned explicitly rather than replaced by a blank image.

The default API /colorize takes an image, colour strength (0–1.5), and smoothing (Gentle, Balanced, or Strong). It returns a PNG. Requests are serialized to bound memory usage.

Versioning and rollback

Model and source are committed atomically. The app pins the model commit rather than following moving main. RELEASE_MANIFEST.json records selection and previous commits. To roll back, use the recorded prior Space commit and model revision. The user-managed stable branch is not modified.

Verification scope

QA.json records tests for strict reload, parameter count, finite outputs, dimensions, transparency, black/white inputs, grayscale strength zero, input validation, a Gradio HTTP request, and ONNX parity. RELEASE_REPORT.md records visual selection and the separate live Space check. These checks do not imply factual colour reconstruction or eliminate every visual failure case.