load_EasyOCR_model
Load OCR weights once, reuse them across every OCR call
- EasyOCR_model
This node is a deliberate rework of prodogape's ComfyUI-EasyOCR pack: the original bundles model loading and text detection into one node, so every OCR call reloads the model from scratch. This pack splits that in two - load_EasyOCR_model here just loads the model once, and a separate node, ApplyEasyOCR_batch, does the actual detection using whatever model this one hands it. If you're OCR-ing more than a handful of images, that split is the entire point: load once, reuse across every call in your workflow instead of paying the model-load cost every single time.
The inputs and outputs that matter
Four inputs, and they all matter. gpu (on by default) runs detection on your GPU rather than CPU - leave it on if you have one; EasyOCR's underlying CRAFT text-detection model is noticeably faster with it. detect switches between two ways of picking languages: choose uses the dropdown (language_list), which has 44 language options built in; input ignores the dropdown and reads whatever you typed into language_name instead - a comma-separated string, defaulting to ch_sim,en,Español as a working example of the format. input mode is the one to reach for if you need a language combination that isn't a single dropdown pick, since EasyOCR genuinely supports recognizing multiple languages in one pass.
The single output, EasyOCR_model, is a custom type - it only plugs into ApplyEasyOCR_batch, so this node on its own does nothing visible. It exists purely to be the upstream half of a two-node pair.
Installing it
This node needs two things beyond the base ComfyUI-WJNodes install: the pack itself, and the EasyOCR Python package, which the README calls out explicitly as a hard requirement for this section - "To use the following nodes, you must install EasyOCR." Get the pack first:
cd ComfyUI/custom_nodes
git clone https://github.com/807502278/ComfyUI-WJNodes.git
then pip install easyocr (or run the pack's requirements.txt if you want everything the pack's optional integrations need at once). The first time you actually run this node, EasyOCR auto-downloads whichever language models you selected into ComfyUI's models/EasyOCR/ folder - files like craft_mlt_25k.pth (the text detector, needed regardless of language) plus per-language recognition weights such as latin_g2.pth or zh_sim_g2.pth land there on first use. That download happens once per language and gets reused after.
Where people get burned
If the node errors on load with an import failure, EasyOCR itself isn't installed - that's a pip install easyocr away, not a ComfyUI-WJNodes problem. If it hangs the first time you run a workflow with this node, that's very likely the language model download in progress rather than a freeze - check your console output before restarting anything. And if detect is set to choose but you swear you typed a custom language combo into language_name, that's expected: the dropdown wins in choose mode, and language_name is only read when detect is set to input.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| gpu | BOOLEAN | true | — |
| detect | COMBO | choose | 2 options: choose, input |
| language_list | COMBO | English | 44 options: English, 简体中文, 繁體中文, العربية, Azərbaycan, Euskal, +38 |
| language_name | STRING | ch_sim,en,Español | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| EasyOCR_model | EasyOCR_model | — |