Metrics:
Total lines of code: 8981
Total lines skipped (#nosec): 0

blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 3
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
1	#
2	import os
3	import subprocess
4	import importlib.util
5	import sys,json
6	import urllib
7	import hashlib
8	import datetime
subprocess_popen_with_shell_equals_true: subprocess call with shell=True identified, security issue.
Test ID: B602
Severity: HIGH
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 62
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b602_subprocess_popen_with_shell_equals_true.html
58	        print(f"Installing {package}...")
59	        # 清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple
60	        command = f'"{python}" -m pip install {package}'
61	  
62	        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, env=os.environ)
63	
64	        if result.returncode != 0:
65	            print(f"Couldn't install\nCommand: {command}\nError code: {result.returncode}")
hashlib: Use of weak MD5 hash for security. Consider usedforsecurity=False
Test ID: B324
Severity: HIGH
Confidence: HIGH
CWE: CWE-327
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 128
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b324_hashlib.html
124	    return base64_str
125	
126	def calculate_md5(string):
127	    encoded_string = string.encode()
128	    md5_hash = hashlib.md5(encoded_string).hexdigest()
129	    return md5_hash
130	
131	
hardcoded_bind_all_interfaces: Possible binding to all interfaces.
Test ID: B104
Severity: MEDIUM
Confidence: MEDIUM
CWE: CWE-605
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 516
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b104_hardcoded_bind_all_interfaces.html
512	            raise RuntimeError(f"Ports {http_port + 1} to {http_port + 10} are all in use.")
513	
514	        if address == '':
515	            address = '127.0.0.1'
516	        if address=='0.0.0.0':
517	            address = '127.0.0.1'
518	            
519	        if verbose:
try_except_pass: Try, Except, Pass detected.
Test ID: B110
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 837
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b110_try_except_pass.html
833	@routes.post('/mixlab/re_start')
834	def re_start(request):
835	    try:
836	        sys.stdout.close_log()
837	    except Exception as e:
838	        pass
839	    return os.execv(sys.executable, [sys.executable] + sys.argv)
840	
841	
start_process_with_no_shell: Starting a process without a shell.
Test ID: B606
Severity: LOW
Confidence: MEDIUM
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/__init__.py
Line number: 839
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b606_start_process_with_no_shell.html
835	    try:
836	        sys.stdout.close_log()
837	    except Exception as e:
838	        pass
839	    return os.execv(sys.executable, [sys.executable] + sys.argv)
840	
841	
842	
hashlib: Use of weak SHA1 hash for security. Consider usedforsecurity=False
Test ID: B324
Severity: HIGH
Confidence: HIGH
CWE: CWE-327
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 20
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b324_hashlib.html
16	    return spec is not None
17	
18	
19	def get_unique_hash(string):
20	    hash_object = hashlib.sha1(string.encode())
21	    unique_hash = hash_object.hexdigest()
22	    return unique_hash
23	
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 26
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
22	    return unique_hash
23	
24	def generate_random_string(length):
25	    letters = string.ascii_letters + string.digits
26	    return ''.join(random.choice(letters) for _ in range(length))
27	
28	class AnyType(str):
29	  """A special class that is always equal in not equal comparisons. Credit to pythongosssss"""
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 65
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
61	def ZhipuAI_client(key):
62	
63	    try:
64	        if is_installed('zhipuai')==False:
65	            import subprocess
66	
67	            # 安装
68	            print('#pip install zhipuai')
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 70
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
66	
67	            # 安装
68	            print('#pip install zhipuai')
69	
70	            result = subprocess.run([sys.executable, '-s', '-m', 'pip', 'install', 'zhipuai'], capture_output=True, text=True)
71	
72	            #检查命令执行结果
73	            if result.returncode == 0:
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 122
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
118	
119	def llama_cpp_client(file_name):
120	    try:
121	        if is_installed('llama_cpp')==False:
122	            import subprocess
123	
124	            # 安装
125	            print('#pip install llama-cpp-python')
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 127
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
123	
124	            # 安装
125	            print('#pip install llama-cpp-python')
126	 
127	            result = subprocess.run([sys.executable, '-s', '-m', 'pip', 
128	                                     'install', 
129	                                     'llama-cpp-python',
130	                                     '--extra-index-url',
131	                                     'https://abetlen.github.io/llama-cpp-python/whl/cu121'
132	                                     ], capture_output=True, text=True)
133	
134	            #检查命令执行结果
135	            if result.returncode == 0:
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ChatGPT.py
Line number: 139
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
135	            if result.returncode == 0:
136	                print("#install success")
137	                from llama_cpp import Llama
138	
139	                subprocess.run([sys.executable, '-s', '-m', 'pip', 
140	                                     'install', 
141	                                     'llama-cpp-python[server]'
142	                                     ], capture_output=True, text=True)
143	
144	            else:
145	                print("#install error")
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ClipInterrogator.py
Line number: 30
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
26	
27	
28	try:
29	    if is_installed('clip_interrogator')==False:
30	        import subprocess
31	
32	        # 安装
33	        print('#pip install clip-interrogator==0.6.0')
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ClipInterrogator.py
Line number: 35
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
31	
32	        # 安装
33	        print('#pip install clip-interrogator==0.6.0')
34	
35	        result = subprocess.run([sys.executable, '-s', '-m', 'pip', 'install', 'clip-interrogator==0.6.0'], capture_output=True, text=True)
36	
37	        #检查命令执行结果
38	        if result.returncode == 0:
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ImageNode.py
Line number: 145
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
141	    draw.rectangle([(x, y), (x+w, y+h)], outline=color,width=width)
142	
143	def generate_random_string(length):
144	    letters = string.ascii_letters + string.digits
145	    return ''.join(random.choice(letters) for _ in range(length))
146	
147	def padding_rectangle(grid, padding):
148	    x, y, w, h = grid
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ImageNode.py
Line number: 612
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
608	    pixels = image.load()
609	    for i in range(width):
610	        for j in range(height):
611	            # 随机生成噪声值
612	            noise_r = random.randint(-noise_level, noise_level)
613	            noise_g = random.randint(-noise_level, noise_level)
614	            noise_b = random.randint(-noise_level, noise_level)
615	
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ImageNode.py
Line number: 613
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
609	    for i in range(width):
610	        for j in range(height):
611	            # 随机生成噪声值
612	            noise_r = random.randint(-noise_level, noise_level)
613	            noise_g = random.randint(-noise_level, noise_level)
614	            noise_b = random.randint(-noise_level, noise_level)
615	
616	            # 像素值加上噪声值,并限制在0-255的范围内
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/ImageNode.py
Line number: 614
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
610	        for j in range(height):
611	            # 随机生成噪声值
612	            noise_r = random.randint(-noise_level, noise_level)
613	            noise_g = random.randint(-noise_level, noise_level)
614	            noise_b = random.randint(-noise_level, noise_level)
615	
616	            # 像素值加上噪声值,并限制在0-255的范围内
617	            r = max(0, min(pixels[i, j][0] + noise_r, 255))
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Lama.py
Line number: 21
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
17	        return False
18	    return spec is not None
19	
20	if is_installed('simple_lama_inpainting')==False:
21	    import subprocess
22	    from packaging import version
23	    
24	    if version.parse(torch.__version__)>=version.parse('2.1'):
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Lama.py
Line number: 28
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
24	    if version.parse(torch.__version__)>=version.parse('2.1'):
25	        # 安装
26	        print('#pip install simple_lama_inpainting')
27	
28	        result = subprocess.run([sys.executable, '-s', '-m', 'pip', 'install', 'simple_lama_inpainting'], capture_output=True, text=True)
29	
30	        #检查命令执行结果
31	        if result.returncode == 0:
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Mask.py
Line number: 77
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
73	class PreviewMask_(SaveImage):
74	    def __init__(self):
75	        self.output_dir = folder_paths.get_temp_directory()
76	        self.type = "temp"
77	        self.prefix_append =''.join(random.choice("abcdehijklmnopqrstupvxyzfg") for x in range(5))
78	        self.compress_level = 4
79	
80	    @classmethod
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/RembgNode.py
Line number: 511
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
507	
508	
509	try:
510	    if is_installed('rembg')==False:
511	        import subprocess
512	
513	        # 安装
514	        print('#pip install rembg[gpu]')
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/RembgNode.py
Line number: 516
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
512	
513	        # 安装
514	        print('#pip install rembg[gpu]')
515	
516	        result = subprocess.run([sys.executable, '-s', '-m', 'pip', 'install', 'rembg[gpu]'], capture_output=True, text=True)
517	
518	        #检查命令执行结果
519	        if result.returncode == 0:
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/TextGenerateNode.py
Line number: 50
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
46	
47	
48	try:
49	    if is_installed('sentencepiece')==False:
50	        import subprocess
51	
52	        # 安装
53	        print('#pip install sentencepiece')
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/TextGenerateNode.py
Line number: 55
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
51	
52	        # 安装
53	        print('#pip install sentencepiece')
54	
55	        result = subprocess.run([sys.executable, '-s', '-m', 'pip', 'install', 'sentencepiece'], capture_output=True, text=True)
56	
57	        #检查命令执行结果
58	        if result.returncode == 0 and is_installed('sentencepiece'):
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/TextGenerateNode.py
Line number: 94
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
90	
91	def text_generate(text_pipe,input,seed=None):
92	    
93	    if seed==None:
94	        seed = random.randint(100, 1000000)
95	    
96	    set_seed(seed)
97	
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/TextGenerateNode.py
Line number: 99
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
95	    
96	    set_seed(seed)
97	
98	    for count in range(6):    
99	        sequences = text_pipe(input, max_length=random.randint(60, 90), num_return_sequences=8)
100	        list = []
101	        for sequence in sequences:
102	            line = sequence['generated_text'].strip()
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Utils.py
Line number: 246
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
242	            result = int(n)
243	            # print(result)
244	        
245	        if random_number=='enable' and result>0:
246	            result= random.randint(1, max_num)
247	        return {"ui": {"text": [text],"num":[result]}, "result": (result,)}
248	    
249	
blacklist: Consider possible security implications associated with the subprocess module.
Test ID: B404
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Video.py
Line number: 4
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_imports.html#b404-import-subprocess
1	import os
2	import hashlib
3	import json
4	import subprocess
5	import shutil
6	import re
7	import time,math
8	import numpy as np
blacklist: Standard pseudo-random generators are not suitable for security/cryptographic purposes.
Test ID: B311
Severity: LOW
Confidence: HIGH
CWE: CWE-330
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Video.py
Line number: 146
More info: https://bandit.readthedocs.io/en/1.7.9/blacklists/blacklist_calls.html#b311-random
142	def generate_folder_name(directory,video_path):
143	    # Get the directory and filename from the video path
144	    _, filename = os.path.split(video_path)
145	    # Generate a random string of lowercase letters and digits
146	    random_string = ''.join(random.choices(string.ascii_lowercase + string.digits, k=8))
147	    # Create the folder name by combining the random string and the filename
148	    folder_name = random_string + '_' + filename
149	    # Create the full folder path by joining the directory and the folder name
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Video.py
Line number: 240
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
236	        '-shortest',
237	        output_path
238	    ]
239	    
240	    subprocess.run(command, check=True)
241	    return output_path
242	
243	
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Video.py
Line number: 651
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
647	        with open(metadata_path, "w") as f:
648	            f.write(";FFMETADATA1\n")
649	            f.write(metadata)
650	        args = args[:1] + ["-i", metadata_path] + args[1:] + [file_path]
651	        with subprocess.Popen(args, stdin=subprocess.PIPE, env=env) as proc:
652	            for frame in frames:
653	                proc.stdin.write(frame.tobytes())
654	
subprocess_without_shell_equals_true: subprocess call - check for execution of untrusted input.
Test ID: B603
Severity: LOW
Confidence: HIGH
CWE: CWE-78
File: /custom_nodes/comfyui-mixlab-nodes/nodes/Video.py
Line number: 772
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b603_subprocess_without_shell_equals_true.html
768	                print(f"Using fallback file for extremely long metadata: {len(metadata_args[1])}/{max_arg_length}")
769	                self.save_with_tempfile(args, metadata_args[1], file_path, frames, env)
770	            else:
771	                try:
772	                    with subprocess.Popen(args + metadata_args + [file_path],
773	                                          stdin=subprocess.PIPE, env=env) as proc:
774	                        for frame in frames:
775	                            proc.stdin.write(frame.tobytes())
776	                except FileNotFoundError as e:
hashlib: Use of weak MD5 hash for security. Consider usedforsecurity=False
Test ID: B324
Severity: HIGH
Confidence: HIGH
CWE: CWE-327
File: /custom_nodes/comfyui-mixlab-nodes/nodes/edit_mask.py
Line number: 24
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b324_hashlib.html
20	    # 将 NumPy 数组转换为字节数据
21	    byte_data = np_array.tobytes()
22	    
23	    # 计算哈希值
24	    hash_value = hashlib.md5(byte_data).hexdigest()
25	    
26	    return hash_value
27	
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/nerf_renderer.py
Line number: 32
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
28	
29	    cfg: Config
30	
31	    def configure(self) -> None:
32	        assert self.cfg.feature_reduction in ["concat", "mean"]
33	        self.chunk_size = 0
34	
35	    def set_chunk_size(self, chunk_size: int):
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/nerf_renderer.py
Line number: 36
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
32	        assert self.cfg.feature_reduction in ["concat", "mean"]
33	        self.chunk_size = 0
34	
35	    def set_chunk_size(self, chunk_size: int):
36	        assert (
37	            chunk_size >= 0
38	        ), "chunk_size must be a non-negative integer (0 for no chunking)."
39	        self.chunk_size = chunk_size
40	
41	    def query_triplane(
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/tokenizers/triplane.py
Line number: 37
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
33	        )
34	
35	    def detokenize(self, tokens: torch.Tensor) -> torch.Tensor:
36	        batch_size, Ct, Nt = tokens.shape
37	        assert Nt == self.cfg.plane_size**2 * 3
38	        assert Ct == self.cfg.num_channels
39	        return rearrange(
40	            tokens,
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/tokenizers/triplane.py
Line number: 38
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
34	
35	    def detokenize(self, tokens: torch.Tensor) -> torch.Tensor:
36	        batch_size, Ct, Nt = tokens.shape
37	        assert Nt == self.cfg.plane_size**2 * 3
38	        assert Ct == self.cfg.num_channels
39	        return rearrange(
40	            tokens,
41	            "B Ct (Np Hp Wp) -> B Np Ct Hp Wp",
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/transformer/attention.py
Line number: 429
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
425	
426	        Returns:
427	            `torch.Tensor`: The normalized encoder hidden states.
428	        """
429	        assert (
430	            self.norm_cross is not None
431	        ), "self.norm_cross must be defined to call self.norm_encoder_hidden_states"
432	
433	        if isinstance(self.norm_cross, nn.LayerNorm):
434	            encoder_hidden_states = self.norm_cross(encoder_hidden_states)
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/transformer/attention.py
Line number: 445
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
441	            encoder_hidden_states = encoder_hidden_states.transpose(1, 2)
442	            encoder_hidden_states = self.norm_cross(encoder_hidden_states)
443	            encoder_hidden_states = encoder_hidden_states.transpose(1, 2)
444	        else:
445	            assert False
446	
447	        return encoder_hidden_states
448	
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/models/transformer/basic_transformer_block.py
Line number: 94
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
90	    ):
91	        super().__init__()
92	        self.only_cross_attention = only_cross_attention
93	
94	        assert norm_type == "layer_norm"
95	
96	        # Define 3 blocks. Each block has its own normalization layer.
97	        # 1. Self-Attn
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 162
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
158	    for arg in list(args) + list(kwargs.values()):
159	        if isinstance(arg, torch.Tensor):
160	            B = arg.shape[0]
161	            break
162	    assert (
163	        B is not None
164	    ), "No tensor found in args or kwargs, cannot determine batch size."
165	    out = defaultdict(list)
166	    out_type = None
167	    # max(1, B) to support B == 0
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 230
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
226	        inp_scale = (0, 1)
227	    if tgt_scale is None:
228	        tgt_scale = (0, 1)
229	    if isinstance(tgt_scale, torch.FloatTensor):
230	        assert dat.shape[-1] == tgt_scale.shape[-1]
231	    dat = (dat - inp_scale[0]) / (inp_scale[1] - inp_scale[0])
232	    dat = dat * (tgt_scale[1] - tgt_scale[0]) + tgt_scale[0]
233	    return dat
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 282
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
278	        fx, fy = focal, focal
279	        cx, cy = W / 2, H / 2
280	    else:
281	        fx, fy = focal
282	        assert principal is not None
283	        cx, cy = principal
284	
285	    i, j = torch.meshgrid(
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 306
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
302	    keepdim=False,
303	    normalize=False,
304	) -> Tuple[torch.FloatTensor, torch.FloatTensor]:
305	    # Rotate ray directions from camera coordinate to the world coordinate
306	    assert directions.shape[-1] == 3
307	
308	    if directions.ndim == 2:  # (N_rays, 3)
309	        if c2w.ndim == 2:  # (4, 4)
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 311
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
307	
308	    if directions.ndim == 2:  # (N_rays, 3)
309	        if c2w.ndim == 2:  # (4, 4)
310	            c2w = c2w[None, :, :]
311	        assert c2w.ndim == 3  # (N_rays, 4, 4) or (1, 4, 4)
312	        rays_d = (directions[:, None, :] * c2w[:, :3, :3]).sum(-1)  # (N_rays, 3)
313	        rays_o = c2w[:, :3, 3].expand(rays_d.shape)
314	    elif directions.ndim == 3:  # (H, W, 3)
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 315
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
311	        assert c2w.ndim == 3  # (N_rays, 4, 4) or (1, 4, 4)
312	        rays_d = (directions[:, None, :] * c2w[:, :3, :3]).sum(-1)  # (N_rays, 3)
313	        rays_o = c2w[:, :3, 3].expand(rays_d.shape)
314	    elif directions.ndim == 3:  # (H, W, 3)
315	        assert c2w.ndim in [2, 3]
316	        if c2w.ndim == 2:  # (4, 4)
317	            rays_d = (directions[:, :, None, :] * c2w[None, None, :3, :3]).sum(
318	                -1
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 327
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
323	                -1
324	            )  # (B, H, W, 3)
325	            rays_o = c2w[:, None, None, :3, 3].expand(rays_d.shape)
326	    elif directions.ndim == 4:  # (B, H, W, 3)
327	        assert c2w.ndim == 3  # (B, 4, 4)
328	        rays_d = (directions[:, :, :, None, :] * c2w[:, None, None, :3, :3]).sum(
329	            -1
330	        )  # (B, H, W, 3)
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Test ID: B101
Severity: LOW
Confidence: HIGH
CWE: CWE-703
File: /custom_nodes/comfyui-mixlab-nodes/nodes/tsr/utils.py
Line number: 422
More info: https://bandit.readthedocs.io/en/1.7.9/plugins/b101_assert_used.html
418	    image: PIL.Image.Image,
419	    ratio: float,
420	) -> PIL.Image.Image:
421	    image = np.array(image)
422	    assert image.shape[-1] == 4
423	    alpha = np.where(image[..., 3] > 0)
424	    y1, y2, x1, x2 = (
425	        alpha[0].min(),