MCPcopy
hub / github.com/BIT-DataLab/Edit-Banana / RefinementProcessor

Class RefinementProcessor

modules/refinement_processor.py:103–434  ·  view source on GitHub ↗

二次处理模块(Fallback补救) 对MetricEvaluator识别出的问题区域进行二次处理。 核心策略(保守): - 直接裁剪问题区域作为picture - 转成base64嵌入XML - 保证"所见即所得",不丢失任何内容 可选扩展(TODO): - 激进策略:对问题区域再次调用SAM3 - VLM增强:获取更精确的prompt - 局部高清化:提升小图质量

Source from the content-addressed store, hash-verified

101
102
103class RefinementProcessor(BaseProcessor):
104 """
105 二次处理模块(Fallback补救)
106
107 对MetricEvaluator识别出的问题区域进行二次处理。
108
109 核心策略(保守):
110 - 直接裁剪问题区域作为picture
111 - 转成base64嵌入XML
112 - 保证"所见即所得",不丢失任何内容
113
114 可选扩展(TODO):
115 - 激进策略:对问题区域再次调用SAM3
116 - VLM增强:获取更精确的prompt
117 - 局部高清化:提升小图质量
118 """
119
120 # 默认配置参数
121 DEFAULT_CONFIG = {
122 'min_region_area': 100, # 最小区域面积(像素),太小跳过
123 'min_region_ratio': 0.0005, # 最小区域面积比例(0.05%),太小跳过
124 'default_confidence': 0.5, # 新元素的默认置信度
125 'expand_margin': 5, # 裁剪时向外扩展的边距(像素)- 增加边距避免切边
126 'skip_if_mostly_white': True, # 是否跳过大部分为白色的区域
127 'white_threshold': 0.95, # 白色像素占比阈值 - 放宽到95%,只跳过真正纯白区域
128 }
129
130 def __init__(self, config=None):
131 super().__init__(config)
132 # 合并用户配置和默认配置
133 self.refine_config = {**self.DEFAULT_CONFIG, **(config or {})}
134
135 def process(self, context: ProcessingContext) -> ProcessingResult:
136 """
137 处理入口 - 对问题区域进行Fallback补救
138
139 Args:
140 context: 处理上下文
141
142 Returns:
143 ProcessingResult,新增的元素会被添加到context.elements中
144 """
145 self._log("开始二次处理(Fallback补救)")
146
147 # 获取问题区域
148 bad_regions = context.intermediate_results.get('bad_regions', [])
149
150 if not bad_regions:
151 self._log("没有问题区域需要处理")
152 return ProcessingResult(
153 success=True,
154 elements=context.elements,
155 canvas_width=context.canvas_width,
156 canvas_height=context.canvas_height,
157 metadata={
158 'new_elements_count': 0,
159 'regions_processed': 0,
160 'regions_skipped': 0

Callers 3

refinement_processorMethod · 0.90
refine_bad_regionsFunction · 0.85
evaluate_and_refineFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected