flashimgs / README.md
opsiclear-admin's picture
FlashImgs ZeroGPU Space: Gradio SDK, AGPL-3.0 wrapper, vendored sm_120 wheels
474bcf4 verified
|
Raw
History Blame Contribute Delete
4.49 kB

A newer version of the Gradio SDK is available: 6.19.0

Upgrade
metadata
title: FlashImgs
emoji: πŸ’ 
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 6.16.0
python_version: 3.12.12
app_file: app.py
suggested_hardware: zero-a10g
fullWidth: true
pinned: false
license: agpl-3.0
short_description: Adaptive 2D Gaussian splat fitting for images (ZeroGPU).
tags:
  - gaussian-splatting
  - 2d-gaussian-splatting
  - image-representation
  - gradio
  - zerogpu
  - computer-vision

FlashImgs β€” 2D Gaussian Splatting for Images

Fit any image as a set of 2D Gaussians in seconds, preview the reconstruction and a 3D Gaussian-splat point cloud, and export files for standard splat viewers. This Space is a Gradio wrapper around the FlashImgs adaptive fitter, running on ZeroGPU. It does not use the gaussifier feedforward sampler, AOTI, or TensorRT path.

Hardware (ZeroGPU)

The GPU-bound fit is wrapped with @spaces.GPU, so the Space requests a ZeroGPU (NVIDIA RTX Pro 6000 Blackwell, sm_120) slice only while a fit runs and releases it immediately after.

To host this on ZeroGPU you need ZeroGPU enabled on the account that owns the Space (a PRO subscription for a personal account, or a Team/Enterprise plan for an organization), then select ZeroGPU in Settings β†’ Hardware. The @spaces.GPU decorator is a no-op off ZeroGPU, so the Space also runs unchanged on a standard GPU tier.

How to use

  1. Upload an image (PNG/WebP alpha is honored automatically as a fit mask).
  2. Adjust the Fit settings (max side, gaussian budget, steps, loss) if needed.
  3. Click Fit.
  4. Inspect the 3DGS point-cloud preview and the Image reconstruction.
  5. Tweak the PLY export controls (opacity, scale, thickness, Y axis) β€” the 3D preview updates live β€” then download the files.

Masks

  • Embedded PNG/WebP alpha masks are used automatically to fit only the subject.
  • With Treat image border as mask border enabled, opaque/RGB images use the image frame as the mask boundary.

Outputs

  • Reconstruction preview plus PSNR / SSIM and timing metrics.
  • .splat2d file compatible with the FlashImgs web viewer.
  • Edited planar 3DGS .ply for standard splat viewers. The factor_rgb opacity scale, mask-edge scale clamp, thickness, and Y-axis controls update the preview while you adjust them; the downloadable PLY is always the latest edited file.

How the build works

ZeroGPU Spaces use the Gradio SDK and install from requirements.txt with no build-time CUDA toolchain, so FlashImgs and its CUDA backends cannot be compiled on the Space. Instead, prebuilt wheels are vendored under wheels/:

  • flashimgs (pure Python, built from commit 11d4d3b + local working-tree changes)
  • fussim and simple_sum_backend β€” CUDA extensions compiled for CPython 3.12, torch 2.11.0+cu130 (CUDA 13.0), and Blackwell sm_120

ZeroGPU pre-installs torch 2.11.0 for CUDA 13.0, so the wheels are built for cu130 and requirements.txt pins bare torch==2.11.0 / torchvision==0.26.0 (both resolve to the cu130 builds β€” a cu128 torchvision triggers operator torchvision::nms does not exist). python_version: 3.12.12 is set in the front matter above, and cfgs/default.yaml is included at the Space root because FlashImgs resolves its default config relative to the working directory.

To rebuild the wheels for a new FlashImgs revision (or a different torch / CUDA arch), build fussim and simple_sum_backend from the FlashImgs source with TORCH_CUDA_ARCH_LIST=12.0+PTX and CUDA_HOME pointing at the matching toolkit, against the target torch, and rebuild the flashimgs wheel with full package discovery.

License

The wrapper code in this repository (app.py, configuration) is released under the GNU Affero General Public License v3.0 (AGPL-3.0) β€” see LICENSE and NOTICE. Because AGPL-3.0 is a network-copyleft license, anyone who runs a modified version of this wrapper as a network service must offer its users the modified source.

The vendored FlashImgs wheels (flashimgs, simple_sum_backend, and the OpsiClear fussim fork) are a separate work under the OpsiClear Restrictive License (non-commercial use only). The AGPL-3.0 license of this wrapper does not extend to the FlashImgs engine; running the deployed app is subject to the FlashImgs terms.