Integrate ComfyUI#5
Open
Hugo-Matias wants to merge 284 commits intomasterfrom
Open
Conversation
Add full-screen image viewer with enhanced features Replaced dialog-based image viewers with a new full-screen `ImageViewer` component, supporting navigation, favoriting, rating, pan-and-zoom, and slideshows. Integrated metadata display for images, including prompts and resolution. Added keyboard shortcuts for improved usability. Updated `ImageCard.razor` and `ImageCarousel.razor` to set a default score of `3` for newly favorited images without a score. Refactored `ImagesContainer.razor` to use the new `ImageViewer` and removed legacy dialog methods. Enhanced `Danbooru.razor` to support external images in the viewer. Styled the `ImageViewer` with a polished UI, including overlays, control bars, and animations. Improved `DanbooruService.cs` to filter unsupported file types and enhance video previews.
Refactor UI components and add infinite scrolling Replaced `MudCard` with custom card structures across multiple components for better layout control and styling. Added hover overlays with quick actions, metadata info, and persistent indicators to enhance interactivity. Introduced masonry layouts and infinite scrolling for dynamic content loading, including a new JavaScript module for managing layout and scroll behavior. Improved CSS with responsive adjustments and modern design patterns. Added support for video content and fallback handling for unavailable images. Refactored dialog methods and streamlined fullscreen image viewer functionality. Enhanced loading indicators and error handling for better user experience.
Add video generation and management support Introduced comprehensive support for video files, including: - New components for video playback (`VideoViewer`), thumbnails (`VideoCard`), and metadata display (`VideoInfoDialog`). - Added `GeneratedVideoTabs` for managing generated videos. - Integrated Image-to-Video (I2V) workflows with dual-model and LoRA support. - Updated database schema to include video metadata (e.g., frame count, duration). - Enhanced `ComfyUIService` and `ImageService` for video generation and persistence. - Added responsive styles and hover actions for video-related components. - Refactored `ManagerService` to modularize parameter initialization. - Removed unused fields (`Info`, `InfoPath`) from the `Image` entity. - Added JavaScript utilities for video playback and image input handling.
- Added modular fragments for tasks like model loading, resizing,
sampling, and saving, including `concat-preview.sbn`,
`detailer-core.sbn`, `load-flux.sbn`, and others.
- Introduced `scope` parameter for namespace isolation, improving
modularity and reusability across workflows.
- Replaced hardcoded values with Scriban templating for dynamic
parameter injection.
- Updated templates like `txt2img.sbn` to use modular fragments,
replacing legacy monolithic structures.
- Added `#meta` blocks for defining outputs, conditions, and metadata.
- Introduced an `Assets` system for user-selectable models, enabling
dynamic UI dropdowns for diffusion models, CLIP encoders, VAEs, etc.
- Added new templates for workflows like `img2img-edit.sbn` and
`pose2vid-steadydancer.sbn`.
- Deprecated legacy fragments like `detailer.sbn` in favor of modular
replacements.
- Enhanced `TEMPLATE_GUIDE.md` with detailed documentation on the
modular pipeline system and conversion processes.
- Standardized output naming conventions to `{scope}{type}_output`.
- Improved error handling, parameter defaults, and conditional logic
in fragments.
- Cleaned up legacy code and removed unused nodes for maintainability.
- Add migration for Img2VidParameters column in States table - Add JSON converter for Img2VidParameters serialization
- Add AssetType enum for ComfyUI asset types - Add WorkflowAsset model for workflow-defined assets - Add WorkflowAssets dictionary to all parameter classes - Deprecate legacy SDModel/Vae properties in AppState - Add CurrentWorkflowId to track selected workflow
- Add IAssetResolverService for resolving workflow assets - Implement AssetResolverService with caching - Add GetClipModels() and GetClipVisionModels() to ComfyUIService - Register AssetResolverService in DI container
- Add CheckpointModels, DiffusionModels, ClipModels, ClipVisionModels lists - Add GetWorkflowAsset/SetWorkflowAsset methods - Add GetWorkflowsForMode, GetCurrentWorkflow methods - Add ResetWorkflowAssetsToDefaults for base switching - Migrate legacy model settings on state load - Deprecate SDModels property
- Add ParseAssetsFromTemplate() to read Assets from templates - Add InjectWorkflowAssets() for Scriban template context - Add SaveAssetDefaults() to persist asset defaults to template - Update workflow ID generation (remove ModelType)
- Add WorkflowAssetSelector for dynamic asset dropdowns - Add WorkflowAssetsPanel with collapsible container and save defaults button
- Add WorkflowAssetsPanel to Txt2Img and Img2Vid pages - Remove legacy Model Settings expansion panel from Img2Vid form - Update RouterService to use GetCurrentModel/GetCurrentVae - Update ImageService to use mode-aware model retrieval
- Add Assets array to all workflow templates
- Update templates to use {{ Model }}, {{ Vae }}, etc. directly
- Remove hardcoded fallback values in favor of Asset defaults
- Remove txt2img-pipeline.sbn (consolidated into txt2img.sbn)
- Move Base selector to AppBar - Remove model/VAE/ClipSkip selectors from TopToolbar - Add dark/light mode toggle button to AppBar - Add theme selector to TopToolbar - Add backdrop for TopToolbar expansion panel - Fix z-index layering for popovers
- Add dedicated CivitaiResourceCard component - Add video playback on hover for DanbooruImageCard - Improve hover effects and animations across all cards - Add always-visible title bar to ProjectCard
- Fix null reference checks in ADetailer forms - Update model list references (SDModels -> CheckpointModels) - Fix async refresh in Index page - Add z-index fixes for MudBlazor popovers in site.css - Temporarily disable checkpoint loading from Resources page
Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
Add Img2ImgComfyUI page with qwen-edit template integration
Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
…ging) Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
Co-authored-by: Hugo-Matias <20263833+Hugo-Matias@users.noreply.github.com>
…documentation Add comprehensive documentation and logging infrastructure
- Refactored MainLayout to load backend-dependent resources (samplers, schedulers, upscalers) when either WebUI or ComfyUI comes online. - Added unified event handling for backend state changes. - Renamed Txt2ImgComfyUI.VAE to Vae for naming consistency. - Updated ParameterMapper to use new Vae property. - Added ImageEditorState with change notification for session persistence. - Added OnImageEditorStateChanged and OnSamplersSchedulersChanged events. - Ensured Upscalers, Samplers, and Schedulers are always initialized to empty lists if backend is unavailable. - Added LoadBackendDependentResources method to ManagerService. - Implemented RefreshWorkflowsFromDisk to reload workflow templates and preserve user selection. - LoadState now always refreshes workflows from disk.
Fluent Workflow Builder
- Allow users to select/deselect LoRA trigger words before loading - Pass selected trigger words to generation as prompt appends - Add robust queuing for LoRAs, asset overrides, and prompts - Improve resource filtering for empty/disabled base model sets - Queue checkpoint assets for workflow initialization - Invalidate filter state on resource changes via event subscription - Add unit tests for new filtering behaviors and edge cases
- Add draft persistence, dirty state tracking, and navigation guard to Scheduler Editor; unsaved changes are recoverable and prompt on navigation. - Implement multi-pass Detailer: tabbed UI, per-pass prompts and LoRAs, copy/clear actions, and correct prompt fallback logic. - Update all detailer-capable workflows to support chained passes with per-pass parameter and LoRA scoping. - Overhaul LoRA handling: per-pass storage, path resolution, and improved prompt parsing. - Add action repeat field and update Scheduler engine to support repeated actions. - Refactor image "Send To" logic into centralized service with multi-source workflow support. - Major UI/UX improvements: consistent select variants, improved summaries, icons, InfoDrawer with structured help, and modernized theming. - Add new Project/Folder selector component with validation. - Add base parameters summary and JSON tree view for jobs. - Add EF Core migration and entity for SchedulerDraft table. - Update and expand documentation and planning for Scheduler phases 12-16. - Numerous bugfixes, code cleanups, and test updates for new models and behaviors.
- Introduce Run snapshots for each job execution; Jobs now track Runs and a monotonic RunCounter - All run progress and status updates are mirrored onto the current Run - Add UpdateDefinitionAsync and DeleteRunAsync to JobRepository for safe mid-run edits and run deletion - SchedulerService: support re-running historical snapshots, deep-clone actions/params at trigger time - PromptTarget supports Mode (Append/Prepend/Replace) and Separator; variations respect these for prompt composition - UI: New Jobs/Runs/Results tabs with deep linking and per-run controls (re-run, delete, view params/results) - Results tab: select job and run to view images and progress - Editor: "Run" triggers new run from current definition; total generations estimate accounts for wildcard sizes - JobBaseParamsDialog shows both base parameters and actions for a run - WildcardService: add GetCollectionSize for efficient estimates - DatabaseService: DeleteImage also removes physical file - Tests and docs updated for new APIs and behaviors - Many UI/UX improvements for clarity, error handling, and consistency
Refactored all tabbed pages (Prompts, Resources, CivitAI, Scheduler, Danbooru) to use a new, token-driven layout system. Introduced reusable layout primitives (TabbedPageShell, TwoColumnLayout with collapsible sidebar, TopbarLayout, ContentOnlyLayout) and centralized all spacing/elevation via CSS tokens and LayoutDefaults. Flattened child components in layout slots (no root MudPaper/pa-*), standardized form controls to Variant.Text, and replaced per-page spacing with global tokens. Updated docs (MAIN_PLAN.md, PHASE_1-9.md, 04-UI-DESIGN-LANGUAGE.md, IMPLEMENTATION_GUIDE.md) to document conventions, anti-patterns, and scrollable content pattern. All pages now have uniform gutters, consistent elevation, and a single source of truth for layout. No regressions; visually verified and user-approved.
Also integrates Roo Code related commands and analysis guides.
Allows shared behaviour for Send To functionality for both image and parameters.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.