搅拌机助手mcp
blender-assistant-mcp 是一个开源项目,它使用模型上下文协议(MCP)将LLM集成到Blender中。
它是一个交互式的帮助/自动化工具,可以让你释放一些你不喜欢的更平凡的3D任务,这样你就可以花更多的时间在你做的那些任务上。它擅长做一些稍微“模糊”但简单的任务,而内置的操作器本身做不到。例如“将每个选定骨骼的骨骼约束复制到其父级”或“随机化选定对象上每个动画通道上所有噪声修改器的相位值”或“为什么我的场景渲染为黑色?”???D
特征:
- 用自然语言控制搅拌机: 向Ollama LLM模型发送提示,以在Blender中执行操作。
- MCP集成: 使用模型上下文协议在AI模型和Blender之间进行结构化通信。
- 使用MCP执行代码 还有一个代码路径来创建模型可以访问的assistant_sdk,以减少上下文膨胀。
- RAG数据库 包括搅拌器手册和API参考资料的RAG数据库,助手可以访问该数据库。
- 视觉工具 它可以捕获视口并将图像发送到专用的视觉LLM,为其提供基本的“视觉”
- Olama支持: 旨在与Ollama合作,轻松进行本地模型管理。
- Ollama捆绑附加组件: 包括Ollama exe和CUDA DLLS,因此是独立安装(版本)
MCP工具:
下面是工具列表。每个工具都接受JSON风格的参数,可以作为MCP工具公开,也可以通过SDK assistant_SDK发现,以保持上下文轻量化。如果运行sdk,LLM可以使用sdk_help获取有关工具的信息。它通过“get_scene_info”维护场景的“状态”,以维护场景层次结构的当前图像,类似于使用大纲图。
- 搅拌机
- get_scene_info(场景的大纲图样式表示) - get_object_info(name)--单个对象的详细信息 - create_object(类型、名称、位置、旋转、比例、文本)--创建网格、相机、灯光、文本、曲线、空白 - modify_object(名称、位置、旋转、比例、可见)--编辑对象变换/可见性 - delete_object(name|name\[\])--删除一个或多个对象 - set_material(object_name、material_name、color)--在对象上设置或创建材质 - capture_viewport_for_vision(max_size,问题)——非阻塞视口截图+VLM分析 - list_collections()--列出场景集合和层次结构 - get_collection_info(collection_name)--特定集合的信息 - create_collection(name、parent、collections\[\])--创建一个或多个集合 - move_to_collection(object_names\[\],collection_name,unlink_from_others)--将对象移动到集合中 - set_collection_color(collection_name,color_tag)--设置集合颜色标签(Blender 4.2+) - delete_collection(collection_name,delete_objects)--删除集合(以及可选的对象) - sdk_help(tool,tools\[\])——获取assistant_sdk工具别名的JSON模式和使用示例
- 选择
- get_select()--列出所选对象 - get_active()--获取活动对象 - set_selection(object_names\[\])--按名称选择一个或多个对象 - set_active(object_name)--使对象处于活动状态 - select_by_type(object_type)--选择给定类型的所有对象(MESH、LIGHT等)
- PolyHaven
- search_polyhaven_assets(asset_type、query、limit)--查找HDRI、纹理或模型 - download_polyhaven(asset_id、file_format、resolution、apply_to_active?)--将资源下载到Blender中
- 网络
- web_search(查询,num_results)--简单的网络搜索(DuckDuckGo HTML) - search_wikimedia_image(查询,apply_to_active)--从维基媒体查找和下载免费图像 - fetch_webpage(url,max_length)——获取页面并提取文本内容 - extract_image_urls(url、min_width、max_images)--从网页中提取可能的内容图像url - download_image_as_texture(url、apply_to_active、pack_image)——下载图像并应用为纹理
- 库存照片
- search_stock_photos(源、查询、每页、方向)--在Unsplash或Pexels中搜索库存照片 - download_stock_photo(源、photo_id、apply_as_texture)--下载并应用库存照片作为纹理
- Sketchfab
- sketchfab_login(api_token)——存储经过身份验证的请求的令牌 - sketchfab_search(查询、类别、max_results)--搜索sketchfab - sketchfab_download_model(model_uid,apply_to_scene?)--下载并导入模型
- RAG(文件)
- rag_query(query、num_results、source_bias)--检索文档片段以增强提示 - rag_get_stats()--数据库统计/状态
- 代码
- execute_code(代码)——在Blender中执行Python(调用之间的持久命名空间)
自行构建:
克隆仓库
使用“build_rag_database.py”构建rag数据库-这下载了blender手册和API参考,并从中构建了一个向量数据库,用作推理时的参考-如果下载链接发生变化,您可能需要更新下载链接。
安装Ollama
使用'update_Ollama_bins.py从Ollama安装中复制exe和DLL
使用download_wheels.py下载所需的python wheels
用scripts/build_extension.py打包扩展
按照惯例安装在搅拌机中,安装后,您可以在首选项中下载模型,或将其指向现有的Ollama模型文件夹。
从Blender打开MCP中学到了很多! (https://github.com/dhakalnirajan/blender-open-mcp)
