This project represents a significant investment of time, effort, and resources.
It is now released as a fully open-source project for the community to use, improve, and build upon.
It may look simple on the surface, but a substantial amount of work has gone into its development.
This is a contribution in support of open-source.
Instead of relying entirely on AI or large language models, EasyUI uses structured commands as a fast and practical way to interact with models, workflows, and code.
As the name suggests, EasyUI is designed to make AI accessible and simple for everyone—including family and friends—without requiring them to deal with complex code or node-based systems.
It also helps organize ideas and workflows efficiently.
EasyUI is a lightweight web interface that provides:
- Interaction with ComfyUI workflows
- Execution of Python scripts
- Integration with language models (via Ollama or similar tools)
- Multi-language support (Arabic, English, Chinese, Japanese)
This project is based on a custom license.
You are free to use, modify, and distribute this project, including for commercial use.
However, you must keep the following credit visible in the user interface: "EasyUI base made by kigy"
Full license terms are provided in the LICENSE file.
- Clone the repository:
git clone https://github.com/kigy1/EasyUI.git- Run install_easyui.bat
- Done. You can now run it with start.bat.
EasyUI needs to know:
- which node you want to modify
- and which keyword (intent) will trigger it
For example, you might use the word generate to trigger an image generation workflow.
To make it more flexible, you can add multiple keywords (intents) in the intents file.
Next, you define what should be modified in the workflow.
For example, if you only want to change the prompt, you specify which node receives the prompt in workflow_requirements.yml.
Don’t worry—there is a tool that automates this process, so you don’t need to edit these files manually.
-
From ComfyUI, export your workflow using Export (API).
-
Place the workflow file inside the
workflowsfolder (main,high, orfast). -
Run
workflow_intent_requirements_builder.pyfrom thetoolfolder:- Select your workflow and click Load
- Enter the node numbers you want to interact with (e.g., prompt, image, etc.)
The result will be sent directly to EasyUI.
If you need multiple outputs or something is missing, you can manually enter node numbers on save or result.
Note: If the workflow is open in ComfyUI, it will help you identify node numbers more easily.
- To output all images, click All Images
- Use commas to add multiple intents
Note: The UI automatically removes the intent keyword and keeps only the prompt.
If you want to keep the intent in the prompt, enable No Remove (useful for editing workflows).
Finally, click Generate, then save the file.
Note: Other buttons are available to help you share your workflow with others.
- Send & receive: text, images, video, and audio
- Acts as a UI for running ComfyUI workflows
- Auto-translation (currently Arabic only)
- Blocked words filter
- Session management (create / restore / delete)
- Media cleanup from server
- Controls and toggles:
- Login system
- Dark mode
- LLM model control
- EasyTag feature
- Tag system features:
- Tags
- Wildcards
- Chants
Inspired by: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
- Button to chat with a LLM model
- Support for negative prompts via +/- button
- Template system
- Favorite templates
- Custom commands ("My Commands")
- Plugin system
- Drag & drop media upload
- Image cropping
- Mask editor (inpainting)
- Drawing and coloring tools
- Click-to-copy text
- Edit and resend prompts
- Regenerate output
- Resend image
- Run Python files
- Model selector (main / fast / high)
- Intent detection
- Multi-language support (Arabic, English, Chinese, Japanese)
- Auto-replies via text file
- Audio trimming
You can interact with language models, or also get predefined responses in two ways: either by writing the response directly in the intent file, or by using text files.
Note: You must press the LM button to talk to a language model.
Note: Click (Login) to load user settings, and (Save) to apply any changes.
(Delete All Media) deletes all user media from the server (local PC).
Note: You need to add the ComfyUI path to comfy_path.txt to make it work.
- manage sessions.
- Favorite Templates.
- my prompt to save your favorite prompt Go favorite prompt.
- Plugin (the ui accept plugin).Go plugin.
- You can divide your workflow into three groups: Fast, High, and Main.
Note: If the UI does not find the workflow in Fast or High, it will search in Main (the default). - user settings from here you can see all settings and dark mode.
- send to bar to reuse the image and send it to chat bar
- open mask editor helps you reuse an image for inpainting (draw and mask).
- Regenerate with a different seed.
- edit & resend edit your message.
- Resend same message.
- postive/negative The button helps you switch between positive and negative prompts.
- LM enable chat with LLM
- Edit open crop and mask editor Go to Crop and Mask Editor
- show and hide templates
Templates provide an easy way to organize workflows and applications and launch them using images.
Note: You can create folders to organize templates into categories.
If you have many templates, each user can press the heart button to save it to their Favorites.
How to create a template
- Place an image and a text file inside the
templatesfolder (the image and text file must have the same name). - In the text file:
- First line: the label (name shown in the UI)
- Second line: the intent or prompt
- Eraser
- Clear All
- Invert Mask
- Change Color
- Save Mask for Inpainting
- Save Paint (useful for drawing workflows)
This example uses two reference images: the first for Pose ControlNet, and the second for IP-Adapter.
a way to save your favorite prompt
clone voice and txt2voice
The UI accepts plugins.
There are many types of plugins: some run automatically (enable/disable), while others require a click to run.
Example: There are two plugins—one adds shortcuts to the interface, and the other controls the angle of the subject, which is useful when using LoRA to change the camera angle.
Note: I hope this will be a starting point to support all available applications.
After placing files in the following directories:
web/easy-tag/tags
web/easy-tag/wildcards
web/easy-tag/chantsNote 1: You must convert tags and chants to JSON. You can use the
auto_csv_to_jsontool to convert from the tool file.
Note 2: When you add a new wildcard, you must update a manifest file usingupdate_wildcard.pyfrom wildcards file.
- Works directly when enabled in settings
- Triggered by typing normally
- Activated when typing double underscores (
__)
- Works when typing: ##
- Note: It only appears after typing at least one character after
##
PythonApp is a way to run Python code directly from the EasyUI.
For example, you can write code to download a video from a website, or create a script to copy text.
It’s Python—so you can do whatever you want.
How to use
- add intents to intents file like
pythonapp:
file: null
aliases:
- pythonapp
- runbat3. To use it in EasyUI, type the intent. For example:
pythonapp file-name commandsYou can also censor any unwanted words.
Add them to bad_words.yml like this:
badword1: replace
badword2: replaceNote: In my experience, replacing the word is better than removing it.
You can add responses from a .txt file. Place the file inside the responses folder, then add an intent like this:
sec:
response_file: sec.txt
aliases:
- sec
- whatever you want




















