一个智能体如何通过串联两个Hugging Face空间构建3D巴黎画廊

Hugging Face Blog 新闻

摘要

一个智能体将两个Hugging Face空间(一个用于图像生成,一个用于3D重建)串联起来,生成了一个电影级3D巴黎画廊,展示了积木式经济模式——智能体将经过验证的组件拼接在一起,而非从头开始构建。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/09 14:41

一个Agent如何通过链接两个Hugging Face Spaces,构建出一座3D巴黎画廊

来源:https://huggingface.co/blog/mishig/spaces-agents-md 返回文章列表 (https://huggingface.co/blog)

Mishig Davaadorj 的头像 (https://huggingface.co/mishig)

  • 积木经济降临多媒体领域 (https://huggingface.co/blog/mishig/spaces-agents-md#the-building-block-economy-comes-for-multimedia)
  • 通过 agents.md,每个Space都是构建块 (https://huggingface.co/blog/mishig/spaces-agents-md#every-space-is-a-building-block-via-agentsmd)
  • 实践案例:巴黎地标 → 高斯泼溅 (https://huggingface.co/blog/mishig/spaces-agents-md#the-worked-example-paris-monuments-%E2%86%92-splats)
  • 为什么这很重要 (https://huggingface.co/blog/mishig/spaces-agents-md#why-this-matters)
  • 亲自尝试 (https://huggingface.co/blog/mishig/spaces-agents-md#try-it-yourself)

一个Agent利用两个Hugging Face Spaces,构建出了一座3D巴黎画廊。

我让一个编码代理(Agent)构建一个展示巴黎地标三维高斯泼溅效果的漂亮网站。我从未打开过图像生成器,也从未触碰过3D重建工具。这个Agent通过直接调用两个Hugging Face Spaces,生成了所有素材(图片3D泼溅效果),然后将它们集成到一个电影般的浏览器中。

以下是成果,作为一个静态Space实时呈现:

👉 mishig/monuments-de-paris (https://huggingface.co/spaces/mishig/monuments-de-paris)

这篇文章将解释这一切如何成为可能,以及为什么我认为这预示着未来大量多媒体软件的构建方式。

https://huggingface.co/blog/mishig/spaces-agents-md#the-building-block-economy-comes-for-multimedia 积木经济降临多媒体领域

Mitchell Hashimoto 最近描述了一种他称之为“积木经济” (https://mitchellh.com/writing/building-block-economy) 的转变:构建软件最有效的路径不再是精心打磨的单一制品,而是小而精、文档完善、可供他人(尤其是Agent)组装使用的组件。他的核心观察是:AI 从零开始构建一切的能力尚可,但它非常擅长拼接经过验证的组件。

这个论点此前主要围绕代码库展开。但现在,同样的驱动力正在冲击多媒体AI。使用最先进的图像模型、视频模型、TTS模型或3D重建模型的难点从来不是模型本身,而是集成过程:各种SDK、权重、GPU、输入格式、轮询机制。如果每个模型都变成一个文档完善、可调用的“积木块”,那么Agent就可以像拼接npm包一样把它们轻松组合起来。

这正是Hugging Face Spaces悄然成为的现实。

https://huggingface.co/blog/mishig/spaces-agents-md#every-space-is-a-building-block-via-agentsmd 通过 agents.md,每个Space都是构建块

Hub 上托管了数千个最先进的模型(其中很大一部分是开放权重的),并且大多数都以交互式Spaces的形式部署。现在,每个Gradio Space都暴露一个纯文本的 agents.md (https://huggingface.co/docs/hub/en/spaces-agents) 文件,它精确地告诉Agent如何调用该Space:

curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

一次请求就能返回所有必要信息:schema URL、调用和轮询模板、如何上传文件以及认证提示:

API schema:   GET  .../gradio_api/info
Call endpoint: POST .../gradio_api/call/v2/{endpoint} {"param_name": value, ...}
Poll result:  GET  .../gradio_api/call/{endpoint}/{event_id}
File inputs:  POST .../gradio_api/upload -F "[email protected]"
Auth:         Bearer $HF_TOKEN

无需客户端库,无需硬编码集成。Agent读取这些信息后,就能端到端地驱动这个Space。设置好 HF_TOKEN (https://huggingface.co/settings/tokens) 即可运行。

真正的解锁在于链接:一个Space的输出成为下一个Space的输入。提示词 → 图像 → 3D。这就是这个画廊背后完整的流水线。

https://huggingface.co/blog/mishig/spaces-agents-md#the-worked-example-paris-monuments-%E2%86%92-splats 实践案例:巴黎地标 → 高斯泼溅

这个Agent链接了两个Spaces:

  1. 图像生成: ideogram-ai/ideogram4 (https://huggingface.co/spaces/ideogram-ai/ideogram4) 将每个地标生成为干净的、深色背景的“标本”照片(埃菲尔铁塔则被生成为一个底座上的小立体模型)。输入提示词,输出图像。
  2. 3D重建: VAST-AI/TripoSplat (https://huggingface.co/spaces/VAST-AI/TripoSplat) 从每张单张图像重建出3D高斯泼溅文件(.ply)。输入图像,输出3D。

生成的图像

生成的先贤祠 (https://huggingface.co/spaces/mishig/monuments-de-paris/resolve/main/blog/assets/gen-pantheon.jpg)

重建后的3D泼溅

Agent生成的六张源图像,全部独立置于黑色背景上,随时可用于单图像3D重建:

生成的歌剧院图像 (https://huggingface.co/spaces/mishig/monuments-de-paris/resolve/main/blog/assets/gen-opera.jpg) 生成的凯旋门 (https://huggingface.co/spaces/mishig/monuments-de-paris/resolve/main/blog/assets/gen-arc.jpg) 生成的圣心大教堂 (https://huggingface.co/spaces/mishig/monuments-de-paris/resolve/main/blog/assets/gen-sacre-coeur.jpg) 生成的埃菲尔铁塔立体模型 (https://huggingface.co/spaces/mishig/monuments-de-paris/resolve/main/blog/assets/gen-eiffel-diorama.jpg)

接下来,Agent还完成了“胶水”工作。它注意到TripoSplat输出的方向是Y轴向下,于是将其翻转竖直;自动为每个地标设置好取景框;将 .ply 文件压缩为 .ksplat(体积缩小约3倍,便于快速加载);构建了一个具有滚动切换、拖拽旋转交互界面的Three.js浏览器;并将整个成果部署为一个静态Space。唯一的人工输入仅仅涉及审美层面:“拉远一点”、“把方尖碑换成更适合泼溅重建的物体”、“切换时的过渡拖得太久了”。

其中几个步骤是Agent根据实际情况做出的反应。宽大的玻璃金字塔泼溅重建效果不佳;细长的方尖碑索然无味;单视图重建需要推断背面。这正是“外包研发、快速迭代”的循环,正是积木经济所预言的那样,只不过这里的“研发”是一场对话。

https://huggingface.co/blog/mishig/spaces-agents-md#why-this-matters 为什么这很重要

  • **模型变得可组合。**来自不同组织的最先进泼溅模型和图像模型,无需任何集成代码即可链接使用。Hub上的开放权重目录变成了一个可调用的多媒体原语库。
  • Agent更青睐有文档且可访问的组件。 agents.md 让一个Space变得极易访问,因此Agent会更倾向于选择它,而不是那些需要手动设置的模型。这与Hashimoto对开源库的观察完全一致。
  • 障碍在于集成,而它已基本消失。 “把一句提示词变成一个可旋转的3D地标”过去是一个项目。现在,它只是流水线中的一个步骤。

https://huggingface.co/blog/mishig/spaces-agents-md#try-it-yourself 亲自尝试

让你的Agent指向某个Space的 agents.md,然后让它自由发挥:

# 图像生成
curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md
# 单图像转3D高斯泼溅
curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

将上述任一链接粘贴到你的编码Agent(如Claude Code等)中,设置好你的 HF_TOKEN,然后让它构建点什么。本画廊完整且可复现的流水线,以及调用了上述两个 agents.md 端点的脚本,都存放在这个Space的仓库 (https://huggingface.co/spaces/mishig/monuments-de-paris/tree/main) 中。

这些积木块就摆在Hub上。Agent已经知道如何拼接它们。

相似文章