102 lines
2.4 KiB
Bash
102 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# Queue a prompt to ComfyUI via API
|
|
# This uses the API format, not the workflow format
|
|
|
|
PROMPT='{
|
|
"1": {
|
|
"class_type": "CLIPLoaderGGUF",
|
|
"inputs": {
|
|
"clip_name": "Qwen_3_4b-Q8_0.gguf",
|
|
"type": "lumina2"
|
|
}
|
|
},
|
|
"2": {
|
|
"class_type": "CLIPTextEncode",
|
|
"inputs": {
|
|
"text": "a beautiful mountain landscape at sunset, golden hour, dramatic clouds, 8k photography",
|
|
"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": 512,
|
|
"height": 512,
|
|
"batch_size": 1
|
|
}
|
|
},
|
|
"6": {
|
|
"class_type": "KSampler",
|
|
"inputs": {
|
|
"model": ["4", 0],
|
|
"positive": ["2", 0],
|
|
"negative": ["3", 0],
|
|
"latent_image": ["5", 0],
|
|
"seed": 42,
|
|
"steps": 4,
|
|
"cfg": 1.0,
|
|
"sampler_name": "euler",
|
|
"scheduler": "normal",
|
|
"denoise": 1.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": {
|
|
"images": ["8", 0],
|
|
"filename_prefix": "BC250_test"
|
|
}
|
|
}
|
|
}'
|
|
|
|
echo "Queueing prompt..."
|
|
RESULT=$(curl -s -X POST http://localhost:8188/prompt \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"prompt\": $PROMPT}")
|
|
echo "Result: $RESULT"
|
|
PROMPT_ID=$(echo "$RESULT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('prompt_id','FAILED'))" 2>/dev/null)
|
|
echo "Prompt ID: $PROMPT_ID"
|
|
|
|
# Monitor progress
|
|
echo "Monitoring..."
|
|
for i in $(seq 1 120); do
|
|
sleep 5
|
|
STATUS=$(curl -s http://localhost:8188/queue)
|
|
RUNNING=$(echo "$STATUS" | python3 -c "import json,sys; d=json.load(sys.stdin); print(len(d.get('queue_running',[])))" 2>/dev/null)
|
|
PENDING=$(echo "$STATUS" | python3 -c "import json,sys; d=json.load(sys.stdin); print(len(d.get('queue_pending',[])))" 2>/dev/null)
|
|
echo "t+$((i*5))s: running=$RUNNING pending=$PENDING"
|
|
|
|
if [ "$RUNNING" = "0" ] && [ "$PENDING" = "0" ]; then
|
|
echo "DONE! Queue empty."
|
|
# Check if image was saved
|
|
ls -la /home/fabian/ComfyUI/output/BC250_test* 2>/dev/null | tail -5
|
|
break
|
|
fi
|
|
done
|