Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- expo 버전 오류
- langgraph
- 랭체인 툴
- expo 안드로이드
- jotai
- langchain tools
- 이미지처리
- 리액트 네이티브 오류
- 크로마DB
- 자바공부
- expo go 오류
- 스프링 공부
- react
- 리액트 네이티브
- expo 51 오류
- 네스트시큐리티
- AI
- comfyui
- 타입스크립트상태관리
- vllmmcp
- nestjs시큐리티
- 상태관리
- VectorDB
- expo 아이폰
- expo 51 버전
- rnn gnsfus
- expo 아이폰 오류
- langchain react agent
- langgraph mcp
- langchain
Archives
- Today
- Total
영리의 테크블로그
AI 이미지 생성 프로젝트 ( AI Seller ) - [1] / ComfyUI 본문
프로젝트 GitHub
https://github.com/YoonJae00/AI-IMGREMOVE
저번에 하였던 광고 모델 생성 프로젝트는 FastAPI와 React를 사용하였음. FastAPI를 선택한 이유는 다음과 같음:
- Mediapipe로 모델을 불러와서 읽는 역할이 파이썬 라이브러리임.
- 이 모델을 FastAPI로 바로 구현하기 위해서 사용함.
ComfyUI와 Node.js(Express) 사용
하지만 ComfyUI는 /generate
엔드포인트에 Prompt를 들고 요청하면 자동으로 돌아가기 때문에 굳이 FastAPI를 쓸 필요가 없다고 느껴, 가볍고 JS 문법을 활용한 Node.js(Express)를 사용해 보기로 함.
(바로 ComfyUI로 통신할까라는 생각도 했지만, 추후 시큐리티 적용과 DB 적용을 위해 따로 백엔드 서버를 두었음.)
엔드포인트 설정
먼저 Front에서 요청 보낼 엔드포인트를 뚫어주었음.
app.post('/uploads', upload.array('photos', 10), async (req, res) => {
try {
console.log('업로드된 파일들:');
req.files.forEach((file, index) => {
console.log(`파일 ${index + 1}:`, file.originalname);
});
// 생략....
} catch (error) {
console.error('오류 발생:', error);
if (!res.headersSent) {
res.status(500).send('파일 처리 중 오류가 발생했습니다.');
}
}
});
엔드포인트를 뚫으면서 발생한 에러 상황
- 최대 10개까지 한 번에 요청할 수 있게 만들었는데, 엔드포인트로 10개를 한 번에 보내야 할까, 1개씩 10번을 보내야 할까?
- Node.js 서버와 ComfyUI 서버의 통신 과정 문제.
해결 과정
- 1개씩 10번 보내면 UX 상 진행도를 볼 수 있어서 추진하려 했으나, HTTP 요청이 10번이면 서버에 부담이 갈 위험이 있어 10개를 한 번에 보내는 쪽으로 구현함.
- Node.js에서 이미지를 먼저 ComfyUI로 업로드해야 함.
- 반복문을 돌려서:
/upload
엔드포인트로 이미지 전송.- ComfyUI의 Prompt의 이미지 filename을 이미지의 filename으로 변경.
- ComfyUI
/generate
엔드포인트로 요청. - temp 파일에 저장.
- 반복문을 전부 다 돌리면 zip 파일로 압축.
- 반복문을 돌려서:
여기까지는 문제점이 없었음.
하지만 3 -> 4 과정에서 이미지 생성 시간이 보통 4~6초 정도 걸리는데, ComfyUI에서 이미지 주소값만 먼저 반환하여 이미지가 생성이 안 되었는데 리턴 파일을 받으려는 오류가 발생함.
해결 방법
Ping 기법을 사용하여 1초마다 ComfyUI에 이미지가 생성되었는지 요청하고, 전부 만들어졌으면 temp 파일로 집어넣는 과정으로 구현함.
결론
초안 개발이 완료되었으므로 쇼핑몰 운영하던 지인들의 단톡방에 먼저 공유 후 피드백을 받을 예정임.
'dev > AISeller' 카테고리의 다른 글
AI 이미지 생성 프로젝트 ( AI Seller ) - [3] / 업데이트 부분 정리 (0) | 2024.11.06 |
---|---|
AI 이미지 생성 프로젝트 ( AI Seller ) - [2] / ComfyUI (0) | 2024.10.10 |
AI 이미지 생성 프로젝트 ( AI Seller ) - [0] / ComfyUI (2) | 2024.10.06 |