Files
mudknight-comfyui-mudknight…/web/character_editor.html
T

235 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Character Editor</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<!-- New Navigation Bar -->
<div class="navbar">
<h1>Preset Editor</h1>
<div class="tabs">
<button class="tab-button active" onclick="switchTab('characters')">
Characters
</button>
<button class="tab-button" onclick="switchTab('models')">
Models
</button>
<button class="tab-button" onclick="switchTab('styles')">
Styles
</button>
</div>
<div class="search-box">
<input type="text" id="searchInput" placeholder="Search...">
<button class="clear-search" id="clearSearch" onclick="clearSearch()" style="display: none;">×</button>
</div>
</div>
<div class="status" id="status"></div>
<!-- Characters Tab -->
<div class="tab-content active" id="charactersTab">
<div class="content-with-sidebar">
<div class="sidebar">
<div class="sidebar-header">Categories</div>
<div class="category-list" id="categoryList">
<div class="category-item active" data-category="all">
<span class="category-name">All Characters</span>
<span class="category-count" id="countAll">0</span>
</div>
</div>
</div>
<div class="main-content">
<div class="character-grid" id="characterGrid"></div>
<div class="empty-state" id="emptyState" style="display: none;">
<p>No characters found</p>
<button onclick="showAddModal('character')">
Add Your First Character
</button>
</div>
</div>
</div>
</div>
<!-- Models Tab -->
<div class="tab-content" id="modelsTab">
<div class="preset-grid" id="modelGrid"></div>
<div class="empty-state" id="modelEmptyState"
style="display: none;">
<p>No models found</p>
<button onclick="showAddModal('model')">
Add Your First Model
</button>
</div>
</div>
<!-- Styles Tab -->
<div class="tab-content" id="stylesTab">
<div class="character-grid" id="styleGrid"></div>
<div class="empty-state" id="styleEmptyState"
style="display: none;">
<p>No styles found</p>
<button onclick="showAddModal('style')">
Add Your First Style
</button>
</div>
</div>
</div>
<!-- Character Modal -->
<div class="modal" id="editModal">
<div class="modal-content">
<div class="modal-header">
<div style="flex: 1;">
<label style="display: block; margin-bottom: 5px;">Character Name</label>
<input type="text" id="editCharNameInput" class="name-input" style="margin: 0;" />
</div>
<button class="delete" onclick="deleteCurrentCharacter()">
Delete
</button>
</div>
<div class="field-group">
<label>Character Image</label>
<div style="display: flex; gap: 10px; align-items: center;">
<input type="file" id="editImage" accept="image/*"
style="flex: 1;">
<button onclick="removeImage()" class="delete"
style="padding: 8px 12px;">
Remove
</button>
</div>
<div id="imagePreview"
style="margin-top: 10px; display: none;">
<img id="previewImg"
style="max-width: 200px; border-radius: 4px;">
</div>
</div>
<div class="field-group">
<label>Character</label>
<textarea id="editCharacter"></textarea>
</div>
<div class="field-group">
<label>Top</label>
<textarea id="editTop"></textarea>
</div>
<div class="field-group">
<label>Bottom</label>
<textarea id="editBottom"></textarea>
</div>
<div class="field-group">
<label>Negative</label>
<textarea id="editNeg"></textarea>
</div>
<div class="field-group">
<label>Categories (comma-separated)</label>
<input type="text" id="editCategories"
placeholder="e.g., idolmaster, blue archive, genshin impact">
</div>
<div class="modal-actions">
<button onclick="hideEditModal()">Cancel</button>
<button class="save" onclick="saveCharacter()">
Save Changes
</button>
</div>
</div>
</div>
<!-- Model Edit Modal -->
<div class="modal" id="modelEditModal">
<div class="modal-content">
<div class="modal-header">
<div style="flex: 1;">
<label style="display: block; margin-bottom: 5px;">Model Name</label>
<input type="text" id="editModelNameInput" class="name-input" style="margin: 0;" />
</div>
<button class="delete" onclick="deleteCurrentItem('model')">
Delete
</button>
</div>
<div class="field-group">
<label>Quality Positive</label>
<textarea id="editModelQualityPos"></textarea>
</div>
<div class="field-group">
<label>Quality Negative</label>
<textarea id="editModelQualityNeg"></textarea>
</div>
<div class="field-group">
<label>Embeddings Positive</label>
<input type="text" id="editModelEmbedPos">
</div>
<div class="field-group">
<label>Embeddings Negative</label>
<input type="text" id="editModelEmbedNeg">
</div>
<div class="modal-actions">
<button onclick="hideEditModal('model')">Cancel</button>
<button class="save" onclick="saveItem('model')">
Save Changes
</button>
</div>
</div>
</div>
<!-- Style Edit Modal -->
<div class="modal" id="styleEditModal">
<div class="modal-content">
<div class="modal-header">
<div style="flex: 1;">
<label style="display: block; margin-bottom: 5px;">Style Name</label>
<input type="text" id="editStyleNameInput" class="name-input" style="margin: 0;" />
</div>
<button class="delete" onclick="deleteCurrentItem('style')">
Delete
</button>
</div>
<div class="field-group">
<label>Style Image</label>
<div style="display: flex; gap: 10px; align-items: center;">
<input type="file" id="editStyleImage" accept="image/*"
style="flex: 1;">
<button onclick="removeImage('style')" class="delete"
style="padding: 8px 12px;">
Remove
</button>
</div>
<div id="styleImagePreview"
style="margin-top: 10px; display: none;">
<img id="stylePreviewImg"
style="max-width: 200px; border-radius: 4px;">
</div>
</div>
<div class="field-group">
<label>Positive Tags</label>
<textarea id="editStylePos"></textarea>
</div>
<div class="field-group">
<label>Negative Tags</label>
<textarea id="editStyleNeg"></textarea>
</div>
<div class="modal-actions">
<button onclick="hideEditModal('style')">Cancel</button>
<button class="save" onclick="saveItem('style')">
Save Changes
</button>
</div>
</div>
</div>
<script src="script.js"></script>
<!-- Autocomplete dropdown -->
<div class="autocomplete-dropdown" id="autocompleteDropdown"></div>
</body>
</html>