Files
AnyImage/openspec/changes/reorganize-common-modules/proposal.md
nan c97b4a3e41 Add image selection refinement functionality with BEN2 integration
- Implemented viewport.py for handling 3D view projections, gestures, and overlay drawing.
- Created refine_image_selection.py to manage the refinement of gesture masks and output image bounds.
- Added selection module with refine_selection.py to process and crop images based on alpha channel visibility.
- Introduced __init__.py for selection module to expose refine_selection function.
2026-08-31 22:10:05 +08:00

1.9 KiB
Raw Blame History

Why

common/ 当前以功能演进过程形成分类,部分模块同时容纳数据、I/O、UI、交互与绘制职责,导致公共函数的位置不能由名称直接判断;例如通用 AI UI 函数 draw_ai_setup() 位于 image_interaction.py。重新建立稳定、可预测的模块边界,可以降低新增功能复用公共能力时的查找与依赖成本。

What Changes

  • 将 common/ 收敛为八个稳定业务模块:ai、image、region、viewport、depth、material、object 和 node。
  • 将 draw_ai_setup()、draw_ai_property() 从 Image 交互分类移至 ai.py,与 AI 环境、模型检查和 Job 参数准备形成统一入口。
  • 保留完整的 Image 生命周期于 image.py,将 View3D 坐标、手势和 Overlay 绘制统一归入 viewport.py,避免把视口交互误称为图片编辑。
  • 仅从 object.py 独立出体量较大、职责明确的材质构建函数;Modifier 和结果 Object 处理继续归入 Object 分类。
  • 更新所有 Operator 与测试的直接导入,同时同步 docs/internals/common.md 和架构索引。
  • BREAKING:删除被替代的旧模块路径,不提供重导出、转发函数或兼容层;这是仅面向项目内部源码的导入变更,不改变扩展的用户功能与公开 Blender 标识符。

Capabilities

New Capabilities

无。本变更只重构 Blender 侧内部公共函数的模块边界,不新增用户可观察行为。

Modified Capabilities

无。现有功能、Operator 协议、Job 参数和结果保持不变。

Impact

  • 主要影响 src/anyimage/common/ 及所有直接导入这些模块的 operators/、menu.py 和测试。
  • src/anyimage/server/ 的进程边界、Job 协议、模型实现和依赖均不改变。
  • 不新增依赖,不改变 Blender 类型注册、bl_idname、节点组名称或扩展打包内容。