some fixes
This commit is contained in:
@@ -78,6 +78,7 @@ The SaveVideo node takes in extracted frames and saves them back as a video file
|
||||
Saves output video file and/or extracted frames.
|
||||
|
||||
The node takes extracted frames and metadata and can save them as a new video file and/or individual frame images. Video compression and frame PNG compression can be configured.
|
||||
NOTE: If you are using **LoadVideo** as source of the frames, the audio of the original file will be maintained but only in case **images_limit** and **starting_frame** are equal to Zero.
|
||||
|
||||
### LoadFramesFromFolder
|
||||
The LoadFramesFromFolder node allows loading image frames from a folder and returning them as a batch.
|
||||
|
||||
+1
-105
@@ -3,117 +3,14 @@ import importlib.util
|
||||
import glob
|
||||
import os
|
||||
import sys
|
||||
from .nnodes import init, get_ext_dir
|
||||
from .nnodes import init, get_ext_dir,check_and_install,downloader
|
||||
import folder_paths
|
||||
import requests
|
||||
import subprocess
|
||||
import traceback
|
||||
import platform
|
||||
|
||||
import torch
|
||||
|
||||
|
||||
NODE_CLASS_MAPPINGS = {}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {}
|
||||
|
||||
def check_nvidia_gpu():
|
||||
try:
|
||||
# Utilizza torch per verificare la presenza di una GPU NVIDIA
|
||||
return torch.cuda.is_available() and 'NVIDIA' in torch.cuda.get_device_name(0)
|
||||
except Exception as e:
|
||||
print(f"Error while checking for NVIDIA GPU: {e}")
|
||||
return False
|
||||
|
||||
def get_cuda_version():
|
||||
try:
|
||||
if torch.cuda.is_available():
|
||||
cuda_version = torch.version.cuda.replace(".","").strip()
|
||||
|
||||
return "cu"+cuda_version
|
||||
else:
|
||||
return "No NVIDIA GPU available"
|
||||
except Exception as e:
|
||||
print(f"Error while checking CUDA version: {e}")
|
||||
return "Unable to determine CUDA version"
|
||||
|
||||
def check_avx2_support():
|
||||
import cpuinfo
|
||||
try:
|
||||
info = cpuinfo.get_cpu_info()
|
||||
return 'avx2' in info['flags']
|
||||
except Exception as e:
|
||||
print(f"Error while checking AVX2 support: {e}")
|
||||
return False
|
||||
|
||||
def get_python_version():
|
||||
return platform.python_version()
|
||||
|
||||
def check_and_install(package, import_name=""):
|
||||
if import_name == "":
|
||||
import_name = package
|
||||
try:
|
||||
importlib.import_module(import_name)
|
||||
print(f"{import_name} is already installed.")
|
||||
except ImportError:
|
||||
print(f"{import_name} is not installed. Installing...")
|
||||
if package == "llama_cpp":
|
||||
install_llama()
|
||||
else:
|
||||
install_package(package)
|
||||
|
||||
def install_package(package):
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "--no-cache-dir", package])
|
||||
|
||||
def install_llama():
|
||||
gpu = check_nvidia_gpu()
|
||||
avx2 = check_avx2_support()
|
||||
#python_version = get_python_version()
|
||||
|
||||
|
||||
#python -m pip install llama-cpp-python --force-reinstall --no-deps --index-url=https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/AVX2/cu117
|
||||
if avx2:
|
||||
avx="AVX2"
|
||||
else:
|
||||
avx="AVX"
|
||||
|
||||
if gpu:
|
||||
cuda = get_cuda_version()
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "llama-cpp-python", "--no-cache-dir", "--force-reinstall", "--no-deps" , f"--index-url=https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/{avx}/{cuda}"])
|
||||
else:
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "llama-cpp-python", "--no-cache-dir", "--force-reinstall"])
|
||||
|
||||
# llama wheels https://github.com/jllllll/llama-cpp-python-cuBLAS-wheels
|
||||
|
||||
def check_module(package):
|
||||
import importlib
|
||||
try:
|
||||
print("Detected: ", package)
|
||||
importlib.import_module(package)
|
||||
return True
|
||||
except ImportError:
|
||||
return False
|
||||
import zipfile
|
||||
|
||||
|
||||
def downloader(link):
|
||||
print("Downloading dependencies...")
|
||||
response = requests.get(link, stream=True)
|
||||
try:
|
||||
os.makedirs(folder_paths.get_temp_directory())
|
||||
except:
|
||||
pass
|
||||
temp_file = os.path.join(folder_paths.get_temp_directory(), "file.zip")
|
||||
with open(temp_file, "wb") as f:
|
||||
for chunk in response.iter_content(chunk_size=1024):
|
||||
if chunk:
|
||||
f.write(chunk)
|
||||
|
||||
zip_file = zipfile.ZipFile(temp_file)
|
||||
target_dir = os.path.join(folder_paths.folder_names_and_paths["custom_nodes"][0][0],"ComfyUI-N-Nodes","libs","rifle") # Cartella dove estrarre lo zip
|
||||
|
||||
zip_file.extractall(target_dir)
|
||||
|
||||
|
||||
|
||||
|
||||
if init():
|
||||
@@ -123,7 +20,6 @@ if init():
|
||||
check_and_install('gitpython','git')
|
||||
check_and_install('moviepy')
|
||||
check_and_install("opencv-python","cv2")
|
||||
check_and_install('zipfile')
|
||||
check_and_install('scikit-build',"skbuild")
|
||||
#LLAMA DEPENTENCIES
|
||||
check_and_install('typing')
|
||||
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
# code based on pysssss repo
|
||||
import glob
|
||||
import os
|
||||
from .nnodes import init, get_ext_dir,check_and_install,downloader
|
||||
import folder_paths
|
||||
|
||||
|
||||
|
||||
py = get_ext_dir("py")
|
||||
files = glob.glob("*.py", root_dir=py, recursive=False)
|
||||
check_and_install('py-cpuinfo',"cpuinfo")
|
||||
check_and_install('gitpython','git')
|
||||
check_and_install('moviepy')
|
||||
check_and_install("opencv-python","cv2")
|
||||
check_and_install('zipfile')
|
||||
check_and_install('scikit-build',"skbuild")
|
||||
#LLAMA DEPENTENCIES
|
||||
check_and_install('typing')
|
||||
check_and_install('diskcache')
|
||||
check_and_install('llama_cpp')
|
||||
|
||||
#git clone https://github.com/hzwer/Practical-RIFE.git
|
||||
from git import Repo
|
||||
if not os.path.exists(os.path.join(folder_paths.folder_names_and_paths["custom_nodes"][0][0],"ComfyUI-N-Nodes","libs","rifle")):
|
||||
Repo.clone_from("https://github.com/hzwer/Practical-RIFE.git", os.path.join(folder_paths.folder_names_and_paths["custom_nodes"][0][0],"ComfyUI-N-Nodes","libs","rifle"))
|
||||
#if train_log folder not exists
|
||||
if not os.path.exists(os.path.join(folder_paths.folder_names_and_paths["custom_nodes"][0][0],"ComfyUI-N-Nodes","libs","rifle","train_log")):
|
||||
downloader("https://github.com/Nuked88/DreamingAI/raw/main/RIFE_trained_model_v4.7.zip")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user