For the complete documentation index, see llms.txt. This page is also available as Markdown.

图片生成3D模型的接口进度和Three预览

图片生成 3D 模型这类应用,前端不只是上传文件然后等结果。体验上至少要处理这些事:

  • 多图片上传

  • SVG 转 PNG

  • 调用远端 Gradio 模型接口

  • 读取队列和生成进度

  • 获取 GLB 地址

  • Three.js 加载预览

  • 模型居中、缩放、灯光和材质切换

API 流程

以 ReconViaGen 这类 Gradio 服务为例,流程大概是:

upload images

/preprocess_images

/generate_and_extract_glb

GLB / preview url

Three.js preview

可以先定义统一的参数和默认配置:

处理 Gradio 跨域凭证

调用 HuggingFace Space 或 Gradio Live 地址时,有些场景不希望浏览器带 cookie,可以统一 patch fetch:

SSE 进度解析

Gradio 队列常通过 SSE 返回状态,可以写一个通用解析方法:

如果响应体是 stream,就边读边解析:

SVG 上传前转 PNG

有些模型服务不一定支持 SVG,可以在前端先光栅化:

Three.js 加载 GLB 并居中

GLB 返回后,用 GLTFLoader 加载:

切换预览风格

生成的模型有时材质不稳定,可以提供几个预览模式:

总结

图片转 3D 的前端重点不只是“调接口”,而是要把整个异步链路做稳定:

  • 上传前处理图片格式

  • 检查模型服务是否可用

  • SSE 进度转成用户能理解的步骤

  • GLB 加载后自动居中和适配相机

  • 模型预览要支持材质兜底

这样即使模型服务排队很久,用户也能知道当前进行到哪一步。