Initial commit
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
# Guide for Claude - ComfyUI_Detonate Project
|
||||
|
||||
This document provides context for future Claude sessions working on this project.
|
||||
|
||||
---
|
||||
|
||||
## Project Summary
|
||||
|
||||
**ComfyUI_Detonate** is a custom node package for ComfyUI that brings professional compositing tools from Nuke and DaVinci Fusion to the ComfyUI platform. The goal is to provide VFX compositors with familiar, industry-standard nodes for traditional compositing workflows alongside AI image generation.
|
||||
|
||||
---
|
||||
|
||||
## Key Project Documents
|
||||
|
||||
### Primary References
|
||||
1. **[PLANNING.md](PLANNING.md)** - Complete project vision, architecture, and roadmap
|
||||
2. **[TASKS.md](TASKS.md)** - Detailed task checklist for implementation
|
||||
3. **[NODE_PRIORITIES.md](NODE_PRIORITIES.md)** - 43 nodes prioritized by importance
|
||||
|
||||
### Quick Reference
|
||||
- **Language:** Python 3.8+
|
||||
- **Framework:** ComfyUI Custom Node API
|
||||
- **Core Libraries:** PyTorch, NumPy, Pillow
|
||||
- **Target:** Professional compositors and VFX artists
|
||||
|
||||
---
|
||||
|
||||
## Project Status
|
||||
|
||||
**Current Phase:** Phase 1 - Planning Complete ✓
|
||||
|
||||
**Completed:**
|
||||
- Project vision and goals defined
|
||||
- Architecture designed
|
||||
- Technology stack selected
|
||||
- 43 nodes researched and prioritized
|
||||
- Development roadmap created
|
||||
|
||||
**Next Steps:**
|
||||
1. Create directory structure
|
||||
2. Set up `pyproject.toml` and `requirements.txt`
|
||||
3. Implement utility modules (`tensor_utils.py`, `image_processing.py`, `color_math.py`)
|
||||
4. Create `__init__.py` with node registration system
|
||||
5. Begin implementing Priority 1 nodes (Merge, Transform, Blur, Grade, Premult/Unpremult)
|
||||
|
||||
---
|
||||
|
||||
## Technical Architecture
|
||||
|
||||
### Directory Structure
|
||||
```
|
||||
ComfyUI_Detonate/
|
||||
├── __init__.py # Node registration
|
||||
├── nodes/ # Node implementations
|
||||
│ ├── compositing/ # Merge operations
|
||||
│ ├── color/ # Color correction
|
||||
│ ├── keying/ # Keying tools
|
||||
│ ├── transform/ # Transforms
|
||||
│ ├── filter/ # Blur, sharpen, etc.
|
||||
│ ├── matte/ # Matte operations
|
||||
│ ├── channel/ # Channel ops
|
||||
│ ├── time/ # Time operations
|
||||
│ └── 3d/ # 3D compositing
|
||||
├── utils/ # Shared utilities
|
||||
│ ├── tensor_utils.py
|
||||
│ ├── image_processing.py
|
||||
│ └── color_math.py
|
||||
├── tests/ # Unit tests
|
||||
├── examples/ # Example workflows
|
||||
├── web/js/ # Frontend extensions
|
||||
├── pyproject.toml # Package metadata
|
||||
├── requirements.txt # Dependencies
|
||||
└── README.md # Documentation
|
||||
```
|
||||
|
||||
### ComfyUI Node Structure
|
||||
Every node must implement:
|
||||
```python
|
||||
class NodeName:
|
||||
CATEGORY = "detonate/category"
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"image": ("IMAGE",),
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("IMAGE",)
|
||||
FUNCTION = "process"
|
||||
|
||||
def process(self, image):
|
||||
# Processing logic
|
||||
return (image,)
|
||||
```
|
||||
|
||||
### Image Tensor Format
|
||||
- **Shape:** `[B, H, W, C]` (Batch, Height, Width, Channels)
|
||||
- **Type:** `torch.Tensor` (Float32)
|
||||
- **Range:** 0.0 - 1.0
|
||||
- **Channels:** C=3 (RGB) or C=4 (RGBA)
|
||||
|
||||
---
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Code Standards
|
||||
- Use **black** for formatting
|
||||
- Use **flake8** for linting
|
||||
- Add docstrings to all public functions
|
||||
- Include type hints where helpful
|
||||
- Keep functions focused and modular
|
||||
|
||||
### Node Implementation Pattern
|
||||
1. Create node class in appropriate `nodes/` subdirectory
|
||||
2. Implement required class attributes (CATEGORY, INPUT_TYPES, RETURN_TYPES, FUNCTION)
|
||||
3. Implement processing method
|
||||
4. Handle batch processing correctly
|
||||
5. Add validation and error handling
|
||||
6. Register node in `__init__.py`
|
||||
7. Write unit tests
|
||||
8. Create example workflow
|
||||
|
||||
### Testing
|
||||
- Write unit tests for all nodes
|
||||
- Test with various image sizes (1080p, 4K)
|
||||
- Test batch processing
|
||||
- Test edge cases (1x1 images, empty batches)
|
||||
- Verify alpha channel handling
|
||||
|
||||
### Performance
|
||||
- Use PyTorch operations (vectorized)
|
||||
- Avoid Python loops over pixels
|
||||
- Leverage GPU when available
|
||||
- Target: <100ms for 1080p, <500ms for 4K
|
||||
|
||||
---
|
||||
|
||||
## Common Operations Reference
|
||||
|
||||
### Alpha Handling
|
||||
```python
|
||||
# Premultiply
|
||||
result_rgb = rgb * alpha
|
||||
|
||||
# Unpremultiply (handle division by zero)
|
||||
result_rgb = rgb / (alpha + 1e-7)
|
||||
```
|
||||
|
||||
### Blend Modes
|
||||
```python
|
||||
# Over compositing
|
||||
result = fg + bg * (1 - fg_alpha)
|
||||
|
||||
# Screen
|
||||
result = 1 - (1 - fg) * (1 - bg)
|
||||
|
||||
# Multiply
|
||||
result = fg * bg
|
||||
```
|
||||
|
||||
### Color Space Conversion
|
||||
```python
|
||||
# RGB to HSV
|
||||
hsv = torch.tensor(cv2.cvtColor(rgb.numpy(), cv2.COLOR_RGB2HSV))
|
||||
|
||||
# HSV to RGB
|
||||
rgb = torch.tensor(cv2.cvtColor(hsv.numpy(), cv2.COLOR_HSV2RGB))
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nuke/Fusion Equivalents
|
||||
|
||||
Quick reference for compositor familiarity:
|
||||
|
||||
| Function | Nuke | Fusion | Detonate |
|
||||
|----------|------|--------|----------|
|
||||
| Compositing | Merge | Merge | Merge |
|
||||
| Color Grading | Grade | ColorCorrector | Grade |
|
||||
| Blur | Blur | Blur | Blur |
|
||||
| Keying | Keylight | DeltaKeyer | ChromaKeyer |
|
||||
| Transform | Transform | Transform | Transform |
|
||||
| Matte Ops | FilterErode | MatteControl | MatteControl |
|
||||
| Channels | Shuffle | ChannelBooleans | Shuffle |
|
||||
| Premult | Premult | (in Merge) | Premult |
|
||||
|
||||
---
|
||||
|
||||
## Priority 1 Nodes (Implement First)
|
||||
|
||||
These 8 nodes form the core toolkit:
|
||||
|
||||
1. **Merge** - Compositing with blend modes (Over, Under, Plus, Screen, Multiply)
|
||||
2. **Transform** - Translate, rotate, scale, skew
|
||||
3. **Blur** - Gaussian blur with X/Y controls
|
||||
4. **Grade** - Lift/Gamma/Gain color correction
|
||||
5. **Premultiply** - Multiply RGB by alpha
|
||||
6. **Unpremultiply** - Divide RGB by alpha
|
||||
7. **Shuffle** - Channel reordering
|
||||
8. **ColorCorrect** - Quick saturation/contrast/gamma adjustments
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Required
|
||||
```
|
||||
torch>=2.0.0
|
||||
numpy>=1.20.0
|
||||
pillow>=9.0.0
|
||||
```
|
||||
|
||||
### Optional (for advanced features)
|
||||
```
|
||||
opencv-python>=4.5.0
|
||||
scikit-image>=0.19.0
|
||||
scipy>=1.7.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow for New Sessions
|
||||
|
||||
1. **Check TASKS.md** - See what's completed and what's next
|
||||
2. **Review relevant nodes in NODE_PRIORITIES.md** - Understand priority and complexity
|
||||
3. **Reference PLANNING.md** - For architecture and design decisions
|
||||
4. **Implement incrementally** - One node at a time, with tests
|
||||
5. **Update TASKS.md** - Mark completed items
|
||||
|
||||
---
|
||||
|
||||
## Common Pitfalls to Avoid
|
||||
|
||||
### Image Handling
|
||||
- ❌ Don't assume C=3 (check for alpha channel)
|
||||
- ❌ Don't modify input tensors in-place
|
||||
- ❌ Don't forget batch dimension
|
||||
- ✅ Always return tuple matching RETURN_TYPES
|
||||
- ✅ Handle edge cases (empty images, 1x1 pixels)
|
||||
|
||||
### Performance
|
||||
- ❌ Don't use Python loops over pixels
|
||||
- ❌ Don't load entire image to CPU unnecessarily
|
||||
- ✅ Use PyTorch operations (vectorized)
|
||||
- ✅ Keep tensors on GPU when possible
|
||||
|
||||
### Alpha Compositing
|
||||
- ❌ Don't assume images are premultiplied
|
||||
- ❌ Don't ignore alpha channel in blend modes
|
||||
- ✅ Document premult requirements
|
||||
- ✅ Handle straight vs premultiplied correctly
|
||||
|
||||
### Node Registration
|
||||
- ❌ Don't forget to add to NODE_CLASS_MAPPINGS
|
||||
- ❌ Don't use spaces in CATEGORY names
|
||||
- ✅ Use consistent naming conventions
|
||||
- ✅ Provide meaningful display names
|
||||
|
||||
---
|
||||
|
||||
## Questions to Ask the User
|
||||
|
||||
When implementing nodes:
|
||||
1. "Should this node expect premultiplied or straight alpha?"
|
||||
2. "What edge behavior do you want? (black/clamp/repeat)"
|
||||
3. "Do you want GPU acceleration for this operation?"
|
||||
4. "Should this support batch processing?"
|
||||
5. "Any specific Nuke/Fusion behavior to match?"
|
||||
|
||||
---
|
||||
|
||||
## Useful Resources
|
||||
|
||||
- **ComfyUI Docs:** https://docs.comfy.org/
|
||||
- **PyTorch Docs:** https://pytorch.org/docs/stable/
|
||||
- **Nuke Docs:** https://learn.foundry.com/nuke/
|
||||
- **Fusion Docs:** https://documents.blackmagicdesign.com/UserManuals/Fusion_Manual.pdf
|
||||
- **Porter-Duff Compositing:** https://en.wikipedia.org/wiki/Alpha_compositing
|
||||
|
||||
---
|
||||
|
||||
## Development Phases Timeline
|
||||
|
||||
- **Phase 1:** Foundation (2 weeks) - Directory structure, utils, registration
|
||||
- **Phase 2:** Core Nodes (3 weeks) - Merge, Transform, Blur, Grade, etc.
|
||||
- **Phase 3:** Keying (2 weeks) - ChromaKeyer, LumaKeyer, MatteControl
|
||||
- **Phase 4:** Advanced (2 weeks) - Color curves, filters
|
||||
- **Phase 5:** Transforms (2 weeks) - CornerPin, GridWarp, Displace
|
||||
- **Phase 6:** Time Ops (1 week) - FrameHold, TimeOffset
|
||||
- **Phase 7:** Testing (2 weeks) - Comprehensive tests, docs
|
||||
- **Phase 8:** Release (1 week) - Publishing, community
|
||||
|
||||
**Total estimated time to v1.0: ~16 weeks**
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
**Phase 1 Complete:** Package loads in ComfyUI without errors
|
||||
**Phase 2 Complete:** Can composite basic greenscreen shot with color correction
|
||||
**Phase 3 Complete:** Professional keying workflow functional
|
||||
**v1.0 Release:** 30+ nodes implemented, tested, and documented
|
||||
|
||||
---
|
||||
|
||||
## Notes for Claude
|
||||
|
||||
- Always check [TASKS.md](TASKS.md) and update checkboxes as you complete work
|
||||
- Reference [NODE_PRIORITIES.md](NODE_PRIORITIES.md) for node complexity estimates
|
||||
- Follow the architecture defined in [PLANNING.md](PLANNING.md)
|
||||
- Write clean, modular, well-documented code
|
||||
- Test thoroughly before marking tasks complete
|
||||
- Ask for clarification when Nuke/Fusion behavior is ambiguous
|
||||
- Keep the user informed of progress and any blockers
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2025-01-21
|
||||
**Current Phase:** Planning Complete, Ready for Phase 1 Implementation
|
||||
@@ -0,0 +1,335 @@
|
||||
# ComfyUI_Detonate - Node Implementation Priority List
|
||||
|
||||
This document outlines the priority order for implementing nodes based on professional compositor workflows and daily usage patterns.
|
||||
|
||||
---
|
||||
|
||||
## Priority Tier 1: Essential Daily Tools (Must Have)
|
||||
|
||||
These nodes are used in virtually every compositing session and form the foundation of all workflows.
|
||||
|
||||
### 1. Merge (Compositing)
|
||||
**Nuke:** Merge | **Fusion:** Merge
|
||||
- **Operations:** Over, Under, Plus, Screen, Multiply, Stencil, Mask, Atop
|
||||
- **Importance:** Core of all compositing work
|
||||
- **Complexity:** Medium (alpha math, multiple blend modes)
|
||||
|
||||
### 2. Transform
|
||||
**Nuke:** Transform | **Fusion:** Transform
|
||||
- **Features:** Translate, Rotate, Scale, Skew, Motion Blur
|
||||
- **Importance:** Every shot needs positioning/scaling
|
||||
- **Complexity:** Medium (2D transforms, motion blur optional first pass)
|
||||
|
||||
### 3. Blur
|
||||
**Nuke:** Blur | **Fusion:** Blur
|
||||
- **Features:** Gaussian blur with X/Y separation, quality controls
|
||||
- **Importance:** Used constantly for softening, glows, depth
|
||||
- **Complexity:** Low (standard Gaussian implementation)
|
||||
|
||||
### 4. Grade
|
||||
**Nuke:** Grade | **Fusion:** ColorCorrector
|
||||
- **Features:** Lift/Gamma/Gain for Master + RGB channels
|
||||
- **Importance:** Primary color correction tool
|
||||
- **Complexity:** Medium (proper color math with shadows/mids/highlights)
|
||||
|
||||
### 5. Premultiply / Unpremultiply
|
||||
**Nuke:** Premult/Unpremult | **Fusion:** (built into Merge)
|
||||
- **Features:** Multiply/divide RGB by alpha
|
||||
- **Importance:** Critical for proper alpha handling
|
||||
- **Complexity:** Low (simple math operation)
|
||||
|
||||
### 6. Shuffle
|
||||
**Nuke:** Shuffle/Shuffle2 | **Fusion:** ChannelBooleans
|
||||
- **Features:** Reorder channels, copy between layers
|
||||
- **Importance:** Constant channel manipulation needs
|
||||
- **Complexity:** Medium (channel routing logic)
|
||||
|
||||
### 7. ColorCorrect
|
||||
**Nuke:** ColorCorrect | **Fusion:** ColorCorrector (basic mode)
|
||||
- **Features:** Saturation, Contrast, Gamma, Gain, Offset
|
||||
- **Importance:** Quick color adjustments
|
||||
- **Complexity:** Low (basic color math)
|
||||
|
||||
### 8. Erode / Dilate
|
||||
**Nuke:** Erode/Dilate | **Fusion:** ErodeDilate
|
||||
- **Features:** Matte expansion/contraction
|
||||
- **Importance:** Essential for matte cleanup
|
||||
- **Complexity:** Low (morphological operations)
|
||||
|
||||
---
|
||||
|
||||
## Priority Tier 2: High-Frequency Professional Tools
|
||||
|
||||
Used in most professional compositing shots, especially for keying and effects work.
|
||||
|
||||
### 9. ChromaKeyer (Basic)
|
||||
**Nuke:** Keyer | **Fusion:** ChromaKeyer
|
||||
- **Features:** Green/blue screen keying with spill suppression
|
||||
- **Importance:** Greenscreen work is extremely common
|
||||
- **Complexity:** High (color space keying, spill removal)
|
||||
|
||||
### 10. LumaKeyer
|
||||
**Nuke:** Keyer (luma mode) | **Fusion:** LumaKeyer
|
||||
- **Features:** Luminance-based key generation
|
||||
- **Importance:** Quick matte creation from brightness
|
||||
- **Complexity:** Low (threshold-based)
|
||||
|
||||
### 11. MatteControl
|
||||
**Nuke:** (FilterErode + Blur combination) | **Fusion:** MatteControl
|
||||
- **Features:** Contract, Expand, Blur, Gamma for mattes
|
||||
- **Importance:** All-in-one matte refinement
|
||||
- **Complexity:** Medium (combines multiple operations)
|
||||
|
||||
### 12. Clamp
|
||||
**Nuke:** Clamp | **Fusion:** (in ColorCorrector)
|
||||
- **Features:** Constrain values to min/max range
|
||||
- **Importance:** Prevent out-of-range values
|
||||
- **Complexity:** Low (simple clamping)
|
||||
|
||||
### 13. Saturation
|
||||
**Nuke:** Saturation | **Fusion:** ColorCorrector (saturation)
|
||||
- **Features:** Direct saturation control
|
||||
- **Importance:** Frequent color adjustment
|
||||
- **Complexity:** Low (HSV conversion and adjustment)
|
||||
|
||||
### 14. Invert
|
||||
**Nuke:** Invert | **Fusion:** Channel Booleans (invert)
|
||||
- **Features:** Invert color/channel values
|
||||
- **Importance:** Quick matte/color inversion
|
||||
- **Complexity:** Low (1 - value)
|
||||
|
||||
### 15. Copy / ChannelCopy
|
||||
**Nuke:** Copy/ShuffleCopy | **Fusion:** ChannelBooleans
|
||||
- **Features:** Copy channels between streams
|
||||
- **Importance:** Channel management in complex comps
|
||||
- **Complexity:** Medium (multi-stream channel operations)
|
||||
|
||||
---
|
||||
|
||||
## Priority Tier 3: Regular Use Tools
|
||||
|
||||
Important tools used frequently but not in every shot.
|
||||
|
||||
### 16. CornerPin
|
||||
**Nuke:** CornerPin2D | **Fusion:** CornerPositioner
|
||||
- **Features:** 4-point perspective mapping
|
||||
- **Importance:** Screen replacements, tracking integration
|
||||
- **Complexity:** High (perspective transform math)
|
||||
|
||||
### 17. Defocus
|
||||
**Nuke:** Defocus/ZDefocus | **Fusion:** Defocus
|
||||
- **Features:** Lens-style defocus blur
|
||||
- **Importance:** Realistic depth of field effects
|
||||
- **Complexity:** High (bokeh simulation)
|
||||
|
||||
### 18. DirectionalBlur
|
||||
**Nuke:** DirectionalBlur | **Fusion:** DirectionalBlur
|
||||
- **Features:** Motion-style blur in specified direction
|
||||
- **Importance:** Motion effects, speed lines
|
||||
- **Complexity:** Low (directional sampling)
|
||||
|
||||
### 19. Sharpen
|
||||
**Nuke:** Sharpen | **Fusion:** Sharpen
|
||||
- **Features:** Image sharpening
|
||||
- **Importance:** Detail enhancement
|
||||
- **Complexity:** Low (unsharp mask variant)
|
||||
|
||||
### 20. HueCorrect / ColorCurves
|
||||
**Nuke:** HueCorrect | **Fusion:** ColorCurves
|
||||
- **Features:** Hue-based saturation/color adjustment
|
||||
- **Importance:** Selective color correction
|
||||
- **Complexity:** High (hue-based curves)
|
||||
|
||||
### 21. Glow
|
||||
**Nuke:** Glow | **Fusion:** Glow
|
||||
- **Features:** Highlight blooming effects
|
||||
- **Importance:** Common VFX element
|
||||
- **Complexity:** Medium (threshold + blur + composite)
|
||||
|
||||
### 22. DifferenceKeyer
|
||||
**Nuke:** Difference | **Fusion:** DeltaKeyer (difference mode)
|
||||
- **Features:** Difference matte generation
|
||||
- **Importance:** Clean plate differencing
|
||||
- **Complexity:** Low (image subtraction)
|
||||
|
||||
### 23. Constant / Background
|
||||
**Nuke:** Constant | **Fusion:** Background
|
||||
- **Features:** Solid color/gradient generation
|
||||
- **Importance:** Creating mattes, backgrounds
|
||||
- **Complexity:** Low (color fill)
|
||||
|
||||
### 24. EdgeDetect
|
||||
**Nuke:** EdgeDetect | **Fusion:** Filter (Sobel/Laplacian)
|
||||
- **Features:** Edge extraction
|
||||
- **Importance:** Matte creation, effects
|
||||
- **Complexity:** Low (edge detection filters)
|
||||
|
||||
---
|
||||
|
||||
## Priority Tier 4: Specialized Tools
|
||||
|
||||
Used in specific workflows or advanced compositing tasks.
|
||||
|
||||
### 25. FrameHold
|
||||
**Nuke:** FrameHold | **Fusion:** TimeStretcher (hold)
|
||||
- **Features:** Hold single frame
|
||||
- **Importance:** Freeze frames in sequences
|
||||
- **Complexity:** Low (frame caching)
|
||||
|
||||
### 26. TimeOffset
|
||||
**Nuke:** TimeClip | **Fusion:** TimeStretcher
|
||||
- **Features:** Time offset/loop
|
||||
- **Importance:** Sequence timing adjustments
|
||||
- **Complexity:** Low (frame index offset)
|
||||
|
||||
### 27. VectorBlur
|
||||
**Nuke:** VectorBlur | **Fusion:** VectorMotionBlur
|
||||
- **Features:** Motion blur from vector/motion channels
|
||||
- **Importance:** Realistic motion blur from 3D renders
|
||||
- **Complexity:** High (vector-based sampling)
|
||||
|
||||
### 28. GridWarp
|
||||
**Nuke:** GridWarp | **Fusion:** GridWarp
|
||||
- **Features:** Manual grid-based warping
|
||||
- **Importance:** Custom distortions, warping effects
|
||||
- **Complexity:** High (mesh deformation)
|
||||
|
||||
### 29. LensDistortion
|
||||
**Nuke:** LensDistortion | **Fusion:** LensDistort
|
||||
- **Features:** Add/remove lens distortion
|
||||
- **Importance:** Camera matching, undistortion
|
||||
- **Complexity:** High (lens model math)
|
||||
|
||||
### 30. IDistort / Displace
|
||||
**Nuke:** IDistort | **Fusion:** Displace
|
||||
- **Features:** Displace pixels using displacement map
|
||||
- **Importance:** Refraction, heat distortion effects
|
||||
- **Complexity:** High (displacement mapping)
|
||||
|
||||
### 31. Median
|
||||
**Nuke:** Median | **Fusion:** Median (via Filter)
|
||||
- **Features:** Noise reduction filter
|
||||
- **Importance:** Despeckle, noise reduction
|
||||
- **Complexity:** Low (median filtering)
|
||||
|
||||
### 32. Remove Channels
|
||||
**Nuke:** Remove | **Fusion:** ChannelBooleans (remove)
|
||||
- **Features:** Remove unwanted channels
|
||||
- **Importance:** Clean up channel bloat
|
||||
- **Complexity:** Low (channel removal)
|
||||
|
||||
### 33. Ramp / Gradient
|
||||
**Nuke:** Ramp/Radial | **Fusion:** Background (gradient)
|
||||
- **Features:** Linear and radial gradients
|
||||
- **Importance:** Gradient generation for effects
|
||||
- **Complexity:** Low (gradient math)
|
||||
|
||||
### 34. Noise
|
||||
**Nuke:** Noise | **Fusion:** FastNoise
|
||||
- **Features:** Procedural noise generation
|
||||
- **Importance:** Grain, texture generation
|
||||
- **Complexity:** Low (Perlin/simplex noise)
|
||||
|
||||
### 35. Text
|
||||
**Nuke:** Text/Text2 | **Fusion:** Text+
|
||||
- **Features:** Text generation
|
||||
- **Importance:** Slates, labels, graphics
|
||||
- **Complexity:** Medium (font rendering)
|
||||
|
||||
---
|
||||
|
||||
## Priority Tier 5: Advanced/Specialized (Future Phases)
|
||||
|
||||
Professional tools for specific advanced workflows.
|
||||
|
||||
### 36. Stabilize
|
||||
**Nuke:** Stabilize2D | **Fusion:** Tracker (stabilize)
|
||||
- **Requires:** Tracking implementation first
|
||||
- **Complexity:** High
|
||||
|
||||
### 37. Tracker (2D Point)
|
||||
**Nuke:** Tracker | **Fusion:** Tracker
|
||||
- **Complexity:** Very High (tracking algorithm)
|
||||
|
||||
### 38. PlanarTracker
|
||||
**Nuke:** PlanarTracker | **Fusion:** PlanarTracker
|
||||
- **Complexity:** Very High (planar tracking)
|
||||
|
||||
### 39. SplineWarp
|
||||
**Nuke:** SplineWarp | **Fusion:** (GridWarp variant)
|
||||
- **Complexity:** High (spline-based deformation)
|
||||
|
||||
### 40. Kronos / OpticalFlow
|
||||
**Nuke:** Kronos | **Fusion:** OpticalFlow
|
||||
- **Features:** Frame interpolation via optical flow
|
||||
- **Complexity:** Very High (optical flow algorithm)
|
||||
|
||||
### 41. 3D Nodes (Camera, Lights, Scene, Card)
|
||||
**Nuke:** Camera2, Light, Scene, Card | **Fusion:** Camera3D, Lights, Merge3D, ImagePlane3D
|
||||
- **Complexity:** High (3D rendering integration)
|
||||
|
||||
### 42. ScanlineRender / Renderer3D
|
||||
**Nuke:** ScanlineRender | **Fusion:** Renderer3D
|
||||
- **Complexity:** Very High (3D rendering)
|
||||
|
||||
### 43. Advanced Keyers (Primatte, IBK)
|
||||
**Nuke:** Primatte, IBK, Keylight | **Fusion:** Primatte, UltraKeyer
|
||||
- **Complexity:** Very High (professional keying algorithms)
|
||||
|
||||
---
|
||||
|
||||
## Implementation Strategy
|
||||
|
||||
### Phase 1 Focus: Tier 1 (Nodes 1-8)
|
||||
Delivers a functional compositing toolkit suitable for basic professional work.
|
||||
**Target:** 2-3 weeks
|
||||
|
||||
### Phase 2 Focus: Tier 2 (Nodes 9-15)
|
||||
Adds professional keying and color tools.
|
||||
**Target:** 2-3 weeks
|
||||
|
||||
### Phase 3 Focus: Tier 3 (Nodes 16-24)
|
||||
Expands to advanced effects and transforms.
|
||||
**Target:** 3-4 weeks
|
||||
|
||||
### Phase 4 Focus: Tier 4 (Nodes 25-35)
|
||||
Covers specialized workflows.
|
||||
**Target:** 3-4 weeks
|
||||
|
||||
### Phase 5+: Tier 5 (Nodes 36-43)
|
||||
Advanced professional features (long-term roadmap).
|
||||
**Target:** Future releases
|
||||
|
||||
---
|
||||
|
||||
## Node Complexity Reference
|
||||
|
||||
**Low Complexity:** 1-3 days implementation
|
||||
- Direct mathematical operations
|
||||
- Simple filters
|
||||
- Basic channel operations
|
||||
|
||||
**Medium Complexity:** 3-7 days implementation
|
||||
- Multiple parameters and modes
|
||||
- Compound operations
|
||||
- Color space conversions
|
||||
|
||||
**High Complexity:** 1-2 weeks implementation
|
||||
- Complex algorithms
|
||||
- Multiple interdependent features
|
||||
- Optimization required
|
||||
|
||||
**Very High Complexity:** 2+ weeks implementation
|
||||
- Advanced algorithms (tracking, optical flow)
|
||||
- 3D rendering integration
|
||||
- Patent/proprietary algorithm alternatives needed
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria by Tier
|
||||
|
||||
**Tier 1 Complete:** Can composite basic greenscreen shot with color correction
|
||||
**Tier 2 Complete:** Professional-quality keying and matte workflows
|
||||
**Tier 3 Complete:** Advanced effects and transforms available
|
||||
**Tier 4 Complete:** Specialized workflows covered
|
||||
**Tier 5 Complete:** Feature parity with commercial compositors
|
||||
+641
@@ -0,0 +1,641 @@
|
||||
# ComfyUI_Detonate - Planning Document
|
||||
|
||||
## Vision
|
||||
|
||||
### Project Overview
|
||||
ComfyUI_Detonate is a comprehensive custom node package for ComfyUI that brings traditional compositing workflows from industry-standard software (Nuke and DaVinci Fusion) to the ComfyUI platform. The project aims to bridge the gap between traditional VFX compositing and modern AI-powered image generation workflows by implementing familiar node-based compositing tools within ComfyUI's ecosystem.
|
||||
|
||||
**Core Goals:**
|
||||
- Provide professional compositors with familiar tools in ComfyUI
|
||||
- Enable traditional compositing techniques alongside AI workflows
|
||||
- Maintain naming conventions and workflows from Nuke/Fusion where possible
|
||||
- Create a comprehensive, production-ready compositing toolkit
|
||||
|
||||
### Target Users
|
||||
**Primary Audience:**
|
||||
- Professional compositors transitioning from Nuke or DaVinci Fusion to ComfyUI
|
||||
- VFX artists seeking to combine traditional compositing with AI generation
|
||||
- Motion designers and video editors familiar with node-based workflows
|
||||
- Technical directors building hybrid AI/traditional pipelines
|
||||
|
||||
**User Needs:**
|
||||
- Familiar node names and behaviors from traditional compositing software
|
||||
- Professional-grade color correction, keying, and masking tools
|
||||
- Robust transform, tracking, and warping capabilities
|
||||
- Industry-standard merge/blend operations
|
||||
- Seamless integration with existing ComfyUI workflows
|
||||
|
||||
### Key Features
|
||||
**Core Compositing Nodes:**
|
||||
- Advanced merge operations (Over, Under, Plus, Screen, Multiply, Stencil, etc.)
|
||||
- Professional color correction tools (Grade, ColorCorrect, Hue controls)
|
||||
- Industry-standard keying nodes (Primatte, Keylight-style, Delta keying)
|
||||
- Transform and geometric manipulation (Transform, CornerPin, Stabilize)
|
||||
- Comprehensive filter operations (Blur, Defocus, Sharpen, Directional blur)
|
||||
|
||||
**Matte & Masking:**
|
||||
- Edge operations (Erode/Dilate, MatteControl)
|
||||
- Rotoscoping and shape tools
|
||||
- Advanced matte refinement
|
||||
|
||||
**Channel Operations:**
|
||||
- Channel shuffle and manipulation
|
||||
- Premultiply/Unpremultiply operations
|
||||
- Channel copy and removal
|
||||
|
||||
**Time & Tracking:**
|
||||
- 2D point tracking
|
||||
- Frame hold and time manipulation
|
||||
- Motion blur and vector operations
|
||||
|
||||
**3D Compositing:**
|
||||
- 3D scene integration
|
||||
- Camera and light support
|
||||
- Basic 3D geometry handling
|
||||
|
||||
### Success Metrics
|
||||
- **Adoption:** Number of installations via ComfyUI Manager
|
||||
- **Completeness:** Coverage of top 50 most-used Nuke/Fusion nodes
|
||||
- **Usability:** Positive feedback from professional compositors
|
||||
- **Performance:** Nodes execute efficiently without blocking ComfyUI workflows
|
||||
- **Documentation:** Comprehensive examples and tutorials for each node category
|
||||
- **Community:** Active user base contributing feedback and use cases
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
### High-Level Architecture
|
||||
ComfyUI_Detonate follows ComfyUI's standard custom node architecture pattern:
|
||||
|
||||
```
|
||||
ComfyUI/
|
||||
└── custom_nodes/
|
||||
└── ComfyUI_Detonate/
|
||||
├── __init__.py # Node registration
|
||||
├── nodes/ # Node implementations
|
||||
│ ├── compositing/ # Merge operations
|
||||
│ ├── color/ # Color correction nodes
|
||||
│ ├── keying/ # Keying operations
|
||||
│ ├── transform/ # Transform & geometry
|
||||
│ ├── filter/ # Blur, sharpen, etc.
|
||||
│ ├── matte/ # Matte operations
|
||||
│ ├── channel/ # Channel manipulation
|
||||
│ ├── time/ # Time operations
|
||||
│ └── 3d/ # 3D compositing
|
||||
├── utils/ # Shared utilities
|
||||
│ ├── image_processing.py # Common image ops
|
||||
│ ├── color_math.py # Color space utilities
|
||||
│ └── tensor_utils.py # PyTorch helpers
|
||||
├── web/ # Frontend extensions
|
||||
│ └── js/
|
||||
│ └── detonate.js # Custom UI behaviors
|
||||
├── tests/ # Unit tests
|
||||
├── examples/ # Example workflows
|
||||
├── pyproject.toml # Package metadata
|
||||
├── requirements.txt # Dependencies
|
||||
└── README.md # Documentation
|
||||
```
|
||||
|
||||
### Component Structure
|
||||
|
||||
**Node Categories:**
|
||||
1. **Compositing** (`nodes/compositing/`)
|
||||
- Merge nodes with blend modes
|
||||
- Alpha operations
|
||||
- Layer blending
|
||||
|
||||
2. **Color** (`nodes/color/`)
|
||||
- Grade node (lift/gamma/gain)
|
||||
- ColorCorrect (basic adjustments)
|
||||
- Saturation, Hue, Clamp
|
||||
- Color space conversions
|
||||
|
||||
3. **Keying** (`nodes/keying/`)
|
||||
- Chroma keyers (green/blue screen)
|
||||
- Luma keying
|
||||
- Difference keying
|
||||
- Key refinement tools
|
||||
|
||||
4. **Transform** (`nodes/transform/`)
|
||||
- 2D transforms (translate, rotate, scale)
|
||||
- Corner pinning
|
||||
- Stabilization
|
||||
- Lens distortion
|
||||
|
||||
5. **Filter** (`nodes/filter/`)
|
||||
- Blur variants (Gaussian, defocus, directional)
|
||||
- Sharpen and unsharp mask
|
||||
- Edge detection
|
||||
- Median filtering
|
||||
|
||||
6. **Matte** (`nodes/matte/`)
|
||||
- Erode/Dilate operations
|
||||
- Matte control (contract, expand, blur, gamma)
|
||||
- Edge operations
|
||||
|
||||
7. **Channel** (`nodes/channel/`)
|
||||
- Shuffle operations
|
||||
- Channel copy/merge
|
||||
- Premultiply/Unpremultiply
|
||||
- Channel removal
|
||||
|
||||
8. **Time** (`nodes/time/`)
|
||||
- Frame hold
|
||||
- Time offset
|
||||
- Speed changes
|
||||
- Optical flow (if feasible)
|
||||
|
||||
9. **3D** (`nodes/3d/`)
|
||||
- Basic 3D scene support
|
||||
- Camera integration
|
||||
- Card/plane geometry
|
||||
|
||||
**Utility Layer:**
|
||||
- Shared image processing functions
|
||||
- Color mathematics and conversions
|
||||
- Tensor manipulation helpers
|
||||
- Common validation routines
|
||||
|
||||
### Data Flow
|
||||
|
||||
**Standard Node Processing Pattern:**
|
||||
```
|
||||
Input (IMAGE tensor [B,H,W,C])
|
||||
↓
|
||||
Validation & Type Checking
|
||||
↓
|
||||
Premultiply (if needed)
|
||||
↓
|
||||
Processing Logic
|
||||
↓
|
||||
Unpremultiply (if needed)
|
||||
↓
|
||||
Output (IMAGE tensor [B,H,W,C])
|
||||
```
|
||||
|
||||
**ComfyUI Integration Flow:**
|
||||
```
|
||||
User creates workflow in ComfyUI UI
|
||||
↓
|
||||
Detonate nodes process IMAGE tensors
|
||||
↓
|
||||
Nodes can connect to/from native ComfyUI nodes
|
||||
↓
|
||||
Output to Save Image or other nodes
|
||||
```
|
||||
|
||||
**Data Types:**
|
||||
- Primary: `IMAGE` (torch.Tensor [B,H,W,C] with C=3 RGB or C=4 RGBA)
|
||||
- Secondary: `MASK` (torch.Tensor [H,W] or [B,C,H,W])
|
||||
- Auxiliary: `FLOAT`, `INT`, `STRING` for parameters
|
||||
|
||||
### Integration Points
|
||||
|
||||
**ComfyUI Core:**
|
||||
- Uses standard ComfyUI IMAGE tensor format
|
||||
- Follows ComfyUI node registration pattern
|
||||
- Compatible with ComfyUI's execution engine
|
||||
- Integrates with ComfyUI Manager for installation
|
||||
|
||||
**Native ComfyUI Nodes:**
|
||||
- Receives output from LoadImage, VAEDecode, etc.
|
||||
- Outputs to SaveImage, VAEEncode, etc.
|
||||
- Works alongside existing custom node packages
|
||||
|
||||
**External Libraries:**
|
||||
- PyTorch for tensor operations
|
||||
- NumPy for mathematical operations
|
||||
- OpenCV for advanced image processing (optional)
|
||||
- Pillow for image I/O utilities
|
||||
|
||||
**Frontend:**
|
||||
- JavaScript extensions for enhanced UI
|
||||
- Custom widgets for complex parameters
|
||||
- Visual feedback for processing state
|
||||
|
||||
---
|
||||
|
||||
## Technology Stack
|
||||
|
||||
### Backend (Primary Development)
|
||||
- **Language:** Python 3.8+
|
||||
- **Core Framework:** ComfyUI Custom Node API
|
||||
- **Tensor Operations:** PyTorch 2.0+
|
||||
- **Numerical Computing:** NumPy 1.20+
|
||||
- **Image Processing:**
|
||||
- Pillow 9.0+ (basic I/O)
|
||||
- OpenCV (optional, for advanced operations)
|
||||
- scikit-image (optional, for specific filters)
|
||||
|
||||
### Frontend (Optional Extensions)
|
||||
- **Language:** JavaScript (ES6+)
|
||||
- **Framework:** ComfyUI's built-in extension system
|
||||
- **UI Integration:** ComfyUI's LiteGraph-based node editor
|
||||
- **APIs Used:**
|
||||
- `app.js` - Core application API
|
||||
- `api.js` - Backend communication
|
||||
- Custom widget creation
|
||||
|
||||
### ComfyUI Integration
|
||||
- **Node Registration:** `NODE_CLASS_MAPPINGS` and `NODE_DISPLAY_NAME_MAPPINGS`
|
||||
- **Data Types:**
|
||||
- IMAGE (torch.Tensor [B,H,W,C])
|
||||
- MASK (torch.Tensor)
|
||||
- FLOAT, INT, STRING, BOOLEAN
|
||||
- **Execution:** ComfyUI's graph execution engine
|
||||
- **Installation:** ComfyUI Manager compatible
|
||||
|
||||
### Core Libraries & Dependencies
|
||||
|
||||
**Required:**
|
||||
```
|
||||
torch>=2.0.0
|
||||
numpy>=1.20.0
|
||||
pillow>=9.0.0
|
||||
```
|
||||
|
||||
**Optional (for advanced features):**
|
||||
```
|
||||
opencv-python>=4.5.0 # Advanced image processing
|
||||
scikit-image>=0.19.0 # Scientific image processing
|
||||
scipy>=1.7.0 # Scientific computing
|
||||
colour-science>=0.4.0 # Color space conversions
|
||||
```
|
||||
|
||||
### Development & Testing
|
||||
- **Version Control:** Git
|
||||
- **Package Management:** pip, pyproject.toml
|
||||
- **Testing Framework:** pytest
|
||||
- **Code Quality:**
|
||||
- black (formatting)
|
||||
- flake8 (linting)
|
||||
- mypy (type checking - optional)
|
||||
|
||||
### Image Processing Pipeline
|
||||
- **Color Spaces:** RGB, RGBA, HSV, LAB support
|
||||
- **Bit Depth:** Float32 (0.0-1.0 range, matching ComfyUI standard)
|
||||
- **Alpha Handling:** Premultiplied and straight alpha support
|
||||
- **Batch Processing:** Full batch dimension support for efficiency
|
||||
|
||||
---
|
||||
|
||||
## Required Tools & Dependencies
|
||||
|
||||
### Development Environment
|
||||
- [ ] **Python 3.8+** - Core development language
|
||||
- [ ] **Git** - Version control
|
||||
- [ ] **Code Editor** - VS Code recommended with Python extension
|
||||
- [ ] **ComfyUI CLI** - `pip install comfy-cli` for scaffolding
|
||||
|
||||
### ComfyUI Setup
|
||||
- [ ] **ComfyUI** - Latest stable version from [comfyanonymous/ComfyUI](https://github.com/comfyanonymous/ComfyUI)
|
||||
- [ ] **ComfyUI Manager** (optional) - For easy installation/updates
|
||||
- [ ] **Test Images** - Sample images for node testing
|
||||
- [ ] **Python Environment** - Virtual environment (venv/conda) recommended
|
||||
|
||||
### Python Dependencies (Development)
|
||||
```bash
|
||||
# Core dependencies
|
||||
pip install torch>=2.0.0
|
||||
pip install numpy>=1.20.0
|
||||
pip install pillow>=9.0.0
|
||||
|
||||
# Development tools
|
||||
pip install pytest # Testing
|
||||
pip install black # Code formatting
|
||||
pip install flake8 # Linting
|
||||
pip install mypy # Type checking (optional)
|
||||
|
||||
# Optional for advanced features
|
||||
pip install opencv-python # Advanced image ops
|
||||
pip install scikit-image # Scientific image processing
|
||||
pip install scipy # Math operations
|
||||
```
|
||||
|
||||
### Testing Tools
|
||||
- [ ] **pytest** - Unit testing framework
|
||||
- [ ] **pytest-cov** - Code coverage reporting
|
||||
- [ ] **Test workflows** - ComfyUI workflow JSON files for integration testing
|
||||
- [ ] **Sample images** - Test assets (green screen footage, mattes, etc.)
|
||||
|
||||
### Development Workflow Tools
|
||||
- [ ] **comfy node scaffold** - CLI tool for generating node boilerplate
|
||||
- [ ] **Hot reload** - ComfyUI restart required for code changes
|
||||
- [ ] **Browser DevTools** - For frontend debugging (if adding JS extensions)
|
||||
|
||||
### Documentation Tools
|
||||
- [ ] **Markdown editor** - For documentation
|
||||
- [ ] **Workflow screenshots** - For example documentation
|
||||
- [ ] **Docstrings** - In-code documentation following Python standards
|
||||
|
||||
### Distribution & Publishing
|
||||
- [ ] **GitHub repository** - For version control and distribution
|
||||
- [ ] **pyproject.toml** - Modern Python packaging metadata
|
||||
- [ ] **ComfyUI Manager submission** - For easy user installation
|
||||
- [ ] **ComfyUI Registry** - Optional registration at registry.comfy.org
|
||||
|
||||
### Reference Materials
|
||||
- [ ] **Nuke documentation** - For node behavior reference
|
||||
- [ ] **Fusion documentation** - For node behavior reference
|
||||
- [ ] **ComfyUI docs** - https://docs.comfy.org/
|
||||
- [ ] **Example custom nodes** - Study existing implementations
|
||||
|
||||
---
|
||||
|
||||
## Development Phases
|
||||
|
||||
### Phase 1: Foundation & Infrastructure (Week 1-2)
|
||||
**Goal:** Set up project structure and core utilities
|
||||
|
||||
- [ ] Initialize repository structure with proper directories
|
||||
- [ ] Create `pyproject.toml` and `requirements.txt`
|
||||
- [ ] Set up `__init__.py` with node registration system
|
||||
- [ ] Implement `utils/` module:
|
||||
- `tensor_utils.py` - Batch handling, type conversions
|
||||
- `image_processing.py` - Common image operations
|
||||
- `color_math.py` - Color space utilities
|
||||
- [ ] Create base test framework
|
||||
- [ ] Document coding standards and contribution guidelines
|
||||
|
||||
**Deliverable:** Working project skeleton that loads in ComfyUI
|
||||
|
||||
### Phase 2: Core Compositing Nodes (Week 3-5)
|
||||
**Goal:** Implement essential daily-use nodes
|
||||
|
||||
**Priority 1 - Most Critical:**
|
||||
- [ ] Merge node with blend modes (Over, Under, Plus, Screen, Multiply)
|
||||
- [ ] Transform (translate, rotate, scale with motion blur)
|
||||
- [ ] Blur (Gaussian with separate X/Y)
|
||||
- [ ] Grade (lift/gamma/gain with master + RGB controls)
|
||||
- [ ] Premultiply/Unpremultiply
|
||||
|
||||
**Priority 2 - High Usage:**
|
||||
- [ ] ColorCorrect (saturation, contrast, gamma, offset)
|
||||
- [ ] Erode/Dilate
|
||||
- [ ] Shuffle (channel operations)
|
||||
- [ ] Clamp (min/max value control)
|
||||
|
||||
**Deliverable:** Working compositor toolkit for basic workflows
|
||||
|
||||
### Phase 3: Keying & Matte Operations (Week 6-7)
|
||||
**Goal:** Professional keying tools
|
||||
|
||||
- [ ] Basic ChromaKeyer (green/blue screen)
|
||||
- [ ] LumaKeyer (luminance-based)
|
||||
- [ ] MatteControl (contract, expand, blur, gamma for mattes)
|
||||
- [ ] DifferenceKeyer (difference matte generation)
|
||||
- [ ] Key refinement utilities
|
||||
|
||||
**Deliverable:** Complete keying pipeline
|
||||
|
||||
### Phase 4: Advanced Color & Filters (Week 8-9)
|
||||
**Goal:** Professional color and filter tools
|
||||
|
||||
**Color:**
|
||||
- [ ] HueCorrect/ColorCurves
|
||||
- [ ] Saturation controls
|
||||
- [ ] Invert
|
||||
- [ ] Color space conversions
|
||||
|
||||
**Filters:**
|
||||
- [ ] Defocus (lens-style)
|
||||
- [ ] DirectionalBlur
|
||||
- [ ] Sharpen/Unsharp Mask
|
||||
- [ ] Median filter
|
||||
- [ ] EdgeDetect
|
||||
|
||||
**Deliverable:** Advanced color grading and filtering
|
||||
|
||||
### Phase 5: Transform & Warping (Week 10-11)
|
||||
**Goal:** Geometric manipulation tools
|
||||
|
||||
- [ ] CornerPin (4-point perspective)
|
||||
- [ ] GridWarp (manual warping)
|
||||
- [ ] LensDistortion (add/remove)
|
||||
- [ ] IDistort/Displace (displacement mapping)
|
||||
- [ ] Stabilize (if tracking data available)
|
||||
|
||||
**Deliverable:** Full transform and warping toolkit
|
||||
|
||||
### Phase 6: Time Operations (Week 12)
|
||||
**Goal:** Temporal effects
|
||||
|
||||
- [ ] FrameHold
|
||||
- [ ] TimeOffset
|
||||
- [ ] TimeSpeed (retiming)
|
||||
- [ ] VectorBlur (motion vectors)
|
||||
|
||||
**Deliverable:** Time manipulation nodes
|
||||
|
||||
### Phase 7: Testing & Documentation (Week 13-14)
|
||||
**Goal:** Production-ready package
|
||||
|
||||
- [ ] Comprehensive unit tests for all nodes
|
||||
- [ ] Integration tests with example workflows
|
||||
- [ ] Performance profiling and optimization
|
||||
- [ ] Complete README with examples
|
||||
- [ ] Per-node documentation
|
||||
- [ ] Tutorial workflows
|
||||
- [ ] Video demonstrations (optional)
|
||||
|
||||
**Deliverable:** Fully tested and documented package
|
||||
|
||||
### Phase 8: Publishing & Community (Week 15+)
|
||||
**Goal:** Release and support
|
||||
|
||||
- [ ] Submit to ComfyUI Manager
|
||||
- [ ] Register on ComfyUI Registry
|
||||
- [ ] Create GitHub releases
|
||||
- [ ] Set up issue templates
|
||||
- [ ] Community feedback integration
|
||||
- [ ] Bug fixes and refinements
|
||||
|
||||
**Deliverable:** Public release v1.0.0
|
||||
|
||||
---
|
||||
|
||||
## Notes & Considerations
|
||||
|
||||
### Technical Constraints
|
||||
|
||||
**ComfyUI Limitations:**
|
||||
- Node updates require ComfyUI restart (no hot reload)
|
||||
- IMAGE tensors must maintain [B,H,W,C] shape convention
|
||||
- Limited UI customization compared to standalone applications
|
||||
- JavaScript extensions have access restrictions
|
||||
|
||||
**Performance Constraints:**
|
||||
- All processing must be reasonably fast for interactive use
|
||||
- Batch operations should leverage vectorization
|
||||
- Memory usage must be reasonable for typical image sizes (1080p-4K)
|
||||
- Avoid blocking operations that freeze the UI
|
||||
|
||||
**Compatibility:**
|
||||
- Must work with ComfyUI's PyTorch-based IMAGE format
|
||||
- Should handle both RGB (3-channel) and RGBA (4-channel) images
|
||||
- Need to support batch processing (batch dimension in tensors)
|
||||
- Color values are 0.0-1.0 float range (not 0-255)
|
||||
|
||||
**Alpha/Premultiplication:**
|
||||
- ComfyUI doesn't have strict premultiplication conventions
|
||||
- Need explicit Premult/Unpremult nodes like Nuke
|
||||
- Must document which nodes expect premultiplied vs straight alpha
|
||||
- Merge operations should handle alpha correctly
|
||||
|
||||
### Security Considerations
|
||||
|
||||
**Input Validation:**
|
||||
- Validate all user inputs (ranges, types, file paths)
|
||||
- Prevent division by zero in mathematical operations
|
||||
- Handle edge cases (empty images, single pixel images, etc.)
|
||||
- Sanitize file paths if implementing file I/O
|
||||
|
||||
**Dependency Security:**
|
||||
- Use well-maintained, trusted libraries only
|
||||
- Pin dependency versions in requirements.txt
|
||||
- Regularly update for security patches
|
||||
- Avoid unnecessary dependencies that increase attack surface
|
||||
|
||||
**User Safety:**
|
||||
- No arbitrary code execution from user inputs
|
||||
- No network requests without explicit user consent
|
||||
- Clear warnings for destructive operations
|
||||
- Safe error handling (don't expose system internals)
|
||||
|
||||
### Performance Requirements
|
||||
|
||||
**Target Performance:**
|
||||
- 1080p images: <100ms per node operation
|
||||
- 4K images: <500ms per node operation
|
||||
- Batch processing: Linear scaling with batch size
|
||||
- Memory usage: <2x input image size
|
||||
|
||||
**Optimization Strategies:**
|
||||
- Use PyTorch operations instead of Python loops
|
||||
- Leverage GPU acceleration where available
|
||||
- Implement efficient algorithms (avoid O(n²) when O(n) exists)
|
||||
- Cache expensive computations when possible
|
||||
- Use in-place operations to reduce memory allocation
|
||||
|
||||
**Profiling:**
|
||||
- Regular performance testing with various image sizes
|
||||
- Memory profiling to detect leaks
|
||||
- Bottleneck identification and optimization
|
||||
- Comparison with reference implementations (Nuke/Fusion)
|
||||
|
||||
### Future Enhancements
|
||||
|
||||
**Phase 2 Features:**
|
||||
- 3D compositing nodes (Camera, Lights, Geometry)
|
||||
- Advanced keyers (Primatte, professional-grade algorithms)
|
||||
- Planar tracking and transforms
|
||||
- Optical flow retiming
|
||||
- Lens distortion with specific camera models
|
||||
- Advanced color science (ACES, OCIO integration)
|
||||
|
||||
**Advanced Capabilities:**
|
||||
- Motion vector generation and manipulation
|
||||
- Deep compositing (if ComfyUI supports depth data)
|
||||
- Multi-channel EXR support
|
||||
- Cryptomatte integration
|
||||
- Smart matte generation using AI
|
||||
- Temporal coherence for video sequences
|
||||
|
||||
**Workflow Improvements:**
|
||||
- Preset library for common operations
|
||||
- Node macros/gizmos (compound nodes)
|
||||
- Expression support for parameter linking
|
||||
- Curve editors for advanced controls
|
||||
- Comparative viewers (A/B comparison)
|
||||
|
||||
**Community Features:**
|
||||
- User-submitted node requests
|
||||
- Community presets and workflows
|
||||
- Integration with other popular ComfyUI packages
|
||||
- Cross-platform workflow exchange with Nuke/Fusion
|
||||
|
||||
**Documentation:**
|
||||
- Interactive tutorials
|
||||
- Video walkthrough series
|
||||
- Comparison guides (Nuke → Detonate, Fusion → Detonate)
|
||||
- Best practices for hybrid AI/traditional workflows
|
||||
|
||||
---
|
||||
|
||||
## References & Resources
|
||||
|
||||
### Official Documentation
|
||||
- [ComfyUI Documentation](https://docs.comfy.org/)
|
||||
- [ComfyUI GitHub](https://github.com/comfyanonymous/ComfyUI)
|
||||
- [ComfyUI Custom Node Walkthrough](https://docs.comfy.org/custom-nodes/walkthrough)
|
||||
- [ComfyUI Manager](https://github.com/ltdrdata/ComfyUI-Manager)
|
||||
- [ComfyUI Registry](https://registry.comfy.org/)
|
||||
- [ComfyUI CLI](https://github.com/Comfy-Org/comfy-cli)
|
||||
|
||||
### Node Development Resources
|
||||
- [Suzie1's Custom Node Guide](https://github.com/Suzie1/ComfyUI_Guide_To_Making_Custom_Nodes)
|
||||
- [Example Node Template](https://github.com/comfyanonymous/ComfyUI/blob/master/custom_nodes/example_node.py.example)
|
||||
- [ComfyUI-Impact-Pack](https://github.com/ltdrdata/ComfyUI-Impact-Pack) - Reference implementation
|
||||
- [ComfyUI-KJNodes](https://github.com/kijai/ComfyUI-KJNodes) - Example custom nodes
|
||||
- [WAS Node Suite](https://github.com/WASasquatch/was-node-suite-comfyui) - Comprehensive example
|
||||
|
||||
### Traditional Compositing References
|
||||
- [The Foundry Nuke Documentation](https://learn.foundry.com/nuke/)
|
||||
- [Blackmagic Fusion Documentation](https://documents.blackmagicdesign.com/UserManuals/Fusion_Manual.pdf)
|
||||
- [VFXPedia](https://www.vfxpedia.com/) - VFX knowledge base
|
||||
- [Nuke to Fusion Translation](https://github.com/statixVFX/nuke2fusion) - Node equivalency reference
|
||||
|
||||
### Related Projects
|
||||
- **Existing ComfyUI Packages:**
|
||||
- ComfyUI-Advanced-ControlNet
|
||||
- ComfyUI-VideoHelperSuite
|
||||
- ComfyUI_Comfyroll_CustomNodes
|
||||
- ComfyUI-Manager (for distribution)
|
||||
|
||||
- **Compositing Tools:**
|
||||
- Natron - Open source compositing (similar to Nuke)
|
||||
- Blender Compositor - Node-based compositing reference
|
||||
|
||||
### Research & Technical Resources
|
||||
|
||||
**Image Processing:**
|
||||
- [PyTorch Documentation](https://pytorch.org/docs/stable/index.html)
|
||||
- [OpenCV Documentation](https://docs.opencv.org/)
|
||||
- [scikit-image](https://scikit-image.org/)
|
||||
- [Pillow Documentation](https://pillow.readthedocs.io/)
|
||||
|
||||
**Color Science:**
|
||||
- [Colour Science for Python](https://www.colour-science.org/)
|
||||
- [ACES Documentation](https://acescentral.com/)
|
||||
- [OpenColorIO](https://opencolorio.org/)
|
||||
|
||||
**Compositing Algorithms:**
|
||||
- "Compositing Digital Images" (Porter & Duff, 1984) - Alpha compositing paper
|
||||
- "Digital Compositing for Film and Video" (Steve Wright) - Industry reference book
|
||||
- [Alpha Compositing on Wikipedia](https://en.wikipedia.org/wiki/Alpha_compositing)
|
||||
|
||||
### Community & Support
|
||||
- [ComfyUI Discord](https://discord.gg/comfyui) - Community support
|
||||
- [ComfyUI Subreddit](https://www.reddit.com/r/comfyui/)
|
||||
- [ComfyUI Workflows](https://comfyworkflows.com/) - Workflow sharing
|
||||
- GitHub Issues - For bug reports and feature requests (when published)
|
||||
|
||||
---
|
||||
|
||||
## Appendix: Common Node Mapping
|
||||
|
||||
### Quick Reference: Nuke/Fusion → Detonate
|
||||
|
||||
| Category | Nuke | Fusion | Detonate (Planned) |
|
||||
|----------|------|--------|-------------------|
|
||||
| **Merge** | Merge | Merge | Merge |
|
||||
| **Color** | Grade | ColorCorrector | Grade |
|
||||
| **Blur** | Blur | Blur | Blur |
|
||||
| **Key** | Keylight | DeltaKeyer | ChromaKeyer |
|
||||
| **Transform** | Transform | Transform | Transform |
|
||||
| **Matte** | FilterErode | MatteControl | MatteControl |
|
||||
| **Channel** | Shuffle | ChannelBooleans | Shuffle |
|
||||
| **Premult** | Premult | (in Merge) | Premult |
|
||||
|
||||
See full node comparison in research documentation.
|
||||
@@ -0,0 +1,484 @@
|
||||
# ComfyUI_Detonate - Development Tasks
|
||||
|
||||
This is a working task list for tracking implementation progress. Check off items as they're completed.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Foundation & Infrastructure
|
||||
|
||||
### Project Setup
|
||||
- [ ] Initialize directory structure
|
||||
- [ ] Create `nodes/` directory
|
||||
- [ ] Create `nodes/compositing/` directory
|
||||
- [ ] Create `nodes/color/` directory
|
||||
- [ ] Create `nodes/keying/` directory
|
||||
- [ ] Create `nodes/transform/` directory
|
||||
- [ ] Create `nodes/filter/` directory
|
||||
- [ ] Create `nodes/matte/` directory
|
||||
- [ ] Create `nodes/channel/` directory
|
||||
- [ ] Create `nodes/time/` directory
|
||||
- [ ] Create `nodes/3d/` directory
|
||||
- [ ] Create `utils/` directory
|
||||
- [ ] Create `tests/` directory
|
||||
- [ ] Create `examples/` directory
|
||||
- [ ] Create `web/js/` directory
|
||||
|
||||
### Package Configuration
|
||||
- [ ] Create `pyproject.toml` with project metadata
|
||||
- [ ] Create `requirements.txt` with dependencies
|
||||
- [ ] Create `README.md` with project overview
|
||||
- [ ] Create `LICENSE` file
|
||||
- [ ] Create `.gitignore` for Python/ComfyUI
|
||||
|
||||
### Core Infrastructure
|
||||
- [ ] Implement `__init__.py` with node registration system
|
||||
- [ ] Create `utils/tensor_utils.py`
|
||||
- [ ] Batch handling utilities
|
||||
- [ ] Type conversion functions
|
||||
- [ ] Tensor validation helpers
|
||||
- [ ] Create `utils/image_processing.py`
|
||||
- [ ] Common image operations
|
||||
- [ ] Alpha channel handling
|
||||
- [ ] Image format conversions
|
||||
- [ ] Create `utils/color_math.py`
|
||||
- [ ] RGB/HSV conversions
|
||||
- [ ] Premultiply/unpremultiply utilities
|
||||
- [ ] Color space conversion helpers
|
||||
|
||||
### Testing Setup
|
||||
- [ ] Set up pytest configuration
|
||||
- [ ] Create test utilities and fixtures
|
||||
- [ ] Create sample test images
|
||||
- [ ] Document testing procedures
|
||||
|
||||
### Documentation
|
||||
- [ ] Create coding standards document
|
||||
- [ ] Create contribution guidelines
|
||||
- [ ] Document node development template
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Core Compositing Nodes (Priority 1)
|
||||
|
||||
### 1. Merge Node
|
||||
- [ ] Implement base Merge node class
|
||||
- [ ] Add "Over" blend mode (A over B)
|
||||
- [ ] Add "Under" blend mode
|
||||
- [ ] Add "Plus" blend mode (additive)
|
||||
- [ ] Add "Screen" blend mode
|
||||
- [ ] Add "Multiply" blend mode
|
||||
- [ ] Add "Stencil" blend mode
|
||||
- [ ] Add "Mask" blend mode
|
||||
- [ ] Add "Atop" blend mode
|
||||
- [ ] Add mix/opacity control
|
||||
- [ ] Handle alpha channels correctly
|
||||
- [ ] Add unit tests for Merge node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 2. Transform Node
|
||||
- [ ] Implement base Transform node class
|
||||
- [ ] Add translate (X/Y position)
|
||||
- [ ] Add rotate (degrees)
|
||||
- [ ] Add scale (uniform and X/Y separate)
|
||||
- [ ] Add center point control
|
||||
- [ ] Add skew controls
|
||||
- [ ] Add filter quality options (nearest, bilinear, bicubic)
|
||||
- [ ] Add motion blur (optional for v1)
|
||||
- [ ] Handle edge modes (black, clamp, repeat)
|
||||
- [ ] Add unit tests for Transform node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 3. Blur Node
|
||||
- [ ] Implement base Blur node class
|
||||
- [ ] Add Gaussian blur algorithm
|
||||
- [ ] Add separate X/Y blur size controls
|
||||
- [ ] Add quality/iteration controls
|
||||
- [ ] Optimize for performance (GPU acceleration)
|
||||
- [ ] Handle alpha channels correctly
|
||||
- [ ] Add unit tests for Blur node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 4. Grade Node
|
||||
- [ ] Implement base Grade node class
|
||||
- [ ] Add Lift controls (Master + RGB)
|
||||
- [ ] Add Gamma controls (Master + RGB)
|
||||
- [ ] Add Gain controls (Master + RGB)
|
||||
- [ ] Add Offset controls (Master + RGB)
|
||||
- [ ] Implement proper color math (shadows/mids/highlights)
|
||||
- [ ] Add black point/white point clamps
|
||||
- [ ] Add reverse toggle
|
||||
- [ ] Add unit tests for Grade node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 5. Premultiply / Unpremultiply Nodes
|
||||
- [ ] Implement Premultiply node
|
||||
- [ ] Multiply RGB by alpha
|
||||
- [ ] Handle edge cases (alpha = 0)
|
||||
- [ ] Implement Unpremultiply node
|
||||
- [ ] Divide RGB by alpha
|
||||
- [ ] Handle division by zero
|
||||
- [ ] Add clipping options
|
||||
- [ ] Add unit tests
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Core Compositing Nodes (Priority 2)
|
||||
|
||||
### 6. ColorCorrect Node
|
||||
- [ ] Implement base ColorCorrect node class
|
||||
- [ ] Add Saturation control
|
||||
- [ ] Add Contrast control
|
||||
- [ ] Add Gamma control
|
||||
- [ ] Add Gain control
|
||||
- [ ] Add Offset control
|
||||
- [ ] Add unit tests for ColorCorrect node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 7. Erode / Dilate Node
|
||||
- [ ] Implement Erode node
|
||||
- [ ] Add size parameter
|
||||
- [ ] Implement morphological erosion
|
||||
- [ ] Optimize for performance
|
||||
- [ ] Implement Dilate node
|
||||
- [ ] Add size parameter
|
||||
- [ ] Implement morphological dilation
|
||||
- [ ] Optimize for performance
|
||||
- [ ] Add unit tests
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 8. Shuffle Node
|
||||
- [ ] Implement base Shuffle node class
|
||||
- [ ] Add channel selection (R, G, B, A, 0, 1)
|
||||
- [ ] Add output channel mapping
|
||||
- [ ] Support multi-channel operations
|
||||
- [ ] Handle missing alpha channels
|
||||
- [ ] Add unit tests for Shuffle node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 9. Clamp Node
|
||||
- [ ] Implement base Clamp node class
|
||||
- [ ] Add minimum value control
|
||||
- [ ] Add maximum value control
|
||||
- [ ] Add per-channel clamping option
|
||||
- [ ] Add unit tests for Clamp node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Keying & Matte Operations
|
||||
|
||||
### 10. ChromaKeyer Node (Basic)
|
||||
- [ ] Implement base ChromaKeyer node class
|
||||
- [ ] Add key color picker
|
||||
- [ ] Add acceptance (tolerance) control
|
||||
- [ ] Add suppression angle control
|
||||
- [ ] Implement basic chroma keying algorithm
|
||||
- [ ] Add spill suppression
|
||||
- [ ] Add edge softness/blur
|
||||
- [ ] Add unit tests for ChromaKeyer node
|
||||
- [ ] Create example workflow with green screen
|
||||
|
||||
### 11. LumaKeyer Node
|
||||
- [ ] Implement base LumaKeyer node class
|
||||
- [ ] Add threshold controls (min/max)
|
||||
- [ ] Add softness/falloff controls
|
||||
- [ ] Add invert option
|
||||
- [ ] Add unit tests for LumaKeyer node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 12. MatteControl Node
|
||||
- [ ] Implement base MatteControl node class
|
||||
- [ ] Add contract control
|
||||
- [ ] Add expand control
|
||||
- [ ] Add blur control
|
||||
- [ ] Add gamma control
|
||||
- [ ] Combine operations efficiently
|
||||
- [ ] Add unit tests for MatteControl node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 13. DifferenceKeyer Node
|
||||
- [ ] Implement base DifferenceKeyer node class
|
||||
- [ ] Add clean plate input
|
||||
- [ ] Add threshold control
|
||||
- [ ] Add softness control
|
||||
- [ ] Implement difference matte generation
|
||||
- [ ] Add unit tests for DifferenceKeyer node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Advanced Color & Filters
|
||||
|
||||
### 14. Saturation Node
|
||||
- [ ] Implement base Saturation node class
|
||||
- [ ] Add saturation amount control
|
||||
- [ ] Use HSV color space conversion
|
||||
- [ ] Preserve luminance correctly
|
||||
- [ ] Add unit tests for Saturation node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 15. Invert Node
|
||||
- [ ] Implement base Invert node class
|
||||
- [ ] Add per-channel invert options
|
||||
- [ ] Add RGB/Alpha separate controls
|
||||
- [ ] Add unit tests for Invert node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 16. HueCorrect / ColorCurves Node
|
||||
- [ ] Implement base HueCorrect node class
|
||||
- [ ] Add hue range selection
|
||||
- [ ] Add saturation adjustment per hue
|
||||
- [ ] Add value/lightness adjustment per hue
|
||||
- [ ] Implement curve-based controls
|
||||
- [ ] Add unit tests
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 17. Defocus Node
|
||||
- [ ] Implement base Defocus node class
|
||||
- [ ] Add defocus amount control
|
||||
- [ ] Implement bokeh-style blur
|
||||
- [ ] Add quality controls
|
||||
- [ ] Optimize for performance
|
||||
- [ ] Add unit tests for Defocus node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 18. DirectionalBlur Node
|
||||
- [ ] Implement base DirectionalBlur node class
|
||||
- [ ] Add angle control
|
||||
- [ ] Add distance control
|
||||
- [ ] Add quality/samples control
|
||||
- [ ] Add unit tests for DirectionalBlur node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 19. Sharpen Node
|
||||
- [ ] Implement base Sharpen node class
|
||||
- [ ] Add amount control
|
||||
- [ ] Implement unsharp mask algorithm
|
||||
- [ ] Add size control
|
||||
- [ ] Add unit tests for Sharpen node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 20. EdgeDetect Node
|
||||
- [ ] Implement base EdgeDetect node class
|
||||
- [ ] Add Sobel edge detection
|
||||
- [ ] Add Laplacian option
|
||||
- [ ] Add threshold control
|
||||
- [ ] Add unit tests for EdgeDetect node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 21. Median Filter Node
|
||||
- [ ] Implement base Median node class
|
||||
- [ ] Add kernel size control
|
||||
- [ ] Implement median filtering
|
||||
- [ ] Optimize for performance
|
||||
- [ ] Add unit tests for Median node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Transform & Warping
|
||||
|
||||
### 22. CornerPin Node
|
||||
- [ ] Implement base CornerPin node class
|
||||
- [ ] Add 4 corner point controls
|
||||
- [ ] Implement perspective transform
|
||||
- [ ] Add filter quality options
|
||||
- [ ] Add unit tests for CornerPin node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 23. GridWarp Node
|
||||
- [ ] Implement base GridWarp node class
|
||||
- [ ] Add grid resolution controls
|
||||
- [ ] Implement mesh deformation
|
||||
- [ ] Add control point manipulation
|
||||
- [ ] Add unit tests for GridWarp node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 24. LensDistortion Node
|
||||
- [ ] Implement base LensDistortion node class
|
||||
- [ ] Add distortion amount control
|
||||
- [ ] Implement barrel/pincushion distortion
|
||||
- [ ] Add center point control
|
||||
- [ ] Add unit tests for LensDistortion node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 25. Displace Node
|
||||
- [ ] Implement base Displace node class
|
||||
- [ ] Add displacement map input
|
||||
- [ ] Add X/Y scale controls
|
||||
- [ ] Add channel mapping options
|
||||
- [ ] Add unit tests for Displace node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 6: Time Operations
|
||||
|
||||
### 26. FrameHold Node
|
||||
- [ ] Implement base FrameHold node class
|
||||
- [ ] Add frame number control
|
||||
- [ ] Implement frame caching
|
||||
- [ ] Add unit tests for FrameHold node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 27. TimeOffset Node
|
||||
- [ ] Implement base TimeOffset node class
|
||||
- [ ] Add offset amount control
|
||||
- [ ] Add loop mode options
|
||||
- [ ] Add unit tests for TimeOffset node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 28. VectorBlur Node (Advanced)
|
||||
- [ ] Implement base VectorBlur node class
|
||||
- [ ] Add motion vector input
|
||||
- [ ] Add blur amount control
|
||||
- [ ] Implement vector-based sampling
|
||||
- [ ] Add unit tests for VectorBlur node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 7: Additional Utilities
|
||||
|
||||
### 29. Constant/Background Node
|
||||
- [ ] Implement base Constant node class
|
||||
- [ ] Add color picker
|
||||
- [ ] Add width/height controls
|
||||
- [ ] Add gradient options (optional)
|
||||
- [ ] Add unit tests for Constant node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 30. Copy/ChannelCopy Node
|
||||
- [ ] Implement base ChannelCopy node class
|
||||
- [ ] Add source/target channel selection
|
||||
- [ ] Support multiple channel copies
|
||||
- [ ] Add unit tests for ChannelCopy node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 31. Remove Channels Node
|
||||
- [ ] Implement base Remove node class
|
||||
- [ ] Add channel selection options
|
||||
- [ ] Add unit tests for Remove node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 32. Noise Generator Node
|
||||
- [ ] Implement base Noise node class
|
||||
- [ ] Add Perlin/Simplex noise options
|
||||
- [ ] Add frequency/scale controls
|
||||
- [ ] Add octaves/detail controls
|
||||
- [ ] Add unit tests for Noise node
|
||||
- [ ] Create example workflow
|
||||
|
||||
### 33. Ramp/Gradient Node
|
||||
- [ ] Implement base Ramp node class
|
||||
- [ ] Add linear gradient
|
||||
- [ ] Add radial gradient
|
||||
- [ ] Add color controls
|
||||
- [ ] Add direction/angle controls
|
||||
- [ ] Add unit tests for Ramp node
|
||||
- [ ] Create example workflow
|
||||
|
||||
---
|
||||
|
||||
## Phase 8: Testing & Documentation
|
||||
|
||||
### Comprehensive Testing
|
||||
- [ ] Write unit tests for all utility functions
|
||||
- [ ] Write integration tests for common workflows
|
||||
- [ ] Test with various image sizes (1080p, 4K)
|
||||
- [ ] Test batch processing functionality
|
||||
- [ ] Performance profiling and benchmarking
|
||||
- [ ] Memory leak testing
|
||||
- [ ] Edge case testing (1x1 images, huge images, etc.)
|
||||
|
||||
### Documentation
|
||||
- [ ] Complete README.md with installation instructions
|
||||
- [ ] Document each node with parameters and examples
|
||||
- [ ] Create tutorial workflows for common use cases
|
||||
- [ ] Basic compositing workflow
|
||||
- [ ] Green screen keying workflow
|
||||
- [ ] Color grading workflow
|
||||
- [ ] Matte refinement workflow
|
||||
- [ ] Create comparison guide (Nuke → Detonate)
|
||||
- [ ] Create comparison guide (Fusion → Detonate)
|
||||
- [ ] Record video demonstrations (optional)
|
||||
|
||||
### Code Quality
|
||||
- [ ] Run black formatter on all Python files
|
||||
- [ ] Run flake8 linter and fix issues
|
||||
- [ ] Add docstrings to all public functions
|
||||
- [ ] Add type hints (optional)
|
||||
- [ ] Code review and refactoring
|
||||
|
||||
---
|
||||
|
||||
## Phase 9: Publishing & Release
|
||||
|
||||
### Pre-Release
|
||||
- [ ] Final testing pass
|
||||
- [ ] Update version to 1.0.0
|
||||
- [ ] Create CHANGELOG.md
|
||||
- [ ] Write comprehensive README.md
|
||||
- [ ] Create example workflow gallery
|
||||
|
||||
### GitHub Setup
|
||||
- [ ] Create release v1.0.0
|
||||
- [ ] Tag release in git
|
||||
- [ ] Create issue templates
|
||||
- [ ] Create pull request template
|
||||
- [ ] Add contributing guidelines
|
||||
|
||||
### Distribution
|
||||
- [ ] Submit to ComfyUI Manager
|
||||
- [ ] Register on ComfyUI Registry (optional)
|
||||
- [ ] Announce on ComfyUI Discord/Reddit
|
||||
- [ ] Monitor for bug reports and feedback
|
||||
|
||||
### Post-Release
|
||||
- [ ] Address initial bug reports
|
||||
- [ ] Gather user feedback
|
||||
- [ ] Plan next features based on requests
|
||||
- [ ] Regular maintenance and updates
|
||||
|
||||
---
|
||||
|
||||
## Future Phases (Post v1.0)
|
||||
|
||||
### Advanced Features (v2.0)
|
||||
- [ ] Tracking nodes (2D Point Tracker)
|
||||
- [ ] Planar tracking
|
||||
- [ ] Stabilization
|
||||
- [ ] Optical flow retiming
|
||||
- [ ] 3D compositing nodes
|
||||
- [ ] Advanced keyers (Primatte-style)
|
||||
- [ ] ACES/OCIO color management
|
||||
- [ ] EXR multi-channel support
|
||||
|
||||
### Community Features
|
||||
- [ ] User-submitted node requests
|
||||
- [ ] Preset library system
|
||||
- [ ] Node macro/gizmo system
|
||||
- [ ] Expression support
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
**Priority Levels:**
|
||||
- Phase 1-2: Critical for basic functionality (MVP)
|
||||
- Phase 3-4: Professional features
|
||||
- Phase 5-6: Advanced capabilities
|
||||
- Phase 7-9: Polish and release
|
||||
- Future: Enhancement and expansion
|
||||
|
||||
**Completion Tracking:**
|
||||
Mark items as complete using `[x]` as you finish them.
|
||||
|
||||
**Estimated Timeline:**
|
||||
- Phase 1: 2 weeks
|
||||
- Phase 2: 3 weeks
|
||||
- Phase 3-4: 4 weeks
|
||||
- Phase 5-6: 4 weeks
|
||||
- Phase 7-9: 3 weeks
|
||||
- **Total: ~16 weeks to v1.0**
|
||||
Reference in New Issue
Block a user