started creating whisper transcription node
modified how imports are handled to avoid importing the same moduels twice under different name spaces.
added basic.py to house simple functions that work on primitives.
NOTE: this update relies on change to /web/extensions that are not included in this commit, a future commit will include an install process for these changes.
This commit refactors the handling of the 'steps' attribute, making it configurable via arguments, and adds memory cleanup logic within the 'stackme' method. Additionally, conditional cloning of images ensures that operations are performed only if the images are not None. Commented-out code provides a placeholder for potential future modifications.
In the func method, the variable name 'text' has been updated to 'lst' to better reflect its purpose. Additionally, a new variable 'x_list' has been assigned the value of 'lst', which may be a preparation for further enhancements.
This commit introduces the JoinAudioFiles class within the ETK/audio category. The class provides functionality to concatenate a list of audio files into a single file, using librosa and soundfile libraries. Metadata such as duration and samplerate are also retrieved. The code complies with the preferred import style.
- DecodeTranscriptNode to parse transcript text
- YoutubeUploadNode to upload videos to YouTube
- Audio metadata and file list nodes
- Image stack blending and stripping alpha channel
- Sampler dataset creation node
- Utils for deep copying tensors and arrays
Also includes:
- Testing for new utils module
- Git nodes marked with base class
- Renamed nodes.py to avoid conflicts
- Import refactoring to handle naming
Specifics:
- descript.py: New transcript parsing node
- youtube_nodes.py: New YouTube upload node
- audio.py: New audio metadata and file list nodes
- utils.py: Deep copy utility functions
- image.py: New image stack blending and alpha stripping
- tests/test_utils.py: Tests for new utils
- git.py: Marked git nodes with base class
- __init__.py: Refactored imports and mappings
- requirements.txt: Added YouTube dependencies
- functional.py: Minor tweaks
- modules/youtube.py: Helper for upload node
- video.py: Minor cleanup
- tests/test_youtube_nodes.py: Test for YouTube upload
- Introduced widget definitions for Git-related operations in `bases.py`.
These changes lay the foundation for Git-related functionality in the codebase and provide widget definitions for interacting with Git repositories.
# Context:
USER: I ran this command:
python E:/git/ComfyUI/custom_nodes/EternalKernelLiteGraphNodes/tests/test_git.py
And got this output:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 6, in <module>
from custom_nodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.git'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 8, in <module>
from custom_nodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.git'
# Context:
USER: I ran this command:
python E:/git/ComfyUI/custom_nodes/EternalKernelLiteGraphNodes/tests/test_git.py
And got this output:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 2, in <module>
from custom_nodes.EternalKernelLiteGraphNodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.EternalKernelLiteGraphNodes'
# Context:
USER: I ran this command:
python E:/git/ComfyUI/custom_nodes/EternalKernelLiteGraphNodes/tests/test_git.py
And got this output:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 2, in <module>
from custom_nodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.git'
# Context:
USER: I ran this command:
python E:/git/ComfyUI/custom_nodes/EternalKernelLiteGraphNodes/tests/test_git.py
And got this output:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 2, in <module>
from custom_nodes.EternalKernelLiteGraphNodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.EternalKernelLiteGraphNodes'
# Context:
USER: I ran this command:
python E:/git/ComfyUI/custom_nodes/EternalKernelLiteGraphNodes/tests/test_git.py
And got this output:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 3, in <module>
from custom_nodes.EternalKernelLiteGraphNodes.git import CreateRepoNode
ModuleNotFoundError: No module named 'custom_nodes.EternalKernelLiteGraphNodes'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\git\ComfyUI\custom_nodes\EternalKernelLiteGraphNodes\tests\test_git.py", line 5, in <module>
from ..git import CreateRepoNode
ImportError: attempted relative import with no known parent package
# Context:
USER: Prompt template is a definition for a node that the server will use.. the server will supply information about the node to the front end.
USER: the class should be renamed, "PublicGitRepo"
# Context:
USER: add `image.py`
ASSISTANT: Sure, I can help with that. However, I need more information about what you want to include in `image.py`. Could you please provide more details?
USER: I need you to use it so you can understand the framework
ASSISTANT: I understand that you want me to create a new file named `image.py`. However, without specific details about what this file should contain, I can only provide a basic template. Here's a simple Python file structure:
```python
image.py
<<<<<<< ORIGINAL
=======
# This is a new file named image.py
def main():
pass
if __name__ == "__main__":
main()
>>>>>>> UPDATED
```
Please provide more details if you need specific functions or classes in this file.
- This test validates the functionality of the `TemporalSpatialSmoothing` handler, which smooths image stacks in both temporal and spatial dimensions.
- The test uses random frames of noise and verifies the correctness of the handler.
- Made minor changes in `image.py`
- Updated code formatting for improved readability and consistency.
- Added error handling for cases when creating a PIL image from a numpy array.
- No significant changes were made in `video.py`.
These changes primarily focus on adding test coverage and maintaining code quality.
"Added GetFirstCodeBlock class to functional.py"
Commit details:
- Added a new class called GetFirstCodeBlock to the functional.py file.
- The GetFirstCodeBlock class is used to find and return the first code block in the input text. It checks for code blocks surrounded by "```" or "```python" tags, or "<code>" tags.
- Returns an empty string if no code block is found.
- Added a new function called func to the GetFirstCodeBlock class, which takes the input text as an argument and returns the first code block.
- Updated the functional.py file with the new class and function.
- The new class is categorized under "ETK/func" and has a return type of "STRING".
- The commit message and details were created using the IDEA additional info of the patch, with the charset set to UTF-8.
2. This class has a method func that takes a string and code as input and executes the code.
3. The executed code is expected to convert the input string into a list which is then returned.
4. Also, defined INPUT_TYPES, CATEGORY, RETURN_TYPES, and FUNCTION for the class.
- Added a new function handler called "LoadJson" that loads a JSON object from a file and returns it as a dictionary or list.
- Updated the RETURN_TYPES and RETURN_NAMES for the "LoadJson" function.
2. custom_nodes/SWAIN/llm.py:
- Updated the "get_openai_embedding" function to include additional keyword arguments.
- Added exception handling for API connection errors and API errors in the "get_openai_embedding" function.
- Modified the "get_k_nearest_vectors" function to handle tuples as input.
- Removed unnecessary import statements in the LLMEmbedding class.
- Added a new function handler called "FuncStrToStr" that runs the 'eval' function on the given text with a string as input and returns a string.
- Updated the INPUT_TYPES and RETURN_TYPES for the "FuncStrToStr" function.
3. custom_nodes/SWAIN/tests/test_llm.py:
- Added new unit tests for the "get_openai_embedding" and "get_k_nearest_vectors" functions.
- Fixed import statements in the test file.
4. custom_nodes/EternalKernelLiteGraphNodes/functional.py:
- Added a new function handler called "FuncStrToStr" that runs 'eval' on the given text with a string as input and returns a string.
- Updated the INPUT_TYPES for the "FuncStrToStr" function.
5. custom_nodes/SWAIN/bases.py:
- Added a new widget generator for the "number" parameter type.
These changes introduce new functionality and improve the error handling and testing in the project.
- Modified the `func` method in the `FuncRender` class in `functional.py` to return a tuple.
- Modified the `video_folders` function in `video.py` to include a return statement.
- Modified the `video_files` function in `video.py` to include a return statement.
- Added a new parameter `func` with a default value of `None` to the `optional` dictionary in the `ImageStackToVideoFile` class in `video.py`.
- Updated the `handler` method in the `ImageStackToVideoFile` class in `video.py` to include a check for the `optional` parameter `func`.