GPT-6 Astra 是 OpenAI 在 2026 年公开的旗舰模型,Blender 是可用 Python 扩展的 3D 创作环境。把两者接起来,最稳的方式不是直接操控界面,而是让 GPT-6 先生成可审查的 Blender 脚本,再由插件写入文本块或执行。官方模型页给出 1,050,000 token 上下文和 128,000 token 最大输出,足够支撑复杂建模脚本与分步修正。


先说结论

GPT-6 + Blender 的最佳姿势,是让模型负责“写脚本”,让 Blender 负责“执行和预览”。

这样做有三个好处:

  1. 模型输出可审查

  2. Blender 里的修改可回滚

  3. 同一套流程能反复复用

如果你想把这套工作流扩展到多款主流大模型,也可以把模型接入层放到兼容 OpenAI 接口的统一入口里。 脚本逻辑不变,只换 base_urlmodel

GPT-6 Astra 是什么

OpenAI 官方模型页把 GPT-6 Astra 放在 API 文档里,重点不是“聊天”,而是更强的推理、工具调用和长上下文处理。

官方页里最值得记住的 3 个数

指标

数值

来源

上下文窗口

1,050,000 tokens

OpenAI 官方模型页(2026)

最大输出

128,000 tokens

OpenAI 官方模型页(2026)

工具类型

4 类

functions / web search / file search / computer use

这意味着它很适合做“先理解需求,再生成代码,再修正代码”的工作流。

为什么适合 Blender

  • 长上下文适合吃进场景约束、命名规则、材质风格和渲染要求

  • 大输出适合生成较完整的 Blender 脚本

  • 工具能力适合配合外部文件、脚本和调试步骤

但在 Blender 里,最推荐的仍然是“先生成、后审查、再运行”。

Blender 的 Python API 能做什么

Blender 官方 quickstart(2026)列了 10 项能力:

  • 编辑界面能改到的任何数据

  • 修改用户偏好、快捷键和主题

  • 创建菜单、头部栏和面板

  • 创建新工具和交互工具

  • 在 3D 视图里绘制

这说明 Blender 不是只能手工点界面,它本来就支持用 Python 把重复劳动自动化。

这篇教程要搭什么

我们做一个最小可用插件:

  • 左侧面板输入需求

  • 点击按钮调用 GPT-6 Astra

  • 模型返回 Blender Python 脚本

  • 脚本写入文本块,先人工检查,再执行

第一步:准备环境

先准备这几个东西:

  1. Blender 4.x

  2. Python 3.11+ 环境

  3. openai Python SDK

  4. OPENAI_API_KEY

安装 SDK:

pip install openai

如果你后面想把同一套脚本切到多模型路由,兼容 OpenAI 协议的统一入口会更省事。 比如把模型接入放到七牛云 AI 大模型广场这类统一接口上,插件代码基本不用改。

第二步:写一个 Blender 插件

把下面内容保存成 gpt6_blender_addon.py

bl_info = {
    "name": "GPT-6 Blender Assistant",
    "author": "OpenAI + Blender",
    "version": (0, 1, 0),
    "blender": (4, 0, 0),
    "location": "View3D > Sidebar > GPT-6",
    "description": "Generate Blender Python scripts with GPT-6 Astra",
    "category": "3D View",
}

import os
import bpy
from bpy.props import StringProperty, EnumProperty, IntProperty
from bpy.types import Operator, Panel
from openai import OpenAI

MODEL_ID = "gpt-6-astra"


def make_client():
    api_key = os.getenv("OPENAI_API_KEY")
    if not api_key:
        raise RuntimeError("OPENAI_API_KEY is not set")
    return OpenAI(api_key=api_key)


def build_prompt(user_prompt: str) -> str:
    return f"""
You are a senior Blender Python assistant.
Write only valid Blender Python code for Blender 4.x.
Use bpy only.
Do not add markdown fences or explanations.
Keep the script safe and reviewable.

Task:
{user_prompt}
""".strip()


class GPT6BLENDER_OT_generate_script(Operator):
    bl_idname = "gpt6blender.generate_script"
    bl_label = "Generate Script"
    bl_options = {"REGISTER"}

    def execute(self, context):
        prompt = context.scene.gpt6_prompt.strip()
        if not prompt:
            self.report({"ERROR"}, "Prompt is empty")
            return {"CANCELLED"}

        try:
            client = make_client()
            response = client.responses.create(
                model=MODEL_ID,
                input=build_prompt(prompt),
                reasoning={"effort": context.scene.gpt6_reasoning},
                max_output_tokens=context.scene.gpt6_max_tokens,
            )
            script = response.output_text.strip()
        except Exception as exc:
            self.report({"ERROR"}, str(exc))
            return {"CANCELLED"}

        text = bpy.data.texts.get("gpt6_generated.py") or bpy.data.texts.new("gpt6_generated.py")
        text.clear()
        text.write(script)
        self.report({"INFO"}, "Script written to Text Editor: gpt6_generated.py")
        return {"FINISHED"}


class GPT6BLENDER_PT_panel(Panel):
    bl_label = "GPT-6 Assistant"
    bl_idname = "GPT6BLENDER_PT_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "GPT-6"

    def draw(self, context):
        layout = self.layout
        layout.prop(context.scene, "gpt6_prompt", text="")
        layout.prop(context.scene, "gpt6_reasoning", expand=True)
        layout.prop(context.scene, "gpt6_max_tokens")
        layout.operator("gpt6blender.generate_script", icon="TEXT")


classes = (
    GPT6BLENDER_OT_generate_script,
    GPT6BLENDER_PT_panel,
)


def register():
    for cls in classes:
        bpy.utils.register_class(cls)

    bpy.types.Scene.gpt6_prompt = StringProperty(
        name="Prompt",
        default="Create a simple studio setup with a cube, camera, and three-point lighting.",
    )
    bpy.types.Scene.gpt6_reasoning = EnumProperty(
        name="Reasoning",
        items=[
            ("low", "Low", ""),
            ("medium", "Medium", ""),
            ("high", "High", ""),
        ],
        default="medium",
    )
    bpy.types.Scene.gpt6_max_tokens = IntProperty(
        name="Max Tokens",
        default=2000,
        min=256,
        max=8000,
    )


def unregister():
    del bpy.types.Scene.gpt6_prompt
    del bpy.types.Scene.gpt6_reasoning
    del bpy.types.Scene.gpt6_max_tokens

    for cls in reversed(classes):
        bpy.utils.unregister_class(cls)

第三步:安装和启用

  1. 打开 Blender

  2. 进入 Edit > Preferences > Add-ons

  3. Install... 选择这个 .py 文件

  4. 勾选启用

  5. 确保当前 Blender 进程能读到 OPENAI_API_KEY

然后在 View3D > Sidebar > GPT-6 里输入需求。

推荐的提示词写法

  • 明确对象数量

  • 明确镜头角度

  • 明确材质风格

  • 明确渲染引擎

  • 明确输出要求

例如:

Create a clean product-shot scene for a black headphone stand.
Use a studio light setup, a camera at 35mm, Cycles renderer, and a dark neutral background.
Return only Blender Python code.

第四步:先审查,再运行

不要让模型直接帮你无脑执行脚本。

更稳的流程是:

  1. 让 GPT-6 生成脚本

  2. 检查是否用了正确的 bpy API

  3. 看是否有危险删除操作

  4. 在文本块里手动运行

常见检查点

  • 有没有误删场景对象

  • 有没有写错 bpy.ops

  • 有没有在界面回调里发网络请求

  • 有没有把长任务放进阻塞式逻辑里

Blender 官方文档也强调,脚本适合创建面板、工具和数据修改,但不是拿来乱塞一切逻辑的。

第五步:把教程变成真正可复用的工具

当你跑通第一版后,可以继续加这几层:

  • 预设模板:产品图、室内图、角色灯光

  • 一键导出:把结果写入 .py

  • 参数面板:分辨率、采样、引擎、输出目录

  • 多模型切换:不同任务走不同模型

如果你做的是团队工具,建议把“脚本生成”和“脚本执行”拆成两个按钮。这样出问题时更容易回滚。

FAQ

Q:GPT-6 Astra 能直接控制 Blender 界面吗?
可以做相关自动化,但更稳的是让它先生成脚本,再由 Blender 执行。这样更可审查,也更容易调试。

Q:为什么不用一次让模型输出整个完整项目?
因为 Blender 场景脚本一旦过长,调试成本会很高。先做最小可用插件,再逐步加参数和预设更稳。

Q:Blender 里的 Python 脚本会不会很难接 API?
不难。官方 API 本来就支持面板、工具、数据修改和视图绘制,插件化是它的正常用法。

Q:要不要把脚本直接自动执行?
不建议。对生成式脚本来说,先人工审查再运行是最省时间的长期方案。

收尾

这套方法的核心不是“让 AI 替你点按钮”,而是把 Blender 变成一个能接收、审查和执行脚本的工作台。GPT-6 Astra 负责理解复杂需求并生成高质量代码,Blender Python API 负责把这些代码落到真实场景里。

如果你要做的是稳定、可复用、可排错的 3D 自动化,这条路线比纯聊天式操作更靠谱。

延伸阅读