Uploaded sanitized BC250/ROCm Repository.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
"""Patch ComfyUI: Force VAE to GPU even in --novram mode. Restart and test."""
|
||||
import paramiko, time, json, textwrap
|
||||
|
||||
k = paramiko.Ed25519Key.from_private_key_file(r'C:\Users\fabia\.ssh\id_ed25519')
|
||||
c = paramiko.SSHClient()
|
||||
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
c.connect('192.168.178.150', username='fabian', pkey=k, timeout=15)
|
||||
sftp = c.open_sftp()
|
||||
|
||||
def sh(cmd, timeout=60):
|
||||
chan = c.get_transport().open_session()
|
||||
chan.settimeout(timeout)
|
||||
chan.exec_command('/bin/bash -l -c ' + "'" + cmd.replace("'", "'\\''") + "'")
|
||||
out = b""
|
||||
while True:
|
||||
try:
|
||||
chunk = chan.recv(65536)
|
||||
if not chunk: break
|
||||
out += chunk
|
||||
except: break
|
||||
chan.close()
|
||||
return out.decode(errors='replace').strip()
|
||||
|
||||
# =============================================
|
||||
# STEP 1: Kill ComfyUI
|
||||
# =============================================
|
||||
print("1) Kill ComfyUI")
|
||||
sh('pkill -9 -f "python3.*main.py" 2>/dev/null; sleep 2')
|
||||
|
||||
# =============================================
|
||||
# STEP 2: Read and patch model_management.py
|
||||
# =============================================
|
||||
print("2) Patch model_management.py — force VAE to GPU")
|
||||
|
||||
# First, read the file to understand the structure
|
||||
with sftp.open('/home/fabian/ComfyUI/comfy/model_management.py', 'r') as f:
|
||||
mgmt = f.read().decode()
|
||||
|
||||
print(f" File size: {len(mgmt)} bytes")
|
||||
|
||||
# Find the vae_offload_device function
|
||||
# In ComfyUI, with NO_VRAM, vae_offload_device() returns CPU
|
||||
# We need to make it return GPU instead
|
||||
|
||||
# Also find vae_dtype — it's set to float32 by default, we want float16
|
||||
|
||||
# Let's search for relevant functions
|
||||
for i, line in enumerate(mgmt.split('\n')):
|
||||
if 'def vae_offload_device' in line or 'def vae_dtype' in line or 'def vae_device' in line:
|
||||
print(f" Line {i+1}: {line.strip()}")
|
||||
|
||||
# Also check what functions exist
|
||||
found = []
|
||||
for i, line in enumerate(mgmt.split('\n')):
|
||||
if line.startswith('def ') or (line.startswith(' ') and 'def ' in line[:12]):
|
||||
if 'vae' in line.lower():
|
||||
found.append((i+1, line.strip()))
|
||||
for ln, l in found:
|
||||
print(f" L{ln}: {l}")
|
||||
|
||||
# Let's read the specific area around these functions
|
||||
lines = mgmt.split('\n')
|
||||
|
||||
# Find and show context around vae functions
|
||||
for keyword in ['vae_offload_device', 'vae_dtype', 'vae_device']:
|
||||
for i, line in enumerate(lines):
|
||||
if f'def {keyword}' in line:
|
||||
start = max(0, i-2)
|
||||
end = min(len(lines), i+15)
|
||||
print(f"\n --- {keyword} (L{i+1}) ---")
|
||||
for j in range(start, end):
|
||||
print(f" {j+1:>5}: {lines[j]}")
|
||||
|
||||
sftp.close()
|
||||
c.close()
|
||||
print("\n Reading complete. Will patch next.")
|
||||
Reference in New Issue
Block a user