Operator's journal / 04.08.2026

Image in.
GLB out.

TRELLIS.2 gained its own queue, a private gallery and two high-quality image generators. Along the way, one missing package turned the progress bar into a very convincing lie.

An object moving from a source image through a mesh to a textured 3D model

The new tool on 2dzn.com does one thing: it accepts an image or object description and returns a textured GLB model. You can rotate the result immediately in the browser, download it and find it later in your own gallery. The ComfyUI panel stays private, and the browser cannot submit arbitrary workflows.

Two ComfyUI instances, one card

The RTX 5090 handles two separate stages. The first ComfyUI creates the source image and removes its background. The second is dedicated to TRELLIS.2. Between stages, the backend unloads models from memory, while a shared GPU lock prevents video, image generation and 3D reconstruction from claiming the same card simultaneously.

image
or prompt
FLUX.2 Dev
RealQwen
BiRefNet
alpha PNG
TRELLIS.2
texture + mesh
private
GLB

For text input I added two more detailed models: FLUX.2 Dev FP8 with 20 steps and RealQwen Image FP8 with 30 steps. Fast variants remain available, but image quality is the default priority. TRELLIS reconstructs what it sees, so a few seconds saved on a poor source usually come back as distorted geometry.

Thirty percent that meant nothing

The first serious bug looked harmless. A job sat at Trellis.2 is creating a textured GLB · 30%, with VRAM usage around seven percent. The queue claimed the workflow was running. In reality, preprocessing was trying to run rembg without an ONNX backend. The node did not fail. It just kept running.

Background removal moved to the first ComfyUI, where BiRefNet-general works, instead of treating a package installation inside the running container as a repair. The backend saves a PNG and checks its alpha channel before sending it to TRELLIS. The faulty rembg path remains disabled.

Low VRAM usage proved more useful than queue status. The process was marked active, but the card had received no work.

Queue and recovery

The page accepts up to five active jobs. Only one TRELLIS execution reaches the GPU at a time. Waiting jobs can be cancelled, while runtime restarts are blocked during healthy generation. If the server really gets stuck, a controlled operation switches AI Manager through video → off → video, waits for both ComfyUI instances and clears broken entries.

Sources and results belong to a private session. The GLB model goes into its job's directory, and the backend retrieves exactly one textured file from that directory. Clients do not know server paths and cannot access other people's results.

Verified on a real job

The final test went through the entire public page: image upload, BiRefNet, memory release, TRELLIS.2, gallery storage and private download. The model took 148.78 seconds. The file was 21,949,260 bytes with a valid binary glTF header. Both queues were empty afterwards, models had unloaded, and all 231 tests passed.

The most useful part of this work is unglamorous: separating stages and enforcing simple contracts. The source needs alpha, workflows belong on the server, the result must be one GLB, and memory must return to the pool afterwards. This makes the generator behave like a tool rather than a ComfyUI tab that needs constant supervision.

← All posts