Uploaded sanitized BC250/ROCm Repository.
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Submit Z-Image-Turbo workflow to ComfyUI on BC-250 via API."""
|
||||
import paramiko
|
||||
import json
|
||||
import time
|
||||
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect('192.168.178.150', username='fabian', key_filename=r'C:\Users\fabia\.ssh\id_ed25519')
|
||||
|
||||
def run(cmd, timeout=600, desc=""):
|
||||
if desc:
|
||||
print(f"\n{'='*60}")
|
||||
print(f" {desc}")
|
||||
print(f"{'='*60}")
|
||||
print(f"$ {cmd[:200]}...")
|
||||
_, stdout, stderr = ssh.exec_command(cmd, timeout=timeout)
|
||||
out = stdout.read().decode()
|
||||
err = stderr.read().decode()
|
||||
rc = stdout.channel.recv_exit_status()
|
||||
if out.strip():
|
||||
lines = out.strip().split('\n')
|
||||
if len(lines) > 50:
|
||||
print(f" ... ({len(lines)} lines, showing last 50)")
|
||||
print('\n'.join(lines[-50:]))
|
||||
else:
|
||||
print(out.strip())
|
||||
if err.strip():
|
||||
lines = err.strip().split('\n')
|
||||
show = lines[-20:] if len(lines) > 20 else lines
|
||||
print(f"STDERR: {chr(10).join(show)}")
|
||||
print(f" Exit code: {rc}")
|
||||
return rc, out, err
|
||||
|
||||
# ComfyUI API prompt workflow for Z-Image-Turbo
|
||||
workflow = {
|
||||
"prompt": {
|
||||
"1": {
|
||||
"class_type": "UnetLoaderGGUF",
|
||||
"inputs": {
|
||||
"unet_name": "z_image_turbo-Q5_K_S.gguf"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"class_type": "CLIPLoaderGGUF",
|
||||
"inputs": {
|
||||
"clip_name": "Qwen3-4B.i1-Q5_K_S.gguf",
|
||||
"type": "qwen_image"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"class_type": "VAELoader",
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"class_type": "CLIPTextEncode",
|
||||
"inputs": {
|
||||
"text": "A majestic mountain landscape at sunset, golden light illuminating snow-capped peaks, crystal clear lake in the foreground reflecting the sky, photorealistic, 8k, detailed",
|
||||
"clip": ["2", 0]
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"class_type": "EmptyZImageLatentImage //ZImagePowerNodes",
|
||||
"inputs": {
|
||||
"landscape": True,
|
||||
"ratio": "16:9 (widescreen)",
|
||||
"size": "medium (recommended)",
|
||||
"batch_size": 1
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"class_type": "ZSamplerTurbo //ZImagePowerNodes",
|
||||
"inputs": {
|
||||
"model": ["1", 0],
|
||||
"positive": ["4", 0],
|
||||
"latent_input": ["5", 0],
|
||||
"seed": 42,
|
||||
"steps": 8,
|
||||
"denoise": 1.0,
|
||||
"initial_noise_calibration": "off",
|
||||
"lowres_bias": False
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"class_type": "VAEDecode",
|
||||
"inputs": {
|
||||
"samples": ["6", 0],
|
||||
"vae": ["3", 0]
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"class_type": "SaveImage",
|
||||
"inputs": {
|
||||
"images": ["7", 0],
|
||||
"filename_prefix": "ZImageTurbo_BC250_test"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Write workflow to remote
|
||||
workflow_json = json.dumps(workflow)
|
||||
sftp = ssh.open_sftp()
|
||||
with sftp.open('/tmp/zimage_workflow.json', 'w') as f:
|
||||
f.write(workflow_json)
|
||||
sftp.close()
|
||||
|
||||
# Submit via curl
|
||||
run("bash -c 'curl -s -X POST http://localhost:8188/prompt "
|
||||
"-H \"Content-Type: application/json\" "
|
||||
"-d @/tmp/zimage_workflow.json'",
|
||||
desc="Submit Z-Image-Turbo workflow to ComfyUI")
|
||||
|
||||
# Monitor the queue and wait for completion
|
||||
time.sleep(5)
|
||||
run("bash -c 'curl -s http://localhost:8188/queue'",
|
||||
desc="Check queue status")
|
||||
|
||||
# Wait and check ComfyUI log for progress
|
||||
for i in range(30):
|
||||
time.sleep(10)
|
||||
rc, out, _ = run(f"bash -c 'tail -20 /home/fabian/comfyui.log 2>/dev/null'",
|
||||
desc=f"ComfyUI log check {i+1}")
|
||||
if any(kw in out for kw in ['Prompt executed', 'SaveImage', 'output images']):
|
||||
print("\n IMAGE GENERATION COMPLETE!")
|
||||
break
|
||||
if 'error' in out.lower() or 'Error' in out:
|
||||
print("\n ERROR DETECTED — checking full log...")
|
||||
run("bash -c 'tail -50 /home/fabian/comfyui.log'", desc="Full error log")
|
||||
break
|
||||
|
||||
# Check output
|
||||
run("bash -c 'ls -la ~/ComfyUI/output/ 2>/dev/null'",
|
||||
desc="Check output directory")
|
||||
|
||||
ssh.close()
|
||||
print("\nDone.")
|
||||
Reference in New Issue
Block a user