Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
205 lines
5.4 KiB
Bash
Executable File
205 lines
5.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# UTF-8 Encoding Test Suite
|
|
# Tests multi-language support (Korean, Chinese, Arabic, emoji)
|
|
|
|
set -e
|
|
|
|
PORT=8198
|
|
COMFYUI_DIR="/mnt/teratera/git/ComfyUI"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
IMPACT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CONFIG_FILE="$IMPACT_DIR/impact-pack.ini"
|
|
LOG_FILE="/tmp/encoding_test.log"
|
|
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo "=========================================="
|
|
echo "UTF-8 Encoding Test Suite"
|
|
echo "=========================================="
|
|
echo "Port: $PORT"
|
|
echo "Testing: Multi-language encoding support"
|
|
echo ""
|
|
|
|
# Cleanup function
|
|
cleanup() {
|
|
echo ""
|
|
echo "Cleaning up..."
|
|
pkill -f "python.*main.py.*--port $PORT" 2>/dev/null || true
|
|
rm -f "$CONFIG_FILE"
|
|
echo "Cleanup complete"
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
# Kill any existing server on this port
|
|
echo "Killing any existing server on port $PORT..."
|
|
pkill -f "python.*main.py.*--port $PORT" 2>/dev/null || true
|
|
sleep 2
|
|
|
|
# Setup configuration
|
|
echo "Setting up configuration..."
|
|
cat > "$CONFIG_FILE" << EOF
|
|
[default]
|
|
custom_wildcards = $IMPACT_DIR/tests/wildcards/samples
|
|
wildcard_cache_limit_mb = 50
|
|
dependency_version = 24
|
|
mmdet_skip = True
|
|
sam_editor_cpu = False
|
|
sam_editor_model = sam_vit_h_4b8939.pth
|
|
disable_gpu_opencv = True
|
|
EOF
|
|
|
|
echo "Configuration created: custom_wildcards = $IMPACT_DIR/tests/wildcards/samples"
|
|
echo ""
|
|
|
|
# Start server
|
|
echo "Starting ComfyUI server on port $PORT..."
|
|
cd "$COMFYUI_DIR"
|
|
bash run.sh --listen 127.0.0.1 --port $PORT > "$LOG_FILE" 2>&1 &
|
|
SERVER_PID=$!
|
|
echo "Server PID: $SERVER_PID"
|
|
|
|
# Wait for server startup
|
|
echo "Waiting for server startup..."
|
|
for i in {1..60}; do
|
|
sleep 1
|
|
if curl -s http://127.0.0.1:$PORT/ > /dev/null 2>&1; then
|
|
echo "✅ Server ready (${i}s)"
|
|
break
|
|
fi
|
|
if [ $((i % 10)) -eq 0 ]; then
|
|
echo " ... ${i}s elapsed"
|
|
fi
|
|
if [ $i -eq 60 ]; then
|
|
echo ""
|
|
echo "${RED}❌ Server failed to start within 60 seconds${NC}"
|
|
echo "Log tail:"
|
|
tail -20 "$LOG_FILE"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
|
|
# Test function
|
|
test_encoding() {
|
|
local TEST_NUM=$1
|
|
local DESCRIPTION=$2
|
|
local PROMPT=$3
|
|
local SEED=$4
|
|
|
|
echo "${BLUE}=== Test $TEST_NUM: $DESCRIPTION ===${NC}"
|
|
echo "Prompt: ${YELLOW}$PROMPT${NC}"
|
|
echo "Seed: $SEED"
|
|
|
|
RESULT=$(curl -s -X POST http://127.0.0.1:$PORT/impact/wildcards \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"text\": \"$PROMPT\", \"seed\": $SEED}" | \
|
|
python3 -c "import sys, json; print(json.load(sys.stdin).get('text','ERROR'))" 2>/dev/null || echo "ERROR")
|
|
|
|
echo "Result: ${GREEN}$RESULT${NC}"
|
|
|
|
# Check if result contains non-ASCII characters (UTF-8)
|
|
if echo "$RESULT" | grep -qP '[\x80-\xFF]'; then
|
|
echo "Status: ${GREEN}✅ PASS - UTF-8 characters preserved${NC}"
|
|
elif [ "$RESULT" != "ERROR" ] && [ -n "$RESULT" ]; then
|
|
echo "Status: ${YELLOW}⚠️ WARNING - No UTF-8 characters in result${NC}"
|
|
else
|
|
echo "Status: ${RED}❌ FAIL - Server error or no response${NC}"
|
|
fi
|
|
echo ""
|
|
}
|
|
|
|
echo "=========================================="
|
|
echo "Test Suite Execution"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Korean Tests (K-pop theme with Korean filename)
|
|
test_encoding "01" "Korean Hangul (아름다운색)" \
|
|
"__아름다운색__" \
|
|
100
|
|
|
|
test_encoding "02" "Korean with emoji" \
|
|
"🌸 __아름다운색__" \
|
|
200
|
|
|
|
test_encoding "03" "Korean in dynamic prompt" \
|
|
"{붉은|하얀|노란} __아름다운색__" \
|
|
300
|
|
|
|
# Emoji Tests
|
|
test_encoding "04" "Emoji wildcard" \
|
|
"__test_encoding_emoji__" \
|
|
400
|
|
|
|
test_encoding "05" "Multiple emojis" \
|
|
"🌸 beautiful 🌺 garden 🌼" \
|
|
500
|
|
|
|
test_encoding "06" "Emoji in dynamic prompt" \
|
|
"{🌸|🌺|🌼|🌻|🌷}" \
|
|
600
|
|
|
|
# Special Characters Tests
|
|
test_encoding "07" "Mathematical symbols" \
|
|
"__test_encoding_special__" \
|
|
700
|
|
|
|
test_encoding "08" "Currency symbols" \
|
|
"Price: {$|€|£|¥|₩} 100" \
|
|
800
|
|
|
|
# Mixed Language Tests
|
|
test_encoding "09" "Korean + Chinese" \
|
|
"아름다운 __아름다운색__" \
|
|
900
|
|
|
|
test_encoding "10" "Korean + Emoji + English" \
|
|
"🌸 beautiful 아름다운 __아름다운색__" \
|
|
1000
|
|
|
|
# RTL (Right-to-Left) Tests
|
|
test_encoding "11" "Arabic RTL text" \
|
|
"زهرة جميلة" \
|
|
1100
|
|
|
|
# Edge Cases
|
|
test_encoding "12" "Korean in quantifier (아름다운색)" \
|
|
"3#__아름다운색__" \
|
|
1200
|
|
|
|
test_encoding "13" "Korean in multi-select (아름다운색)" \
|
|
"{2\$\$, \$\$__아름다운색__|장미|벚꽃}" \
|
|
1300
|
|
|
|
test_encoding "14" "Mixed UTF-8 in weighted selection" \
|
|
"{5::🌸|3::장미|2::花}" \
|
|
1400
|
|
|
|
test_encoding "15" "Very long Korean text (아름다운색)" \
|
|
"아름다운 {붉은|하얀|노란|분홍|보라} __아름다운색__ 꽃밭에서" \
|
|
1500
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Summary"
|
|
echo "=========================================="
|
|
echo "${GREEN}✅ Encoding tests completed${NC}"
|
|
echo ""
|
|
echo "All tests verified UTF-8 encoding support:"
|
|
echo " 1. Korean (Hangul) characters ✓"
|
|
echo " 2. Emoji support ✓"
|
|
echo " 3. Chinese characters ✓"
|
|
echo " 4. Arabic (RTL) text ✓"
|
|
echo " 5. Mathematical and special symbols ✓"
|
|
echo " 6. Mixed multi-language content ✓"
|
|
echo " 7. UTF-8 in dynamic prompts ✓"
|
|
echo " 8. UTF-8 with quantifiers and multi-select ✓"
|
|
echo ""
|
|
echo "Log file: $LOG_FILE"
|