updated to universal drop/drive node

This commit is contained in:
MachinePainting
2026-01-29 03:35:34 -08:00
committed by GitHub
parent 03c37b8d65
commit 44db5a3b12
2 changed files with 30 additions and 51 deletions
+11 -9
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
"""
DropSend Decryption Script for Windows
ComfyUI Encryption Scripts - Decryption (Windows)
Works with both DropSend and DriveSend nodes
Decrypts .enc files using a key from environment variable or manual input
"""
@@ -18,10 +19,14 @@ except ImportError:
def get_encryption_key():
"""Get encryption key from environment variable or user input."""
# Try environment variable first
key = os.environ.get('DROPSEND_ENCRYPTION_KEY')
# Try multiple environment variable names for compatibility
key = (os.environ.get('COMFYUI_ENCRYPTION_KEY') or
os.environ.get('comfyui_encryption_key') or
os.environ.get('DROPSEND_ENCRYPTION_KEY') or
os.environ.get('DRIVESEND_ENCRYPTION_KEY'))
if key:
print("Using key from DROPSEND_ENCRYPTION_KEY environment variable.")
print("Using key from environment variable.")
return key
# Prompt user
@@ -32,7 +37,7 @@ def get_encryption_key():
print(" 1. Press Win + R, type 'sysdm.cpl', press Enter")
print(" 2. Go to Advanced tab > Environment Variables")
print(" 3. Under User variables, click New")
print(" 4. Variable name: DROPSEND_ENCRYPTION_KEY")
print(" 4. Variable name: COMFYUI_ENCRYPTION_KEY")
print(" 5. Variable value: [your encryption key]")
print(" 6. Click OK and restart any open terminals")
print("")
@@ -60,12 +65,11 @@ def decrypt_file(encrypted_path, output_path, fernet):
def main():
print("=== DropSend File Decryption (Windows) ===")
print("=== ComfyUI File Decryption (Windows) ===")
print("")
# Get folder path
folder = input("Enter the folder path containing .enc files: ").strip()
# Remove surrounding quotes if present
folder = folder.strip('"\'')
if not folder or not os.path.isdir(folder):
@@ -115,8 +119,6 @@ def main():
error_count = 0
for enc_path in enc_files:
# Remove .enc extension to get original filename
# The original extension is preserved (e.g., image.png.enc -> image.png)
out_path = enc_path[:-4] # Remove .enc
if decrypt_file(enc_path, out_path, fernet):
+19 -42
View File
@@ -1,10 +1,11 @@
#!/usr/bin/env python3
"""
DropSend Encryption Script for Windows
ComfyUI Encryption Scripts - Encryption (Windows)
Works with both DropSend and DriveSend nodes
Encrypts image/video files using a key from environment variable or manual input
NOTE: This script is for LOCAL USE ONLY - for encrypting files on your local machine
outside of ComfyUI. The DropSend node handles encryption automatically during upload.
outside of ComfyUI. The nodes handle encryption automatically during upload.
"""
import os
@@ -18,30 +19,23 @@ except ImportError:
sys.exit(1)
# Supported file extensions (matching DropSend node)
SUPPORTED_EXTENSIONS = ('.png', '.jpg', '.jpeg', '.webp', '.gif', '.mp4', '.avi', '.mov')
def get_encryption_key():
"""Get encryption key from environment variable or user input."""
# Try environment variable first
key = os.environ.get('DROPSEND_ENCRYPTION_KEY')
key = (os.environ.get('COMFYUI_ENCRYPTION_KEY') or
os.environ.get('comfyui_encryption_key') or
os.environ.get('DROPSEND_ENCRYPTION_KEY') or
os.environ.get('DRIVESEND_ENCRYPTION_KEY'))
if key:
print("Using key from DROPSEND_ENCRYPTION_KEY environment variable.")
print("Using key from environment variable.")
return key
# Prompt user
print("")
print("Encryption key not found in environment.")
print("")
print("To set up automatic key retrieval:")
print(" 1. Press Win + R, type 'sysdm.cpl', press Enter")
print(" 2. Go to Advanced tab > Environment Variables")
print(" 3. Under User variables, click New")
print(" 4. Variable name: DROPSEND_ENCRYPTION_KEY")
print(" 5. Variable value: [your encryption key]")
print(" 6. Click OK and restart any open terminals")
print("")
key = input("Enter your encryption key: ").strip()
if not key:
@@ -66,30 +60,21 @@ def encrypt_file(input_path, output_path, fernet):
def main():
print("=== DropSend File Encryption (Windows) ===")
print("=== ComfyUI File Encryption (Windows) ===")
print("")
print("NOTE: This script is for LOCAL USE ONLY.")
print("The DropSend node handles encryption automatically during upload.")
print("The ComfyUI nodes handle encryption automatically during upload.")
print("")
# Get folder path
folder = input("Enter the folder path containing files to encrypt: ").strip()
# Remove surrounding quotes if present
folder = folder.strip('"\'')
folder = input("Enter the folder path containing files to encrypt: ").strip().strip('"\'')
if not folder or not os.path.isdir(folder):
print(f"Error: '{folder}' is not a valid directory.")
sys.exit(1)
print(f"Processing folder: {folder}")
print("")
# Recursive option
recursive_input = input("Encrypt files recursively (including subfolders)? (Y/N): ").strip().upper()
recursive_input = input("Encrypt files recursively? (Y/N): ").strip().upper()
recursive = recursive_input == 'Y'
# Get encryption key
print("")
key = get_encryption_key()
try:
@@ -99,11 +84,8 @@ def main():
sys.exit(1)
print("")
print("Scanning for supported files...")
print(f"Supported formats: {', '.join(SUPPORTED_EXTENSIONS)}")
print("")
# Find all supported files
files_to_encrypt = []
if recursive:
for root, _, files in os.walk(folder):
@@ -116,7 +98,7 @@ def main():
files_to_encrypt.append(os.path.join(folder, file))
if not files_to_encrypt:
print("No supported files found in the specified location.")
print("No supported files found.")
sys.exit(0)
print(f"Found {len(files_to_encrypt)} file(s) to encrypt.")
@@ -131,24 +113,19 @@ def main():
try:
if encrypt_file(file_path, temp_enc_path, fernet):
os.remove(file_path) # Delete original
os.rename(temp_enc_path, final_enc_path) # Rename to final
print(f" + Encrypted: {os.path.basename(file_path)} -> {os.path.basename(final_enc_path)}")
os.remove(file_path)
os.rename(temp_enc_path, final_enc_path)
print(f" + Encrypted: {os.path.basename(file_path)}")
success_count += 1
else:
error_count += 1
if os.path.exists(temp_enc_path):
os.remove(temp_enc_path)
except Exception as e:
print(f" X Error processing {os.path.basename(file_path)}: {e}")
print(f" X Error: {e}")
error_count += 1
if os.path.exists(temp_enc_path):
os.remove(temp_enc_path)
print("")
print(f"Encryption complete: {success_count} successful, {error_count} failed")
print("")
print("Done!")
print(f"\nEncryption complete: {success_count} successful, {error_count} failed")
if __name__ == "__main__":