Views
No views yet
mlx/
model.safetensors Onyx MLX build — fp16, 33.4 MB (what the app downloads from HF)
onyx_mlx.json arch config (rrdbnet, scale 4, num_feat 64, num_block 23, num_grow_ch 32)
pth-src/
RealESRGAN_x4plus.pth original fp32 PyTorch weights (~64 MB, provenance / rebuild source)
convert.py reproducible converter (.pth → Onyx MLX safetensors)
verify/
input_768x512.png test input
onyx_esrgan_4x.png Onyx MLX output (3072×2048)
pytorch_ref_4x.png PyTorch reference output — Onyx matches it (99.8% of pixels within ±3, mean diff 0.09)convert.py): keys kept 1:1 with the PyTorch names,
conv weights transposed to MLXNN's (C_out, kH, kW, C_in) layout (with np.ascontiguousarray so the buffer
order matches the shape — a view-vs-copy bug here scrambles the weights), fp16 storage. No retraining.OnyxDiffusion/Families/Upscale/RRDBNet.swift +
ImageUpscaleModel.swift (tiled, overlap-blended forward for memory-safe large images).wabibito/Onyx-Real-ESRGAN (mirror convention, like the other onyx-* image models).
Upload needs a transient HF token you provide and revoke after. The pth-src/ original stays local-only.