Blender智能助手

Blender智能助手是一个开源项目,通过Model Context Protocol (MCP)将大型语言模型(LLM)集成到Blender中,提供自然语言控制和自动化3D建模任务的功能。

  • by ChrisWilliamson11
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 ChrisWilliamson11/blender-assistant-mcp

使用说明

搅拌机助手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)