跳转至

图像生成

世界模拟引擎把图像视为链接回图的生成媒体。图像不只是文件夹中的文件:生成图像记录会保存 component、workflow name、canonical identity tags、transient tags、negative prompt,并链接到实体、turn 或 presentation block。

实现分为按目标区分的图像生成组件,以及 turn 级触发器。

生成目标

目标 组件 描绘内容
角色状态图 CharacterImageGenerator 单个角色在中性背景上的 standalone reference/state portrait。
角色环境肖像 CharacterPortraitImageGenerator 位于当前地点中的一个角色,可由某个 turn 或 presentation block 提供上下文。
地点状态图 LocationImageGenerator 单个地点的宽幅 establishing image,不包含角色。
物品状态图 ItemImageGenerator 单个物品的 product-style standalone 图像。
场景图 SceneImageGenerator 某个地点中当前在场的角色,可由 turn 叙事提供上下文。

状态图可以使用 world 或 simulation 作为 source_id,因为它们只需要模型、提示词和 workflow 配置。角色环境肖像和场景图是 simulation-scoped,因为它们依赖实时角色位置和当前场景状态。

手动生成

手动生成是显式的,由用户触发。API 提供以下端点:

  • 角色、地点和物品状态图;
  • simulation 中的角色环境肖像;
  • simulation 地点的场景图。

基于 turn 的请求可以包含 turn_id 和可选 block_id。如果提供,生成媒体会链接到整个 turn 或某个具体 presentation block,让前端可以把图像显示在请求它的叙事、动作或发言片段旁边。

自动生成

自动 turn 图像由 ImageGenerationConfig 控制:

模式 行为
manual 不自动生成。图像只由显式请求生成。
auto 检查 turn 是否具有视觉重要性。重要 turn 会生成场景图。
always 每个已提交 turn 都尝试生成场景图。

auto 模式中,TurnImageTrigger 先应用确定性的 action-type 检查。移动、攻击、物品操作、姿势变化以及类似物理变化会被视为重要。等待、纯发言、观察和查看通常不重要。如果动作类型无法决定,则由 turn_image_trigger LLM 组件判断。

fallback_turns 防止长时间没有新图像。如果距离上一次生成 turn 图像已经经过足够多 turn,auto 模式会强制生成场景图,即使重要性检查结果为否。

Canonical 和 transient 图像提示词

图像流水线会把永久身份和临时状态分开:

  • Canonical identity 捕获稳定视觉特征:角色外观、固定物体特征或持久地点特征。
  • Transient prompt content 捕获当前姿势、表情、服装、光照、关系、动作或场景瞬间。

第一次生成的 cover image 会建立 canonical identity。之后的生成会复用它,并只要求 LLM 生成 transient prompt content。组合图像,例如角色环境肖像和场景图,会先确保每个参与者都有 canonical identity,然后把这些身份和新的 turn-grounded transient details 组合起来。

flowchart TD
    Request["图像请求"] --> Identity{"已有 canonical identity?"}
    Identity -->|"否"| FullPrompt["构建 canonical + transient prompt"]
    Identity -->|"是"| TransientPrompt["只构建 transient prompt"]
    FullPrompt --> Comfy["ComfyUI workflow"]
    TransientPrompt --> Comfy
    Comfy --> Media["GeneratedImageMediaFile"]
    Media --> Links["链接到实体、turn 或 block"]

配置

每个图像目标都会使用:

  • 用于 prompt 构建或 turn 重要性判断的 chat model config;
  • 用于执行 ComfyUI workflow 的 image model config。

组件分配很重要。一个 simulation 可以用一个 LLM 进行普通叙事,用另一个小模型进行 turn_image_trigger 判断,并为 scene_image_generator 使用独立图像配置。

自动生成是 fire-and-forget。失败会记录日志并被吞掉,因此图像后端问题不会破坏核心 turn 流水线。