一个智能体如何通过串联两个Hugging Face空间构建3D巴黎画廊
摘要
一个智能体将两个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:
- 图像生成:
ideogram-ai/ideogram4(https://huggingface.co/spaces/ideogram-ai/ideogram4) 将每个地标生成为干净的、深色背景的“标本”照片(埃菲尔铁塔则被生成为一个底座上的小立体模型)。输入提示词,输出图像。 - 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已经知道如何拼接它们。
相似文章
@ClementDelangue:Hugging Face 正成为代理使用和构建 AI 的平台,现在它们可以调用 100 万个 HF Spaces,完成最新专用模型所能做的一切……
Hugging Face 现允许 AI 代理调用 100 万个 Spaces,把 Hub 变成可编程平台,代理可随手调用任何专用模型或应用。
Code-as-Room:通过代理代码合成从俯视图图像生成3D房间
一种名为Code-as-Room的新型基于MLLM的代理框架,通过将俯视图图像转换为可执行的Blender代码,利用带有跨阶段记忆的结构化执行引擎来维持上下文,从而生成3D室内房间。
@haofeiyu44:我们能否将 Hugging Face Hub——这个拥有海量工件的平台——转变为一个自我进化的发现机器?我们可以……
介绍 ArtifactLinker,这是一个将 HuggingFace 建模为工件图,并利用 GNN 和 LLM 代理自动发现最先进模型和研究见解的框架。
展示HN:任何HuggingFace模型的交互式、动画化架构
一款用于可视化任何HuggingFace模型架构的交互式动画工具,对开发者和研究人员非常实用。
@scottstts: 我让 Fable 在 @threejs 中创建一座火星城市,经过6小时和几十个子代理一次完成,这是结果(10…
一位开发者展示了 AI 代理 Fable 如何经过六小时和数十个子代理,在 Three.js 中生成一座完全程序化的火星城市,并称结果超出预期。