stable diffusion 병목 지점 식별 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki
병목 요소 식별
단계 | 설명 | 병목 원인 | 영향 |
---|---|---|---|
① 입력 이미지 로딩 및 base64 변환 | GCS → 이미지 로컬 로딩 → base64 인코딩 | - 고해상도 이미지 I/O- CPU 연산 기반 인코딩 | 초기 요청 준비 시간 증가 |
② Gemini 프롬프트 생성 | 텍스트 프롬프트 생성 (Gemini API 호출) | API 응답 지연 (네트워크/API 지연) | 전체 처리 시간에 비례 영향 |
③ Stable Diffusion 서버 요청 (POST) | GPU 서버로 스타일 변환 요청 | 네트워크 RTT + JSON payload 전송 시간 | T4 서버 외부 요청 시 병목 발생 가능 |
④ Stable Diffusion 연산 (실제 생성) | GPU에서 이미지 변환 | 모델 크기, ControlNet 모듈 수, 해상도 | 전체 시간의 대부분 |
⑤ base64 응답 디코딩 및 저장 | 응답 이미지 base64 → 디코딩, 저장, GCS 업로드 | CPU 연산 + I/O 지연 | 마지막 단계 지연 가능 |