欢迎光临
我们一直在努力

Codex 接入 Blender 实现AI自动绘制3D模型

Codex 接入 Blender 绘制3D模型

1. 前言

这次接入分为两层核心目标:

  • 把 CLI-Anything 作为 Codex 可发现的 skill 接入,让 Codex 识别这套工作流;
  • 部署 CLI-Anything 内置的 cli-anything-blender 工具,打通本机 Blender 的命令行调用链路。
  • 简单来说:

    • Codex skill 层:让 Codex 理解 CLI-Anything 工作逻辑;
    • cli-anything-blender 层:提供 Blender 命令行调用能力;
    • 本机 blender.exe:执行实际的渲染、预览等任务。

    我们先来看看最终效果吧(想快速安装的,可以看最后有个快速方法安装)

    在这里插入图片描述

    2. 本地环境信息

    本次实操的核心环境路径:

    • CLI-Anything 仓库:D:\\浏览器下载\\CLI-Anything
    • Blender 可执行文件:D:\\Blander\\blender.exe
    • Python 环境:C:\\Users\\旷世\\AppData\\Local\\Programs\\Python\\Python313\\python.exe
    • Codex skill 安装目录:C:\\Users\\旷世\\.codex\\skills

    仓库已内置核心文件,无需从零开发:

    • blender\\agent-harness\\(Blender 命令行封装)
    • codex-skill\\scripts\\install.ps1(Codex 技能安装脚本)
    • cli-hub\\(CLI 管理与预览工具)

    如果想自己下载就去github自己下载: -https://github.com/HKUDS/CLI-Anything 在这里插入图片描述 为什么用这个CLI来接入,这个是我用过比较好用的开源项目了,他支持blender的所有接口 在这里插入图片描述

    3. 第一步:确认 CLI-Anything 内置 Blender 适配层

    验证仓库目录结构,确认以下路径存在(这是我的文件下载的存放路径,你们以你们的实际路径为准):

    • D:\\浏览器下载\\CLI-Anything\\blender\\agent-harness
    • D:\\浏览器下载\\CLI-Anything\\codex-skill

    核心结论:

  • Codex 接入逻辑已实现,无需自定义安装脚本;
  • Blender CLI 封装已完成,无需从零设计命令。
  • blender\\agent-harness\\setup.py 已声明可安装命令:

    clianythingblender=cli_anything.blender.blender_cli:main

    执行 pip install -e . 后,系统会生成 cli-anything-blender 全局命令。

    4. 第二步:安装 Codex Skill

    执行安装脚本

    powershell NoProfile ExecutionPolicy Bypass File .\\codex-skill\\scripts\\install.ps1

    脚本核心作用

    将 CLI-Anything 的技能资源复制到 Codex 技能目录:C:\\Users\\旷世\\.codex\\skills\\cli-anything,包含:

    • 文档类:HARNESS.md、commands/*.md、guides/*.md
    • 脚本类:repl_skin.py、preview_bundle.py、skill_generator.py

    关键操作

    安装完成后必须重启 Codex,让 Codex 重新扫描技能目录,加载新接入的 CLI-Anything 能力。

    5. 第三步:配置 Blender 系统路径

    问题根源

    cli-anything-blender 通过 shutil.which("blender") 查找 Blender 可执行文件(源码路径:blender_backend.py:14),默认不会扫描 D:\\Blander\\blender.exe。

    解决方案

    将 D:\\Blander 加入用户环境变量 PATH:

  • 读取当前用户 PATH;
  • 检查 D:\\Blander 是否存在,不存在则追加;
  • 为当前 Shell 临时补全 PATH,确保立即生效。 我的blender安装在D盘,所以可以在环境变量里制定路径: 此电脑 → 右键 属性 → 高级系统设置 → 环境变量 (或Win + R输入sysdm.cpl) 在这里插入图片描述 在这里插入图片描述 双击path进入环境变量,查看我的blender(这里是我开始安装blender时写错了文件夹名称)安装位置是否存在,不存在就新建一个加进去,以你实际的路径为准 在这里插入图片描述
  • 验证命令

    where.exe blender # 验证路径解析
    blender version # 验证版本(本次为 Blender 4.0.2)

    6. 第四步:安装 Blender CLI 封装层

    进入目录

    cd D:\\浏览器下载\\CLIAnything\\blender\\agent-harness

    执行可编辑安装

    python m pip install e .

    安装说明

    -e(editable install)特性:

  • 将 cli-anything-blender 命令安装到 Python Scripts 目录;
  • 源码修改后无需重新安装,立即生效。
  • 验证命令

    clianything-blender help # 确认命令可用

    7. 第五步:安装 cli-hub 管理工具

    cli-hub 负责 CLI-Anything 的预览、管理能力(非必需,但建议安装):

    进入目录

    cd D:\\浏览器下载\\CLIAnything\\clihub

    解决编码问题后安装

    Windows 默认编码为 GBK,直接安装会触发 UTF-8 解码错误,需临时指定编码:

    $env:PYTHONUTF8='1'
    python m pip install e .

    8. 第六步:全链路真实验证

    验证流程

    执行完整的 Blender 渲染链路:

  • 新建 scene JSON → 2. 添加几何体 → 3. 创建并绑定材质 → 4. 添加相机/光源 → 5. 生成渲染脚本 → 6. 调用 Blender 后台执行。
  • 测试目录

    C:\\Users\\旷世\\Documents\\Codex\\2026-06-20\\hkuds-cli-anything-https-github-com\\outputs\\blender-cli-test

    核心产出文件

    • scene.blend-cli.json(场景配置)
    • _render_script.py(渲染脚本)
    • render.png(最终渲染图)

    验证价值

    拆分问题定位维度:

  • CLI 层是否能正确生成 Blender 脚本;
  • Blender 层是否能执行脚本并输出结果。
  • 9. 第七步:修复 Windows 中文路径兼容问题

    首次执行触发 2 个典型 Windows 问题,以下是修复方案:

    9.1 脚本文件编码问题

    问题描述

    生成的 _render_script.py 包含中文路径,文件写入未指定 UTF-8,Blender 读取时解码失败。

    修复代码

    修改 render.py:220:

    # 原代码
    # with open(script_path, "w") as f:
    # 修复后
    with open(script_path, "w", encoding="utf-8") as f:

    9.2 Windows 反斜杠转义问题

    问题描述

    路径中的 \\U 被 Python 误认为 Unicode 转义符,导致脚本报错。

    修复代码

    在 bpy_gen.py:12 新增安全字符串生成函数:

    def _py_string(value: Any) > str:
    return json.dumps(str(value), ensure_ascii=False)

    应用场景

    将以下路径拼接逻辑替换为安全写法:

    • HDRI 路径加载(bpy_gen.py:152)
    • 渲染输出路径(bpy_gen.py:540)
    • 渲染完成日志输出(bpy_gen.py:560)

    10. 第八步:修复 Blender 输出解码问题

    问题现象

    preview capture 功能触发 UnicodeDecodeError: 'gbk' codec can't decode,原因是 Python 读取 Blender 输出时使用系统默认编码(GBK)。

    修复方案

    统一设置 Blender 子进程输出编码为 UTF-8,修改 blender_backend.py:

    • 30 行、56 行:添加 encoding="utf-8"、errors="replace"
    • 85 行:临时脚本写入时指定 encoding="utf-8"

    核心代码示例:

    # 子进程调用示例
    subprocess.run(
    ["blender", "–background", "–python", script_path],
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    encoding="utf-8",
    errors="replace"
    )

    11. 第九步:修复 Windows 符号链接权限问题

    问题现象

    执行 preview live start 时触发 WinError 1314,原因是 Windows 未开启开发者模式/终端无创建符号链接权限。

    修复逻辑

    修改 preview.py:215,实现“符号链接失败时自动降级”:

  • 尝试创建 current -> bundle_dir 符号链接;
  • 失败则复制 bundle 到 current 目录,并写入 current_target.txt 记录原路径。
  • 核心价值:无需管理员权限/开发者模式,保持 current/manifest.json 访问逻辑不变。

    12. 第十步:全链路最终验证

    12.1 命令层验证

    clianything-blender help
    clihub help
    where.exe blender

    12.2 真实渲染验证

    clianything-blender json project scene.blend-cli.json render execute render.png overwrite
    blender background python _render_script.py

    验证结果:成功生成 render.png,无空白/报错。

    12.3 预览功能验证

    # 生成预览包
    clianything-blender json project scene.blend-cli.json preview capture recipe quick
    # 启动实时预览
    clianything-blender json project scene.blend-cli.json preview live start recipe quick mode manual
    # 单元测试
    python m pytest cli_anything\\blender\\tests\\test_core.py q

    测试结果:165 个用例全部通过。

    13. 接入成果总结

    已打通完整链路: Codex → CLI-Anything skill → cli-anything-blender → blender.exe

    解决的核心 Windows 兼容问题:

  • Blender 路径未加入系统 PATH;
  • 中文路径/反斜杠导致脚本解码失败;
  • 无权限创建符号链接导致实时预览失效。
  • 当前链路状态:命令可执行、Blender 可调用、脚本可生成、渲染可输出、预览可工作。

    14. 日常使用指南

    14.1 前置操作

    重启 Codex,让 Codex 加载新安装的 CLI-Anything 技能。

    14.2 核心命令

    # 查看帮助
    clianything-blender help

    # 新建场景
    clianything-blender scene new o scene.blend-cli.json

    # 生成预览
    clianything-blender project scene.blend-cli.json preview capture recipe quick

    # 启动实时预览
    clianything-blender project scene.blend-cli.json preview live start recipe quick mode manual

    # 预览管理(cli-hub)
    clihub previews inspect <预览目录>
    clihub previews html <预览目录> # 生成 HTML 预览页
    clihub previews watch <会话目录> open # 实时监控并打开预览

    15. 源码修改清单

    为适配 Windows 环境,共修改 4 个核心文件:

    文件路径修改点解决问题
    blender/agent-harness/cli_anything/blender/utils/bpy_gen.py:12 新增 _py_string 函数,安全生成路径字符串 中文路径/反斜杠转义
    blender/agent-harness/cli_anything/blender/core/render.py:220 脚本写入时指定 encoding="utf-8" 脚本编码解码错误
    blender/agent-harness/cli_anything/blender/utils/blender_backend.py 统一子进程输出编码为 UTF-8 Blender 输出解码失败
    blender/agent-harness/cli_anything/blender/core/preview.py:215 符号链接失败时自动降级为文件复制 Windows 无符号链接权限

    16. 源码目录迁移/删除说明

    16.1 初始限制(不可删除)

    初期使用 pip install -e .(可编辑安装),Python 仅创建源码目录的引用,未复制完整代码到 site-packages,删除源码目录会导致命令失效。

    16.2 转换为独立安装(可删除源码)

    步骤 1:清理残留

    删除 Python site-packages 中残留的临时目录(如 ~lick、~lick-8.4.1.dist-info)。

    步骤 2:卸载可编辑版本

    python m pip uninstall y clianything-blender clianything-hub

    步骤 3:重新安装为普通包

    $env:PYTHONUTF8='1'
    # 不更新依赖,仅安装包本体
    python m pip install no-deps "D:\\浏览器下载\\CLI-Anything\\blender\\agent-harness"
    python m pip install no-deps "D:\\浏览器下载\\CLI-Anything\\cli-hub"

    16.3 验证独立安装

    # 检查安装状态(无 Editable project location 即为成功)
    python m pip show clianything-blender clianything-hub

    # 脱离源码目录验证命令
    cd ~ # 切换到非源码目录
    clianything-blender help
    clihub previews inspect <预览目录>

    16.4 最终结论

    完成上述步骤后,D:\\浏览器下载\\CLI-Anything 源码目录可安全删除,原因:

  • Codex skill 已复制到 C:\\Users\\旷世\\.codex\\skills\\cli-anything;
  • cli-anything-blender/cli-hub 已安装到 Python site-packages;
  • 全链路验证脱离源码目录仍可正常运行。
  • 17. 最终状态

    组件状态依赖关系
    Codex skill 独立存在 无(已复制到 Codex 目录)
    cli-anything-blender 独立存在 仅依赖 Python 环境
    cli-hub 独立存在 仅依赖 Python 环境
    blender.exe 独立存在 已加入系统 PATH
    CLI-Anything 源码目录 可删除 无运行依赖

    18. 最快方法(AI安装法)

    提示词:

    HKUDS/CLI-Anything帮接入这个CLI,并接入我电脑的blender,你看可以吗,我已经下载好在D:\\浏览器下载\\CLI-Anything 在这里插入图片描述

    然后AI就直接帮你接入了

    19. 测试绘画


    提示词:/CLI-Anything 帮我用blender画一个哆啦A梦 在这里插入图片描述


    在这里插入图片描述 总体来说,该CLI建设复杂的3D建模效果不咋滴,但绘制2D和建筑这些有棱有角的比较擅长

    赞(0)
    未经允许不得转载:171主机测评 » Codex 接入 Blender 实现AI自动绘制3D模型
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址