Files
dc-docs/output/feishu-docs/VQxswUOvaiUx36kPiq6cNBERnLg.md
T
2026-06-23 14:43:31 +08:00

11 KiB
Raw Blame History

VQxswUOvaiUx36kPiq6cNBERnLg

Source: https://dianchukeji.feishu.cn/wiki/VQxswUOvaiUx36kPiq6cNBERnLg

一.工作内容概述

  • 继续探索 UI 生图工作流,重点补充 Responses API / Image API 相关认知,并测试中转站 Responses API 接入效果;尝试 asset sheet 合批生成策略,验证其对多元素 UI 资源交付效率提升程度。
  • 修复项目在抖音开发者工具环境下暴露出的拼图海报渲染、飞行动画和广告刷新相关问题。

二.UI生图工作流探索

Responses API 认知补充

昨日判断的修正

昨日在分析 Codex 与 ClaudeCode 的生图交付质量差异时,曾倾向认为 Codex 之所以能够更好地完成“从效果图中拆分元素”,可能是因为 Codex 内部可以直接调用 Responses API 图像工具链。 今天进一步探索了解后发现,这个判断需要修正。 更准确的理解是:

  • OpenAI 图像生成能力可以通过 Image API 或 Responses API 使用;
  • Responses API 的图像工具可以在上下文中接收文本和图片输入,并通过 image_generation tool 生成或编辑图片;
  • 但 Codex 内置 imagegen 并不等同于直接调用 /v1/responses;
  • 如果要让 Codex 在工程脚本中调用 Responses API,仍然需要可用的 API Key、baseURL,以及对应的 /v1/responses 接口能力。 因此,昨日关于“Codex 可能直接调用 Responses API”的判断并不准确。今天先补齐了这部分认知,将几类能力重新区分清楚

Image API 与 Responses API 的区别

梳理了 Image API 和 Responses API 的区别:

  • Image API 更适合直接的图片生成或编辑任务,通常是:输入 prompt->生成图片->返回图片结果
  • 而 Responses API 更适合对话式、多步骤、多模态上下文中的图像任务。它更强调上下文理解、工具调用和多轮交互。 这也解释了为什么昨天观察到:
  • Codex / 网页 GPT 类链路更像是先对任务进行理解和转译,再执行图像生成或编辑;而 ClaudeCode 直接调用 image2 时,如果缺少中间任务拆解,更容易退化为“参考图重绘”。
  • 同样的提示词,在不同调用链路中可能被解释成不同任务。 所以问题不只是“使用哪个图像模型”,还包括:
  • 是否有上下文理解
  • 是否有 prompt revision
  • 是否能区分 generate / edit
  • 是否有 agent 参与任务转译
  • 是否能将需求拆成多步执行

中转站 Responses API 接入测试

测试目的

在确认 Codex 原生 imagegen 不能直接等同于 Responses API 后,今天尝试通过中转站接入 Responses API。 测试目标是验证:

  • 是否能在 Codex Skill 中通过中转站使用 Responses API;
  • 是否能获得类似网页版 GPT / Responses API 的多步骤图像处理效果;
  • 是否能提高 UI-Asset-Forge Skill 的交付速度;
  • 是否值得将中转站 Responses API 作为后续正式生图 provider。

测试结果

测试后发现,中转站 Responses API 在实际 Skill 流程中的优势并不明显,整体交付速度与 Codex 原生 imagegen 几乎持平。 主要表现为:

  • 接入链路变长,需要额外维护 API Key、baseURL、请求格式和返回解析;
  • 网络通信耗时增加;
  • 中转站稳定性会直接影响生成速度;
  • 接口兼容情况不完全可控; 因此,虽然中转站 Responses API 理论上可以作为一种 provider 接入,但它没有显著提升当前 Skill 的实际交付效率。

对比结论

对比项 中转站 Responses API Codex 原生 imagegen 接入成本 较高,需要配置和适配接口 较低,直接使用 Codex 原生能力 稳定性 受中转站影响 相对更直接 交付速度 与原生 imagegen 几乎持平 与中转方案接近 多图输出 内部处理 需流程规划 维护成本 较高 较低 当前优化价值 不明显 更适合作为主流程基础 最终结论是:中转站 Responses API 不是当前 UI-Asset-Forge Skill 提效的关键方向

Asset Sheet 合批生成策略尝试

在确认“更换生图接口”不是主要优化方向后,今天开始将优化重点转向 Codex 原生能力下的生图策略设计,重点尝试 asset sheet 合批生成。

优化思路

之前的流程更偏向逐元素生成或逐元素拆分,虽然结果相对可控,但整体效率不够高。尤其是在一个界面包含二十多个元素时,如果每个元素都单独生成、单独处理,会导致整体交付时间明显拉长。 因此今天尝试将部分资源按照类型、尺寸和功能进行合批:

  • 小图标类资源合批生成;
  • 装饰件类资源合批生成;
  • 尺寸接近、风格相近的元素放入同一张 asset sheet;
  • 主结构件、背景板、关键按钮等仍然保留单独生成;
  • 文字类或对细节还原要求较高的资源尽量单独处理。 这样可以减少生图次数,也能减少 agent 在多个相似资源之间重复规划和调用的成本。

初步测试效果

在初步测试中,一个包含二十多个元素的界面资源任务,整体交付时间已经可以控制在约 10 分钟左右。 这说明,相比继续追求更复杂的生图接口,直接优化 Codex 原生能力下的生成批次和资源组织方式,反而更能带来实际提效。

当前仍存在的问题

虽然 asset sheet 合批生成已经能提升效率,但目前仍然存在一些待优化点:

  • asset sheet 中的元素仍需要后续切分;
  • 如果切分依赖 agent 主观判断,仍然会增加执行负担;
  • 元素之间的间距、边界、透明背景处理还需要更稳定的规则;
  • 部分元素可能会在合批生成时出现比例偏差或细节漂移;
  • 失败项需要从合批结果中识别出来,再单独补生成。 因此,asset sheet 合批本身只能解决“减少生成次数”的问题。后续还需要配合本地切图脚本,才能进一步压缩整体交付时间。

4. 后续 Skill 优化方向

继续使用 Codex 原生 imagegen 作为主要生图入口

由于中转站 Responses API 没有明显速度优势,且会增加额外不稳定因素,后续暂时不再将其作为核心优化方向。后续主流程仍以 Codex 原生 imagegen 为基础,重点优化:

  • 如何减少请求次数;
  • 如何提高批量素材生成效率;
  • 如何减少 agent 反复处理单个资源;
  • 如何把确定性处理交给脚本完成。

完善 asset sheet 合批生成策略

今天已经验证 asset sheet 合批生成具备提效价值,后续需要进一步规范合批规则。进一步形成固定的 manifest 结构,让 agent 先输出资源清单和合批计划,再由 Codex 按计划生成 asset sheet。

将切图交给本地脚本完成

后续需要把“切图”从 agent 的主观执行中拆出来,改为本地脚本处理。 本地脚本主要负责:

  • 从 asset sheet 中识别素材区域;
  • 自动裁切单个资源;
  • 添加 padding;
  • 去除背景;
  • 输出透明 PNG;
  • 按 manifest 命名;
  • 检查尺寸、透明通道和边缘留白;
  • 输出失败项列表,交给 agent 决定是否补生成。 当前二十多个元素的界面资源已经可以控制在 10 分钟左右交付。后续如果引入本地切图脚本,并减少不必要的中间步骤,时间可以进一步压缩。

三.抖音开发者平台适配问题

遇到的问题汇总

昨日在将项目构建并导入抖音开发者工具后,已经发现抖音小游戏环境和 Cocos 本地环境存在差异,主要体现在运行环境、代码依赖关系、关卡生成性能等方面。在对上述问题进行初步修复和验证后,又发现拼图海报界面在抖音环境下存在渲染和动画异常,因此今天重点对该模块进行了排查和修复。

拼图海报图片显示异常

在抖音小游戏环境中,拼图碎片形状可以正常显示,但海报图片纹理无法正常加载。 排查后确认,该问题主要来自抖音小游戏的 GPU-only 纹理机制。图片上传到 GPU 后,CPU 侧图片数据可能被释放,导致原先在 Web / 微信环境中可用的图片读取方式,在抖音环境中无法稳定使用。 已针对抖音平台补充新的图片加载兼容方案,通过多级加载和兜底处理,保证海报图片能够被正常读取并绘制到碎片上。

广告奖励后飞行碎片尺寸异常

玩家看完广告获得拼图碎片后,飞向海报区域的碎片尺寸明显偏大,和最终落到海报中的碎片大小不一致。 该问题主要是由于抖音环境下无法继续使用原有的部分渲染方式,需要走 Canvas2D 降级渲染路径。在这个过程中,静态碎片和飞行碎片对缩放比例的处理不一致,导致 pixelScale 被重复计算,从而造成动画碎片尺寸异常。 已重新调整飞行碎片的渲染尺寸和动画缩放逻辑,使飞行动画中的碎片大小与最终海报碎片保持一致。后续需持续关注清晰度和动画表现。

广告奖励后海报碎片闪烁

玩家看完广告后,面板中的海报碎片会出现短暂闪烁的情况。 排查后确认,问题原因是广告奖励回调触发了海报区域的整体重建。由于图片加载存在异步过程,重建期间会短暂进入默认显示状态,从而产生闪烁。 已将广告奖励后的刷新方式从"整体重建"调整为"原地更新":

  • 不再销毁并重建整个海报区域;
  • 只更新新增碎片的收集状态;
  • 图片加载期间避免回退到纯色块显示;
  • 资源更新完成后直接替换对应碎片显示。 调整后,广告奖励回调不再触发整块海报区域重建,界面刷新过程更加稳定。

2.思考与复盘

从这两天的问题来看,Cocos 本地环境和抖音小游戏环境之间存在明显差异。本地预览正常,并不代表在抖音开发者工具或真机环境中也能稳定运行。尤其是图片资源、Canvas 渲染、组件注册、代码依赖、性能消耗等环节,都可能因为平台环境不同而暴露出新的问题。 本次拼图海报问题的排查也暴露出一个问题:前期对抖音平台底层能力的了解还不够充分,导致最开始排查时更多是基于 Cocos 本地经验进行判断,花费了一定试错成本。后续遇到类似平台适配问题时,应优先确认官方文档和平台能力边界,再决定具体实现方案。 整体来看,今天的修复不仅解决了拼图海报模块的显示问题,也进一步明确了后续抖音平台适配的工作方式: 以抖音开发者工具和真机结果为准,以官方文档为依据,逐步梳理平台差异,并针对高风险模块提前做兼容和降级处理。 已安装了Context7插件,让 ClaudeCode 在处理平台适配问题前优先查询官方文档,减少因平台能力判断不清导致的试错成本。