ComfyUI는 Stable Diffusion을 기반으로 한 강력한 이미지 생성 도구입니다. 이 글에서는 ComfyUI를 활용하여 실시간으로 이미지를 생성하는 시스템을 구축하는 방법을 상세히 알아보겠습니다. 이 시스템은 웹 인터페이스를 통해 사용자 입력을 받아 즉시 이미지를 생성하고 표시할 수 있습니다.
실시간 이미지 생성 시스템은 다음과 같은 구성 요소로 이루어집니다:
ComfyUI 리포지토리를 클론합니다:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI
필요한 의존성을 설치합니다:
pip install -r requirements.txt
원하는 Stable Diffusion 모델을 'models/checkpoints' 폴더에 다운로드합니다.
ComfyUI를 API 모드로 실행합니다:
python main.py --listen
Flask와 필요한 라이브러리를 설치합니다:
pip install flask requests
Flask 애플리케이션 코드 예시:
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
@app.route('/generate', methods=['POST'])
def generate_image():
prompt = request.json['prompt']
comfy_response = requests.post('http://127.0.0.1:8188/prompt', json={
"prompt": {
"3": {
"inputs": {
"text": prompt,
"clip": ["4", 0]
},
"class_type": "CLIPTextEncode"
},
"4": {
"inputs": {
"ckpt_name": "v1-5-pruned.ckpt"
},
"class_type": "CheckpointLoaderSimple"
}
// ... 추가 설정
}
})
return jsonify({'image_url': comfy_response.json()['url']})
if __name__ == '__main__':
app.run(debug=True)
기본적인 프론트엔드 구현 예시:
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>실시간 이미지 생성</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>실시간 이미지 생성</h1>
<input type="text" id="prompt" placeholder="프롬프트를 입력하세요">
<button onclick="generateImage()">이미지 생성</button>
<div id="result"></div>
<script>
function generateImage() {
var prompt = $('#prompt').val();
$.ajax({
url: '/generate',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({prompt: prompt}),
success: function(response) {
$('#result').html('<img src="' + response.image_url + '">');
}
});
}
</script>
</body>
</html>
자주 요청되는 프롬프트에 대한 결과를 캐싱하여 응답 시간을 단축할 수 있습니다. Redis와 같은 인메모리 데이터베이스를 사용하여 구현할 수 있습니다.
여러 ComfyUI 인스턴스를 실행하고 Nginx와 같은 로드 밸런서를 사용하여 요청을 분산시킬 수 있습니다. 이를 통해 시스템의 처리량을 늘릴 수 있습니다.
이미지 생성 작업을 비동기적으로 처리하고, 웹소켓을 사용하여 실시간으로 진행 상황을 클라이언트에 전달할 수 있습니다.
ComfyUI를 활용한 실시간 이미지 생성 시스템은 다양한 창의적 애플리케이션에 활용될 수 있는 강력한 도구입니다. 이 시스템을 구축함으로써, 사용자의 아이디어를 즉각적으로 시각화하고, 창의적 과정을 가속화할 수 있습니다. 지속적인 최적화와 보안 강화를 통해, 더욱 효율적이고 안전한 시스템으로 발전시킬 수 있을 것입니다.