| graph TD
|
| %% Global Inputs
|
| UserURL[Input: Target URL] --> Playwright
|
| UserURL --> RawString
|
|
|
| subgraph Branch_1_Visual_Analysis [Branch 2: Visual Analysis / Image]
|
| direction TB
|
| Playwright(Playwright Automation) -- Visits Site --> Screenshot[Capture Screenshot]
|
| Screenshot --> Resize[Resize to 224x224 & Normalize]
|
| Resize --> MobileNet[Model: MobileNetV2<br/>Pre-trained on ImageNet]
|
| MobileNet -- Feature Extraction --> VisVector[Output: Visual Feature Vector]
|
| end
|
|
|
| subgraph Branch_2_URL_Analysis [Branch 1: URL Analysis / Text]
|
| direction TB
|
| RawString(Raw URL String) --> CharEncode[Preprocessing: Character-Level Encoding]
|
| CharEncode --> CharCNN[Model: Char-CNN<br/>1D Convolution Layers]
|
| CharCNN --> LSTM[Model: LSTM<br/>Long Short-Term Memory]
|
| LSTM --> TextVector[Output: Text Feature Vector]
|
| end
|
|
|
| %% Fusion and Output
|
| VisVector --> Concat{Concatenation / Late Fusion}
|
| TextVector --> Concat
|
| Concat --> DenseLayer[Dense / Fully Connected Layer]
|
| DenseLayer --> Sigmoid((Sigmoid Activation))
|
| Sigmoid --> FinalOutput[Output: Probability Score<br/>0 Safe - 1 Phishing]
|
|
|
| %% Styling
|
| style Branch_1_Visual_Analysis fill:#e1f5fe,stroke:#01579b,stroke-width:2px
|
| style Branch_2_URL_Analysis fill:#fff3e0,stroke:#e65100,stroke-width:2px
|
| style Concat fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
|
| style FinalOutput fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
|