IMG_Worker/user_logs/1.log

1221 lines
319 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[2026-03-02 20:46:43,629] [MainThread] [INFO] [loggerModule.py:info:455] API 서버 시작
[2026-03-02 20:46:43,643] [MainThread] [INFO] [loggerModule.py:info:455] 워커 프로세스 기동: PID=6696
[2026-03-02 20:46:44,691] [LogListener] [DEBUG] [loggerModule.py:debug:449] ImageWorker 프로세스 기동 (PID=6696, Name=ImageWorkerProcess)
[2026-03-02 20:46:44,725] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔧 ImageProcessor3 초기화 시작...
[2026-03-02 20:46:44,725] [LogListener] [DEBUG] [loggerModule.py:debug:449] tracemalloc 메모리 추적 시작
[2026-03-02 20:46:44,764] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ DirectML 환경 준비 완료 (Windows DirectX 12 기반)
[2026-03-02 20:46:44,765] [LogListener] [DEBUG] [loggerModule.py:debug:449] === 🚀 DirectML GPU 상태 초기화 시작 🚀 ===
[2026-03-02 20:46:44,765] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🎯 사용자 GPU 가속 요청: False
[2026-03-02 20:46:44,765] [LogListener] [DEBUG] [loggerModule.py:debug:449] 💻 현재 운영체제: Windows
[2026-03-02 20:46:44,765] [LogListener] [DEBUG] [loggerModule.py:debug:449] GPU 가속이 비활성화됨 (toggle_states['use_cuda'] = False)
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔒 안전한 CPU 모드로 모든 GPU 설정 강제 비활성화
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔧 ImageProcessor3 GPU 상태 요약:
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] - CUDA 사용 가능: False
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] - toggle_states['use_cuda']: NOT_SET
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] - GPU 하드웨어 정보: {}
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] ImageProcessor3 Init toggle_states: {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': True, 'local_rembg_model_path': 'C:\\Program Files\\ImgWorker\\lib\\modules\\rembg_models', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\ImgWorker\\lib\\modules\\migan_onnx\\migan_pipeline_v2.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto'}
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: False
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] debug_images 디렉토리 이미 존재: C:\Program Files\ImgWorker\lib\modules\debug_images
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] self.font_path: C:\Program Files\ImgWorker\lib\modules\fonts\HakgyoansimDunggeunmisoTTFB.ttf
[2026-03-02 20:46:44,766] [LogListener] [DEBUG] [loggerModule.py:debug:449] toggle_states font_path: C:\Program Files\ImgWorker\lib\modules\fonts\HakgyoansimDunggeunmisoTTFB.ttf
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] self.TEMP_IMAGE_DIR: C:\ProgramData\ImgWorker\work
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] self.debugging_save_Dir: C:\Program Files\ImgWorker\lib\modules\debug_images
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] self.unwanted_texts: {}
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] self.inpaint_method: migan
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] Image.MAX_IMAGE_PIXELS set to 20000000
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] ONNX 모델 타입 설정값: 자동 선택, GPU 정보: {}
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] 자동 선택 모드: GPU 추천 모델 simp 사용
[2026-03-02 20:46:44,767] [LogListener] [DEBUG] [loggerModule.py:debug:449] ONNX OCR 모델 타입 결정: simp (GPU: False)
[2026-03-02 20:46:44,769] [LogListener] [DEBUG] [loggerModule.py:debug:449] ONNX OCR 모듈 CPU 모드로 설정
[2026-03-02 20:46:44,769] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 ONNX TextSystem 초기화 시작 (CPU 모드)
[2026-03-02 20:46:44,769] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 ONNX TextSystem 초기화 시작 (CPU 모드)
[2026-03-02 20:46:47,696] [LogListener] [DEBUG] [loggerModule.py:debug:449] 문자 사전 파일 UTF-8 확인 완료: C:\Program Files\ImgWorker\lib\modules\onnx_ocr_module\dict\ppocr_keys_v1.txt
[2026-03-02 20:46:47,873] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ ONNX TextSystem 초기화 완료 (CPU + SIMP (호환성) 모델)
[2026-03-02 20:46:47,873] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ ONNX TextSystem 초기화 완료 (CPU + SIMP 모델)
[2026-03-02 20:46:47,874] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ ONNX OCR 모듈 초기화 성공 (CPU 모드)
[2026-03-02 20:46:47,875] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ ONNX OCR 모듈 초기화 성공
[2026-03-02 20:46:47,875] [LogListener] [DEBUG] [loggerModule.py:debug:449] gemma_api_base_url: http://192.168.0.146:8008
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] GemmaTranslator 연결: base=http://192.168.0.146:8008
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 모듈 초기화 완료
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] MaskModule 초기화 성공
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 모듈 초기화 완료
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] 기본 폰트: C:\Program Files\ImgWorker\lib\modules\fonts\HakgyoansimDunggeunmisoTTFB.ttf
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] TextRenderingModule 초기화 성공
[2026-03-02 20:46:47,876] [LogListener] [DEBUG] [loggerModule.py:debug:449] 폰트 로드 성공: C:\Program Files\ImgWorker\lib\modules\fonts\HakgyoansimDunggeunmisoTTFB.ttf
[2026-03-02 20:46:47,877] [LogListener] [DEBUG] [loggerModule.py:debug:449] PostImageManager 초기화 성공
[2026-03-02 20:46:47,877] [LogListener] [DEBUG] [loggerModule.py:debug:449] Request_AI_Server GPU 상태: CUDA 사용 가능=False
[2026-03-02 20:46:47,877] [LogListener] [DEBUG] [loggerModule.py:debug:449] Request_AI_Server 초기화 성공
[2026-03-02 20:46:47,877] [LogListener] [DEBUG] [loggerModule.py:debug:449] GoogleTranslate 초기화 성공
[2026-03-02 20:46:47,878] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 모델 경로 확인: C:\Program Files\ImgWorker\lib\modules\migan_onnx\migan_pipeline_v2_simplified.onnx
[2026-03-02 20:46:47,878] [LogListener] [DEBUG] [loggerModule.py:debug:449] MIGAN CUDA 사용 불가 - CPU 모드로 설정
[2026-03-02 20:46:47,878] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] GPU 관리자 전달: GPUManager, can_use_cuda: False
[2026-03-02 20:46:47,913] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] GPU 관리자 사용 가능: False
[2026-03-02 20:46:48,142] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 사용 가능한 providers: ['DmlExecutionProvider', 'CPUExecutionProvider']
[2026-03-02 20:46:48,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] DirectML 가속 활성화
[2026-03-02 20:46:48,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 최종 providers: [('DmlExecutionProvider', {}), ('CPUExecutionProvider', {})]
[2026-03-02 20:46:48,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] DirectML 가속 시도: [('DmlExecutionProvider', {}), ('CPUExecutionProvider', {})]
[2026-03-02 20:46:48,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] DirectML 가속 성공! 실제 providers: ['DmlExecutionProvider', 'CPUExecutionProvider']
[2026-03-02 20:46:48,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 입력 0: image, 형태: ['batch_size', 3, 'height', 'width'], 타입: tensor(uint8)
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 입력 1: mask, 형태: ['batch_size', 1, 'height', 'width'], 타입: tensor(uint8)
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 출력 0: result, 형태: ['ScatterNDresult_dim_0', 3, 'ScatterNDresult_dim_2', 'ScatterNDresult_dim_3'], 타입: tensor(uint8)
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 세션 준비 완료. providers=['DmlExecutionProvider', 'CPUExecutionProvider']
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] GPU 관리자 연결 완료: GPUManager
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 파이프라인 gpu_manager 속성: True, 값: <modules.gpu_utils.GPUManager object at 0x000002115BD42590>
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [MIGAN] 초기화 완료: gpu_manager 속성=True, 값=<modules.gpu_utils.GPUManager object at 0x000002115BD42590>
[2026-03-02 20:46:48,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔰 OCR 모듈 Warm-up 시작...
[2026-03-02 20:46:48,148] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:46:48,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 9.0ms
[2026-03-02 20:46:48,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 7.0ms, 인식: 0.0ms, 분류: 0.0ms
[2026-03-02 20:46:48,158] [LogListener] [WARNING] [loggerModule.py:warning:461] ⚠️ ONNX OCR 결과가 비어있습니다
[2026-03-02 20:46:48,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] ✅ OCR 모듈 Warm-up 성공
[2026-03-02 20:46:48,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔰 ImageProcessor Warmup 완료
[2026-03-02 20:46:48,165] [ResultListener] [INFO] [loggerModule.py:info:455] 워커 READY 수신
[2026-03-02 20:46:48,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] 워커 READY 신호 전송
[2026-03-02 20:46:48,166] [ResultListener] [INFO] [loggerModule.py:info:455] 워커 READY 수신
[2026-03-02 20:46:48,166] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📡 추가 READY 신호 전송 완료
[2026-03-02 20:46:48,167] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 Async Worker Loop 시작
[2026-03-02 20:46:48,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=__PING__, uid=0aebc2db-3db9-4201-b052-ad08d1a75b92
[2026-03-02 20:46:48,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=__PING__
[2026-03-02 20:46:48,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=0aebc2db-3db9-4201-b052-ad08d1a75b92
[2026-03-02 20:46:48,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=0aebc2db-3db9-4201-b052-ad08d1a75b92
[2026-03-02 20:46:48,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 대기 중(유휴)
[2026-03-02 20:48:28,313] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=update_toggle_states, uid=1ec9b56c-71ce-415e-8f15-70db5d40b030
[2026-03-02 20:48:28,316] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 모듈 초기화 완료
[2026-03-02 20:48:28,316] [LogListener] [DEBUG] [loggerModule.py:debug:449] 기본 폰트: C:\Program Files\ImgWorker\lib\modules\fonts\NanumBarunGothic.ttf
[2026-03-02 20:48:28,316] [LogListener] [DEBUG] [loggerModule.py:debug:449] 폰트 변경으로 텍스트 렌더링 모듈 재생성: C:\Program Files\ImgWorker\lib\modules\fonts\NanumBarunGothic.ttf
[2026-03-02 20:48:28,317] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\ImgWorker\\lib\\modules\\fonts\\NanumBarunGothic.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중'}
[2026-03-02 20:48:28,317] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:48:28,317] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=update_toggle_states
[2026-03-02 20:48:28,317] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=1ec9b56c-71ce-415e-8f15-70db5d40b030
[2026-03-02 20:48:28,317] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=1ec9b56c-71ce-415e-8f15-70db5d40b030
[2026-03-02 20:48:46,535] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=remove_background, uid=bacb9a26-96ec-4f06-9178-bd9ea9f2214b
[2026-03-02 20:48:46,539] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중'}
[2026-03-02 20:48:46,539] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:48:46,539] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=remove_background
[2026-03-02 20:48:46,539] [LogListener] [DEBUG] [loggerModule.py:debug:449] remove_background 호출 직전
[2026-03-02 20:48:46,539] [LogListener] [DEBUG] [loggerModule.py:debug:449] request_rembg 호출: use_local_rembg=False, local_model_name=birefnet-general-lite
[2026-03-02 20:48:46,542] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔧 백업 rembg 시작: model_name=birefnet-general-lite, object_ratio=0.95, debug_save=True, force_cpu=False
[2026-03-02 20:48:46,543] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📁 디버그 이미지 저장 디렉토리: C:\Users\컴퓨터\AppData\Local\Temp\wrong_shape_rembg_debug_qhgxbzgy
[2026-03-02 20:48:46,543] [LogListener] [DEBUG] [loggerModule.py:debug:449] 💾 1단계 저장 완료: 입력 이미지 (600, 830, 3) → C:\Users\컴퓨터\AppData\Local\Temp\wrong_shape_rembg_debug_qhgxbzgy\01_input_image.png
[2026-03-02 20:48:46,543] [LogListener] [DEBUG] [loggerModule.py:debug:449] BriaAI 배경제거 모듈 초기화 시작
[2026-03-02 20:48:46,544] [LogListener] [DEBUG] [loggerModule.py:debug:449] ONNX Runtime 사용 가능한 프로바이더: ['DmlExecutionProvider', 'CPUExecutionProvider']
[2026-03-02 20:48:46,544] [LogListener] [DEBUG] [loggerModule.py:debug:449] BriaAI CPU 모드로 설정
[2026-03-02 20:48:46,544] [LogListener] [DEBUG] [loggerModule.py:debug:449] BriaAI 배경제거 모듈 초기화 완료
[2026-03-02 20:48:46,544] [LogListener] [DEBUG] [loggerModule.py:debug:449] 백업용 내장 rembg 모듈 초기화됨
[2026-03-02 20:48:46,544] [LogListener] [WARNING] [loggerModule.py:warning:461] 지원하지 않는 모델명 (birefnet-general-lite). bria-rmbg-1.4로 대체 사용
[2026-03-02 20:48:46,544] [LogListener] [ERROR] [loggerModule.py:error:467] 임시 이미지 파일 생성 실패
[2026-03-02 20:48:46,545] [LogListener] [ERROR] [loggerModule.py:error:467] RemoveBG 실패
[2026-03-02 20:48:46,545] [LogListener] [DEBUG] [loggerModule.py:debug:449] remove_background 호출 완료
[2026-03-02 20:48:46,545] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=bacb9a26-96ec-4f06-9178-bd9ea9f2214b
[2026-03-02 20:48:46,546] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=bacb9a26-96ec-4f06-9178-bd9ea9f2214b
[2026-03-02 20:50:33,067] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=55bbca51-1d6c-4509-9c4e-99d63c335844
[2026-03-02 20:50:33,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:33,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:33,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:33,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:33,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:33,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ 실행 중인 작업(1): 55bbca51-1d6c-4509-9c4e-99d63c335844(0.0s)
[2026-03-02 20:50:33,327] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=d25a3ed9-7edd-4496-bc07-3b991d9917ab
[2026-03-02 20:50:33,329] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:33,330] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:33,330] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:33,330] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:33,330] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:33,387] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 1 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_000_O1CN01cycCsb1FsjxfYsQ1n_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:33,387] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_000_O1CN01cycCsb1FsjxfYsQ1n_!!692310543.jpg
[2026-03-02 20:50:33,393] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 1 원본 크기: 750x1283
[2026-03-02 20:50:33,407] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 1 가로 크기 조정: 750x1283 → 860x1471
[2026-03-02 20:50:33,415] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 1 크기 조정 완료: 860x1471
[2026-03-02 20:50:33,416] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 1 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_000_O1CN01cycCsb1FsjxfYsQ1n_!!692310543_resized.jpg
[2026-03-02 20:50:33,423] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:34,960] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 1530.7ms
[2026-03-02 20:50:34,961] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 250.0ms, 인식: 1229.7ms, 분류: 39.0ms
[2026-03-02 20:50:34,984] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 10802.1MB -> 11008.9MB (+206.8MB, +1.9%) - 이미지 1
[2026-03-02 20:50:34,999] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '你的这些苦恼', 'confidence': 0.9820561408996582, 'polygon': [[264.0, 115.0], [596.0, 115.0], [596.0, 169.0], [264.0, 169.0]], 'bbox': (264, 115, 333, 55), 'method': 'polygon'}, {'text': '交给我来帮你解决', 'confidence': 0.9901595115661621, 'polygon': [[203.0, 215.0], [652.0, 215.0], [652.0, 262.0], [203.0, 262.0]], 'bbox': (203, 215, 450, 48), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998881220817566, 'polygon': [[110.0, 418.0], [211.0, 418.0], [211.0, 457.0], [110.0, 457.0]], 'bbox': (110, 418, 102, 40), 'method': 'polygon'}, {'text': '如何选电池型号?', 'confidence': 0.995311439037323, 'polygon': [[112.0, 461.0], [354.0, 458.0], [354.0, 495.0], [112.0, 498.0]], 'bbox': (112, 458, 243, 41), 'method': 'polygon'}, {'text': '专业客服解答您的各种问题', 'confidence': 0.9953719973564148, 'polygon': [[118.0, 535.0], [391.0, 535.0], [391.0, 561.0], [118.0, 561.0]], 'bbox': (118, 535, 274, 27), 'method': 'polygon'}, {'text': '笔记本电池', 'confidence': 0.9978134036064148, 'polygon': [[512.0, 654.0], [597.0, 654.0], [597.0, 680.0], [512.0, 680.0]], 'bbox': (512, 654, 86, 27), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998703002929688, 'polygon': [[113.0, 683.0], [209.0, 683.0], [209.0, 717.0], [113.0, 717.0]], 'bbox': (113, 683, 97, 35), 'method': 'polygon'}, {'text': '分期免息', 'confidence': 0.9991531372070312, 'polygon': [[485.0, 702.0], [542.0, 702.0], [542.0, 723.0], [485.0, 723.0]], 'bbox': (485, 702, 58, 22), 'method': 'polygon'}, {'text': '去哪家店铺购买好?', 'confidence': 0.9812180995941162, 'polygon': [[115.0, 726.0], [387.0, 726.0], [387.0, 758.0], [115.0, 758.0]], 'bbox': (115, 726, 273, 33), 'method': 'polygon'}, {'text': '专业售前售后帮助你选购', 'confidence': 0.9944560527801514, 'polygon': [[119.0, 795.0], [369.0, 795.0], [369.0, 821.0], [119.0, 821.0]], 'bbox': (119, 795, 251, 27), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998777508735657, 'polygon': [[112.0, 941.0], [212.0, 941.0], [212.0, 979.0], [112.0, 979.0]], 'bbox': (112, 941, 101, 39), 'method': 'polygon'}, {'text': '电池质量好不好?', 'confidence': 0.9637632369995117, 'polygon': [[116.0, 984.0], [354.0, 984.0], [354.0, 1016.0], [116.0, 1016.0]], 'bbox': (116, 984, 239, 33), 'method': 'polygon'}, {'text': '大牌有保障高品质值得信赖', 'confidence': 0.9967874884605408, 'polygon': [[116.0, 1053.0], [393.0, 1053.0], [393.0, 1083.0], [116.0, 1083.0]], 'bbox': (116, 1053, 278, 31), 'method': 'polygon'}, {'text': '看了好几家', 'confidence': 0.9982882738113403, 'polygon': [[116.0, 1181.0], [276.0, 1181.0], [276.0, 1214.0], [116.0, 1214.0]], 'bbox': (116, 1181, 161, 34), 'method': 'polygon'}, {'text': '缺迟迟不下单?', 'confidence': 0.9865140318870544, 'polygon': [[116.0, 1221.0], [324.0, 1221.0], [324.0, 1253.0], [116.0, 1253.0]], 'bbox': (116, 1221, 209, 33), 'method': 'polygon'}, {'text': '本店产品性价比高,购买无忧', 'confidence': 0.9975700974464417, 'polygon': [[111.0, 1310.0], [429.0, 1312.0], [428.0, 1342.0], [110.0, 1341.0]], 'bbox': (110, 1310, 320, 33), 'method': 'polygon'}]
[2026-03-02 20:50:35,015] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 1 OCR raw 데이터 메모리 저장 완료: 16개 텍스트
[2026-03-02 20:50:35,046] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.2%): '你的这些苦恼'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.0%): '交给我来帮你解决'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '不知道'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '如何选电池型号?'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '专业客服解答您的各种问题'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '笔记本电池'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '不知道'
[2026-03-02 20:50:35,048] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '分期免息'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.1%): '去哪家店铺购买好?'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '专业售前售后帮助你选购'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '不知道'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 96.4%): '电池质量好不好?'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '大牌有保障高品质值得信赖'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '看了好几家'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.7%): '缺迟迟不下单?'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '本店产品性价比高,购买无忧'
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 16/16개 (신뢰도 + & 중국어)
[2026-03-02 20:50:35,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '你的这些苦恼', 'confidence': 0.9820561408996582, 'polygon': [[264.0, 115.0], [596.0, 115.0], [596.0, 169.0], [264.0, 169.0]], 'bbox': (264, 115, 333, 55), 'method': 'polygon'}, {'text': '交给我来帮你解决', 'confidence': 0.9901595115661621, 'polygon': [[203.0, 215.0], [652.0, 215.0], [652.0, 262.0], [203.0, 262.0]], 'bbox': (203, 215, 450, 48), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998881220817566, 'polygon': [[110.0, 418.0], [211.0, 418.0], [211.0, 457.0], [110.0, 457.0]], 'bbox': (110, 418, 102, 40), 'method': 'polygon'}, {'text': '如何选电池型号?', 'confidence': 0.995311439037323, 'polygon': [[112.0, 461.0], [354.0, 458.0], [354.0, 495.0], [112.0, 498.0]], 'bbox': (112, 458, 243, 41), 'method': 'polygon'}, {'text': '专业客服解答您的各种问题', 'confidence': 0.9953719973564148, 'polygon': [[118.0, 535.0], [391.0, 535.0], [391.0, 561.0], [118.0, 561.0]], 'bbox': (118, 535, 274, 27), 'method': 'polygon'}, {'text': '笔记本电池', 'confidence': 0.9978134036064148, 'polygon': [[512.0, 654.0], [597.0, 654.0], [597.0, 680.0], [512.0, 680.0]], 'bbox': (512, 654, 86, 27), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998703002929688, 'polygon': [[113.0, 683.0], [209.0, 683.0], [209.0, 717.0], [113.0, 717.0]], 'bbox': (113, 683, 97, 35), 'method': 'polygon'}, {'text': '分期免息', 'confidence': 0.9991531372070312, 'polygon': [[485.0, 702.0], [542.0, 702.0], [542.0, 723.0], [485.0, 723.0]], 'bbox': (485, 702, 58, 22), 'method': 'polygon'}, {'text': '去哪家店铺购买好?', 'confidence': 0.9812180995941162, 'polygon': [[115.0, 726.0], [387.0, 726.0], [387.0, 758.0], [115.0, 758.0]], 'bbox': (115, 726, 273, 33), 'method': 'polygon'}, {'text': '专业售前售后帮助你选购', 'confidence': 0.9944560527801514, 'polygon': [[119.0, 795.0], [369.0, 795.0], [369.0, 821.0], [119.0, 821.0]], 'bbox': (119, 795, 251, 27), 'method': 'polygon'}, {'text': '不知道', 'confidence': 0.9998777508735657, 'polygon': [[112.0, 941.0], [212.0, 941.0], [212.0, 979.0], [112.0, 979.0]], 'bbox': (112, 941, 101, 39), 'method': 'polygon'}, {'text': '电池质量好不好?', 'confidence': 0.9637632369995117, 'polygon': [[116.0, 984.0], [354.0, 984.0], [354.0, 1016.0], [116.0, 1016.0]], 'bbox': (116, 984, 239, 33), 'method': 'polygon'}, {'text': '大牌有保障高品质值得信赖', 'confidence': 0.9967874884605408, 'polygon': [[116.0, 1053.0], [393.0, 1053.0], [393.0, 1083.0], [116.0, 1083.0]], 'bbox': (116, 1053, 278, 31), 'method': 'polygon'}, {'text': '看了好几家', 'confidence': 0.9982882738113403, 'polygon': [[116.0, 1181.0], [276.0, 1181.0], [276.0, 1214.0], [116.0, 1214.0]], 'bbox': (116, 1181, 161, 34), 'method': 'polygon'}, {'text': '缺迟迟不下单?', 'confidence': 0.9865140318870544, 'polygon': [[116.0, 1221.0], [324.0, 1221.0], [324.0, 1253.0], [116.0, 1253.0]], 'bbox': (116, 1221, 209, 33), 'method': 'polygon'}, {'text': '本店产品性价比高,购买无忧', 'confidence': 0.9975700974464417, 'polygon': [[111.0, 1310.0], [429.0, 1312.0], [428.0, 1342.0], [110.0, 1341.0]], 'bbox': (110, 1310, 320, 33), 'method': 'polygon'}]
[2026-03-02 20:50:35,063] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 16개 필터링 완료
[2026-03-02 20:50:35,063] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:35,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 2 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_001_O1CN01d1GvR51Fsjxgj5xM9_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:35,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_001_O1CN01d1GvR51Fsjxgj5xM9_!!692310543.jpg
[2026-03-02 20:50:35,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 2 원본 크기: 750x1052
[2026-03-02 20:50:35,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 2 가로 크기 조정: 750x1052 → 860x1206
[2026-03-02 20:50:35,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 2 크기 조정 완료: 860x1206
[2026-03-02 20:50:35,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 2 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_001_O1CN01d1GvR51Fsjxgj5xM9_!!692310543_resized.jpg
[2026-03-02 20:50:35,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:36,795] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 1615.9ms
[2026-03-02 20:50:36,816] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 320.0ms, 인식: 1249.0ms, 분류: 34.0ms
[2026-03-02 20:50:36,834] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11009.4MB -> 11027.6MB (+18.2MB, +0.2%) - 이미지 2
[2026-03-02 20:50:36,838] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '放心买放心用', 'confidence': 0.998256504535675, 'polygon': [[163.0, 87.0], [683.0, 87.0], [683.0, 163.0], [163.0, 163.0]], 'bbox': (163, 87, 521, 77), 'method': 'polygon'}, {'text': '请相信我们的售后保障!', 'confidence': 0.9939752817153931, 'polygon': [[203.0, 190.0], [645.0, 190.0], [645.0, 229.0], [203.0, 229.0]], 'bbox': (203, 190, 443, 40), 'method': 'polygon'}, {'text': '30', 'confidence': 0.9991095066070557, 'polygon': [[321.0, 384.0], [523.0, 384.0], [523.0, 553.0], [321.0, 553.0]], 'bbox': (321, 384, 203, 170), 'method': 'polygon'}, {'text': '天', 'confidence': 0.999758780002594, 'polygon': [[525.0, 489.0], [572.0, 489.0], [572.0, 536.0], [525.0, 536.0]], 'bbox': (525, 489, 48, 48), 'method': 'polygon'}, {'text': '无理由退换货', 'confidence': 0.9947476983070374, 'polygon': [[217.0, 581.0], [640.0, 578.0], [640.0, 638.0], [218.0, 641.0]], 'bbox': (217, 578, 424, 64), 'method': 'polygon'}, {'text': '质量问题直接换,要买就买个好的', 'confidence': 0.9911738634109497, 'polygon': [[219.0, 710.0], [627.0, 710.0], [627.0, 739.0], [219.0, 739.0]], 'bbox': (219, 710, 409, 30), 'method': 'polygon'}, {'text': '赔', 'confidence': 0.9869441986083984, 'polygon': [[120.0, 912.0], [161.0, 912.0], [161.0, 957.0], [120.0, 957.0]], 'bbox': (120, 912, 42, 46), 'method': 'polygon'}, {'text': '30', 'confidence': 0.9988932609558105, 'polygon': [[394.0, 913.0], [450.0, 913.0], [450.0, 956.0], [394.0, 956.0]], 'bbox': (394, 913, 57, 44), 'method': 'polygon'}, {'text': '退', 'confidence': 0.9891166090965271, 'polygon': [[678.0, 913.0], [721.0, 913.0], [721.0, 956.0], [678.0, 956.0]], 'bbox': (678, 913, 44, 44), 'method': 'polygon'}, {'text': '品质承诺', 'confidence': 0.9982619285583496, 'polygon': [[82.0, 1009.0], [206.0, 1009.0], [206.0, 1044.0], [82.0, 1044.0]], 'bbox': (82, 1009, 125, 36), 'method': 'polygon'}, {'text': '服务承诺', 'confidence': 0.9989551305770874, 'polygon': [[362.0, 1008.0], [486.0, 1008.0], [486.0, 1043.0], [362.0, 1043.0]], 'bbox': (362, 1008, 125, 36), 'method': 'polygon'}, {'text': '售后承诺', 'confidence': 0.998520016670227, 'polygon': [[641.0, 1009.0], [765.0, 1009.0], [765.0, 1044.0], [641.0, 1044.0]], 'bbox': (641, 1009, 125, 36), 'method': 'polygon'}, {'text': '二十多年品质用芯定制', 'confidence': 0.9984818696975708, 'polygon': [[51.0, 1062.0], [244.0, 1062.0], [244.0, 1083.0], [51.0, 1083.0]], 'bbox': (51, 1062, 194, 22), 'method': 'polygon'}, {'text': '30天内无理由退换货', 'confidence': 0.9980495572090149, 'polygon': [[331.0, 1062.0], [509.0, 1062.0], [509.0, 1083.0], [331.0, 1083.0]], 'bbox': (331, 1062, 179, 22), 'method': 'polygon'}, {'text': '质量问题直接换货', 'confidence': 0.9962954521179199, 'polygon': [[623.0, 1062.0], [778.0, 1062.0], [778.0, 1083.0], [623.0, 1083.0]], 'bbox': (623, 1062, 156, 22), 'method': 'polygon'}, {'text': '做更好更耐用的笔记本电池', 'confidence': 0.9981363415718079, 'polygon': [[31.0, 1095.0], [262.0, 1095.0], [262.0, 1117.0], [31.0, 1117.0]], 'bbox': (31, 1095, 232, 23), 'method': 'polygon'}, {'text': '联系客服处理到您满意', 'confidence': 0.9940294027328491, 'polygon': [[323.0, 1092.0], [521.0, 1093.0], [521.0, 1118.0], [322.0, 1117.0]], 'bbox': (322, 1092, 200, 27), 'method': 'polygon'}, {'text': '售后客服随时帮助您处理', 'confidence': 0.9958204030990601, 'polygon': [[593.0, 1092.0], [809.0, 1093.0], [809.0, 1118.0], [592.0, 1117.0]], 'bbox': (592, 1092, 218, 27), 'method': 'polygon'}]
[2026-03-02 20:50:36,839] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 2 OCR raw 데이터 메모리 저장 완료: 18개 텍스트
[2026-03-02 20:50:36,839] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '放心买放心用'
[2026-03-02 20:50:36,839] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '请相信我们的售后保障!'
[2026-03-02 20:50:36,839] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '30'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '天'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '无理由退换货'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.1%): '质量问题直接换,要买就买个好的'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.7%): '赔'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '30'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.9%): '退'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '品质承诺'
[2026-03-02 20:50:36,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '服务承诺'
[2026-03-02 20:50:36,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '售后承诺'
[2026-03-02 20:50:36,843] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '二十多年品质用芯定制'
[2026-03-02 20:50:36,843] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '30天内无理由退换货'
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '质量问题直接换货'
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '做更好更耐用的笔记本电池'
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '联系客服处理到您满意'
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '售后客服随时帮助您处理'
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 16/18개 (신뢰도 + & 중국어)
[2026-03-02 20:50:36,844] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '放心买放心用', 'confidence': 0.998256504535675, 'polygon': [[163.0, 87.0], [683.0, 87.0], [683.0, 163.0], [163.0, 163.0]], 'bbox': (163, 87, 521, 77), 'method': 'polygon'}, {'text': '请相信我们的售后保障!', 'confidence': 0.9939752817153931, 'polygon': [[203.0, 190.0], [645.0, 190.0], [645.0, 229.0], [203.0, 229.0]], 'bbox': (203, 190, 443, 40), 'method': 'polygon'}, {'text': '天', 'confidence': 0.999758780002594, 'polygon': [[525.0, 489.0], [572.0, 489.0], [572.0, 536.0], [525.0, 536.0]], 'bbox': (525, 489, 48, 48), 'method': 'polygon'}, {'text': '无理由退换货', 'confidence': 0.9947476983070374, 'polygon': [[217.0, 581.0], [640.0, 578.0], [640.0, 638.0], [218.0, 641.0]], 'bbox': (217, 578, 424, 64), 'method': 'polygon'}, {'text': '质量问题直接换,要买就买个好的', 'confidence': 0.9911738634109497, 'polygon': [[219.0, 710.0], [627.0, 710.0], [627.0, 739.0], [219.0, 739.0]], 'bbox': (219, 710, 409, 30), 'method': 'polygon'}, {'text': '赔', 'confidence': 0.9869441986083984, 'polygon': [[120.0, 912.0], [161.0, 912.0], [161.0, 957.0], [120.0, 957.0]], 'bbox': (120, 912, 42, 46), 'method': 'polygon'}, {'text': '退', 'confidence': 0.9891166090965271, 'polygon': [[678.0, 913.0], [721.0, 913.0], [721.0, 956.0], [678.0, 956.0]], 'bbox': (678, 913, 44, 44), 'method': 'polygon'}, {'text': '品质承诺', 'confidence': 0.9982619285583496, 'polygon': [[82.0, 1009.0], [206.0, 1009.0], [206.0, 1044.0], [82.0, 1044.0]], 'bbox': (82, 1009, 125, 36), 'method': 'polygon'}, {'text': '服务承诺', 'confidence': 0.9989551305770874, 'polygon': [[362.0, 1008.0], [486.0, 1008.0], [486.0, 1043.0], [362.0, 1043.0]], 'bbox': (362, 1008, 125, 36), 'method': 'polygon'}, {'text': '售后承诺', 'confidence': 0.998520016670227, 'polygon': [[641.0, 1009.0], [765.0, 1009.0], [765.0, 1044.0], [641.0, 1044.0]], 'bbox': (641, 1009, 125, 36), 'method': 'polygon'}, {'text': '二十多年品质用芯定制', 'confidence': 0.9984818696975708, 'polygon': [[51.0, 1062.0], [244.0, 1062.0], [244.0, 1083.0], [51.0, 1083.0]], 'bbox': (51, 1062, 194, 22), 'method': 'polygon'}, {'text': '30天内无理由退换货', 'confidence': 0.9980495572090149, 'polygon': [[331.0, 1062.0], [509.0, 1062.0], [509.0, 1083.0], [331.0, 1083.0]], 'bbox': (331, 1062, 179, 22), 'method': 'polygon'}, {'text': '质量问题直接换货', 'confidence': 0.9962954521179199, 'polygon': [[623.0, 1062.0], [778.0, 1062.0], [778.0, 1083.0], [623.0, 1083.0]], 'bbox': (623, 1062, 156, 22), 'method': 'polygon'}, {'text': '做更好更耐用的笔记本电池', 'confidence': 0.9981363415718079, 'polygon': [[31.0, 1095.0], [262.0, 1095.0], [262.0, 1117.0], [31.0, 1117.0]], 'bbox': (31, 1095, 232, 23), 'method': 'polygon'}, {'text': '联系客服处理到您满意', 'confidence': 0.9940294027328491, 'polygon': [[323.0, 1092.0], [521.0, 1093.0], [521.0, 1118.0], [322.0, 1117.0]], 'bbox': (322, 1092, 200, 27), 'method': 'polygon'}, {'text': '售后客服随时帮助您处理', 'confidence': 0.9958204030990601, 'polygon': [[593.0, 1092.0], [809.0, 1093.0], [809.0, 1118.0], [592.0, 1117.0]], 'bbox': (592, 1092, 218, 27), 'method': 'polygon'}]
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 16개 필터링 완료
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['당신의 이러한 문제', '나에게 맡겨서 해결하는 데 도움을 받으세요.', '모른다', '배터리 모델을 선택하는 방법은 무엇입니까?', '다양한 질문에 답해드리는 전문적인 고객 서비스', '노트북 배터리', '모른다', '무이자할부', '어느 매장에서 구매하는 것이 가장 좋나요?', '전문적인 사전 판매 및 판매 후 선택에 도움이 됩니다.', '모른다', '배터리 품질은 좋은가요?', '대형 브랜드는 높은 품질을 보장하고 신뢰할 수 있습니다.', '여러개 봤어', '아직도 주문을 하지 않으셨나요?', '당사의 제품은 구매 시 비용 효율적이며 걱정이 없습니다.']
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '당신의 이러한 문제'
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['당신의', '이러한', '문제']
[2026-03-02 20:50:36,845] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '당신의 이러한 문제'
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '나에게 맡겨서 해결하는 데 도움을 받으세요.'
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['나에게', '맡겨서', '해결하는', '데', '도움을', '받으세요.']
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '나에게 맡겨서 해결하는 데 도움을 받으세요.'
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '모른다'
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['모른다']
[2026-03-02 20:50:36,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '모른다'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '배터리 모델을 선택하는 방법은 무엇입니까?'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['배터리', '모델을', '선택하는', '방법은', '무엇입니까?']
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '배터리 모델을 선택하는 방법은 무엇입니까?'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '다양한 질문에 답해드리는 전문적인 고객 서비스'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['다양한', '질문에', '답해드리는', '전문적인', '고객', '서비스']
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '다양한 질문에 답해드리는 전문적인 고객 서비스'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '노트북 배터리'
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['노트북', '배터리']
[2026-03-02 20:50:36,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '노트북 배터리'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '모른다'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['모른다']
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '모른다'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '무이자할부'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['무이자할부']
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '무이자할부'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '어느 매장에서 구매하는 것이 가장 좋나요?'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['어느', '매장에서', '구매하는', '것이', '가장', '좋나요?']
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '어느 매장에서 구매하는 것이 가장 좋나요?'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '전문적인 사전 판매 및 판매 후 선택에 도움이 됩니다.'
[2026-03-02 20:50:36,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['전문적인', '사전', '판매', '및', '판매', '후', '선택에', '도움이', '됩니다.']
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '전문적인 사전 판매 및 판매 후 선택에 도움이 됩니다.'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '모른다'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['모른다']
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '모른다'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '배터리 품질은 좋은가요?'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['배터리', '품질은', '좋은가요?']
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '배터리 품질은 좋은가요?'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '대형 브랜드는 높은 품질을 보장하고 신뢰할 수 있습니다.'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['대형', '브랜드는', '높은', '품질을', '보장하고', '신뢰할', '수', '있습니다.']
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '대형 브랜드는 높은 품질을 보장하고 신뢰할 수 있습니다.'
[2026-03-02 20:50:36,849] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '여러개 봤어'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['여러개', '봤어']
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '여러개 봤어'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '아직도 주문을 하지 않으셨나요?'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['아직도', '주문을', '하지', '않으셨나요?']
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '아직도 주문을 하지 않으셨나요?'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '당사의 제품은 구매 시 비용 효율적이며 걱정이 없습니다.'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['당사의', '제품은', '구매', '시', '비용', '효율적이며', '걱정이', '없습니다.']
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '당사의 제품은 구매 시 비용 효율적이며 걱정이 없습니다.'
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 16개 텍스트 처리 완료
[2026-03-02 20:50:36,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 1 치환됨
[2026-03-02 20:50:36,852] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.161, comps=12, min_center_dist=0.036 → external_request
[2026-03-02 20:50:36,852] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 16
[2026-03-02 20:50:36,853] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:36,853] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:36,853] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:36,893] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:36,988] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:38,218] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:38,222] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11028.9MB -> 11012.6MB (-16.4MB, -0.1%) - 방법: external_request
[2026-03-02 20:50:38,222] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:50:38,431] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:50:38,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:50:38,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:50:39,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_1.webp
[2026-03-02 20:50:39,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 1 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_1.webp
[2026-03-02 20:50:39,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 5979.7ms | download=0.0ms | ocr=1547.7ms | translate=1789.0ms | mask=1789.0ms | inpaint=1371.7ms(external_request/SERVER) | render=209.0ms | save=567.0ms
[2026-03-02 20:50:39,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:50:39,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=55bbca51-1d6c-4509-9c4e-99d63c335844
[2026-03-02 20:50:39,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=55bbca51-1d6c-4509-9c4e-99d63c335844
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['안심하고 구매하고 안심하고 사용하세요', '우리의 판매 후 보증을 신뢰하십시오!', '일', '반품, 교환 사유가 되지 않는 상품', '품질 문제가 있으면 교체하십시오. 사고 싶은거 있으면 그냥 좋은거 사세요.', '보상하다', '후퇴', '품질 약속', '서비스 약속', '판매 후 약속', '20년 이상의 품질 핵심 맞춤화 경험', '30일 이내 반품, 교환 사유가 되지 않는 경우', '품질 문제 직접 교환', '더 좋고 내구성이 뛰어난 노트북 배터리 만들기', '만족할 때까지 고객 서비스에 문의하여 처리하십시오.', '판매 후 고객 서비스는 귀하가 이를 처리하는 데 도움을 드릴 준비가 되어 있습니다.']
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '안심하고 구매하고 안심하고 사용하세요'
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['안심하고', '구매하고', '안심하고', '사용하세요']
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '안심하고 구매하고 안심하고 사용하세요'
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '우리의 판매 후 보증을 신뢰하십시오!'
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['우리의', '판매', '후', '보증을', '신뢰하십시오!']
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '우리의 판매 후 보증을 신뢰하십시오!'
[2026-03-02 20:50:39,592] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '일'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['일']
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '일'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '반품, 교환 사유가 되지 않는 상품'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['반품,', '교환', '사유가', '되지', '않는', '상품']
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '반품, 교환 사유가 되지 않는 상품'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '품질 문제가 있으면 교체하십시오. 사고 싶은거 있으면 그냥 좋은거 사세요.'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['품질', '문제가', '있으면', '교체하십시오.', '사고', '싶은거', '있으면', '그냥', '좋은거', '사세요.']
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '품질 문제가 있으면 교체하십시오. 사고 싶은거 있으면 그냥 좋은거 사세요.'
[2026-03-02 20:50:39,593] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '보상하다'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['보상하다']
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '보상하다'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '후퇴'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['후퇴']
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '후퇴'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '품질 약속'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['품질', '약속']
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '품질 약속'
[2026-03-02 20:50:39,594] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '서비스 약속'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['서비스', '약속']
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '서비스 약속'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '판매 후 약속'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['판매', '후', '약속']
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '판매 후 약속'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '20년 이상의 품질 핵심 맞춤화 경험'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['20년', '이상의', '품질', '핵심', '맞춤화', '경험']
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '20년 이상의 품질 핵심 맞춤화 경험'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '30일 이내 반품, 교환 사유가 되지 않는 경우'
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['30일', '이내', '반품,', '교환', '사유가', '되지', '않는', '경우']
[2026-03-02 20:50:39,595] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '30일 이내 반품, 교환 사유가 되지 않는 경우'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '품질 문제 직접 교환'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['품질', '문제', '직접', '교환']
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '품질 문제 직접 교환'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '더 좋고 내구성이 뛰어난 노트북 배터리 만들기'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['더', '좋고', '내구성이', '뛰어난', '노트북', '배터리', '만들기']
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '더 좋고 내구성이 뛰어난 노트북 배터리 만들기'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '만족할 때까지 고객 서비스에 문의하여 처리하십시오.'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['만족할', '때까지', '고객', '서비스에', '문의하여', '처리하십시오.']
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '만족할 때까지 고객 서비스에 문의하여 처리하십시오.'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '판매 후 고객 서비스는 귀하가 이를 처리하는 데 도움을 드릴 준비가 되어 있습니다.'
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['판매', '후', '고객', '서비스는', '귀하가', '이를', '처리하는', '데', '도움을', '드릴', '준비가', '되어', '있습니다.']
[2026-03-02 20:50:39,596] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '판매 후 고객 서비스는 귀하가 이를 처리하는 데 도움을 드릴 준비가 되어 있습니다.'
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 16개 텍스트 처리 완료
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 2 치환됨
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.215, comps=10, min_center_dist=0.057 → external_request
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 16
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:39,597] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:39,642] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:39,764] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:40,428] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=2fce6cd2-fb2d-445e-a4ab-134537cc0dcd
[2026-03-02 20:50:40,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:40,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:40,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:40,433] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:40,434] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:40,624] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:40,627] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11017.1MB -> 10947.1MB (-70.1MB, -0.6%) - 방법: external_request
[2026-03-02 20:50:40,627] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:50:40,779] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:50:40,780] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:50:40,780] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:50:41,341] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_2.webp
[2026-03-02 20:50:41,344] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 2 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_2.webp
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 8011.8ms | download=15.0ms | ocr=1644.9ms | translate=2755.8ms | mask=36.0ms | inpaint=1030.9ms(external_request/SERVER) | render=152.0ms | save=512.3ms
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=d25a3ed9-7edd-4496-bc07-3b991d9917ab
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=d25a3ed9-7edd-4496-bc07-3b991d9917ab
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 3 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_002_O1CN01eU0NkG1FsjxZanw4d_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:41,345] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_002_O1CN01eU0NkG1FsjxZanw4d_!!692310543.jpg
[2026-03-02 20:50:41,351] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 3 원본 크기: 750x910
[2026-03-02 20:50:41,357] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 3 가로 크기 조정: 750x910 → 860x1043
[2026-03-02 20:50:41,365] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 3 크기 조정 완료: 860x1043
[2026-03-02 20:50:41,366] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 3 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_002_O1CN01eU0NkG1FsjxZanw4d_!!692310543_resized.jpg
[2026-03-02 20:50:41,371] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:43,854] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 2476.9ms
[2026-03-02 20:50:43,890] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 364.0ms, 인식: 2030.0ms, 분류: 66.0ms
[2026-03-02 20:50:43,908] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 10934.9MB -> 10973.9MB (+39.0MB, +0.4%) - 이미지 3
[2026-03-02 20:50:43,910] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '质量从品质开始', 'confidence': 0.9717680215835571, 'polygon': [[124.0, 83.0], [730.0, 83.0], [730.0, 160.0], [124.0, 160.0]], 'bbox': (124, 83, 607, 78), 'method': 'polygon'}, {'text': '采用全新知名品牌进口超A级高容量电芯', 'confidence': 0.9963377714157104, 'polygon': [[146.0, 179.0], [709.0, 179.0], [709.0, 209.0], [146.0, 209.0]], 'bbox': (146, 179, 564, 31), 'method': 'polygon'}, {'text': 'AA-PBVN4NP', 'confidence': 0.9959461092948914, 'polygon': [[347.0, 233.0], [516.0, 233.0], [516.0, 255.0], [347.0, 255.0]], 'bbox': (347, 233, 170, 23), 'method': 'polygon'}, {'text': '15.2V57WH', 'confidence': 0.9228973984718323, 'polygon': [[355.0, 272.0], [504.0, 272.0], [504.0, 294.0], [355.0, 294.0]], 'bbox': (355, 272, 150, 23), 'method': 'polygon'}, {'text': 'SHUO.Z.B', 'confidence': 0.9749159812927246, 'polygon': [[77.0, 473.0], [142.0, 473.0], [142.0, 485.0], [77.0, 485.0]], 'bbox': (77, 473, 66, 13), 'method': 'polygon'}, {'text': 'Rating:+15.2V---57W', 'confidence': 0.9323304891586304, 'polygon': [[74.0, 483.0], [218.0, 482.0], [218.0, 499.0], [74.0, 500.0]], 'bbox': (74, 482, 145, 19), 'method': 'polygon'}, {'text': 'RoHS', 'confidence': 0.9476627111434937, 'polygon': [[425.0, 485.0], [479.0, 485.0], [479.0, 504.0], [425.0, 504.0]], 'bbox': (425, 485, 55, 20), 'method': 'polygon'}, {'text': 'Capacity:3750mAh(TYP)/3550mAh(MIN)', 'confidence': 0.9464518427848816, 'polygon': [[75.0, 502.0], [260.0, 502.0], [260.0, 516.0], [75.0, 516.0]], 'bbox': (75, 502, 186, 15), 'method': 'polygon'}, {'text': 'yPac', 'confidence': 0.9052963256835938, 'polygon': [[207.0, 498.0], [233.0, 495.0], [234.0, 503.0], [208.0, 505.0]], 'bbox': (207, 495, 28, 11), 'method': 'polygon'}, {'text': 'VORSICHT!', 'confidence': 0.9417805075645447, 'polygon': [[75.0, 516.0], [127.0, 516.0], [127.0, 527.0], [75.0, 527.0]], 'bbox': (75, 516, 53, 12), 'method': 'polygon'}, {'text': 'CE', 'confidence': 0.9818071126937866, 'polygon': [[432.0, 513.0], [478.0, 513.0], [478.0, 543.0], [432.0, 543.0]], 'bbox': (432, 513, 47, 31), 'method': 'polygon'}, {'text': 'xpio:', 'confidence': 0.7303586006164551, 'polygon': [[76.0, 529.0], [102.0, 529.0], [102.0, 537.0], [76.0, 537.0]], 'bbox': (76, 529, 27, 9), 'method': 'polygon'}, {'text': 'rauchterBatter', 'confidence': 0.9713979959487915, 'polygon': [[145.0, 538.0], [216.0, 535.0], [216.0, 550.0], [145.0, 552.0]], 'bbox': (145, 535, 72, 18), 'method': 'polygon'}, {'text': 'man', 'confidence': 0.9892904162406921, 'polygon': [[389.0, 541.0], [410.0, 541.0], [410.0, 549.0], [389.0, 549.0]], 'bbox': (389, 541, 22, 9), 'method': 'polygon'}, {'text': '注意/注意', 'confidence': 0.98536217212677, 'polygon': [[74.0, 555.0], [120.0, 555.0], [120.0, 566.0], [74.0, 566.0]], 'bbox': (74, 555, 47, 12), 'method': 'polygon'}, {'text': '火中名出反产堂最品:', 'confidence': 0.5178875923156738, 'polygon': [[191.0, 585.0], [281.0, 585.0], [281.0, 592.0], [191.0, 592.0]], 'bbox': (191, 585, 91, 8), 'method': 'polygon'}, {'text': '财造商:水党', 'confidence': 0.535821259021759, 'polygon': [[72.0, 602.0], [117.0, 602.0], [117.0, 610.0], [72.0, 610.0]], 'bbox': (72, 602, 46, 9), 'method': 'polygon'}, {'text': '01', 'confidence': 0.9984710216522217, 'polygon': [[59.0, 789.0], [129.0, 789.0], [129.0, 843.0], [59.0, 843.0]], 'bbox': (59, 789, 71, 55), 'method': 'polygon'}, {'text': '02', 'confidence': 0.999152660369873, 'polygon': [[284.0, 788.0], [354.0, 788.0], [354.0, 844.0], [284.0, 844.0]], 'bbox': (284, 788, 71, 57), 'method': 'polygon'}, {'text': '03', 'confidence': 0.9990475177764893, 'polygon': [[504.0, 788.0], [575.0, 788.0], [575.0, 843.0], [504.0, 843.0]], 'bbox': (504, 788, 72, 56), 'method': 'polygon'}, {'text': '04', 'confidence': 0.9998025298118591, 'polygon': [[721.0, 789.0], [793.0, 789.0], [793.0, 842.0], [721.0, 842.0]], 'bbox': (721, 789, 73, 54), 'method': 'polygon'}, {'text': '主控芯片', 'confidence': 0.9982128143310547, 'polygon': [[42.0, 852.0], [143.0, 852.0], [143.0, 879.0], [42.0, 879.0]], 'bbox': (42, 852, 102, 28), 'method': 'polygon'}, {'text': '副芯片', 'confidence': 0.9999440312385559, 'polygon': [[272.0, 850.0], [353.0, 850.0], [353.0, 881.0], [272.0, 881.0]], 'bbox': (272, 850, 82, 32), 'method': 'polygon'}, {'text': '电阻', 'confidence': 0.9991977214813232, 'polygon': [[508.0, 851.0], [563.0, 851.0], [563.0, 880.0], [508.0, 880.0]], 'bbox': (508, 851, 56, 30), 'method': 'polygon'}, {'text': '二次保护芯片', 'confidence': 0.9985308051109314, 'polygon': [[680.0, 852.0], [833.0, 852.0], [833.0, 881.0], [680.0, 881.0]], 'bbox': (680, 852, 154, 30), 'method': 'polygon'}, {'text': '控制各元件运行状态', 'confidence': 0.9934531450271606, 'polygon': [[23.0, 897.0], [163.0, 897.0], [163.0, 916.0], [23.0, 916.0]], 'bbox': (23, 897, 141, 20), 'method': 'polygon'}, {'text': '检测各元器件电压电流', 'confidence': 0.9863897562026978, 'polygon': [[237.0, 895.0], [396.0, 895.0], [396.0, 917.0], [237.0, 917.0]], 'bbox': (237, 895, 160, 23), 'method': 'polygon'}, {'text': '多个电阻检测每块系统', 'confidence': 0.9937173128128052, 'polygon': [[457.0, 895.0], [614.0, 896.0], [614.0, 916.0], [457.0, 915.0]], 'bbox': (457, 895, 158, 22), 'method': 'polygon'}, {'text': '散热硅脂下有二次保护', 'confidence': 0.9930480718612671, 'polygon': [[677.0, 897.0], [833.0, 897.0], [833.0, 916.0], [677.0, 916.0]], 'bbox': (677, 897, 157, 20), 'method': 'polygon'}, {'text': '温度状况', 'confidence': 0.9974344372749329, 'polygon': [[282.0, 916.0], [347.0, 916.0], [347.0, 935.0], [282.0, 935.0]], 'bbox': (282, 916, 66, 20), 'method': 'polygon'}, {'text': '之间的电压电流状况', 'confidence': 0.9962363839149475, 'polygon': [[465.0, 917.0], [607.0, 917.0], [607.0, 935.0], [465.0, 935.0]], 'bbox': (465, 917, 143, 19), 'method': 'polygon'}, {'text': '西片放过压', 'confidence': 0.9995805621147156, 'polygon': [[714.0, 917.0], [798.0, 917.0], [798.0, 935.0], [714.0, 935.0]], 'bbox': (714, 917, 85, 19), 'method': 'polygon'}, {'text': '适用机型型号', 'confidence': 0.9939303398132324, 'polygon': [[282.0, 975.0], [620.0, 975.0], [620.0, 1022.0], [282.0, 1022.0]], 'bbox': (282, 975, 339, 48), 'method': 'polygon'}]
[2026-03-02 20:50:43,910] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 3 OCR raw 데이터 메모리 저장 완료: 33개 텍스트
[2026-03-02 20:50:43,910] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 97.2%): '质量从品质开始'
[2026-03-02 20:50:43,911] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '采用全新知名品牌进口超A级高容量电芯'
[2026-03-02 20:50:43,914] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'AA-PBVN4NP'
[2026-03-02 20:50:43,914] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '15.2V57WH'
[2026-03-02 20:50:43,914] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'SHUO.Z.B'
[2026-03-02 20:50:43,915] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Rating:+15.2V---57W'
[2026-03-02 20:50:43,915] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'RoHS'
[2026-03-02 20:50:43,915] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Capacity:3750mAh(TYP)/3550mAh(MIN)'
[2026-03-02 20:50:43,915] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'yPac'
[2026-03-02 20:50:43,916] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'VORSICHT!'
[2026-03-02 20:50:43,916] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'CE'
[2026-03-02 20:50:43,917] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'xpio:'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'rauchterBatter'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'man'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.5%): '注意/注意'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 51.8%): '火中名出反产堂最品:'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 53.6%): '财造商:水党'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '01'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '02'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '03'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '04'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '主控芯片'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '副芯片'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '电阻'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '二次保护芯片'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.3%): '控制各元件运行状态'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.6%): '检测各元器件电压电流'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '多个电阻检测每块系统'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.3%): '散热硅脂下有二次保护'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '温度状况'
[2026-03-02 20:50:43,919] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '之间的电压电流状况'
[2026-03-02 20:50:43,920] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '西片放过压'
[2026-03-02 20:50:43,920] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '适用机型型号'
[2026-03-02 20:50:43,920] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 17/33개 (신뢰도 + & 중국어)
[2026-03-02 20:50:43,920] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '质量从品质开始', 'confidence': 0.9717680215835571, 'polygon': [[124.0, 83.0], [730.0, 83.0], [730.0, 160.0], [124.0, 160.0]], 'bbox': (124, 83, 607, 78), 'method': 'polygon'}, {'text': '采用全新知名品牌进口超A级高容量电芯', 'confidence': 0.9963377714157104, 'polygon': [[146.0, 179.0], [709.0, 179.0], [709.0, 209.0], [146.0, 209.0]], 'bbox': (146, 179, 564, 31), 'method': 'polygon'}, {'text': '注意/注意', 'confidence': 0.98536217212677, 'polygon': [[74.0, 555.0], [120.0, 555.0], [120.0, 566.0], [74.0, 566.0]], 'bbox': (74, 555, 47, 12), 'method': 'polygon'}, {'text': '火中名出反产堂最品:', 'confidence': 0.5178875923156738, 'polygon': [[191.0, 585.0], [281.0, 585.0], [281.0, 592.0], [191.0, 592.0]], 'bbox': (191, 585, 91, 8), 'method': 'polygon'}, {'text': '财造商:水党', 'confidence': 0.535821259021759, 'polygon': [[72.0, 602.0], [117.0, 602.0], [117.0, 610.0], [72.0, 610.0]], 'bbox': (72, 602, 46, 9), 'method': 'polygon'}, {'text': '主控芯片', 'confidence': 0.9982128143310547, 'polygon': [[42.0, 852.0], [143.0, 852.0], [143.0, 879.0], [42.0, 879.0]], 'bbox': (42, 852, 102, 28), 'method': 'polygon'}, {'text': '副芯片', 'confidence': 0.9999440312385559, 'polygon': [[272.0, 850.0], [353.0, 850.0], [353.0, 881.0], [272.0, 881.0]], 'bbox': (272, 850, 82, 32), 'method': 'polygon'}, {'text': '电阻', 'confidence': 0.9991977214813232, 'polygon': [[508.0, 851.0], [563.0, 851.0], [563.0, 880.0], [508.0, 880.0]], 'bbox': (508, 851, 56, 30), 'method': 'polygon'}, {'text': '二次保护芯片', 'confidence': 0.9985308051109314, 'polygon': [[680.0, 852.0], [833.0, 852.0], [833.0, 881.0], [680.0, 881.0]], 'bbox': (680, 852, 154, 30), 'method': 'polygon'}, {'text': '控制各元件运行状态', 'confidence': 0.9934531450271606, 'polygon': [[23.0, 897.0], [163.0, 897.0], [163.0, 916.0], [23.0, 916.0]], 'bbox': (23, 897, 141, 20), 'method': 'polygon'}, {'text': '检测各元器件电压电流', 'confidence': 0.9863897562026978, 'polygon': [[237.0, 895.0], [396.0, 895.0], [396.0, 917.0], [237.0, 917.0]], 'bbox': (237, 895, 160, 23), 'method': 'polygon'}, {'text': '多个电阻检测每块系统', 'confidence': 0.9937173128128052, 'polygon': [[457.0, 895.0], [614.0, 896.0], [614.0, 916.0], [457.0, 915.0]], 'bbox': (457, 895, 158, 22), 'method': 'polygon'}, {'text': '散热硅脂下有二次保护', 'confidence': 0.9930480718612671, 'polygon': [[677.0, 897.0], [833.0, 897.0], [833.0, 916.0], [677.0, 916.0]], 'bbox': (677, 897, 157, 20), 'method': 'polygon'}, {'text': '温度状况', 'confidence': 0.9974344372749329, 'polygon': [[282.0, 916.0], [347.0, 916.0], [347.0, 935.0], [282.0, 935.0]], 'bbox': (282, 916, 66, 20), 'method': 'polygon'}, {'text': '之间的电压电流状况', 'confidence': 0.9962363839149475, 'polygon': [[465.0, 917.0], [607.0, 917.0], [607.0, 935.0], [465.0, 935.0]], 'bbox': (465, 917, 143, 19), 'method': 'polygon'}, {'text': '西片放过压', 'confidence': 0.9995805621147156, 'polygon': [[714.0, 917.0], [798.0, 917.0], [798.0, 935.0], [714.0, 935.0]], 'bbox': (714, 917, 85, 19), 'method': 'polygon'}, {'text': '适用机型型号', 'confidence': 0.9939303398132324, 'polygon': [[282.0, 975.0], [620.0, 975.0], [620.0, 1022.0], [282.0, 1022.0]], 'bbox': (282, 975, 339, 48), 'method': 'polygon'}]
[2026-03-02 20:50:43,920] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 17개 필터링 완료
[2026-03-02 20:50:43,921] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:43,921] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=3a13571d-2435-4d11-b496-5f9812739032
[2026-03-02 20:50:43,921] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:43,922] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:43,923] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:43,923] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:43,924] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:44,254] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['품질은 품질에서 시작됩니다', '새로운 유명 브랜드 수입 슈퍼 A급 고용량 배터리 채택', '참고 / 참고', '가장 유명한 산불 방지 제품은 다음과 같습니다.', 'Wealth Maker: 워터 파티', '메인 제어 칩', '바이스칩', '저항', '2차 보호 칩', '각 구성 요소의 작동 상태를 제어합니다.', '각 구성 요소의 전압 및 전류 감지', '여러 저항기가 각 시스템을 감지합니다.', '방열 실리콘 그리스 아래에 2차 보호 장치가 있습니다.', '온도 조건', '사이의 전압 및 전류 조건', '서부영화의 압박', '적용 가능한 모델']
[2026-03-02 20:50:44,254] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '품질은 품질에서 시작됩니다'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['품질은', '품질에서', '시작됩니다']
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '품질은 품질에서 시작됩니다'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '새로운 유명 브랜드 수입 슈퍼 A급 고용량 배터리 채택'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['새로운', '유명', '브랜드', '수입', '슈퍼', 'A급', '고용량', '배터리', '채택']
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '새로운 유명 브랜드 수입 슈퍼 A급 고용량 배터리 채택'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '참고 / 참고'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['참고', '/', '참고']
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '참고 / 참고'
[2026-03-02 20:50:44,255] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '가장 유명한 산불 방지 제품은 다음과 같습니다.'
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['가장', '유명한', '산불', '방지', '제품은', '다음과', '같습니다.']
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '가장 유명한 산불 방지 제품은 다음과 같습니다.'
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: 'Wealth Maker: 워터 파티'
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['Wealth', 'Maker:', '워터', '파티']
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: 'Wealth Maker: 워터 파티'
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '메인 제어 칩'
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['메인', '제어', '칩']
[2026-03-02 20:50:44,256] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '메인 제어 칩'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '바이스칩'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['바이스칩']
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '바이스칩'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '저항'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['저항']
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '저항'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '2차 보호 칩'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['2차', '보호', '칩']
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '2차 보호 칩'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '각 구성 요소의 작동 상태를 제어합니다.'
[2026-03-02 20:50:44,257] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['각', '구성', '요소의', '작동', '상태를', '제어합니다.']
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '각 구성 요소의 작동 상태를 제어합니다.'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '각 구성 요소의 전압 및 전류 감지'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['각', '구성', '요소의', '전압', '및', '전류', '감지']
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '각 구성 요소의 전압 및 전류 감지'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '여러 저항기가 각 시스템을 감지합니다.'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['여러', '저항기가', '각', '시스템을', '감지합니다.']
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '여러 저항기가 각 시스템을 감지합니다.'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '방열 실리콘 그리스 아래에 2차 보호 장치가 있습니다.'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['방열', '실리콘', '그리스', '아래에', '2차', '보호', '장치가', '있습니다.']
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '방열 실리콘 그리스 아래에 2차 보호 장치가 있습니다.'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '온도 조건'
[2026-03-02 20:50:44,258] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['온도', '조건']
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '온도 조건'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '사이의 전압 및 전류 조건'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['사이의', '전압', '및', '전류', '조건']
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '사이의 전압 및 전류 조건'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '서부영화의 압박'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['서부영화의', '압박']
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '서부영화의 압박'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 원본 텍스트: '적용 가능한 모델'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 분리된 단어: ['적용', '가능한', '모델']
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 변경 없음: '적용 가능한 모델'
[2026-03-02 20:50:44,259] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 17개 텍스트 처리 완료
[2026-03-02 20:50:44,260] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 3 치환됨
[2026-03-02 20:50:44,260] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.198, comps=9, min_center_dist=0.034 → external_request
[2026-03-02 20:50:44,263] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 17
[2026-03-02 20:50:44,263] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:44,263] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:44,263] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:44,307] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:44,325] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 4 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_003_O1CN01DoY5Vv1FsjxZ1rduf_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:44,325] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_003_O1CN01DoY5Vv1FsjxZ1rduf_!!692310543.jpg
[2026-03-02 20:50:44,332] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 4 원본 크기: 750x1393
[2026-03-02 20:50:44,341] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 4 가로 크기 조정: 750x1393 → 860x1597
[2026-03-02 20:50:44,351] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 4 크기 조정 완료: 860x1597
[2026-03-02 20:50:44,351] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 4 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_003_O1CN01DoY5Vv1FsjxZ1rduf_!!692310543_resized.jpg
[2026-03-02 20:50:44,360] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:44,408] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:45,025] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:45,029] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 10962.9MB -> 11103.8MB (+140.9MB, +1.3%) - 방법: external_request
[2026-03-02 20:50:47,087] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 2723.9ms
[2026-03-02 20:50:47,104] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 212.0ms, 인식: 2470.9ms, 분류: 27.0ms
[2026-03-02 20:50:47,111] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 10969.4MB -> 11076.9MB (+107.5MB, +1.0%) - 이미지 4
[2026-03-02 20:50:47,112] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': 'NP670Z5E-X01NP670Z5E-X01AE', 'confidence': 0.9928831458091736, 'polygon': [[151.0, 50.0], [707.0, 50.0], [707.0, 78.0], [151.0, 78.0]], 'bbox': (151, 50, 557, 29), 'method': 'polygon'}, {'text': 'X01AUX01BEX01BRX01CLX01VE', 'confidence': 0.9875860810279846, 'polygon': [[146.0, 98.0], [712.0, 98.0], [712.0, 126.0], [146.0, 126.0]], 'bbox': (146, 98, 567, 29), 'method': 'polygon'}, {'text': 'X01CZX01HSX01ITX01NGX01NL', 'confidence': 0.9632481336593628, 'polygon': [[143.0, 146.0], [707.0, 146.0], [707.0, 175.0], [143.0, 175.0]], 'bbox': (143, 146, 565, 30), 'method': 'polygon'}, {'text': 'X01PLX01ROX01RUX01SEX01ZA', 'confidence': 0.9856464862823486, 'polygon': [[138.0, 191.0], [711.0, 193.0], [710.0, 223.0], [138.0, 221.0]], 'bbox': (138, 191, 574, 33), 'method': 'polygon'}, {'text': 'X02MYXD2', 'confidence': 0.9679923057556152, 'polygon': [[334.0, 236.0], [524.0, 236.0], [524.0, 271.0], [334.0, 271.0]], 'bbox': (334, 236, 191, 36), 'method': 'polygon'}, {'text': '注:电池的适用型号较多,未能一一列出,有不明白的地方请联系客服。', 'confidence': 0.9898643493652344, 'polygon': [[69.0, 354.0], [820.0, 354.0], [820.0, 378.0], [69.0, 378.0]], 'bbox': (69, 354, 752, 25), 'method': 'polygon'}, {'text': '专注于电池技术', 'confidence': 0.9980081915855408, 'polygon': [[59.0, 494.0], [722.0, 494.0], [722.0, 572.0], [59.0, 572.0]], 'bbox': (59, 494, 664, 79), 'method': 'polygon'}, {'text': '从设计到选材,从生产到质检,', 'confidence': 0.9879975914955139, 'polygon': [[66.0, 607.0], [462.0, 607.0], [462.0, 640.0], [66.0, 640.0]], 'bbox': (66, 607, 397, 34), 'method': 'polygon'}, {'text': '始终以高于行业的严苛标准。', 'confidence': 0.9868646860122681, 'polygon': [[64.0, 652.0], [440.0, 652.0], [440.0, 685.0], [64.0, 685.0]], 'bbox': (64, 652, 377, 34), 'method': 'polygon'}, {'text': '品质芯片安全稳定', 'confidence': 0.9970617890357971, 'polygon': [[203.0, 883.0], [633.0, 883.0], [633.0, 933.0], [203.0, 933.0]], 'bbox': (203, 883, 431, 51), 'method': 'polygon'}, {'text': '智能安全芯片采用优良线路板,原装兼容方案。', 'confidence': 0.9854679107666016, 'polygon': [[141.0, 955.0], [717.0, 955.0], [717.0, 988.0], [141.0, 988.0]], 'bbox': (141, 955, 577, 34), 'method': 'polygon'}, {'text': 'HEINTELLIGENTSECURITYCHII', 'confidence': 0.9286781549453735, 'polygon': [[284.0, 1003.0], [435.0, 1003.0], [435.0, 1020.0], [284.0, 1020.0]], 'bbox': (284, 1003, 152, 18), 'method': 'polygon'}, {'text': 'PTSEXCELLENTCIRCUI', 'confidence': 0.9835410714149475, 'polygon': [[465.0, 1001.0], [578.0, 1001.0], [578.0, 1020.0], [465.0, 1020.0]], 'bbox': (465, 1001, 114, 20), 'method': 'polygon'}]
[2026-03-02 20:50:47,112] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 4 OCR raw 데이터 메모리 저장 완료: 13개 텍스트
[2026-03-02 20:50:47,114] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'NP670Z5E-X01NP670Z5E-X01AE'
[2026-03-02 20:50:47,118] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'X01AUX01BEX01BRX01CLX01VE'
[2026-03-02 20:50:47,119] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'X01CZX01HSX01ITX01NGX01NL'
[2026-03-02 20:50:47,120] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'X01PLX01ROX01RUX01SEX01ZA'
[2026-03-02 20:50:47,120] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'X02MYXD2'
[2026-03-02 20:50:47,121] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.0%): '注:电池的适用型号较多,未能一一列出,有不明白的地方请联系客服。'
[2026-03-02 20:50:47,121] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '专注于电池技术'
[2026-03-02 20:50:47,121] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.8%): '从设计到选材,从生产到质检,'
[2026-03-02 20:50:47,121] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.7%): '始终以高于行业的严苛标准。'
[2026-03-02 20:50:47,121] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '品质芯片安全稳定'
[2026-03-02 20:50:47,122] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.5%): '智能安全芯片采用优良线路板,原装兼容方案。'
[2026-03-02 20:50:47,123] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'HEINTELLIGENTSECURITYCHII'
[2026-03-02 20:50:47,123] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'PTSEXCELLENTCIRCUI'
[2026-03-02 20:50:47,123] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 6/13개 (신뢰도 + & 중국어)
[2026-03-02 20:50:47,123] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '注:电池的适用型号较多,未能一一列出,有不明白的地方请联系客服。', 'confidence': 0.9898643493652344, 'polygon': [[69.0, 354.0], [820.0, 354.0], [820.0, 378.0], [69.0, 378.0]], 'bbox': (69, 354, 752, 25), 'method': 'polygon'}, {'text': '专注于电池技术', 'confidence': 0.9980081915855408, 'polygon': [[59.0, 494.0], [722.0, 494.0], [722.0, 572.0], [59.0, 572.0]], 'bbox': (59, 494, 664, 79), 'method': 'polygon'}, {'text': '从设计到选材,从生产到质检,', 'confidence': 0.9879975914955139, 'polygon': [[66.0, 607.0], [462.0, 607.0], [462.0, 640.0], [66.0, 640.0]], 'bbox': (66, 607, 397, 34), 'method': 'polygon'}, {'text': '始终以高于行业的严苛标准。', 'confidence': 0.9868646860122681, 'polygon': [[64.0, 652.0], [440.0, 652.0], [440.0, 685.0], [64.0, 685.0]], 'bbox': (64, 652, 377, 34), 'method': 'polygon'}, {'text': '品质芯片安全稳定', 'confidence': 0.9970617890357971, 'polygon': [[203.0, 883.0], [633.0, 883.0], [633.0, 933.0], [203.0, 933.0]], 'bbox': (203, 883, 431, 51), 'method': 'polygon'}, {'text': '智能安全芯片采用优良线路板,原装兼容方案。', 'confidence': 0.9854679107666016, 'polygon': [[141.0, 955.0], [717.0, 955.0], [717.0, 988.0], [141.0, 988.0]], 'bbox': (141, 955, 577, 34), 'method': 'polygon'}]
[2026-03-02 20:50:47,124] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 6개 필터링 완료
[2026-03-02 20:50:47,124] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:47,124] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:50:47,263] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:50:47,264] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:50:47,264] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:50:47,714] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_3.webp
[2026-03-02 20:50:47,717] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 3 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_3.webp
[2026-03-02 20:50:47,717] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 7280.4ms | download=0.0ms | ocr=2492.9ms | translate=342.4ms | mask=24.0ms | inpaint=2852.3ms(external_request/SERVER) | render=151.0ms | save=403.2ms
[2026-03-02 20:50:47,717] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:50:47,717] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=2fce6cd2-fb2d-445e-a4ab-134537cc0dcd
[2026-03-02 20:50:47,717] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=2fce6cd2-fb2d-445e-a4ab-134537cc0dcd
[2026-03-02 20:50:48,961] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=02df4896-5b20-4f6e-b9d1-2541069a737f
[2026-03-02 20:50:48,963] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:48,963] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:48,964] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:48,964] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:48,964] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:49,367] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 5 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_004_O1CN0101eXYB1FsjxcXuiDF_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:49,367] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_004_O1CN0101eXYB1FsjxcXuiDF_!!692310543.jpg
[2026-03-02 20:50:49,379] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 5 원본 크기: 750x967
[2026-03-02 20:50:49,397] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 5 가로 크기 조정: 750x967 → 860x1108
[2026-03-02 20:50:49,405] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 5 크기 조정 완료: 860x1108
[2026-03-02 20:50:49,405] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 5 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_004_O1CN0101eXYB1FsjxcXuiDF_!!692310543_resized.jpg
[2026-03-02 20:50:49,412] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:52,052] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 2635.3ms
[2026-03-02 20:50:52,077] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 308.0ms, 인식: 2270.3ms, 분류: 44.0ms
[2026-03-02 20:50:52,077] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11087.0MB -> 11095.1MB (+8.1MB, +0.1%) - 이미지 5
[2026-03-02 20:50:52,097] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '轻松应对各种场景', 'confidence': 0.9915658235549927, 'polygon': [[87.0, 104.0], [770.0, 106.0], [770.0, 180.0], [86.0, 178.0]], 'bbox': (86, 104, 685, 77), 'method': 'polygon'}, {'text': '您的需求我们都知道', 'confidence': 0.9891422986984253, 'polygon': [[273.0, 219.0], [588.0, 219.0], [588.0, 250.0], [273.0, 250.0]], 'bbox': (273, 219, 316, 32), 'method': 'polygon'}, {'text': 'MEETTHEDAILYNEEDSREECTTHERTUALLABELATTERYLARGERCAPACITY', 'confidence': 0.8604782223701477, 'polygon': [[285.0, 274.0], [571.0, 274.0], [571.0, 289.0], [285.0, 289.0]], 'bbox': (285, 274, 287, 16), 'method': 'polygon'}, {'text': 'STRONGER,STRONGER', 'confidence': 0.9671908020973206, 'polygon': [[387.0, 290.0], [470.0, 290.0], [470.0, 302.0], [387.0, 302.0]], 'bbox': (387, 290, 84, 13), 'method': 'polygon'}, {'text': '休闲', 'confidence': 0.9994382262229919, 'polygon': [[141.0, 382.0], [201.0, 382.0], [201.0, 413.0], [141.0, 413.0]], 'bbox': (141, 382, 61, 32), 'method': 'polygon'}, {'text': '办公', 'confidence': 0.9973188042640686, 'polygon': [[397.0, 382.0], [459.0, 382.0], [459.0, 413.0], [397.0, 413.0]], 'bbox': (397, 382, 63, 32), 'method': 'polygon'}, {'text': '娱乐', 'confidence': 0.9990744590759277, 'polygon': [[656.0, 380.0], [720.0, 380.0], [720.0, 416.0], [656.0, 416.0]], 'bbox': (656, 380, 65, 37), 'method': 'polygon'}, {'text': 'LEISURE', 'confidence': 0.9922155737876892, 'polygon': [[145.0, 422.0], [196.0, 422.0], [196.0, 440.0], [145.0, 440.0]], 'bbox': (145, 422, 52, 19), 'method': 'polygon'}, {'text': 'OFFICE', 'confidence': 0.9922831058502197, 'polygon': [[407.0, 422.0], [452.0, 422.0], [452.0, 440.0], [407.0, 440.0]], 'bbox': (407, 422, 46, 19), 'method': 'polygon'}, {'text': 'ENTERTAINMENT', 'confidence': 0.9936981201171875, 'polygon': [[636.0, 424.0], [741.0, 424.0], [741.0, 439.0], [636.0, 439.0]], 'bbox': (636, 424, 106, 16), 'method': 'polygon'}, {'text': '3-4小时', 'confidence': 0.9945409893989563, 'polygon': [[134.0, 707.0], [218.0, 704.0], [219.0, 729.0], [135.0, 732.0]], 'bbox': (134, 704, 86, 29), 'method': 'polygon'}, {'text': '2-3小时', 'confidence': 0.9951154589653015, 'polygon': [[388.0, 706.0], [471.0, 706.0], [471.0, 731.0], [388.0, 731.0]], 'bbox': (388, 706, 84, 26), 'method': 'polygon'}, {'text': '1.5-2小时', 'confidence': 0.9970284700393677, 'polygon': [[643.0, 706.0], [742.0, 706.0], [742.0, 727.0], [643.0, 727.0]], 'bbox': (643, 706, 100, 22), 'method': 'polygon'}, {'text': '日常轻微办公', 'confidence': 0.9954341053962708, 'polygon': [[107.0, 758.0], [235.0, 758.0], [235.0, 781.0], [107.0, 781.0]], 'bbox': (107, 758, 129, 24), 'method': 'polygon'}, {'text': '从容面对繁重的工作', 'confidence': 0.995532751083374, 'polygon': [[333.0, 758.0], [526.0, 758.0], [526.0, 781.0], [333.0, 781.0]], 'bbox': (333, 758, 194, 24), 'method': 'polygon'}, {'text': '看电影听音乐玩游戏', 'confidence': 0.9980283379554749, 'polygon': [[592.0, 758.0], [786.0, 758.0], [786.0, 781.0], [592.0, 781.0]], 'bbox': (592, 758, 195, 24), 'method': 'polygon'}, {'text': '放电率13000mW左右', 'confidence': 0.9922302961349487, 'polygon': [[56.0, 788.0], [286.0, 788.0], [286.0, 811.0], [56.0, 811.0]], 'bbox': (56, 788, 231, 24), 'method': 'polygon'}, {'text': '放电率20000mW左右', 'confidence': 0.9919224977493286, 'polygon': [[314.0, 787.0], [545.0, 788.0], [544.0, 811.0], [314.0, 810.0]], 'bbox': (314, 787, 232, 25), 'method': 'polygon'}, {'text': '放电率30000mW左右', 'confidence': 0.9945681691169739, 'polygon': [[574.0, 787.0], [803.0, 788.0], [803.0, 811.0], [574.0, 810.0]], 'bbox': (574, 787, 230, 25), 'method': 'polygon'}, {'text': '温馨提示', 'confidence': 0.9975357055664062, 'polygon': [[375.0, 888.0], [486.0, 888.0], [486.0, 920.0], [375.0, 920.0]], 'bbox': (375, 888, 112, 33), 'method': 'polygon'}, {'text': '新电池出厂前都会有部分养机电量,此电量主要是保证电池在存放中具有活性', 'confidence': 0.9956708550453186, 'polygon': [[78.0, 951.0], [777.0, 951.0], [777.0, 971.0], [78.0, 971.0]], 'bbox': (78, 951, 700, 21), 'method': 'polygon'}, {'text': '您收到电池后需要完全充放电5次及以上才能达到正常使用水平。', 'confidence': 0.9904487729072571, 'polygon': [[134.0, 995.0], [721.0, 995.0], [721.0, 1015.0], [134.0, 1015.0]], 'bbox': (134, 995, 588, 21), 'method': 'polygon'}]
[2026-03-02 20:50:52,098] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 5 OCR raw 데이터 메모리 저장 완료: 22개 텍스트
[2026-03-02 20:50:52,098] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.2%): '轻松应对各种场景'
[2026-03-02 20:50:52,101] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.9%): '您的需求我们都知道'
[2026-03-02 20:50:52,101] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'MEETTHEDAILYNEEDSREECTTHERTUALLABELATTERYLARGERCAPACITY'
[2026-03-02 20:50:52,101] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'STRONGER,STRONGER'
[2026-03-02 20:50:52,104] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '休闲'
[2026-03-02 20:50:52,104] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '办公'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '娱乐'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'LEISURE'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'OFFICE'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'ENTERTAINMENT'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '3-4小时'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '2-3小时'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '1.5-2小时'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '日常轻微办公'
[2026-03-02 20:50:52,105] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '从容面对繁重的工作'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '看电影听音乐玩游戏'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.2%): '放电率13000mW左右'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.2%): '放电率20000mW左右'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '放电率30000mW左右'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '温馨提示'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '新电池出厂前都会有部分养机电量,此电量主要是保证电池在存放中具有活性'
[2026-03-02 20:50:52,106] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.0%): '您收到电池后需要完全充放电5次及以上才能达到正常使用水平。'
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 17/22개 (신뢰도 + & 중국어)
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '轻松应对各种场景', 'confidence': 0.9915658235549927, 'polygon': [[87.0, 104.0], [770.0, 106.0], [770.0, 180.0], [86.0, 178.0]], 'bbox': (86, 104, 685, 77), 'method': 'polygon'}, {'text': '您的需求我们都知道', 'confidence': 0.9891422986984253, 'polygon': [[273.0, 219.0], [588.0, 219.0], [588.0, 250.0], [273.0, 250.0]], 'bbox': (273, 219, 316, 32), 'method': 'polygon'}, {'text': '休闲', 'confidence': 0.9994382262229919, 'polygon': [[141.0, 382.0], [201.0, 382.0], [201.0, 413.0], [141.0, 413.0]], 'bbox': (141, 382, 61, 32), 'method': 'polygon'}, {'text': '办公', 'confidence': 0.9973188042640686, 'polygon': [[397.0, 382.0], [459.0, 382.0], [459.0, 413.0], [397.0, 413.0]], 'bbox': (397, 382, 63, 32), 'method': 'polygon'}, {'text': '娱乐', 'confidence': 0.9990744590759277, 'polygon': [[656.0, 380.0], [720.0, 380.0], [720.0, 416.0], [656.0, 416.0]], 'bbox': (656, 380, 65, 37), 'method': 'polygon'}, {'text': '3-4小时', 'confidence': 0.9945409893989563, 'polygon': [[134.0, 707.0], [218.0, 704.0], [219.0, 729.0], [135.0, 732.0]], 'bbox': (134, 704, 86, 29), 'method': 'polygon'}, {'text': '2-3小时', 'confidence': 0.9951154589653015, 'polygon': [[388.0, 706.0], [471.0, 706.0], [471.0, 731.0], [388.0, 731.0]], 'bbox': (388, 706, 84, 26), 'method': 'polygon'}, {'text': '1.5-2小时', 'confidence': 0.9970284700393677, 'polygon': [[643.0, 706.0], [742.0, 706.0], [742.0, 727.0], [643.0, 727.0]], 'bbox': (643, 706, 100, 22), 'method': 'polygon'}, {'text': '日常轻微办公', 'confidence': 0.9954341053962708, 'polygon': [[107.0, 758.0], [235.0, 758.0], [235.0, 781.0], [107.0, 781.0]], 'bbox': (107, 758, 129, 24), 'method': 'polygon'}, {'text': '从容面对繁重的工作', 'confidence': 0.995532751083374, 'polygon': [[333.0, 758.0], [526.0, 758.0], [526.0, 781.0], [333.0, 781.0]], 'bbox': (333, 758, 194, 24), 'method': 'polygon'}, {'text': '看电影听音乐玩游戏', 'confidence': 0.9980283379554749, 'polygon': [[592.0, 758.0], [786.0, 758.0], [786.0, 781.0], [592.0, 781.0]], 'bbox': (592, 758, 195, 24), 'method': 'polygon'}, {'text': '放电率13000mW左右', 'confidence': 0.9922302961349487, 'polygon': [[56.0, 788.0], [286.0, 788.0], [286.0, 811.0], [56.0, 811.0]], 'bbox': (56, 788, 231, 24), 'method': 'polygon'}, {'text': '放电率20000mW左右', 'confidence': 0.9919224977493286, 'polygon': [[314.0, 787.0], [545.0, 788.0], [544.0, 811.0], [314.0, 810.0]], 'bbox': (314, 787, 232, 25), 'method': 'polygon'}, {'text': '放电率30000mW左右', 'confidence': 0.9945681691169739, 'polygon': [[574.0, 787.0], [803.0, 788.0], [803.0, 811.0], [574.0, 810.0]], 'bbox': (574, 787, 230, 25), 'method': 'polygon'}, {'text': '温馨提示', 'confidence': 0.9975357055664062, 'polygon': [[375.0, 888.0], [486.0, 888.0], [486.0, 920.0], [375.0, 920.0]], 'bbox': (375, 888, 112, 33), 'method': 'polygon'}, {'text': '新电池出厂前都会有部分养机电量,此电量主要是保证电池在存放中具有活性', 'confidence': 0.9956708550453186, 'polygon': [[78.0, 951.0], [777.0, 951.0], [777.0, 971.0], [78.0, 971.0]], 'bbox': (78, 951, 700, 21), 'method': 'polygon'}, {'text': '您收到电池后需要完全充放电5次及以上才能达到正常使用水平。', 'confidence': 0.9904487729072571, 'polygon': [[134.0, 995.0], [721.0, 995.0], [721.0, 1015.0], [134.0, 1015.0]], 'bbox': (134, 995, 588, 21), 'method': 'polygon'}]
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 17개 필터링 완료
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['참고: 적합한 배터리 모델이 많이 있으므로 하나씩 나열할 수 없습니다. 질문이 있으시면 고객 서비스에 문의하십시오.', '배터리 기술에 집중', '디자인부터 소재선택, 생산부터 품질검사까지,', '항상 업계에서 가장 엄격한 표준을 충족하십시오.', '고품질 칩은 안전하고 안정적입니다.', '스마트 보안 칩은 고품질 회로 기판을 사용하며 원본과 호환됩니다.']
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '참고: 적합한 배터리 모델이 많이 있으므로 하나씩 나열할 수 없습니다. 질문이 있으시면 고객 서비스에 문의하십시오.'
[2026-03-02 20:50:52,107] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['참고:', '적합한', '배터리', '모델이', '많이', '있으므로', '하나씩', '나열할', '수', '없습니다.', '질문이', '있으시면', '고객', '서비스에', '문의하십시오.']
[2026-03-02 20:50:52,108] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '참고: 적합한 배터리 모델이 많이 있으므로 하나씩 나열할 수 없습니다. 질문이 있으시면 고객 서비스에 문의하십시오.'
[2026-03-02 20:50:52,108] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '배터리 기술에 집중'
[2026-03-02 20:50:52,108] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['배터리', '기술에', '집중']
[2026-03-02 20:50:52,108] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '배터리 기술에 집중'
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '디자인부터 소재선택, 생산부터 품질검사까지,'
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['디자인부터', '소재선택,', '생산부터', '품질검사까지,']
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '디자인부터 소재선택, 생산부터 품질검사까지,'
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '항상 업계에서 가장 엄격한 표준을 충족하십시오.'
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['항상', '업계에서', '가장', '엄격한', '표준을', '충족하십시오.']
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '항상 업계에서 가장 엄격한 표준을 충족하십시오.'
[2026-03-02 20:50:52,109] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '고품질 칩은 안전하고 안정적입니다.'
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['고품질', '칩은', '안전하고', '안정적입니다.']
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '고품질 칩은 안전하고 안정적입니다.'
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '스마트 보안 칩은 고품질 회로 기판을 사용하며 원본과 호환됩니다.'
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['스마트', '보안', '칩은', '고품질', '회로', '기판을', '사용하며', '원본과', '호환됩니다.']
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '스마트 보안 칩은 고품질 회로 기판을 사용하며 원본과 호환됩니다.'
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 6개 텍스트 처리 완료
[2026-03-02 20:50:52,110] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 4 치환됨
[2026-03-02 20:50:52,116] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.172, comps=4, min_center_dist=0.095 → external_request
[2026-03-02 20:50:52,117] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 6
[2026-03-02 20:50:52,117] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:52,117] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:52,117] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:52,161] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:52,269] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:53,365] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:53,369] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11093.0MB -> 11100.9MB (+7.8MB, +0.1%) - 방법: external_request
[2026-03-02 20:50:53,369] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:50:53,470] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:50:53,470] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:50:53,470] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:50:54,126] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_4.webp
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 4 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_4.webp
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 10209.0ms | download=0.0ms | ocr=2738.9ms | translate=4989.2ms | mask=606.3ms | inpaint=1256.6ms(external_request/SERVER) | render=100.1ms | save=608.4ms
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=3a13571d-2435-4d11-b496-5f9812739032
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=3a13571d-2435-4d11-b496-5f9812739032
[2026-03-02 20:50:54,132] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['다양한 시나리오에 쉽게 대처', '우리 모두는 귀하의 요구 사항을 알고 있습니다.', '레저', '사무실', '엔터테인먼트', '3~4시간', '2~3시간', '1.5~2시간', '매일 가벼운 사무', '무거운 작업도 쉽게 처리하세요', '영화를 보고, 음악을 듣고, 게임을 해보세요.', '방전율: 약 13000mW', '방전율: 약 20000mW', '방전율: 약 30000mW', '따뜻한 알림', '새 배터리는 공장에서 출고되기 전에 약간의 유지 관리 능력을 갖습니다. 이 전원은 주로 보관 중에 배터리가 활성화되도록 하기 위한 것입니다.', '배터리를 받은 후 정상적인 사용 수준에 도달하려면 5회 이상 완전히 충전하고 방전해야 합니다.']
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '다양한 시나리오에 쉽게 대처'
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['다양한', '시나리오에', '쉽게', '대처']
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '다양한 시나리오에 쉽게 대처'
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '우리 모두는 귀하의 요구 사항을 알고 있습니다.'
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['우리', '모두는', '귀하의', '요구', '사항을', '알고', '있습니다.']
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '우리 모두는 귀하의 요구 사항을 알고 있습니다.'
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '레저'
[2026-03-02 20:50:54,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['레저']
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '레저'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '사무실'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['사무실']
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '사무실'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '엔터테인먼트'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['엔터테인먼트']
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '엔터테인먼트'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '3~4시간'
[2026-03-02 20:50:54,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['3~4시간']
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '3~4시간'
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '2~3시간'
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['2~3시간']
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '2~3시간'
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '1.5~2시간'
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['1.5~2시간']
[2026-03-02 20:50:54,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '1.5~2시간'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '매일 가벼운 사무'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['매일', '가벼운', '사무']
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '매일 가벼운 사무'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '무거운 작업도 쉽게 처리하세요'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['무거운', '작업도', '쉽게', '처리하세요']
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '무거운 작업도 쉽게 처리하세요'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '영화를 보고, 음악을 듣고, 게임을 해보세요.'
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['영화를', '보고,', '음악을', '듣고,', '게임을', '해보세요.']
[2026-03-02 20:50:54,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '영화를 보고, 음악을 듣고, 게임을 해보세요.'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '방전율: 약 13000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['방전율:', '약', '13000mW']
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '방전율: 약 13000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '방전율: 약 20000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['방전율:', '약', '20000mW']
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '방전율: 약 20000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '방전율: 약 30000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['방전율:', '약', '30000mW']
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '방전율: 약 30000mW'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '따뜻한 알림'
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['따뜻한', '알림']
[2026-03-02 20:50:54,137] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '따뜻한 알림'
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '새 배터리는 공장에서 출고되기 전에 약간의 유지 관리 능력을 갖습니다. 이 전원은 주로 보관 중에 배터리가 활성화되도록 하기 위한 것입니다.'
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['새', '배터리는', '공장에서', '출고되기', '전에', '약간의', '유지', '관리', '능력을', '갖습니다.', '이', '전원은', '주로', '보관', '중에', '배터리가', '활성화되도록', '하기', '위한', '것입니다.']
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '새 배터리는 공장에서 출고되기 전에 약간의 유지 관리 능력을 갖습니다. 이 전원은 주로 보관 중에 배터리가 활성화되도록 하기 위한 것입니다.'
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 원본 텍스트: '배터리를 받은 후 정상적인 사용 수준에 도달하려면 5회 이상 완전히 충전하고 방전해야 합니다.'
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 분리된 단어: ['배터리를', '받은', '후', '정상적인', '사용', '수준에', '도달하려면', '5회', '이상', '완전히', '충전하고', '방전해야', '합니다.']
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 변경 없음: '배터리를 받은 후 정상적인 사용 수준에 도달하려면 5회 이상 완전히 충전하고 방전해야 합니다.'
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 17개 텍스트 처리 완료
[2026-03-02 20:50:54,138] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 5 치환됨
[2026-03-02 20:50:54,140] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.233, comps=14, min_center_dist=0.031 → external_request
[2026-03-02 20:50:54,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 17
[2026-03-02 20:50:54,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:54,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:54,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:54,194] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:54,299] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:55,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=0836b864-ce89-41ef-b380-dd15dc5444eb
[2026-03-02 20:50:55,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:55,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:55,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:55,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:55,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:55,334] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:55,337] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11086.8MB -> 11105.0MB (+18.2MB, +0.2%) - 방법: external_request
[2026-03-02 20:50:55,339] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:50:55,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:50:55,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:50:55,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:50:55,966] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_5.webp
[2026-03-02 20:50:55,969] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 5 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_5.webp
[2026-03-02 20:50:55,969] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 7003.5ms | download=1.0ms | ocr=2651.3ms | translate=2032.1ms | mask=33.0ms | inpaint=1197.0ms(external_request/SERVER) | render=174.0ms | save=407.0ms
[2026-03-02 20:50:55,969] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:50:55,969] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=02df4896-5b20-4f6e-b9d1-2541069a737f
[2026-03-02 20:50:55,969] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=02df4896-5b20-4f6e-b9d1-2541069a737f
[2026-03-02 20:50:55,970] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 6 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_005_O1CN018uGQQb1FsjxZamWl1_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:55,970] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_005_O1CN018uGQQb1FsjxZamWl1_!!692310543.jpg
[2026-03-02 20:50:55,973] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 6 원본 크기: 750x1171
[2026-03-02 20:50:55,983] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 6 가로 크기 조정: 750x1171 → 860x1342
[2026-03-02 20:50:55,990] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 6 크기 조정 완료: 860x1342
[2026-03-02 20:50:55,991] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 6 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_005_O1CN018uGQQb1FsjxZamWl1_!!692310543_resized.jpg
[2026-03-02 20:50:55,995] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:57,033] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 1033.0ms
[2026-03-02 20:50:57,050] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 254.0ms, 인식: 739.0ms, 분류: 30.0ms
[2026-03-02 20:50:57,050] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11096.2MB -> 11101.0MB (+4.8MB, +0.0%) - 이미지 6
[2026-03-02 20:50:57,067] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '12重安全保护', 'confidence': 0.9974347949028015, 'polygon': [[215.0, 143.0], [675.0, 143.0], [675.0, 210.0], [215.0, 210.0]], 'bbox': (215, 143, 461, 68), 'method': 'polygon'}, {'text': '盆', 'confidence': 0.5087405443191528, 'polygon': [[178.0, 365.0], [223.0, 365.0], [223.0, 410.0], [178.0, 410.0]], 'bbox': (178, 365, 46, 46), 'method': 'polygon'}, {'text': '过压保护', 'confidence': 0.9996292591094971, 'polygon': [[146.0, 445.0], [259.0, 445.0], [259.0, 478.0], [146.0, 478.0]], 'bbox': (146, 445, 114, 34), 'method': 'polygon'}, {'text': '过流保护', 'confidence': 0.9995509386062622, 'polygon': [[388.0, 446.0], [502.0, 446.0], [502.0, 481.0], [388.0, 481.0]], 'bbox': (388, 446, 115, 36), 'method': 'polygon'}, {'text': '短路保护', 'confidence': 0.998879075050354, 'polygon': [[629.0, 447.0], [743.0, 447.0], [743.0, 482.0], [629.0, 482.0]], 'bbox': (629, 447, 115, 36), 'method': 'polygon'}, {'text': '防静电保护', 'confidence': 0.9995673894882202, 'polygon': [[134.0, 685.0], [274.0, 685.0], [274.0, 714.0], [134.0, 714.0]], 'bbox': (134, 685, 141, 30), 'method': 'polygon'}, {'text': '温度异常保护', 'confidence': 0.9979144930839539, 'polygon': [[361.0, 684.0], [530.0, 684.0], [530.0, 717.0], [361.0, 717.0]], 'bbox': (361, 684, 170, 34), 'method': 'polygon'}, {'text': '功率保护', 'confidence': 0.9993990063667297, 'polygon': [[631.0, 684.0], [744.0, 684.0], [744.0, 717.0], [631.0, 717.0]], 'bbox': (631, 684, 114, 34), 'method': 'polygon'}, {'text': '过放电保护', 'confidence': 0.9982434511184692, 'polygon': [[133.0, 918.0], [276.0, 918.0], [276.0, 952.0], [133.0, 952.0]], 'bbox': (133, 918, 144, 35), 'method': 'polygon'}, {'text': '过充电保护', 'confidence': 0.9976310729980469, 'polygon': [[375.0, 921.0], [515.0, 921.0], [515.0, 951.0], [375.0, 951.0]], 'bbox': (375, 921, 141, 31), 'method': 'polygon'}, {'text': '电磁保护', 'confidence': 0.998640239238739, 'polygon': [[631.0, 918.0], [744.0, 918.0], [744.0, 953.0], [631.0, 953.0]], 'bbox': (631, 918, 114, 36), 'method': 'polygon'}, {'text': '充电时间保护', 'confidence': 0.9971632957458496, 'polygon': [[117.0, 1156.0], [288.0, 1153.0], [289.0, 1187.0], [118.0, 1190.0]], 'bbox': (117, 1153, 173, 38), 'method': 'polygon'}, {'text': '电芯智能防护', 'confidence': 0.9988138675689697, 'polygon': [[364.0, 1157.0], [528.0, 1157.0], [528.0, 1187.0], [364.0, 1187.0]], 'bbox': (364, 1157, 165, 31), 'method': 'polygon'}, {'text': '一级备用防护', 'confidence': 0.9978243708610535, 'polygon': [[601.0, 1155.0], [772.0, 1155.0], [772.0, 1188.0], [601.0, 1188.0]], 'bbox': (601, 1155, 172, 34), 'method': 'polygon'}]
[2026-03-02 20:50:57,067] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 6 OCR raw 데이터 메모리 저장 완료: 14개 텍스트
[2026-03-02 20:50:57,070] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '12重安全保护'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 50.9%): '盆'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '过压保护'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '过流保护'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '短路保护'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '防静电保护'
[2026-03-02 20:50:57,072] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '温度异常保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '功率保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '过放电保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '过充电保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '电磁保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '充电时间保护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '电芯智能防护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '一级备用防护'
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 14/14개 (신뢰도 + & 중국어)
[2026-03-02 20:50:57,073] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '12重安全保护', 'confidence': 0.9974347949028015, 'polygon': [[215.0, 143.0], [675.0, 143.0], [675.0, 210.0], [215.0, 210.0]], 'bbox': (215, 143, 461, 68), 'method': 'polygon'}, {'text': '盆', 'confidence': 0.5087405443191528, 'polygon': [[178.0, 365.0], [223.0, 365.0], [223.0, 410.0], [178.0, 410.0]], 'bbox': (178, 365, 46, 46), 'method': 'polygon'}, {'text': '过压保护', 'confidence': 0.9996292591094971, 'polygon': [[146.0, 445.0], [259.0, 445.0], [259.0, 478.0], [146.0, 478.0]], 'bbox': (146, 445, 114, 34), 'method': 'polygon'}, {'text': '过流保护', 'confidence': 0.9995509386062622, 'polygon': [[388.0, 446.0], [502.0, 446.0], [502.0, 481.0], [388.0, 481.0]], 'bbox': (388, 446, 115, 36), 'method': 'polygon'}, {'text': '短路保护', 'confidence': 0.998879075050354, 'polygon': [[629.0, 447.0], [743.0, 447.0], [743.0, 482.0], [629.0, 482.0]], 'bbox': (629, 447, 115, 36), 'method': 'polygon'}, {'text': '防静电保护', 'confidence': 0.9995673894882202, 'polygon': [[134.0, 685.0], [274.0, 685.0], [274.0, 714.0], [134.0, 714.0]], 'bbox': (134, 685, 141, 30), 'method': 'polygon'}, {'text': '温度异常保护', 'confidence': 0.9979144930839539, 'polygon': [[361.0, 684.0], [530.0, 684.0], [530.0, 717.0], [361.0, 717.0]], 'bbox': (361, 684, 170, 34), 'method': 'polygon'}, {'text': '功率保护', 'confidence': 0.9993990063667297, 'polygon': [[631.0, 684.0], [744.0, 684.0], [744.0, 717.0], [631.0, 717.0]], 'bbox': (631, 684, 114, 34), 'method': 'polygon'}, {'text': '过放电保护', 'confidence': 0.9982434511184692, 'polygon': [[133.0, 918.0], [276.0, 918.0], [276.0, 952.0], [133.0, 952.0]], 'bbox': (133, 918, 144, 35), 'method': 'polygon'}, {'text': '过充电保护', 'confidence': 0.9976310729980469, 'polygon': [[375.0, 921.0], [515.0, 921.0], [515.0, 951.0], [375.0, 951.0]], 'bbox': (375, 921, 141, 31), 'method': 'polygon'}, {'text': '电磁保护', 'confidence': 0.998640239238739, 'polygon': [[631.0, 918.0], [744.0, 918.0], [744.0, 953.0], [631.0, 953.0]], 'bbox': (631, 918, 114, 36), 'method': 'polygon'}, {'text': '充电时间保护', 'confidence': 0.9971632957458496, 'polygon': [[117.0, 1156.0], [288.0, 1153.0], [289.0, 1187.0], [118.0, 1190.0]], 'bbox': (117, 1153, 173, 38), 'method': 'polygon'}, {'text': '电芯智能防护', 'confidence': 0.9988138675689697, 'polygon': [[364.0, 1157.0], [528.0, 1157.0], [528.0, 1187.0], [364.0, 1187.0]], 'bbox': (364, 1157, 165, 31), 'method': 'polygon'}, {'text': '一级备用防护', 'confidence': 0.9978243708610535, 'polygon': [[601.0, 1155.0], [772.0, 1155.0], [772.0, 1188.0], [601.0, 1188.0]], 'bbox': (601, 1155, 172, 34), 'method': 'polygon'}]
[2026-03-02 20:50:57,075] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 14개 필터링 완료
[2026-03-02 20:50:57,076] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:57,076] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=9ea906ea-0ba4-47ce-b9aa-3ac5424cef78
[2026-03-02 20:50:57,078] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:50:57,078] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:50:57,078] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:50:57,078] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:50:57,079] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:50:57,290] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 7 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_006_O1CN01SRL3wT1FsjxfYrwwP_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:50:57,290] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_006_O1CN01SRL3wT1FsjxfYrwwP_!!692310543.jpg
[2026-03-02 20:50:57,295] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 7 원본 크기: 750x1166
[2026-03-02 20:50:57,302] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 7 가로 크기 조정: 750x1166 → 860x1337
[2026-03-02 20:50:57,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 7 크기 조정 완료: 860x1337
[2026-03-02 20:50:57,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 7 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_006_O1CN01SRL3wT1FsjxfYrwwP_!!692310543_resized.jpg
[2026-03-02 20:50:57,316] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:50:59,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 1823.0ms
[2026-03-02 20:50:59,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 270.0ms, 인식: 1516.0ms, 분류: 26.0ms
[2026-03-02 20:50:59,167] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11091.3MB -> 11168.0MB (+76.7MB, +0.7%) - 이미지 7
[2026-03-02 20:50:59,167] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '产品实拍展示', 'confidence': 0.99440598487854, 'polygon': [[153.0, 121.0], [724.0, 124.0], [724.0, 210.0], [153.0, 207.0]], 'bbox': (153, 121, 572, 90), 'method': 'polygon'}, {'text': 'PRODUCTDETAILSDISPLAY', 'confidence': 0.9940453767776489, 'polygon': [[122.0, 247.0], [748.0, 247.0], [748.0, 280.0], [122.0, 280.0]], 'bbox': (122, 247, 627, 34), 'method': 'polygon'}, {'text': '精工细作', 'confidence': 0.998788595199585, 'polygon': [[233.0, 418.0], [426.0, 418.0], [426.0, 461.0], [233.0, 461.0]], 'bbox': (233, 418, 194, 44), 'method': 'polygon'}, {'text': '坚固耐用', 'confidence': 0.9994091391563416, 'polygon': [[453.0, 419.0], [639.0, 419.0], [639.0, 462.0], [453.0, 462.0]], 'bbox': (453, 419, 187, 44), 'method': 'polygon'}, {'text': '外壳采用耐高温抗磨损的ABS+PC', 'confidence': 0.9977625608444214, 'polygon': [[222.0, 528.0], [648.0, 529.0], [648.0, 559.0], [222.0, 557.0]], 'bbox': (222, 528, 427, 32), 'method': 'polygon'}, {'text': '合金环保材料打造做工精细,耐磨抗压', 'confidence': 0.9955678582191467, 'polygon': [[191.0, 581.0], [679.0, 581.0], [679.0, 609.0], [191.0, 609.0]], 'bbox': (191, 581, 489, 29), 'method': 'polygon'}, {'text': 'SHUO.2.B', 'confidence': 0.9244955778121948, 'polygon': [[78.0, 868.0], [139.0, 868.0], [139.0, 883.0], [78.0, 883.0]], 'bbox': (78, 868, 62, 16), 'method': 'polygon'}, {'text': 'Rating:+15.2V-57W', 'confidence': 0.8985471129417419, 'polygon': [[76.0, 880.0], [215.0, 880.0], [215.0, 900.0], [76.0, 900.0]], 'bbox': (76, 880, 140, 21), 'method': 'polygon'}, {'text': 'MODEL星号/型号):AA-PBVN4NP', 'confidence': 0.8782500624656677, 'polygon': [[264.0, 880.0], [410.0, 877.0], [410.0, 893.0], [265.0, 896.0]], 'bbox': (264, 877, 147, 20), 'method': 'polygon'}, {'text': 'RoHS', 'confidence': 0.9808260202407837, 'polygon': [[414.0, 879.0], [472.0, 879.0], [472.0, 904.0], [414.0, 904.0]], 'bbox': (414, 879, 59, 26), 'method': 'polygon'}, {'text': 'arie.Ersat', 'confidence': 0.8820827603340149, 'polygon': [[331.0, 929.0], [371.0, 929.0], [371.0, 943.0], [331.0, 943.0]], 'bbox': (331, 929, 41, 15), 'method': 'polygon'}]
[2026-03-02 20:50:59,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 7 OCR raw 데이터 메모리 저장 완료: 11개 텍스트
[2026-03-02 20:50:59,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '产品实拍展示'
[2026-03-02 20:50:59,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'PRODUCTDETAILSDISPLAY'
[2026-03-02 20:50:59,168] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '精工细作'
[2026-03-02 20:50:59,169] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '坚固耐用'
[2026-03-02 20:50:59,169] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '外壳采用耐高温抗磨损的ABS+PC'
[2026-03-02 20:50:59,169] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '合金环保材料打造做工精细,耐磨抗压'
[2026-03-02 20:50:59,169] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'SHUO.2.B'
[2026-03-02 20:50:59,169] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Rating:+15.2V-57W'
[2026-03-02 20:50:59,171] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 87.8%): 'MODEL星号/型号):AA-PBVN4NP'
[2026-03-02 20:50:59,171] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'RoHS'
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'arie.Ersat'
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 6/11개 (신뢰도 + & 중국어)
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '产品实拍展示', 'confidence': 0.99440598487854, 'polygon': [[153.0, 121.0], [724.0, 124.0], [724.0, 210.0], [153.0, 207.0]], 'bbox': (153, 121, 572, 90), 'method': 'polygon'}, {'text': '精工细作', 'confidence': 0.998788595199585, 'polygon': [[233.0, 418.0], [426.0, 418.0], [426.0, 461.0], [233.0, 461.0]], 'bbox': (233, 418, 194, 44), 'method': 'polygon'}, {'text': '坚固耐用', 'confidence': 0.9994091391563416, 'polygon': [[453.0, 419.0], [639.0, 419.0], [639.0, 462.0], [453.0, 462.0]], 'bbox': (453, 419, 187, 44), 'method': 'polygon'}, {'text': '外壳采用耐高温抗磨损的ABS+PC', 'confidence': 0.9977625608444214, 'polygon': [[222.0, 528.0], [648.0, 529.0], [648.0, 559.0], [222.0, 557.0]], 'bbox': (222, 528, 427, 32), 'method': 'polygon'}, {'text': '合金环保材料打造做工精细,耐磨抗压', 'confidence': 0.9955678582191467, 'polygon': [[191.0, 581.0], [679.0, 581.0], [679.0, 609.0], [191.0, 609.0]], 'bbox': (191, 581, 489, 29), 'method': 'polygon'}, {'text': 'MODEL星号/型号):AA-PBVN4NP', 'confidence': 0.8782500624656677, 'polygon': [[264.0, 880.0], [410.0, 877.0], [410.0, 893.0], [265.0, 896.0]], 'bbox': (264, 877, 147, 20), 'method': 'polygon'}]
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 6개 필터링 완료
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:50:59,172] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['12개 계층의 보안 보호', '분지', '과전압 보호', '과전류 보호', '단락 보호', '정전기 방지 보호', '온도 이상 보호', '전원 보호', '과방 전 보호', '과충전 보호', '전자기 보호', '충전 시간 보호', '지능형 배터리 보호', '레벨 1 백업 보호']
[2026-03-02 20:50:59,173] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:59,173] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '12개 계층의 보안 보호'
[2026-03-02 20:50:59,173] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['12개', '계층의', '보안', '보호']
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '12개 계층의 보안 보호'
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '분지'
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['분지']
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '분지'
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '과전압 보호'
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['과전압', '보호']
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '과전압 보호'
[2026-03-02 20:50:59,174] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '과전류 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['과전류', '보호']
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '과전류 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '단락 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['단락', '보호']
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '단락 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '정전기 방지 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['정전기', '방지', '보호']
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '정전기 방지 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '온도 이상 보호'
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['온도', '이상', '보호']
[2026-03-02 20:50:59,175] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '온도 이상 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '전원 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['전원', '보호']
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '전원 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '과방 전 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['과방', '전', '보호']
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '과방 전 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '과충전 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['과충전', '보호']
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '과충전 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '전자기 보호'
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['전자기', '보호']
[2026-03-02 20:50:59,176] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '전자기 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '충전 시간 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['충전', '시간', '보호']
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '충전 시간 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '지능형 배터리 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['지능형', '배터리', '보호']
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '지능형 배터리 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '레벨 1 백업 보호'
[2026-03-02 20:50:59,177] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['레벨', '1', '백업', '보호']
[2026-03-02 20:50:59,180] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '레벨 1 백업 보호'
[2026-03-02 20:50:59,183] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 14개 텍스트 처리 완료
[2026-03-02 20:50:59,183] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 6 치환됨
[2026-03-02 20:50:59,184] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.140, comps=14, min_center_dist=0.046 → external_request
[2026-03-02 20:50:59,185] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 14
[2026-03-02 20:50:59,186] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:59,187] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:59,187] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:59,387] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['제품 실제 샷 디스플레이', '훌륭한 솜씨', '견고함과 내구성', '쉘은 고온 및 내마모성 ABS+PC로 제작되었습니다.', '환경 친화적인 합금 소재, 훌륭한 솜씨, 내마모성 및 내압성으로 제작되었습니다.', '모델(별표 / 모델):AA-PBVN4NP']
[2026-03-02 20:50:59,387] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:50:59,387] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '제품 실제 샷 디스플레이'
[2026-03-02 20:50:59,388] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['제품', '실제', '샷', '디스플레이']
[2026-03-02 20:50:59,389] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '제품 실제 샷 디스플레이'
[2026-03-02 20:50:59,389] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '훌륭한 솜씨'
[2026-03-02 20:50:59,389] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['훌륭한', '솜씨']
[2026-03-02 20:50:59,389] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '훌륭한 솜씨'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '견고함과 내구성'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['견고함과', '내구성']
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '견고함과 내구성'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '쉘은 고온 및 내마모성 ABS+PC로 제작되었습니다.'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['쉘은', '고온', '및', '내마모성', 'ABS+PC로', '제작되었습니다.']
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '쉘은 고온 및 내마모성 ABS+PC로 제작되었습니다.'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '환경 친화적인 합금 소재, 훌륭한 솜씨, 내마모성 및 내압성으로 제작되었습니다.'
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['환경', '친화적인', '합금', '소재,', '훌륭한', '솜씨,', '내마모성', '및', '내압성으로', '제작되었습니다.']
[2026-03-02 20:50:59,390] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '환경 친화적인 합금 소재, 훌륭한 솜씨, 내마모성 및 내압성으로 제작되었습니다.'
[2026-03-02 20:50:59,391] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '모델(별표 / 모델):AA-PBVN4NP'
[2026-03-02 20:50:59,391] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['모델(별표', '/', '모델):AA-PBVN4NP']
[2026-03-02 20:50:59,391] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '모델(별표 / 모델):AA-PBVN4NP'
[2026-03-02 20:50:59,391] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 6개 텍스트 처리 완료
[2026-03-02 20:50:59,391] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 7 치환됨
[2026-03-02 20:50:59,392] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:59,395] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.143, comps=4, min_center_dist=0.082 → external_request
[2026-03-02 20:50:59,395] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 6
[2026-03-02 20:50:59,395] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:50:59,395] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:50:59,395] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:50:59,427] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:50:59,457] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:59,491] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:50:59,972] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:50:59,975] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11168.8MB -> 11180.3MB (+11.5MB, +0.1%) - 방법: external_request
[2026-03-02 20:50:59,976] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:00,123] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:00,124] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:00,124] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:00,413] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:51:00,416] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11166.6MB -> 11195.0MB (+28.4MB, +0.3%) - 방법: external_request
[2026-03-02 20:51:00,533] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_6.webp
[2026-03-02 20:51:00,536] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 6 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_6.webp
[2026-03-02 20:51:00,536] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 5381.0ms | download=1.0ms | ocr=1045.0ms | translate=2099.3ms | mask=24.0ms | inpaint=796.4ms(external_request/SERVER) | render=148.2ms | save=361.3ms
[2026-03-02 20:51:00,536] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:00,537] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=0836b864-ce89-41ef-b380-dd15dc5444eb
[2026-03-02 20:51:00,537] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=0836b864-ce89-41ef-b380-dd15dc5444eb
[2026-03-02 20:51:00,537] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:00,609] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:00,609] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:00,609] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:01,022] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_7.webp
[2026-03-02 20:51:01,025] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 7 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_7.webp
[2026-03-02 20:51:01,025] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 3944.8ms | download=16.0ms | ocr=1835.0ms | translate=221.4ms | mask=30.1ms | inpaint=1142.5ms(external_request/SERVER) | render=71.0ms | save=365.5ms
[2026-03-02 20:51:01,025] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:01,025] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=9ea906ea-0ba4-47ce-b9aa-3ac5424cef78
[2026-03-02 20:51:01,026] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=9ea906ea-0ba4-47ce-b9aa-3ac5424cef78
[2026-03-02 20:51:01,797] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=acb0a920-f86b-488e-aaa7-670832486116
[2026-03-02 20:51:01,801] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:51:01,801] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:51:01,801] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:51:01,802] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:51:01,802] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:51:02,044] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=67666d64-47c1-4eb1-910b-7aec9848c76b
[2026-03-02 20:51:02,046] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:51:02,047] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:51:02,047] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:51:02,047] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:51:02,047] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:51:02,074] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 8 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_007_O1CN01x3xU9M1FsjxTHwtoe_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:51:02,074] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_007_O1CN01x3xU9M1FsjxTHwtoe_!!692310543.jpg
[2026-03-02 20:51:02,078] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 8 원본 크기: 750x855
[2026-03-02 20:51:02,083] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 8 가로 크기 조정: 750x855 → 860x980
[2026-03-02 20:51:02,090] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 8 크기 조정 완료: 860x980
[2026-03-02 20:51:02,091] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 8 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_007_O1CN01x3xU9M1FsjxTHwtoe_!!692310543_resized.jpg
[2026-03-02 20:51:02,094] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:51:02,746] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 649.0ms
[2026-03-02 20:51:02,757] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 308.0ms, 인식: 328.0ms, 분류: 8.0ms
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11179.2MB -> 11175.6MB (-3.6MB, -0.0%) - 이미지 8
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '精准设计方案', 'confidence': 0.998397171497345, 'polygon': [[190.0, 62.0], [471.0, 64.0], [471.0, 103.0], [190.0, 101.0]], 'bbox': (190, 62, 282, 42), 'method': 'polygon'}, {'text': '更加匹配', 'confidence': 0.9982356429100037, 'polygon': [[495.0, 63.0], [679.0, 63.0], [679.0, 102.0], [495.0, 102.0]], 'bbox': (495, 63, 185, 40), 'method': 'polygon'}, {'text': '我们家电池采用一比一设计', 'confidence': 0.9946824908256531, 'polygon': [[258.0, 207.0], [590.0, 207.0], [590.0, 232.0], [258.0, 232.0]], 'bbox': (258, 207, 333, 26), 'method': 'polygon'}, {'text': '方案与您的电脑更加匹配', 'confidence': 0.9942060708999634, 'polygon': [[273.0, 258.0], [578.0, 258.0], [578.0, 283.0], [273.0, 283.0]], 'bbox': (273, 258, 306, 26), 'method': 'polygon'}]
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 8 OCR raw 데이터 메모리 저장 완료: 4개 텍스트
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '精准设计方案'
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '更加匹配'
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '我们家电池采用一比一设计'
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '方案与您的电脑更加匹配'
[2026-03-02 20:51:02,758] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 4/4개 (신뢰도 + & 중국어)
[2026-03-02 20:51:02,759] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '精准设计方案', 'confidence': 0.998397171497345, 'polygon': [[190.0, 62.0], [471.0, 64.0], [471.0, 103.0], [190.0, 101.0]], 'bbox': (190, 62, 282, 42), 'method': 'polygon'}, {'text': '更加匹配', 'confidence': 0.9982356429100037, 'polygon': [[495.0, 63.0], [679.0, 63.0], [679.0, 102.0], [495.0, 102.0]], 'bbox': (495, 63, 185, 40), 'method': 'polygon'}, {'text': '我们家电池采用一比一设计', 'confidence': 0.9946824908256531, 'polygon': [[258.0, 207.0], [590.0, 207.0], [590.0, 232.0], [258.0, 232.0]], 'bbox': (258, 207, 333, 26), 'method': 'polygon'}, {'text': '方案与您的电脑更加匹配', 'confidence': 0.9942060708999634, 'polygon': [[273.0, 258.0], [578.0, 258.0], [578.0, 283.0], [273.0, 283.0]], 'bbox': (273, 258, 306, 26), 'method': 'polygon'}]
[2026-03-02 20:51:02,759] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 4개 필터링 완료
[2026-03-02 20:51:02,760] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:51:02,760] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 9 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_008_O1CN01rYnf1A1FsjxfYp004_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:51:02,761] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_008_O1CN01rYnf1A1FsjxfYp004_!!692310543.jpg
[2026-03-02 20:51:02,768] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 9 원본 크기: 750x839
[2026-03-02 20:51:02,770] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 9 가로 크기 조정: 750x839 → 860x962
[2026-03-02 20:51:02,777] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 9 크기 조정 완료: 860x962
[2026-03-02 20:51:02,778] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 9 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_008_O1CN01rYnf1A1FsjxfYp004_!!692310543_resized.jpg
[2026-03-02 20:51:02,782] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:51:05,802] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 3014.7ms
[2026-03-02 20:51:05,822] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 351.0ms, 인식: 2610.7ms, 분류: 39.0ms
[2026-03-02 20:51:05,833] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11175.4MB -> 11182.4MB (+7.0MB, +0.1%) - 이미지 9
[2026-03-02 20:51:05,834] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '安全检测安', 'confidence': 0.990048885345459, 'polygon': [[238.0, 60.0], [461.0, 60.0], [461.0, 101.0], [238.0, 101.0]], 'bbox': (238, 60, 224, 42), 'method': 'polygon'}, {'text': '安全放心', 'confidence': 0.9983964562416077, 'polygon': [[441.0, 60.0], [630.0, 60.0], [630.0, 101.0], [441.0, 101.0]], 'bbox': (441, 60, 190, 42), 'method': 'polygon'}, {'text': '电路保护设计,只为使用安心', 'confidence': 0.9979783296585083, 'polygon': [[251.0, 170.0], [623.0, 171.0], [623.0, 195.0], [251.0, 194.0]], 'bbox': (251, 170, 373, 26), 'method': 'polygon'}, {'text': '产品已通过CE、FCC、PSE、ROHS等认证', 'confidence': 0.9867547154426575, 'polygon': [[168.0, 222.0], [704.0, 222.0], [704.0, 247.0], [168.0, 247.0]], 'bbox': (168, 222, 537, 26), 'method': 'polygon'}, {'text': '4ICP3/64/120', 'confidence': 0.9462878704071045, 'polygon': [[630.0, 431.0], [749.0, 416.0], [751.0, 433.0], [633.0, 449.0]], 'bbox': (630, 416, 122, 34), 'method': 'polygon'}, {'text': 'SHUO.Z.B', 'confidence': 0.975742757320404, 'polygon': [[137.0, 453.0], [296.0, 433.0], [298.0, 454.0], [140.0, 474.0]], 'bbox': (137, 433, 162, 42), 'method': 'polygon'}, {'text': 'Rating:+15.2V---57W', 'confidence': 0.9401453733444214, 'polygon': [[147.0, 475.0], [497.0, 429.0], [500.0, 456.0], [150.0, 502.0]], 'bbox': (147, 429, 354, 74), 'method': 'polygon'}, {'text': 'RechargeableLi-PolymerBatteryPack', 'confidence': 0.9910144209861755, 'polygon': [[160.0, 498.0], [563.0, 445.0], [565.0, 466.0], [163.0, 519.0]], 'bbox': (160, 445, 406, 75), 'method': 'polygon'}, {'text': 'Capacity:3750mAh(TYP)/3550mAh(MIN)', 'confidence': 0.9379695653915405, 'polygon': [[172.0, 515.0], [623.0, 455.0], [626.0, 478.0], [175.0, 538.0]], 'bbox': (172, 455, 455, 84), 'method': 'polygon'}, {'text': 'VORSICHT!', 'confidence': 0.9590327739715576, 'polygon': [[186.0, 538.0], [325.0, 521.0], [327.0, 542.0], [189.0, 559.0]], 'bbox': (186, 521, 142, 39), 'method': 'polygon'}, {'text': 'Explosionsgetahrbei unsachgemaBenAustauschderBatterie', 'confidence': 0.9749507308006287, 'polygon': [[196.0, 557.0], [859.0, 462.0], [859.0, 488.0], [199.0, 583.0]], 'bbox': (196, 462, 664, 122), 'method': 'polygon'}, {'text': '注意/注意:', 'confidence': 0.9554426670074463, 'polygon': [[244.0, 621.0], [376.0, 602.0], [379.0, 624.0], [247.0, 642.0]], 'bbox': (244, 602, 136, 41), 'method': 'polygon'}, {'text': '池必须接照废弃物管理办法回收处理', 'confidence': 0.9363356828689575, 'polygon': [[344.0, 634.0], [678.0, 579.0], [681.0, 598.0], [347.0, 653.0]], 'bbox': (344, 579, 338, 75), 'method': 'polygon'}, {'text': '池漫水后使用,请勿自行拆解或组装电池、', 'confidence': 0.9297481179237366, 'polygon': [[362.0, 650.0], [729.0, 588.0], [732.0, 608.0], [366.0, 671.0]], 'bbox': (362, 588, 371, 84), 'method': 'polygon'}, {'text': '耀毒。挤压或投入火中若出现严重鼓胀,请勿继纟', 'confidence': 0.9054036736488342, 'polygon': [[409.0, 662.0], [857.0, 584.0], [859.0, 605.0], [413.0, 683.0]], 'bbox': (409, 584, 451, 100), 'method': 'polygon'}, {'text': '池置手60爆氏度以上的环境中', 'confidence': 0.8659030199050903, 'polygon': [[394.0, 685.0], [684.0, 634.0], [687.0, 654.0], [398.0, 706.0]], 'bbox': (394, 634, 294, 73), 'method': 'polygon'}, {'text': '东美市领之宝电子', 'confidence': 0.8385457992553711, 'polygon': [[377.0, 710.0], [548.0, 680.0], [552.0, 700.0], [380.0, 730.0]], 'bbox': (377, 680, 176, 51), 'method': 'polygon'}]
[2026-03-02 20:51:05,836] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 9 OCR raw 데이터 메모리 저장 완료: 17개 텍스트
[2026-03-02 20:51:05,836] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.0%): '安全检测安'
[2026-03-02 20:51:05,836] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '安全放心'
[2026-03-02 20:51:05,838] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '电路保护设计,只为使用安心'
[2026-03-02 20:51:05,839] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.7%): '产品已通过CE、FCC、PSE、ROHS等认证'
[2026-03-02 20:51:05,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '4ICP3/64/120'
[2026-03-02 20:51:05,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'SHUO.Z.B'
[2026-03-02 20:51:05,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Rating:+15.2V---57W'
[2026-03-02 20:51:05,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'RechargeableLi-PolymerBatteryPack'
[2026-03-02 20:51:05,840] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Capacity:3750mAh(TYP)/3550mAh(MIN)'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'VORSICHT!'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'Explosionsgetahrbei unsachgemaBenAustauschderBatterie'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 95.5%): '注意/注意:'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 93.6%): '池必须接照废弃物管理办法回收处理'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 93.0%): '池漫水后使用,请勿自行拆解或组装电池、'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 90.5%): '耀毒。挤压或投入火中若出现严重鼓胀,请勿继纟'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 86.6%): '池置手60爆氏度以上的环境中'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 83.9%): '东美市领之宝电子'
[2026-03-02 20:51:05,841] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 10/17개 (신뢰도 + & 중국어)
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '安全检测安', 'confidence': 0.990048885345459, 'polygon': [[238.0, 60.0], [461.0, 60.0], [461.0, 101.0], [238.0, 101.0]], 'bbox': (238, 60, 224, 42), 'method': 'polygon'}, {'text': '安全放心', 'confidence': 0.9983964562416077, 'polygon': [[441.0, 60.0], [630.0, 60.0], [630.0, 101.0], [441.0, 101.0]], 'bbox': (441, 60, 190, 42), 'method': 'polygon'}, {'text': '电路保护设计,只为使用安心', 'confidence': 0.9979783296585083, 'polygon': [[251.0, 170.0], [623.0, 171.0], [623.0, 195.0], [251.0, 194.0]], 'bbox': (251, 170, 373, 26), 'method': 'polygon'}, {'text': '产品已通过CE、FCC、PSE、ROHS等认证', 'confidence': 0.9867547154426575, 'polygon': [[168.0, 222.0], [704.0, 222.0], [704.0, 247.0], [168.0, 247.0]], 'bbox': (168, 222, 537, 26), 'method': 'polygon'}, {'text': '注意/注意:', 'confidence': 0.9554426670074463, 'polygon': [[244.0, 621.0], [376.0, 602.0], [379.0, 624.0], [247.0, 642.0]], 'bbox': (244, 602, 136, 41), 'method': 'polygon'}, {'text': '池必须接照废弃物管理办法回收处理', 'confidence': 0.9363356828689575, 'polygon': [[344.0, 634.0], [678.0, 579.0], [681.0, 598.0], [347.0, 653.0]], 'bbox': (344, 579, 338, 75), 'method': 'polygon'}, {'text': '池漫水后使用,请勿自行拆解或组装电池、', 'confidence': 0.9297481179237366, 'polygon': [[362.0, 650.0], [729.0, 588.0], [732.0, 608.0], [366.0, 671.0]], 'bbox': (362, 588, 371, 84), 'method': 'polygon'}, {'text': '耀毒。挤压或投入火中若出现严重鼓胀,请勿继纟', 'confidence': 0.9054036736488342, 'polygon': [[409.0, 662.0], [857.0, 584.0], [859.0, 605.0], [413.0, 683.0]], 'bbox': (409, 584, 451, 100), 'method': 'polygon'}, {'text': '池置手60爆氏度以上的环境中', 'confidence': 0.8659030199050903, 'polygon': [[394.0, 685.0], [684.0, 634.0], [687.0, 654.0], [398.0, 706.0]], 'bbox': (394, 634, 294, 73), 'method': 'polygon'}, {'text': '东美市领之宝电子', 'confidence': 0.8385457992553711, 'polygon': [[377.0, 710.0], [548.0, 680.0], [552.0, 700.0], [380.0, 730.0]], 'bbox': (377, 680, 176, 51), 'method': 'polygon'}]
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 10개 필터링 완료
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['정확한 디자인 계획', '더 나은 일치', '우리 배터리는 일대일 디자인을 채택합니다.', '이 솔루션은 귀하의 컴퓨터에 더 적합합니다.']
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '정확한 디자인 계획'
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['정확한', '디자인', '계획']
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '정확한 디자인 계획'
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '더 나은 일치'
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['더', '나은', '일치']
[2026-03-02 20:51:05,842] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '더 나은 일치'
[2026-03-02 20:51:05,843] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '우리 배터리는 일대일 디자인을 채택합니다.'
[2026-03-02 20:51:05,846] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['우리', '배터리는', '일대일', '디자인을', '채택합니다.']
[2026-03-02 20:51:05,847] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '우리 배터리는 일대일 디자인을 채택합니다.'
[2026-03-02 20:51:05,848] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '이 솔루션은 귀하의 컴퓨터에 더 적합합니다.'
[2026-03-02 20:51:05,850] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['이', '솔루션은', '귀하의', '컴퓨터에', '더', '적합합니다.']
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '이 솔루션은 귀하의 컴퓨터에 더 적합합니다.'
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 4개 텍스트 처리 완료
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 8 치환됨
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.093, comps=2, min_center_dist=0.124 → external_request
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 4
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:51:05,851] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:51:05,888] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:51:05,954] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ 실행 중인 작업(2): acb0a920-f86b-488e-aaa7-670832486116(4.1s), 67666d64-47c1-4eb1-910b-7aec9848c76b(3.9s)
[2026-03-02 20:51:05,960] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:51:06,149] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['안전점검', '안전하고 보안됨', '마음의 평화를 위한 회로 보호 설계', '제품이 CE를 통과했습니다. / FCC / PSE / ROHS 및 기타 인증', '참고 / 참고:', '수영장은 폐기물 관리 규정에 따라 재활용 및 폐기되어야 합니다.', '수영장에 물이 잠긴 후 사용하기 전에 배터리를 직접 분해하거나 조립하지 마십시오.', '야오 독.압착하거나 불 속에 던진 후 심하게 부풀어 오르는 경우에는 계속하지 마십시오.', '수영장은 섭씨 60도 이상의 환경에 설치해야 합니다.', '동메이 링즈바오 전자']
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '안전점검'
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['안전점검']
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '안전점검'
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '안전하고 보안됨'
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['안전하고', '보안됨']
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '안전하고 보안됨'
[2026-03-02 20:51:06,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '마음의 평화를 위한 회로 보호 설계'
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['마음의', '평화를', '위한', '회로', '보호', '설계']
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '마음의 평화를 위한 회로 보호 설계'
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '제품이 CE를 통과했습니다. / FCC / PSE / ROHS 및 기타 인증'
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['제품이', 'CE를', '통과했습니다.', '/', 'FCC', '/', 'PSE', '/', 'ROHS', '및', '기타', '인증']
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '제품이 CE를 통과했습니다. / FCC / PSE / ROHS 및 기타 인증'
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '참고 / 참고:'
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['참고', '/', '참고:']
[2026-03-02 20:51:06,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '참고 / 참고:'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '수영장은 폐기물 관리 규정에 따라 재활용 및 폐기되어야 합니다.'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['수영장은', '폐기물', '관리', '규정에', '따라', '재활용', '및', '폐기되어야', '합니다.']
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '수영장은 폐기물 관리 규정에 따라 재활용 및 폐기되어야 합니다.'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '수영장에 물이 잠긴 후 사용하기 전에 배터리를 직접 분해하거나 조립하지 마십시오.'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['수영장에', '물이', '잠긴', '후', '사용하기', '전에', '배터리를', '직접', '분해하거나', '조립하지', '마십시오.']
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '수영장에 물이 잠긴 후 사용하기 전에 배터리를 직접 분해하거나 조립하지 마십시오.'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '야오 독.압착하거나 불 속에 던진 후 심하게 부풀어 오르는 경우에는 계속하지 마십시오.'
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['야오', '독.압착하거나', '불', '속에', '던진', '후', '심하게', '부풀어', '오르는', '경우에는', '계속하지', '마십시오.']
[2026-03-02 20:51:06,152] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '야오 독.압착하거나 불 속에 던진 후 심하게 부풀어 오르는 경우에는 계속하지 마십시오.'
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '수영장은 섭씨 60도 이상의 환경에 설치해야 합니다.'
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['수영장은', '섭씨', '60도', '이상의', '환경에', '설치해야', '합니다.']
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '수영장은 섭씨 60도 이상의 환경에 설치해야 합니다.'
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '동메이 링즈바오 전자'
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['동메이', '링즈바오', '전자']
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '동메이 링즈바오 전자'
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 10개 텍스트 처리 완료
[2026-03-02 20:51:06,153] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 9 치환됨
[2026-03-02 20:51:06,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.156, comps=4, min_center_dist=0.041 → external_request
[2026-03-02 20:51:06,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 10
[2026-03-02 20:51:06,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:51:06,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:51:06,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:51:06,185] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:51:06,246] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:51:06,454] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:51:06,458] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11194.9MB -> 11192.2MB (-2.7MB, -0.0%) - 방법: external_request
[2026-03-02 20:51:06,458] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:06,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:06,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:06,512] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:06,878] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_8.webp
[2026-03-02 20:51:06,881] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 8 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_8.webp
[2026-03-02 20:51:06,881] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 5077.3ms | download=0.0ms | ocr=659.0ms | translate=3075.9ms | mask=3075.9ms | inpaint=616.0ms(external_request/SERVER) | render=53.0ms | save=320.0ms
[2026-03-02 20:51:06,881] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:06,881] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=acb0a920-f86b-488e-aaa7-670832486116
[2026-03-02 20:51:06,881] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=acb0a920-f86b-488e-aaa7-670832486116
[2026-03-02 20:51:06,956] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:51:06,959] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11189.2MB -> 11234.9MB (+45.7MB, +0.4%) - 방법: external_request
[2026-03-02 20:51:06,960] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:07,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:07,049] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:07,050] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:07,449] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_9.webp
[2026-03-02 20:51:07,452] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 9 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_9.webp
[2026-03-02 20:51:07,453] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 5403.5ms | download=0.0ms | ocr=3027.7ms | translate=314.2ms | mask=25.0ms | inpaint=806.0ms(external_request/SERVER) | render=89.0ms | save=352.2ms
[2026-03-02 20:51:07,453] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:07,453] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=67666d64-47c1-4eb1-910b-7aec9848c76b
[2026-03-02 20:51:07,453] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=67666d64-47c1-4eb1-910b-7aec9848c76b
[2026-03-02 20:51:08,212] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=b6925576-713f-49c8-9910-65c57ce35f1a
[2026-03-02 20:51:08,215] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:51:08,215] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:51:08,215] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:51:08,215] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:51:08,216] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:51:08,335] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🚀 작업 처리 시작: cmd=process_single_image, uid=da0904b4-4f0a-4824-9fa4-399b9850aa23
[2026-03-02 20:51:08,337] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 프로세서 toggle_states 업데이트 : {'TEMP_IMAGE_DIR': 'C:\\ProgramData\\ImgWorker\\work', 'output_image_format': 'webp', 'use_local_rembg': False, 'local_rembg_model_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\rembg_models\\birefnet-general-lite.onnx', 'local_model_name': 'birefnet-general-lite', 'optionIMGTrans_type': 'CPU', 'detail_IMGTrans_type': 'CPU', 'thumb_trans_type': 'CPU', 'migan_use_accel': True, 'migan_onnx_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\migan_onnx\\migan_pipeline_v2_simplified.onnx', 'ocr_provider_override': 'auto', 'migan_provider_override': 'auto', 'rembg_provider_override': 'auto', 'force_cpu_ocr': True, 'title': False, 'title_shuffle': False, 'title_trans_type': False, 'collect_method_combo': 'api', 'ocr': True, 'unwanted_words': {'할인': '이미지삭제', '무료': '이미지삭제', '증정': '이미지삭제', '이벤트': '이미지삭제', '세일': '이미지삭제', '사은품': '이미지삭제', '보증': '이미지삭제', '품절': '이미지삭제', '행사': '이미지삭제', '할인가': '이미지삭제', '무료배송': '이미지삭제', '보장': '이미지삭제', '즉시': '이미지삭제', '고객센터': '이미지삭제', '반품': '이미지삭제', '약속': '이미지삭제', '교환': '이미지삭제', '품질': '이미지삭제'}, 'interval': 3.0, 'watingTime': 20, 'memo': True, 'memo_toggle_exposer': True, 'memo_toggle_order': False, 'optionTrnas': True, 'optionTrnas_method': True, 'optionNumbering_method_type': 'numeric', 'optionIMGTrans': True, 'optionAutoSelect': True, 'optionName_max_length': 25, 'option_numbering_shuffle': False, 'optionNumbering_only': False, 'first_option_img_to_thumb': True, 'price': False, 'price_range_percent': 0, 'tag': True, 'tag_method': 'ai', 'tag_ai': True, 'tag_by_product_name': False, 'tag_lens': False, 'delete_all_tags': False, 'tag_filter_enabled': True, 'tag_filter_ss_reg': 'ALL', 'tag_filter_search_3m_min': 3000, 'tag_filter_search_3m_max': 0, 'tag_filter_product_min': 5000, 'tag_filter_product_max': 500000, 'tag_filter_competition': 'ALL', 'tag_filter_ad': 'ALL', 'tag_filter_ai_relevance': True, 'thumb': False, 'thumb_represent': False, 'thumb_nukki': True, 'remove_background_white': True, 'detail_Option': True, 'detail_IMGTrans': True, 'detail_concurrency_limit': 2, 'detail_promo_enabled': False, 'detail_promo_position': 'top', 'debug_mode': False, 'ed_mode': False, 'discord': False, 'is_localServer': False, 'watermark_toggle': False, 'vip_detail_edit': False, 'clientID': '', 'clientSecret': '', 'gpt_model': 'gpt-5-nano', 'requests_server_type': 'main', 'discord_webhook': '', 'watermark_text': '', 'thumb_rmb_count': 1, 'max_option_count': 8, 'opacity_percent': 20, 'group_index': 24, 'remove_overprice': True, 'cat_rec': True, 'fixed_keywords': False, 'fixed_keywords_count': 2, 'sub_word_remove': False, 'del_warning_word': False, 'title_length_limit': 35, 'forbidden_partial_title': False, 'forbidden_partial_option': False, 'forbidden_partial_tag': False, 'base_dir': 'C:\\Program Files\\Edit PartTimer3\\lib\\src', 'ERROR_SCREENSHOT_DIR': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\error_screenshots', 'font_type': '폰트2', 'image_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'watermark_font_path': 'C:\\Program Files\\Edit PartTimer3\\lib\\src\\modules\\fonts\\HakgyoansimDunggeunmisoTTFB.ttf', 'request_inpainting_server_url': 'http://e5.m1tcloud.cc:8008', 'request_inpainting_server_url_local': 'http://1.208.108.242:58539', 'request_rembg_server_url': 'http://1.208.108.242:58539', 'request_rembg_server_url_local': 'http://1.208.108.242:58533', 'gemma_api_base_url': 'https://gemma.m1tcloud.cc', 'gemma_api_base_url_local': 'https://gemma.m1tcloud.cc', 'gemma_api_timeout': 120, 'gemma_api_timeout_local': 120, 'membership_level': 'vip', 'image_worker_restart_every': 3, 'image_worker_restart_count': 0, 'products_per_context_restart': 19, 'image_worker_mem_restart_threshold': 85, 'image_worker_mem_error_escalate_after': 2, 'enable_aggressive_memory_cleanup': True, 'force_cuda_cache_clear': True, 'inpaint_method': 'CPU', 'min_masks_for_lama': 2, 'use_roi_optimized_mask': True, 'enable_mask_refinement': False, 'context_expansion_ratio': 0.4, 'blend_mode': 'simple', 'performance_mode': True, 'max_image_size': 1280, 'roi_area_high': 0.0, 'local_inpaint_method': 'migan', 'migan_use_cuda': True, 'migan_intra_threads': 0, 'migan_inter_threads': 0, 'migan_use_tensorrt': True, 'migan_trt_fp16_enable': True, 'migan_max_image_size': 2048, 'use_cuda': True, 'onnx_model_type': '자동 선택', 'gpu_info': {'has_directx12': True, 'gpu_type': 'unknown', 'vendor': 'unknown', 'recommended_model': 'simp'}, 'admin_id': 'deardearmydear@daum.net\n', 'admin_pw': 'skywalker-5', 'is_admin': True, 'user_id': '', 'user_pw': '', 'price_range_enabled': False, 'unwanted_words_button': False, 'cmb_button': False, 'detail_text_button': False, 'gpt_model_label': '[실험실]AI 모델 - 최신 모델 적용 중', 'unwanted_texts': ['할인', '무료', '증정', '이벤트', '세일', '사은품', '보증', '품절', '행사', '할인가', '무료배송', '보장', '즉시', '고객센터', '반품', '약속', '교환', '품질'], 'is_member_valid': False, 'authenticated_by_admin': False}
[2026-03-02 20:51:08,338] [LogListener] [DEBUG] [loggerModule.py:debug:449] [UpdateToggle] 완료: member=True, inpaint=CPU, font=NanumBarunGothic.ttf
[2026-03-02 20:51:08,338] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 실행 직전: cmd=process_single_image
[2026-03-02 20:51:08,338] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 직전
[2026-03-02 20:51:08,338] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 번역시작
[2026-03-02 20:51:08,568] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 11 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_010_O1CN01XU1Y2d1Sk7fIMOkeU_!!6000000002284-2-tps-1125-1446.png - OCR+인페인팅 모드
[2026-03-02 20:51:08,569] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_010_O1CN01XU1Y2d1Sk7fIMOkeU_!!6000000002284-2-tps-1125-1446.png
[2026-03-02 20:51:08,606] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 11 원본 크기: 1125x1446
[2026-03-02 20:51:08,615] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 11 가로 크기 조정: 1125x1446 → 860x1105
[2026-03-02 20:51:08,638] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 11 크기 조정 완료: 860x1105
[2026-03-02 20:51:08,638] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 11 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_010_O1CN01XU1Y2d1Sk7fIMOkeU_!!6000000002284-2-tps-1125-1446_resized.png
[2026-03-02 20:51:08,653] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:51:12,417] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 3760.6ms
[2026-03-02 20:51:12,439] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 308.5ms, 인식: 3403.1ms, 분류: 34.0ms
[2026-03-02 20:51:12,458] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11241.8MB -> 11370.1MB (+128.3MB, +1.1%) - 이미지 11
[2026-03-02 20:51:12,460] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '价格说明:', 'confidence': 0.999051570892334, 'polygon': [[36.0, 25.0], [168.0, 28.0], [168.0, 60.0], [35.0, 57.0]], 'bbox': (35, 25, 134, 36), 'method': 'polygon'}, {'text': '被比较价格', 'confidence': 0.9981765747070312, 'polygon': [[37.0, 124.0], [182.0, 124.0], [182.0, 153.0], [37.0, 153.0]], 'bbox': (37, 124, 146, 30), 'method': 'polygon'}, {'text': '商品的专柜价、吊牌价、厂家建议零售价、厂商指导价、品', 'confidence': 0.9965836405754089, 'polygon': [[39.0, 174.0], [809.0, 174.0], [809.0, 200.0], [39.0, 200.0]], 'bbox': (39, 174, 771, 27), 'method': 'polygon'}, {'text': '牌供应商提供的指导价、商家在后台设置的一口价、减价(', 'confidence': 0.9975272417068481, 'polygon': [[40.0, 222.0], [811.0, 222.0], [811.0, 249.0], [40.0, 249.0]], 'bbox': (40, 222, 772, 28), 'method': 'polygon'}, {'text': '折价)前的基准价或该商品曾经展示过的销售价等。该价格', 'confidence': 0.9956801533699036, 'polygon': [[39.0, 269.0], [807.0, 269.0], [807.0, 297.0], [39.0, 297.0]], 'bbox': (39, 269, 769, 29), 'method': 'polygon'}, {'text': '仅供您在购买时参考。', 'confidence': 0.9984695315361023, 'polygon': [[40.0, 318.0], [319.0, 318.0], [319.0, 345.0], [40.0, 345.0]], 'bbox': (40, 318, 280, 28), 'method': 'polygon'}, {'text': '标价/销售价', 'confidence': 0.9938657283782959, 'polygon': [[37.0, 412.0], [200.0, 412.0], [200.0, 443.0], [37.0, 443.0]], 'bbox': (37, 412, 164, 32), 'method': 'polygon'}, {'text': '商品的实时标价。具体成交价格根据商品参加活动,或会员', 'confidence': 0.9975964426994324, 'polygon': [[39.0, 463.0], [807.0, 463.0], [807.0, 489.0], [39.0, 489.0]], 'bbox': (39, 463, 769, 27), 'method': 'polygon'}, {'text': '使用优惠券、积分等发生变化,最终以订单结算页价格为', 'confidence': 0.9875636100769043, 'polygon': [[39.0, 510.0], [777.0, 511.0], [777.0, 538.0], [39.0, 536.0]], 'bbox': (39, 510, 739, 29), 'method': 'polygon'}, {'text': '准。', 'confidence': 0.9998109936714172, 'polygon': [[35.0, 555.0], [84.0, 555.0], [84.0, 588.0], [35.0, 588.0]], 'bbox': (35, 555, 50, 34), 'method': 'polygon'}, {'text': '商家详情页所展示的可优惠金额是根据用户当前可使用的优', 'confidence': 0.995481550693512, 'polygon': [[40.0, 655.0], [807.0, 655.0], [807.0, 681.0], [40.0, 681.0]], 'bbox': (40, 655, 768, 27), 'method': 'polygon'}, {'text': '惠券、满减、立减,可参与的特定活动(如多件多折、限时', 'confidence': 0.992651641368866, 'polygon': [[40.0, 703.0], [810.0, 703.0], [810.0, 730.0], [40.0, 730.0]], 'bbox': (40, 703, 771, 28), 'method': 'polygon'}, {'text': '秒杀)、红包(含消费券)、淘金币抵扣等四舍五入计算得', 'confidence': 0.9940646290779114, 'polygon': [[39.0, 752.0], [809.0, 752.0], [809.0, 778.0], [39.0, 778.0]], 'bbox': (39, 752, 771, 27), 'method': 'polygon'}, {'text': '出,优惠获取及使用条件等详见活动页面及相关规则(如', 'confidence': 0.9929466247558594, 'polygon': [[41.0, 800.0], [779.0, 800.0], [779.0, 826.0], [41.0, 826.0]], 'bbox': (41, 800, 739, 27), 'method': 'polygon'}, {'text': '有),实际价格以结算页面展示为准。', 'confidence': 0.997909426689148, 'polygon': [[39.0, 846.0], [525.0, 848.0], [525.0, 876.0], [39.0, 874.0]], 'bbox': (39, 846, 487, 31), 'method': 'polygon'}, {'text': '此说明仅当出现价格比较时有效,具体请参见《淘宝平台价', 'confidence': 0.9972702264785767, 'polygon': [[39.0, 943.0], [807.0, 944.0], [807.0, 970.0], [39.0, 969.0]], 'bbox': (39, 943, 769, 28), 'method': 'polygon'}, {'text': '格管理规则》,若商家单独对被比较价格进行说明的,以商', 'confidence': 0.9984889626502991, 'polygon': [[40.0, 992.0], [810.0, 992.0], [810.0, 1019.0], [40.0, 1019.0]], 'bbox': (40, 992, 771, 28), 'method': 'polygon'}, {'text': '家的表述为准。', 'confidence': 0.9994814991950989, 'polygon': [[38.0, 1036.0], [230.0, 1038.0], [230.0, 1069.0], [37.0, 1067.0]], 'bbox': (37, 1036, 194, 34), 'method': 'polygon'}]
[2026-03-02 20:51:12,460] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 11 OCR raw 데이터 메모리 저장 완료: 18개 텍스트
[2026-03-02 20:51:12,460] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '价格说明:'
[2026-03-02 20:51:12,460] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '被比较价格'
[2026-03-02 20:51:12,464] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '商品的专柜价、吊牌价、厂家建议零售价、厂商指导价、品'
[2026-03-02 20:51:12,464] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '牌供应商提供的指导价、商家在后台设置的一口价、减价('
[2026-03-02 20:51:12,464] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.6%): '折价)前的基准价或该商品曾经展示过的销售价等。该价格'
[2026-03-02 20:51:12,464] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '仅供您在购买时参考。'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '标价/销售价'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '商品的实时标价。具体成交价格根据商品参加活动,或会员'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.8%): '使用优惠券、积分等发生变化,最终以订单结算页价格为'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 100.0%): '准。'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '商家详情页所展示的可优惠金额是根据用户当前可使用的优'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.3%): '惠券、满减、立减,可参与的特定活动(如多件多折、限时'
[2026-03-02 20:51:12,465] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '秒杀)、红包(含消费券)、淘金币抵扣等四舍五入计算得'
[2026-03-02 20:51:12,466] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.3%): '出,优惠获取及使用条件等详见活动页面及相关规则(如'
[2026-03-02 20:51:12,466] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '有),实际价格以结算页面展示为准。'
[2026-03-02 20:51:12,466] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '此说明仅当出现价格比较时有效,具体请参见《淘宝平台价'
[2026-03-02 20:51:12,466] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '格管理规则》,若商家单独对被比较价格进行说明的,以商'
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.9%): '家的表述为准。'
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 18/18개 (신뢰도 + & 중국어)
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '价格说明:', 'confidence': 0.999051570892334, 'polygon': [[36.0, 25.0], [168.0, 28.0], [168.0, 60.0], [35.0, 57.0]], 'bbox': (35, 25, 134, 36), 'method': 'polygon'}, {'text': '被比较价格', 'confidence': 0.9981765747070312, 'polygon': [[37.0, 124.0], [182.0, 124.0], [182.0, 153.0], [37.0, 153.0]], 'bbox': (37, 124, 146, 30), 'method': 'polygon'}, {'text': '商品的专柜价、吊牌价、厂家建议零售价、厂商指导价、品', 'confidence': 0.9965836405754089, 'polygon': [[39.0, 174.0], [809.0, 174.0], [809.0, 200.0], [39.0, 200.0]], 'bbox': (39, 174, 771, 27), 'method': 'polygon'}, {'text': '牌供应商提供的指导价、商家在后台设置的一口价、减价(', 'confidence': 0.9975272417068481, 'polygon': [[40.0, 222.0], [811.0, 222.0], [811.0, 249.0], [40.0, 249.0]], 'bbox': (40, 222, 772, 28), 'method': 'polygon'}, {'text': '折价)前的基准价或该商品曾经展示过的销售价等。该价格', 'confidence': 0.9956801533699036, 'polygon': [[39.0, 269.0], [807.0, 269.0], [807.0, 297.0], [39.0, 297.0]], 'bbox': (39, 269, 769, 29), 'method': 'polygon'}, {'text': '仅供您在购买时参考。', 'confidence': 0.9984695315361023, 'polygon': [[40.0, 318.0], [319.0, 318.0], [319.0, 345.0], [40.0, 345.0]], 'bbox': (40, 318, 280, 28), 'method': 'polygon'}, {'text': '标价/销售价', 'confidence': 0.9938657283782959, 'polygon': [[37.0, 412.0], [200.0, 412.0], [200.0, 443.0], [37.0, 443.0]], 'bbox': (37, 412, 164, 32), 'method': 'polygon'}, {'text': '商品的实时标价。具体成交价格根据商品参加活动,或会员', 'confidence': 0.9975964426994324, 'polygon': [[39.0, 463.0], [807.0, 463.0], [807.0, 489.0], [39.0, 489.0]], 'bbox': (39, 463, 769, 27), 'method': 'polygon'}, {'text': '使用优惠券、积分等发生变化,最终以订单结算页价格为', 'confidence': 0.9875636100769043, 'polygon': [[39.0, 510.0], [777.0, 511.0], [777.0, 538.0], [39.0, 536.0]], 'bbox': (39, 510, 739, 29), 'method': 'polygon'}, {'text': '准。', 'confidence': 0.9998109936714172, 'polygon': [[35.0, 555.0], [84.0, 555.0], [84.0, 588.0], [35.0, 588.0]], 'bbox': (35, 555, 50, 34), 'method': 'polygon'}, {'text': '商家详情页所展示的可优惠金额是根据用户当前可使用的优', 'confidence': 0.995481550693512, 'polygon': [[40.0, 655.0], [807.0, 655.0], [807.0, 681.0], [40.0, 681.0]], 'bbox': (40, 655, 768, 27), 'method': 'polygon'}, {'text': '惠券、满减、立减,可参与的特定活动(如多件多折、限时', 'confidence': 0.992651641368866, 'polygon': [[40.0, 703.0], [810.0, 703.0], [810.0, 730.0], [40.0, 730.0]], 'bbox': (40, 703, 771, 28), 'method': 'polygon'}, {'text': '秒杀)、红包(含消费券)、淘金币抵扣等四舍五入计算得', 'confidence': 0.9940646290779114, 'polygon': [[39.0, 752.0], [809.0, 752.0], [809.0, 778.0], [39.0, 778.0]], 'bbox': (39, 752, 771, 27), 'method': 'polygon'}, {'text': '出,优惠获取及使用条件等详见活动页面及相关规则(如', 'confidence': 0.9929466247558594, 'polygon': [[41.0, 800.0], [779.0, 800.0], [779.0, 826.0], [41.0, 826.0]], 'bbox': (41, 800, 739, 27), 'method': 'polygon'}, {'text': '有),实际价格以结算页面展示为准。', 'confidence': 0.997909426689148, 'polygon': [[39.0, 846.0], [525.0, 848.0], [525.0, 876.0], [39.0, 874.0]], 'bbox': (39, 846, 487, 31), 'method': 'polygon'}, {'text': '此说明仅当出现价格比较时有效,具体请参见《淘宝平台价', 'confidence': 0.9972702264785767, 'polygon': [[39.0, 943.0], [807.0, 944.0], [807.0, 970.0], [39.0, 969.0]], 'bbox': (39, 943, 769, 28), 'method': 'polygon'}, {'text': '格管理规则》,若商家单独对被比较价格进行说明的,以商', 'confidence': 0.9984889626502991, 'polygon': [[40.0, 992.0], [810.0, 992.0], [810.0, 1019.0], [40.0, 1019.0]], 'bbox': (40, 992, 771, 28), 'method': 'polygon'}, {'text': '家的表述为准。', 'confidence': 0.9994814991950989, 'polygon': [[38.0, 1036.0], [230.0, 1038.0], [230.0, 1069.0], [37.0, 1067.0]], 'bbox': (37, 1036, 194, 34), 'method': 'polygon'}]
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 18개 필터링 완료
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 10 처리 시작: C:\ProgramData\ImgWorker\incoming\detail_image_009_O1CN012YZZbz1FsjxXvfB9O_!!692310543.jpg - OCR+인페인팅 모드
[2026-03-02 20:51:12,467] [LogListener] [DEBUG] [loggerModule.py:debug:449] 로컬 파일 경로 감지, 다운로드 생략: C:\ProgramData\ImgWorker\incoming\detail_image_009_O1CN012YZZbz1FsjxXvfB9O_!!692310543.jpg
[2026-03-02 20:51:12,468] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 10 원본 크기: 750x1075
[2026-03-02 20:51:12,476] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 10 가로 크기 조정: 750x1075 → 860x1232
[2026-03-02 20:51:12,485] [LogListener] [DEBUG] [loggerModule.py:debug:449] 상세페이지 이미지 10 크기 조정 완료: 860x1232
[2026-03-02 20:51:12,485] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 10 로컬 저장위치(상세페이지 전처리 완료): C:\ProgramData\ImgWorker\incoming\detail_image_009_O1CN012YZZbz1FsjxXvfB9O_!!692310543_resized.jpg
[2026-03-02 20:51:12,491] [LogListener] [DEBUG] [loggerModule.py:debug:449] 🔍 ONNX OCR 감지 방식: polygon
[2026-03-02 20:51:16,088] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⚡ ONNX OCR 추론 완료: 3591.6ms
[2026-03-02 20:51:16,133] [LogListener] [DEBUG] [loggerModule.py:debug:449] 📊 세부 시간 - 감지: 397.0ms, 인식: 3140.7ms, 분류: 42.0ms
[2026-03-02 20:51:16,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [OCR 처리]: 11376.0MB -> 11378.2MB (+2.2MB, +0.0%) - 이미지 10
[2026-03-02 20:51:16,134] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_results: [{'text': '品质保障用心服务售后无忧', 'confidence': 0.994602620601654, 'polygon': [[246.0, 96.0], [614.0, 96.0], [614.0, 127.0], [246.0, 127.0]], 'bbox': (246, 96, 369, 32), 'method': 'polygon'}, {'text': '售后保障买家须知', 'confidence': 0.9922782182693481, 'polygon': [[146.0, 150.0], [717.0, 150.0], [717.0, 210.0], [146.0, 210.0]], 'bbox': (146, 150, 572, 61), 'method': 'polygon'}, {'text': 'AFTERSALEASSURED', 'confidence': 0.9876356720924377, 'polygon': [[367.0, 261.0], [494.0, 261.0], [494.0, 278.0], [367.0, 278.0]], 'bbox': (367, 261, 128, 18), 'method': 'polygon'}, {'text': 'PURCHASE', 'confidence': 0.9929922819137573, 'polygon': [[399.0, 276.0], [463.0, 276.0], [463.0, 289.0], [399.0, 289.0]], 'bbox': (399, 276, 65, 14), 'method': 'polygon'}, {'text': '关于签收>', 'confidence': 0.953946590423584, 'polygon': [[184.0, 388.0], [334.0, 388.0], [334.0, 420.0], [184.0, 420.0]], 'bbox': (184, 388, 151, 33), 'method': 'polygon'}, {'text': '密', 'confidence': 0.5337368845939636, 'polygon': [[97.0, 409.0], [143.0, 409.0], [143.0, 450.0], [97.0, 450.0]], 'bbox': (97, 409, 47, 42), 'method': 'polygon'}, {'text': '商品外包装小箱子(非快递袋子)完好无损方可签收,如果签收时发现异常情况', 'confidence': 0.9940605163574219, 'polygon': [[184.0, 426.0], [760.0, 426.0], [760.0, 448.0], [184.0, 448.0]], 'bbox': (184, 426, 577, 23), 'method': 'polygon'}, {'text': ',请拒绝签收并及时和本店在线客服联系。', 'confidence': 0.9893859028816223, 'polygon': [[184.0, 450.0], [506.0, 450.0], [506.0, 472.0], [184.0, 472.0]], 'bbox': (184, 450, 323, 23), 'method': 'polygon'}, {'text': '关于产品>', 'confidence': 0.9395023584365845, 'polygon': [[186.0, 567.0], [335.0, 567.0], [335.0, 599.0], [186.0, 599.0]], 'bbox': (186, 567, 150, 33), 'method': 'polygon'}, {'text': '全部产品均是高质量生产,本页面所有数据均为实测所得。测试数据因环境及', 'confidence': 0.9954391717910767, 'polygon': [[184.0, 603.0], [767.0, 603.0], [767.0, 625.0], [184.0, 625.0]], 'bbox': (184, 603, 584, 23), 'method': 'polygon'}, {'text': '工具影响可能略有差异,请以实际为准。', 'confidence': 0.9948413372039795, 'polygon': [[183.0, 628.0], [488.0, 628.0], [488.0, 649.0], [183.0, 649.0]], 'bbox': (183, 628, 306, 22), 'method': 'polygon'}, {'text': '关于客服>', 'confidence': 0.9593256711959839, 'polygon': [[182.0, 742.0], [332.0, 745.0], [331.0, 777.0], [182.0, 774.0]], 'bbox': (182, 742, 151, 36), 'method': 'polygon'}, {'text': '®', 'confidence': 0.6373090147972107, 'polygon': [[109.0, 774.0], [129.0, 774.0], [129.0, 789.0], [109.0, 789.0]], 'bbox': (109, 774, 21, 16), 'method': 'polygon'}, {'text': '我们的客服经过专业知识培训,保证让每一位顾客体验到满意的服务,不会', 'confidence': 0.996809184551239, 'polygon': [[183.0, 780.0], [759.0, 780.0], [759.0, 802.0], [183.0, 802.0]], 'bbox': (183, 780, 577, 23), 'method': 'polygon'}, {'text': '因快递包装售后等问题影响到您愉快地购物。', 'confidence': 0.9952741861343384, 'polygon': [[182.0, 805.0], [521.0, 806.0], [521.0, 828.0], [182.0, 826.0]], 'bbox': (182, 805, 340, 24), 'method': 'polygon'}, {'text': '关于发货物流>', 'confidence': 0.957436203956604, 'polygon': [[183.0, 923.0], [390.0, 923.0], [390.0, 950.0], [183.0, 950.0]], 'bbox': (183, 923, 208, 28), 'method': 'polygon'}, {'text': '本店合作快递中通快递,电池类产品不能走空运,只能走陆运。', 'confidence': 0.9934704899787903, 'polygon': [[180.0, 959.0], [668.0, 959.0], [668.0, 980.0], [180.0, 980.0]], 'bbox': (180, 959, 489, 22), 'method': 'polygon'}, {'text': '澳门、台湾省、海外(国外)暂不支持发货,如拍下请及时申请退款。', 'confidence': 0.9891617298126221, 'polygon': [[179.0, 983.0], [710.0, 984.0], [710.0, 1006.0], [179.0, 1005.0]], 'bbox': (179, 983, 532, 24), 'method': 'polygon'}, {'text': '关于退货>', 'confidence': 0.9784687757492065, 'polygon': [[180.0, 1097.0], [329.0, 1097.0], [329.0, 1128.0], [180.0, 1128.0]], 'bbox': (180, 1097, 150, 32), 'method': 'polygon'}, {'text': '本店承诺7天退换货服务再签收后规定时间内宝贝不影响二次销售的前提下', 'confidence': 0.9905626773834229, 'polygon': [[178.0, 1133.0], [756.0, 1133.0], [756.0, 1155.0], [178.0, 1155.0]], 'bbox': (178, 1133, 579, 23), 'method': 'polygon'}, {'text': '均可联系客服退换货。', 'confidence': 0.9977195858955383, 'polygon': [[180.0, 1160.0], [344.0, 1160.0], [344.0, 1178.0], [180.0, 1178.0]], 'bbox': (180, 1160, 165, 19), 'method': 'polygon'}]
[2026-03-02 20:51:16,135] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 10 OCR raw 데이터 메모리 저장 완료: 21개 텍스트
[2026-03-02 20:51:16,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '品质保障用心服务售后无忧'
[2026-03-02 20:51:16,136] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.2%): '售后保障买家须知'
[2026-03-02 20:51:16,140] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'AFTERSALEASSURED'
[2026-03-02 20:51:16,140] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): 'PURCHASE'
[2026-03-02 20:51:16,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 95.4%): '关于签收>'
[2026-03-02 20:51:16,143] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 53.4%): '密'
[2026-03-02 20:51:16,144] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.4%): '商品外包装小箱子(非快递袋子)完好无损方可签收,如果签收时发现异常情况'
[2026-03-02 20:51:16,145] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.9%): ',请拒绝签收并及时和本店在线客服联系。'
[2026-03-02 20:51:16,145] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 94.0%): '关于产品>'
[2026-03-02 20:51:16,146] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '全部产品均是高质量生产,本页面所有数据均为实测所得。测试数据因环境及'
[2026-03-02 20:51:16,146] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '工具影响可能略有差异,请以实际为准。'
[2026-03-02 20:51:16,146] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 95.9%): '关于客服>'
[2026-03-02 20:51:16,149] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 제외 (중국어 없음): '®'
[2026-03-02 20:51:16,149] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.7%): '我们的客服经过专业知识培训,保证让每一位顾客体验到满意的服务,不会'
[2026-03-02 20:51:16,149] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.5%): '因快递包装售后等问题影响到您愉快地购物。'
[2026-03-02 20:51:16,149] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 95.7%): '关于发货物流>'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.3%): '本店合作快递中通快递,电池类产品不能走空运,只能走陆运。'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 98.9%): '澳门、台湾省、海外(国外)暂不支持发货,如拍下请及时申请退款。'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 97.8%): '关于退货>'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.1%): '本店承诺7天退换货服务再签收后规定时间内宝贝不影响二次销售的前提下'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] [필터링] 포함 (신뢰도 99.8%): '均可联系客服退换货。'
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] 필터링 결과: 18/21개 (신뢰도 + & 중국어)
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] filter_ocr_results: [{'text': '品质保障用心服务售后无忧', 'confidence': 0.994602620601654, 'polygon': [[246.0, 96.0], [614.0, 96.0], [614.0, 127.0], [246.0, 127.0]], 'bbox': (246, 96, 369, 32), 'method': 'polygon'}, {'text': '售后保障买家须知', 'confidence': 0.9922782182693481, 'polygon': [[146.0, 150.0], [717.0, 150.0], [717.0, 210.0], [146.0, 210.0]], 'bbox': (146, 150, 572, 61), 'method': 'polygon'}, {'text': '关于签收>', 'confidence': 0.953946590423584, 'polygon': [[184.0, 388.0], [334.0, 388.0], [334.0, 420.0], [184.0, 420.0]], 'bbox': (184, 388, 151, 33), 'method': 'polygon'}, {'text': '密', 'confidence': 0.5337368845939636, 'polygon': [[97.0, 409.0], [143.0, 409.0], [143.0, 450.0], [97.0, 450.0]], 'bbox': (97, 409, 47, 42), 'method': 'polygon'}, {'text': '商品外包装小箱子(非快递袋子)完好无损方可签收,如果签收时发现异常情况', 'confidence': 0.9940605163574219, 'polygon': [[184.0, 426.0], [760.0, 426.0], [760.0, 448.0], [184.0, 448.0]], 'bbox': (184, 426, 577, 23), 'method': 'polygon'}, {'text': ',请拒绝签收并及时和本店在线客服联系。', 'confidence': 0.9893859028816223, 'polygon': [[184.0, 450.0], [506.0, 450.0], [506.0, 472.0], [184.0, 472.0]], 'bbox': (184, 450, 323, 23), 'method': 'polygon'}, {'text': '关于产品>', 'confidence': 0.9395023584365845, 'polygon': [[186.0, 567.0], [335.0, 567.0], [335.0, 599.0], [186.0, 599.0]], 'bbox': (186, 567, 150, 33), 'method': 'polygon'}, {'text': '全部产品均是高质量生产,本页面所有数据均为实测所得。测试数据因环境及', 'confidence': 0.9954391717910767, 'polygon': [[184.0, 603.0], [767.0, 603.0], [767.0, 625.0], [184.0, 625.0]], 'bbox': (184, 603, 584, 23), 'method': 'polygon'}, {'text': '工具影响可能略有差异,请以实际为准。', 'confidence': 0.9948413372039795, 'polygon': [[183.0, 628.0], [488.0, 628.0], [488.0, 649.0], [183.0, 649.0]], 'bbox': (183, 628, 306, 22), 'method': 'polygon'}, {'text': '关于客服>', 'confidence': 0.9593256711959839, 'polygon': [[182.0, 742.0], [332.0, 745.0], [331.0, 777.0], [182.0, 774.0]], 'bbox': (182, 742, 151, 36), 'method': 'polygon'}, {'text': '我们的客服经过专业知识培训,保证让每一位顾客体验到满意的服务,不会', 'confidence': 0.996809184551239, 'polygon': [[183.0, 780.0], [759.0, 780.0], [759.0, 802.0], [183.0, 802.0]], 'bbox': (183, 780, 577, 23), 'method': 'polygon'}, {'text': '因快递包装售后等问题影响到您愉快地购物。', 'confidence': 0.9952741861343384, 'polygon': [[182.0, 805.0], [521.0, 806.0], [521.0, 828.0], [182.0, 826.0]], 'bbox': (182, 805, 340, 24), 'method': 'polygon'}, {'text': '关于发货物流>', 'confidence': 0.957436203956604, 'polygon': [[183.0, 923.0], [390.0, 923.0], [390.0, 950.0], [183.0, 950.0]], 'bbox': (183, 923, 208, 28), 'method': 'polygon'}, {'text': '本店合作快递中通快递,电池类产品不能走空运,只能走陆运。', 'confidence': 0.9934704899787903, 'polygon': [[180.0, 959.0], [668.0, 959.0], [668.0, 980.0], [180.0, 980.0]], 'bbox': (180, 959, 489, 22), 'method': 'polygon'}, {'text': '澳门、台湾省、海外(国外)暂不支持发货,如拍下请及时申请退款。', 'confidence': 0.9891617298126221, 'polygon': [[179.0, 983.0], [710.0, 984.0], [710.0, 1006.0], [179.0, 1005.0]], 'bbox': (179, 983, 532, 24), 'method': 'polygon'}, {'text': '关于退货>', 'confidence': 0.9784687757492065, 'polygon': [[180.0, 1097.0], [329.0, 1097.0], [329.0, 1128.0], [180.0, 1128.0]], 'bbox': (180, 1097, 150, 32), 'method': 'polygon'}, {'text': '本店承诺7天退换货服务再签收后规定时间内宝贝不影响二次销售的前提下', 'confidence': 0.9905626773834229, 'polygon': [[178.0, 1133.0], [756.0, 1133.0], [756.0, 1155.0], [178.0, 1155.0]], 'bbox': (178, 1133, 579, 23), 'method': 'polygon'}, {'text': '均可联系客服退换货。', 'confidence': 0.9977195858955383, 'polygon': [[180.0, 1160.0], [344.0, 1160.0], [344.0, 1178.0], [180.0, 1178.0]], 'bbox': (180, 1160, 165, 19), 'method': 'polygon'}]
[2026-03-02 20:51:16,150] [LogListener] [DEBUG] [loggerModule.py:debug:449] 중국어 텍스트 18개 필터링 완료
[2026-03-02 20:51:16,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] 한글 텍스트 0개 필터링 완료
[2026-03-02 20:51:16,151] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['가격 설명:', '비교 가격', '제품 카운터 가격 / 태그 가격 / 제조사 권장 소매가 / 제조사 가이드 가격 / 제품', '브랜드 공급업체가 제공하는 가이드 가격 / 백그라운드에서 판매자가 설정한 고정 가격 / 감소 (', '할인 전 기본 가격) 또는 해당 상품이 이전에 표시했던 판매 가격 등입니다.', '구매시 참고용으로만 사용하세요.', '가격 / 판매 가격', '품목의 실시간 가격.구체적인 거래 가격은 이벤트에 참여하는 상품이나 멤버십에 따라 다릅니다.', '쿠폰 사용 / 포인트 등이 변경된 경우 주문 정산 페이지에 게시되는 최종 가격이 적용됩니다.', '정확합니다.', '판매자 세부정보 페이지에 표시되는 할인 금액은 현재 사용자에게 제공되는 할인을 기준으로 합니다.', '쿠폰 / 전액할인 / 즉시 할인, 참여할 수 있는 특정 활동(예: 더 많은 품목에 대한 추가 할인) / 제한된 시간', '플래시 세일) / 빨간 봉투 (소비 쿠폰 포함) / 금광 채굴 코인 공제 등은 반올림하여 계산합니다.', '활동 페이지 및 관련 규칙(예:', '예) 실제 가격은 결제 페이지에 표시되는 금액입니다.', '이 설명은 가격 비교가 발생한 경우에만 유효합니다. 자세한 내용은 "타오바오 플랫폼 가격"을 참조하세요.', '"가격 관리 규정"에 따라, 비교 대상 가격에 대해 가맹점이 별도로 설명하는 경우, 가맹점은', '집의 진술이 우선합니다.']
[2026-03-02 20:51:16,154] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:51:16,155] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '가격 설명:'
[2026-03-02 20:51:16,155] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['가격', '설명:']
[2026-03-02 20:51:16,157] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '가격 설명:'
[2026-03-02 20:51:16,157] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '비교 가격'
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['비교', '가격']
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '비교 가격'
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '제품 카운터 가격 / 태그 가격 / 제조사 권장 소매가 / 제조사 가이드 가격 / 제품'
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['제품', '카운터', '가격', '/', '태그', '가격', '/', '제조사', '권장', '소매가', '/', '제조사', '가이드', '가격', '/', '제품']
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '제품 카운터 가격 / 태그 가격 / 제조사 권장 소매가 / 제조사 가이드 가격 / 제품'
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '브랜드 공급업체가 제공하는 가이드 가격 / 백그라운드에서 판매자가 설정한 고정 가격 / 감소 ('
[2026-03-02 20:51:16,158] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['브랜드', '공급업체가', '제공하는', '가이드', '가격', '/', '백그라운드에서', '판매자가', '설정한', '고정', '가격', '/', '감소', '(']
[2026-03-02 20:51:16,159] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '브랜드 공급업체가 제공하는 가이드 가격 / 백그라운드에서 판매자가 설정한 고정 가격 / 감소 ('
[2026-03-02 20:51:16,159] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '할인 전 기본 가격) 또는 해당 상품이 이전에 표시했던 판매 가격 등입니다.'
[2026-03-02 20:51:16,159] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['할인', '전', '기본', '가격)', '또는', '해당', '상품이', '이전에', '표시했던', '판매', '가격', '등입니다.']
[2026-03-02 20:51:16,159] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '할인 전 기본 가격) 또는 해당 상품이 이전에 표시했던 판매 가격 등입니다.'
[2026-03-02 20:51:16,160] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: '구매시 참고용으로만 사용하세요.'
[2026-03-02 20:51:16,161] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: ['구매시', '참고용으로만', '사용하세요.']
[2026-03-02 20:51:16,161] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: '구매시 참고용으로만 사용하세요.'
[2026-03-02 20:51:16,161] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '가격 / 판매 가격'
[2026-03-02 20:51:16,161] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['가격', '/', '판매', '가격']
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '가격 / 판매 가격'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '품목의 실시간 가격.구체적인 거래 가격은 이벤트에 참여하는 상품이나 멤버십에 따라 다릅니다.'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['품목의', '실시간', '가격.구체적인', '거래', '가격은', '이벤트에', '참여하는', '상품이나', '멤버십에', '따라', '다릅니다.']
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '품목의 실시간 가격.구체적인 거래 가격은 이벤트에 참여하는 상품이나 멤버십에 따라 다릅니다.'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '쿠폰 사용 / 포인트 등이 변경된 경우 주문 정산 페이지에 게시되는 최종 가격이 적용됩니다.'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['쿠폰', '사용', '/', '포인트', '등이', '변경된', '경우', '주문', '정산', '페이지에', '게시되는', '최종', '가격이', '적용됩니다.']
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '쿠폰 사용 / 포인트 등이 변경된 경우 주문 정산 페이지에 게시되는 최종 가격이 적용됩니다.'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '정확합니다.'
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['정확합니다.']
[2026-03-02 20:51:16,162] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '정확합니다.'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '판매자 세부정보 페이지에 표시되는 할인 금액은 현재 사용자에게 제공되는 할인을 기준으로 합니다.'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['판매자', '세부정보', '페이지에', '표시되는', '할인', '금액은', '현재', '사용자에게', '제공되는', '할인을', '기준으로', '합니다.']
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '판매자 세부정보 페이지에 표시되는 할인 금액은 현재 사용자에게 제공되는 할인을 기준으로 합니다.'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '쿠폰 / 전액할인 / 즉시 할인, 참여할 수 있는 특정 활동(예: 더 많은 품목에 대한 추가 할인) / 제한된 시간'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['쿠폰', '/', '전액할인', '/', '즉시', '할인,', '참여할', '수', '있는', '특정', '활동(예:', '더', '많은', '품목에', '대한', '추가', '할인)', '/', '제한된', '시간']
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '쿠폰 / 전액할인 / 즉시 할인, 참여할 수 있는 특정 활동(예: 더 많은 품목에 대한 추가 할인) / 제한된 시간'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '플래시 세일) / 빨간 봉투 (소비 쿠폰 포함) / 금광 채굴 코인 공제 등은 반올림하여 계산합니다.'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['플래시', '세일)', '/', '빨간', '봉투', '(소비', '쿠폰', '포함)', '/', '금광', '채굴', '코인', '공제', '등은', '반올림하여', '계산합니다.']
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '플래시 세일) / 빨간 봉투 (소비 쿠폰 포함) / 금광 채굴 코인 공제 등은 반올림하여 계산합니다.'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '활동 페이지 및 관련 규칙(예:'
[2026-03-02 20:51:16,163] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['활동', '페이지', '및', '관련', '규칙(예:']
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '활동 페이지 및 관련 규칙(예:'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '예) 실제 가격은 결제 페이지에 표시되는 금액입니다.'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['예)', '실제', '가격은', '결제', '페이지에', '표시되는', '금액입니다.']
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '예) 실제 가격은 결제 페이지에 표시되는 금액입니다.'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '이 설명은 가격 비교가 발생한 경우에만 유효합니다. 자세한 내용은 "타오바오 플랫폼 가격"을 참조하세요.'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['이', '설명은', '가격', '비교가', '발생한', '경우에만', '유효합니다.', '자세한', '내용은', '"타오바오', '플랫폼', '가격"을', '참조하세요.']
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '이 설명은 가격 비교가 발생한 경우에만 유효합니다. 자세한 내용은 "타오바오 플랫폼 가격"을 참조하세요.'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 원본 텍스트: '"가격 관리 규정"에 따라, 비교 대상 가격에 대해 가맹점이 별도로 설명하는 경우, 가맹점은'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 분리된 단어: ['"가격', '관리', '규정"에', '따라,', '비교', '대상', '가격에', '대해', '가맹점이', '별도로', '설명하는', '경우,', '가맹점은']
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 변경 없음: '"가격 관리 규정"에 따라, 비교 대상 가격에 대해 가맹점이 별도로 설명하는 경우, 가맹점은'
[2026-03-02 20:51:16,164] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 원본 텍스트: '집의 진술이 우선합니다.'
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 분리된 단어: ['집의', '진술이', '우선합니다.']
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 변경 없음: '집의 진술이 우선합니다.'
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 18개 텍스트 처리 완료
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 11 치환됨
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.511, comps=10, min_center_dist=0.035 → external_request
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 18
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:51:16,165] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:51:16,184] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:51:16,242] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:51:16,439] [LogListener] [DEBUG] [loggerModule.py:debug:449] translated_texts: ['품질 보증, 세심한 서비스 및 걱정 없는 애프터 서비스', '판매 후 보호 구매자 지침', '서명에 대해>', '비밀', '영수증에 서명하기 전에 제품의 작은 외부 포장 상자(특급 봉투 아님)가 손상되지 않은 상태여야 합니다. 영수증 서명 시 이상이 발견된 경우,', ', 서명을 거부하고 제 시간에 온라인 고객 서비스에 문의하십시오.', '상품에 대하여>', '모든 제품은 고품질로 생산되며, 이 페이지의 모든 데이터는 실제 측정에서 얻은 것입니다.테스트 데이터는 환경에 따라 다르며,', '도구의 영향은 약간 다를 수 있으므로 실제 상황을 참조하십시오.', '고객 서비스에 대해>', '우리의 고객 서비스 직원은 모든 고객이 만족스러운 서비스를 경험할 수 있도록 전문 지식을 교육 받았습니다.', '특송 포장이나 애프터 서비스 등의 문제로 인해 쇼핑의 즐거움이 영향을 받을 수 있습니다.', '배송물류 소개>', '저희 매장은 특급 배송 회사인 Zhongtong Express와 협력하고 있습니다. 배터리 제품은 항공 운송이 불가능하고, 육상 운송만 가능합니다.', '마카오 / 대만 지방 / 해외(해외) 배송은 당분간 지원되지 않습니다. 사진을 찍으셨다면 기한 내에 환불 신청을 해주시기 바랍니다.', '반품에 대해>', '저희 매장은 7일 이내 반품 및 교환 서비스를 약속하며, 상품 서명 후 지정된 시간 내에 해당 상품은 2차 판매에 영향을 미치지 않습니다.', '반품이나 교환은 고객센터로 연락주시면 됩니다.']
[2026-03-02 20:51:16,439] [LogListener] [DEBUG] [loggerModule.py:debug:449] 마스크 생성 완료
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 원본 텍스트: '품질 보증, 세심한 서비스 및 걱정 없는 애프터 서비스'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 분리된 단어: ['품질', '보증,', '세심한', '서비스', '및', '걱정', '없는', '애프터', '서비스']
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 1] 변경 없음: '품질 보증, 세심한 서비스 및 걱정 없는 애프터 서비스'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 원본 텍스트: '판매 후 보호 구매자 지침'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 분리된 단어: ['판매', '후', '보호', '구매자', '지침']
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 2] 변경 없음: '판매 후 보호 구매자 지침'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 원본 텍스트: '서명에 대해>'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 분리된 단어: ['서명에', '대해>']
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 3] 변경 없음: '서명에 대해>'
[2026-03-02 20:51:16,440] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 원본 텍스트: '비밀'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 분리된 단어: ['비밀']
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 4] 변경 없음: '비밀'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 원본 텍스트: '영수증에 서명하기 전에 제품의 작은 외부 포장 상자(특급 봉투 아님)가 손상되지 않은 상태여야 합니다. 영수증 서명 시 이상이 발견된 경우,'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 분리된 단어: ['영수증에', '서명하기', '전에', '제품의', '작은', '외부', '포장', '상자(특급', '봉투', '아님)가', '손상되지', '않은', '상태여야', '합니다.', '영수증', '서명', '시', '이상이', '발견된', '경우,']
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 5] 변경 없음: '영수증에 서명하기 전에 제품의 작은 외부 포장 상자(특급 봉투 아님)가 손상되지 않은 상태여야 합니다. 영수증 서명 시 이상이 발견된 경우,'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 원본 텍스트: ', 서명을 거부하고 제 시간에 온라인 고객 서비스에 문의하십시오.'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 분리된 단어: [',', '서명을', '거부하고', '제', '시간에', '온라인', '고객', '서비스에', '문의하십시오.']
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 6] 변경 없음: ', 서명을 거부하고 제 시간에 온라인 고객 서비스에 문의하십시오.'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 원본 텍스트: '상품에 대하여>'
[2026-03-02 20:51:16,441] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 분리된 단어: ['상품에', '대하여>']
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 7] 변경 없음: '상품에 대하여>'
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 원본 텍스트: '모든 제품은 고품질로 생산되며, 이 페이지의 모든 데이터는 실제 측정에서 얻은 것입니다.테스트 데이터는 환경에 따라 다르며,'
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 분리된 단어: ['모든', '제품은', '고품질로', '생산되며,', '이', '페이지의', '모든', '데이터는', '실제', '측정에서', '얻은', '것입니다.테스트', '데이터는', '환경에', '따라', '다르며,']
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 8] 변경 없음: '모든 제품은 고품질로 생산되며, 이 페이지의 모든 데이터는 실제 측정에서 얻은 것입니다.테스트 데이터는 환경에 따라 다르며,'
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 원본 텍스트: '도구의 영향은 약간 다를 수 있으므로 실제 상황을 참조하십시오.'
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 분리된 단어: ['도구의', '영향은', '약간', '다를', '수', '있으므로', '실제', '상황을', '참조하십시오.']
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 9] 변경 없음: '도구의 영향은 약간 다를 수 있으므로 실제 상황을 참조하십시오.'
[2026-03-02 20:51:16,442] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 원본 텍스트: '고객 서비스에 대해>'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 분리된 단어: ['고객', '서비스에', '대해>']
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 10] 변경 없음: '고객 서비스에 대해>'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 원본 텍스트: '우리의 고객 서비스 직원은 모든 고객이 만족스러운 서비스를 경험할 수 있도록 전문 지식을 교육 받았습니다.'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 분리된 단어: ['우리의', '고객', '서비스', '직원은', '모든', '고객이', '만족스러운', '서비스를', '경험할', '수', '있도록', '전문', '지식을', '교육', '받았습니다.']
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 11] 변경 없음: '우리의 고객 서비스 직원은 모든 고객이 만족스러운 서비스를 경험할 수 있도록 전문 지식을 교육 받았습니다.'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 원본 텍스트: '특송 포장이나 애프터 서비스 등의 문제로 인해 쇼핑의 즐거움이 영향을 받을 수 있습니다.'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 분리된 단어: ['특송', '포장이나', '애프터', '서비스', '등의', '문제로', '인해', '쇼핑의', '즐거움이', '영향을', '받을', '수', '있습니다.']
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 12] 변경 없음: '특송 포장이나 애프터 서비스 등의 문제로 인해 쇼핑의 즐거움이 영향을 받을 수 있습니다.'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 원본 텍스트: '배송물류 소개>'
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 분리된 단어: ['배송물류', '소개>']
[2026-03-02 20:51:16,443] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 13] 변경 없음: '배송물류 소개>'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 원본 텍스트: '저희 매장은 특급 배송 회사인 Zhongtong Express와 협력하고 있습니다. 배터리 제품은 항공 운송이 불가능하고, 육상 운송만 가능합니다.'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 분리된 단어: ['저희', '매장은', '특급', '배송', '회사인', 'Zhongtong', 'Express와', '협력하고', '있습니다.', '배터리', '제품은', '항공', '운송이', '불가능하고,', '육상', '운송만', '가능합니다.']
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 14] 변경 없음: '저희 매장은 특급 배송 회사인 Zhongtong Express와 협력하고 있습니다. 배터리 제품은 항공 운송이 불가능하고, 육상 운송만 가능합니다.'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 원본 텍스트: '마카오 / 대만 지방 / 해외(해외) 배송은 당분간 지원되지 않습니다. 사진을 찍으셨다면 기한 내에 환불 신청을 해주시기 바랍니다.'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 분리된 단어: ['마카오', '/', '대만', '지방', '/', '해외(해외)', '배송은', '당분간', '지원되지', '않습니다.', '사진을', '찍으셨다면', '기한', '내에', '환불', '신청을', '해주시기', '바랍니다.']
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 15] 변경 없음: '마카오 / 대만 지방 / 해외(해외) 배송은 당분간 지원되지 않습니다. 사진을 찍으셨다면 기한 내에 환불 신청을 해주시기 바랍니다.'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 원본 텍스트: '반품에 대해>'
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 분리된 단어: ['반품에', '대해>']
[2026-03-02 20:51:16,444] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 16] 변경 없음: '반품에 대해>'
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 원본 텍스트: '저희 매장은 7일 이내 반품 및 교환 서비스를 약속하며, 상품 서명 후 지정된 시간 내에 해당 상품은 2차 판매에 영향을 미치지 않습니다.'
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 분리된 단어: ['저희', '매장은', '7일', '이내', '반품', '및', '교환', '서비스를', '약속하며,', '상품', '서명', '후', '지정된', '시간', '내에', '해당', '상품은', '2차', '판매에', '영향을', '미치지', '않습니다.']
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 17] 변경 없음: '저희 매장은 7일 이내 반품 및 교환 서비스를 약속하며, 상품 서명 후 지정된 시간 내에 해당 상품은 2차 판매에 영향을 미치지 않습니다.'
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 원본 텍스트: '반품이나 교환은 고객센터로 연락주시면 됩니다.'
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 분리된 단어: ['반품이나', '교환은', '고객센터로', '연락주시면', '됩니다.']
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [치환 처리 18] 변경 없음: '반품이나 교환은 고객센터로 연락주시면 됩니다.'
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] 전체 치환 결과: 18개 텍스트 처리 완료
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 10 치환됨
[2026-03-02 20:51:16,445] [LogListener] [DEBUG] [loggerModule.py:debug:449] [AUTO Inpaint] coverage=0.257, comps=8, min_center_dist=0.046 → external_request
[2026-03-02 20:51:16,448] [LogListener] [DEBUG] [loggerModule.py:debug:449] ocr_count: 18
[2026-03-02 20:51:16,448] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_member_valid: True
[2026-03-02 20:51:16,449] [LogListener] [DEBUG] [loggerModule.py:debug:449] [set_inpaint_method] AUTO 모드에서 external_request 선택됨 → 유지
[2026-03-02 20:51:16,449] [LogListener] [DEBUG] [loggerModule.py:debug:449] 최종 inpaint_method: external_request
[2026-03-02 20:51:16,475] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 시도: http://e5.m1tcloud.cc:8008
[2026-03-02 20:51:16,561] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 서버 요청: http://e5.m1tcloud.cc:8008/api/v1/inpaint, model=migan
[2026-03-02 20:51:16,952] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:51:16,956] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11381.9MB -> 11392.6MB (+10.8MB, +0.1%) - 방법: external_request
[2026-03-02 20:51:16,956] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:17,180] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:17,180] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:17,180] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:17,250] [LogListener] [DEBUG] [loggerModule.py:debug:449] 외부 인페인팅 성공
[2026-03-02 20:51:17,253] [LogListener] [DEBUG] [loggerModule.py:debug:449] 메모리 변화 [인페인팅]: 11393.4MB -> 11399.2MB (+5.7MB, +0.1%) - 방법: external_request
[2026-03-02 20:51:17,306] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_11.webp
[2026-03-02 20:51:17,306] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 11 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_11.webp
[2026-03-02 20:51:17,310] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 9091.6ms | download=0.0ms | ocr=3783.5ms | translate=3677.6ms | mask=3677.6ms | inpaint=807.8ms(external_request/SERVER) | render=223.0ms | save=74.0ms
[2026-03-02 20:51:17,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:17,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=b6925576-713f-49c8-9910-65c57ce35f1a
[2026-03-02 20:51:17,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=b6925576-713f-49c8-9910-65c57ce35f1a
[2026-03-02 20:51:17,311] [LogListener] [DEBUG] [loggerModule.py:debug:449] 인페인팅 완료
[2026-03-02 20:51:17,504] [LogListener] [DEBUG] [loggerModule.py:debug:449] 텍스트 렌더링 완료
[2026-03-02 20:51:17,504] [LogListener] [DEBUG] [loggerModule.py:debug:449] watermark_text:
[2026-03-02 20:51:17,504] [LogListener] [DEBUG] [loggerModule.py:debug:449] is_watermark_enabled: False
[2026-03-02 20:51:17,999] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 저장 완료 : C:\ProgramData\ImgWorker\work\translated_detail_img_10.webp
[2026-03-02 20:51:18,002] [LogListener] [DEBUG] [loggerModule.py:debug:449] 이미지 10 번역 완료: C:\ProgramData\ImgWorker\work\translated_detail_img_10.webp
[2026-03-02 20:51:18,002] [LogListener] [DEBUG] [loggerModule.py:debug:449] ⏱ 이미지 파이프라인 총 9662.0ms | download=0.0ms | ocr=3606.7ms | translate=301.1ms | mask=42.0ms | inpaint=864.7ms(external_request/SERVER) | render=194.2ms | save=447.0ms
[2026-03-02 20:51:18,002] [LogListener] [DEBUG] [loggerModule.py:debug:449] process_single_image 호출 완료
[2026-03-02 20:51:18,002] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 중: uid=da0904b4-4f0a-4824-9fa4-399b9850aa23
[2026-03-02 20:51:18,002] [LogListener] [DEBUG] [loggerModule.py:debug:449] 작업 결과 반환 완료: uid=da0904b4-4f0a-4824-9fa4-399b9850aa23