Files
rookiestar28 d589717f5a feat(stage3): add 35 community error patterns with i18n support
STAGE 3: F12 Pattern Expansion Complete

Changes:
1. Added 7 community pattern JSON files (35 patterns total)
   - patterns/community/controlnet.json (8 ControlNet patterns)
   - patterns/community/lora.json (6 LoRA patterns)
   - patterns/community/vae.json (5 VAE patterns)
   - patterns/community/animatediff.json (4 AnimateDiff patterns)
   - patterns/community/ipadapter.json (4 IPAdapter patterns)
   - patterns/community/facerestore.json (3 FaceRestore patterns)
   - patterns/community/misc.json (5 misc patterns)

2. Updated ERROR_KEYS in i18n.py
   - Added 35 new error keys
   - Total patterns: 57 (22 builtin + 35 community)

3. Added translations for all new patterns
   - English (en): Complete ✅
   - 繁體中文 (zh_TW): Complete ✅
   - 简体中文 (zh_CN): Complete ✅
   - Other languages (ja, de, fr, it, es, ko): Fallback to English

Pattern Categories:
- ControlNet: 8 patterns (model loading, preprocessing, sizing)
- LoRA: 6 patterns (loading, compatibility, memory)
- VAE: 5 patterns (encoding/decoding, precision, tiling)
- AnimateDiff: 4 patterns (model, frames, context, memory)
- IPAdapter: 4 patterns (model, encoding, compatibility)
- FaceRestore: 3 patterns (model, detection, memory)
- Miscellaneous: 5 patterns (checkpoint, image format, sampler, scheduler, CLIP)

Testing:
- ✅ All 9 PatternLoader unit tests pass
- ✅ 57 patterns load successfully
- ✅ Pattern matching works correctly
- ✅ Translations verified for en/zh_TW/zh_CN
2026-01-03 04:56:10 +08:00

86 lines
3.1 KiB
JSON

{
"version": "1.0.0",
"patterns": [
{
"id": "controlnet_model_not_found",
"regex": "ControlNet model.*not found|Could not find ControlNet model",
"error_key": "CONTROLNET_MODEL_NOT_FOUND",
"has_groups": false,
"priority": 80,
"category": "model_loading",
"tags": ["controlnet", "model", "missing"],
"notes": "ControlNet model file not found in models directory"
},
{
"id": "controlnet_preprocessor_failed",
"regex": "ControlNet preprocessor.*failed|Preprocessor.*execution failed",
"error_key": "CONTROLNET_PREPROCESSOR_FAILED",
"has_groups": false,
"priority": 75,
"category": "custom_nodes",
"tags": ["controlnet", "preprocessor", "execution"],
"notes": "ControlNet preprocessor execution failed"
},
{
"id": "controlnet_size_mismatch",
"regex": "ControlNet.*size mismatch|control image size.*doesn't match",
"error_key": "CONTROLNET_SIZE_MISMATCH",
"has_groups": false,
"priority": 70,
"category": "data_type",
"tags": ["controlnet", "size", "dimension"],
"notes": "Control image dimensions don't match base image"
},
{
"id": "controlnet_unsupported_model",
"regex": "Unsupported ControlNet model|ControlNet.*not supported",
"error_key": "CONTROLNET_UNSUPPORTED_MODEL",
"has_groups": false,
"priority": 75,
"category": "model_loading",
"tags": ["controlnet", "compatibility", "model"],
"notes": "ControlNet model type not supported by current implementation"
},
{
"id": "controlnet_invalid_strength",
"regex": "Invalid ControlNet strength|control_strength.*out of range",
"error_key": "CONTROLNET_INVALID_STRENGTH",
"has_groups": false,
"priority": 65,
"category": "workflow",
"tags": ["controlnet", "parameter", "strength"],
"notes": "ControlNet strength value outside valid range (0-1)"
},
{
"id": "controlnet_missing_preprocessor",
"regex": "ControlNet preprocessor.*not installed|Missing preprocessor",
"error_key": "CONTROLNET_MISSING_PREPROCESSOR",
"has_groups": false,
"priority": 80,
"category": "custom_nodes",
"tags": ["controlnet", "preprocessor", "dependency"],
"notes": "Required ControlNet preprocessor not installed"
},
{
"id": "controlnet_channel_mismatch",
"regex": "ControlNet.*channel mismatch|control image channels.*expected",
"error_key": "CONTROLNET_CHANNEL_MISMATCH",
"has_groups": false,
"priority": 70,
"category": "data_type",
"tags": ["controlnet", "channels", "format"],
"notes": "Channel count mismatch between control and base image"
},
{
"id": "controlnet_device_mismatch",
"regex": "ControlNet model.*different device|control.*device mismatch",
"error_key": "CONTROLNET_DEVICE_MISMATCH",
"has_groups": false,
"priority": 75,
"category": "framework",
"tags": ["controlnet", "device", "cuda"],
"notes": "ControlNet model on different device than base model"
}
]
}