SD Character Finder
Extension for Stable Diffusion WebUI and Forge
Can't remember the exact tags for that specific character? Want to generate an image from a series and discover tags you didn't even know existed? Say no more! 🦸♂️
Your ultimate character encyclopedia and artist style discovery tool directly inside your Stable Diffusion WebUI. Browse over 23,000+ characters (Danbooru and e621) and 10,000+ artist styles without leaving your UI — search characters by name, tag, or series; discover unique art styles with real-time previews; and send both character tags and artist signatures straight to txt2img with a single click!
🎯 Features
⭐ = Core Highlights
🔍 Browse Characters
Browse 23,000+ characters (20,000+ Danbooru and 3,000+ e621) directly inside the WebUI — no tab switching! ⭐
Search by character name, tag, or browse alphabetically by series/franchise
Use multiple keywords for precise filtering (e.g.,
miku vocaloidensures both terms exist)Track your session with Recent searches and Favorites Tabs directly synced local-first. ⭐
High-performance offline SQLite database ensures instant search results without internet dependence ⭐
Pagination system keeps the UI snappy even when returning thousands of results
🎨 Discover Artist Styles (NEW in v0.6.0)
Browse 10,000+ artist styles (6,024 Danbooru + 4,032 e621) in a dedicated Artists tab ⭐
Dual-preview cards — Every artist shows two side-by-side examples (e.g., Tifa Lockhart style + Harry Potter style) so you can visually compare their drawing technique before applying it ⭐
Visual discovery — Don't know an artist's name? Just browse the gallery and "scroll until something clicks" — thumbnails make discovering new styles effortless
One-click apply — Click any card, then hit Add to txt2img to inject
by artist_namestraight into your promptFavorites for artists — Save your favorite art styles for quick access, separate from character favorites
Separate pagination, thumbnail size, and column settings for the Artists gallery
🖼️ Character Info & Preview
View high-quality character thumbnails instantly (with color-coded Source Badges).
Stable visual card grid in Gallery View with responsive layout (desktop and mobile).
Recently Viewed panel tracks your last clicked characters and artists.
Click any card to load details and prompt tags.
Side preview supports Click to expand and opens a large modal image.
Expandable Live Danbooru Tags menu: dynamically fetch extra character-specific tags from Danbooru (like clothes, eyes, hair) separated into explicit selectable Checkboxes by Category ⭐
Automatically sorts appended web-tags following optimal generation standards (NovelAI style formatting).
Clean, translation-ready interface integrating straight into A1111/Forge standard inputs.
🚀 One-Click Prompting
Send to Generate — Instantly replaces your current
txt2imgprompt and automatically switches you to the tab.Add to txt2img — Intelligently appends tags to your existing prompt ⭐
Smart Deduplication — Automatically removes duplicate words when enabled in Settings
Supports both Character tags and Artist style tags seamlessly
⚙️ Configuration
Fully integrated with the native WebUI settings menu (Settings -> Options -> SD Character Finder)
Configure results per page for Characters and Artists independently
Thumbnail sizes, cards per row, deduplication behavior, Danbooru API credentials, and default behaviors
Fast, lightweight, and completely localized
📦 Installation
Inside SD WebUI (Recommended)
Open your WebUI and go to the Extensions tab.
Click on the Install from URL sub-tab.
Paste: https://github.com/eduardoabreu81/sd-character-finder
Click Install.
Go to the Installed sub-tab and click Apply and restart UI.
⚠️ Compatible with AUTOMATIC1111, Forge, and Forge Classic / Neo.
🚀 Quick Start
Go to the new Danbooru Characters tab in your WebUI.
Type a character name or tag (e.g., miku, saber, blue hair), or pick a series from the Series Dropdown (e.g., Arknights).
Click 🔍 Search.
Click on any character in the results table to see their preview card and tags.
In Gallery View, click a visual card to select it instantly.
Click the side preview image (
Click to expand) to open a larger modal view.Expand Extra tags if you want to pull more specific prompt descriptors directly from the web.
Click ➡️ Send to Generate or ➕ Add to txt2img to instantly fill your prompt!
🎨 Discovering Artist Styles
Switch to the Artists tab.
Browse the gallery visually — each card shows two style examples side-by-side.
Found a style you like? Click the card to load the artist's tag.
Click ➕ Add to txt2img to inject
by artist_nameinto your prompt.Combine character + artist for unique generations!
Description
v0.2.3 — Gradio 3 Backward Compatibility
Fixed an issue causing crashes on Forge Classic due to unsupported js keyword arguments by enforcing _js when invoked under older Gradio runtimes.
v0.2.2 — Forge Classic Startup Fix (Part 2)
Settings Parser Fix — Explicitly mapped
floatconfig values to Gradio Slider components to prevent startup crashes on older or parallel forks (e.g. Forge Classic) where global UI parsing failed during boot.
v0.2.1 — Forge Classic Startup Fix
Settings Parser Fix — Explicitly mapped
floatconfig values to Gradio Slider components to prevent startup crashes on older or parallel forks (e.g. Forge Classic) where global UI parsing failed during boot
FAQ
Comments (12)
I get this error after installing (I use Forge Classic):
Exception in thread Thread-8 (webui_worker):
Traceback (most recent call last):
File "C:\Program Files (x86)\Python 3.11.9\Lib\threading.py", line 1045, in bootstrapinner
self.run()
File "C:\Program Files (x86)\Python 3.11.9\Lib\threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
File "L:\AI\sd-webui-forge-classic\webui.py", line 68, in webui_worker
shared.demo = ui.create_ui()
^^^^^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\modules\ui.py", line 846, in create_ui
settings.create_ui(loadsave, dummy_component)
File "L:\AI\sd-webui-forge-classic\modules\ui_settings.py", line 153, in create_ui
component = create_setting_component(k)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\modules\ui_settings.py", line 39, in create_setting_component
raise Exception(f'bad options item type: {t} for key {key}')
Exception: bad options item type: <class 'float'> for key sdcf_live_min_freq
Hey! Thanks so much for reporting this. I actually use Forge Neo as my main UI, which handles some system settings a bit differently, so this bug slipped right past me!
I've just pushed an update that completely fixes this startup crash. If you update or reinstall the extension from the repository, it should boot up perfectly fine on your Forge Classic now.
I'll definitely keep a closer eye on cross-compatibility between the different Forge versions in future updates. Let me know if everything is working for you now!
@dhunters Thanks for the quick update. I tried it again, though I got another error:
Exception in thread Thread-8 (webui_worker):
Traceback (most recent call last):
File "C:\Program Files (x86)\Python 3.11.9\Lib\threading.py", line 1045, in bootstrapinner
self.run()
File "C:\Program Files (x86)\Python 3.11.9\Lib\threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
File "L:\AI\sd-webui-forge-classic\webui.py", line 68, in webui_worker
shared.demo = ui.create_ui()
^^^^^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\modules\ui.py", line 846, in create_ui
settings.create_ui(loadsave, dummy_component)
File "L:\AI\sd-webui-forge-classic\modules\ui_settings.py", line 153, in create_ui
component = create_setting_component(k)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\modules\ui_settings.py", line 39, in create_setting_component
raise Exception(f'bad options item type: {t} for key {key}')
Exception: bad options item type: <class 'float'> for key sdcf_scraper_rate_limit
@Lopodelas Whoops! Classic 'whack-a-mole' situation! 😂
The UI startup crashed on the very first float variable it found, so it didn't even reach the second one during testing. I've just combed through all the settings and explicitly mapped that specific rate limit variable (and any remaining floats) to Sliders as well.
I will update it here in a new version, but a new git pull should finally clear the runway for you to boot up. Thanks for your patience and for helping me iron this out for the Forge Classic folks!
@dhunters Thanks for your work :D. The webui boots now instead of freezing up, although without the Character Finder, which gave this error:
*** Error executing callback ui_tabs_callback for L:\AI\sd-webui-forge-classic\extensions\sd-character-finder\scripts\wildcard_creator.py
Traceback (most recent call last):
File "L:\AI\sd-webui-forge-classic\modules\script_callbacks.py", line 176, in ui_tabs_callback
res += c.callback() or []
^^^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\extensions\sd-character-finder\scripts\wildcard_creator.py", line 42, in on_ui_tabs
blocks = build_ui()
^^^^^^^^^^
File "L:\AI\sd-webui-forge-classic\extensions\sd-character-finder\wildcard_creator\ui.py", line 788, in build_ui
buildcharacters_content()
File "L:\AI\sd-webui-forge-classic\extensions\sd-character-finder\wildcard_creator\ui.py", line 509, in buildcharacters_content
btn_char_save_tag.click(
TypeError: EventListenerMethod.__call__() got an unexpected keyword argument 'js'
---
@Lopodelas Done! I've just pushed a new fix (v0.2.3) to adjust the code for Gradio 3 compatibility. I'll make sure to install Forge Classic later this week so I can run some proper local tests on my end too. Huge thanks for all the testing and detailed reports, I really appreciate it!
@dhunters I believe it works now, no errors so far. I initially thought the search was more like browser with previews of those characters before clicking on the name. I had hoped to find interesting characters that way. Would it be possible to set that up?
@Lopodelas I can work on this. ;)
@dhunters Nice, I can't wait :3
@Lopodelas it's on! let me know what you think! ;)
@dhunters Nice, works great and it looks pretty good. Can you add a setting to adjust thumbnail size and amount of thumbnails per row? When clicking "Send to Generate", would it be possible to automatically switch the tab to it? Same with t2i and so on
@Lopodelas I have this feature in another app, I'll try to migrate it to this one. I'll keep you posted!
