#!/bin/bash # Submit test generation workflow via ComfyUI API # Z-Image-Turbo: CLIPLoaderGGUF + UnetLoaderGGUF + VAELoader # 256x256, 4 steps, euler, cfg 2.0 COMFY="http://localhost:8188" WORKFLOW='{ "1": { "class_type": "CLIPLoaderGGUF", "inputs": { "clip_name": "Qwen_3_4b-Q8_0.gguf", "type": "lumina2" } }, "2": { "class_type": "CLIPTextEncode", "inputs": { "text": "a red cat sitting on a green hill, blue sky, simple", "clip": ["1", 0] } }, "3": { "class_type": "CLIPTextEncode", "inputs": { "text": "", "clip": ["1", 0] } }, "4": { "class_type": "UnetLoaderGGUF", "inputs": { "unet_name": "z_image_turbo-Q5_K_S.gguf" } }, "5": { "class_type": "EmptyLatentImage", "inputs": { "width": 256, "height": 256, "batch_size": 1 } }, "6": { "class_type": "KSampler", "inputs": { "seed": 42, "steps": 4, "cfg": 2.0, "sampler_name": "euler", "scheduler": "normal", "denoise": 1.0, "model": ["4", 0], "positive": ["2", 0], "negative": ["3", 0], "latent_image": ["5", 0] } }, "7": { "class_type": "VAELoader", "inputs": { "vae_name": "ae.safetensors" } }, "8": { "class_type": "VAEDecode", "inputs": { "samples": ["6", 0], "vae": ["7", 0] } }, "9": { "class_type": "SaveImage", "inputs": { "filename_prefix": "bc250_test", "images": ["8", 0] } } }' echo "Submitting workflow..." RESP=$(curl -s -X POST "$COMFY/api/prompt" \ -H "Content-Type: application/json" \ -d "{\"prompt\": $WORKFLOW}") echo "Response: $RESP" # Extract prompt ID PROMPT_ID=$(echo "$RESP" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('prompt_id','NONE'))" 2>/dev/null) echo "Prompt ID: $PROMPT_ID"