ChatGPT 웹 이미지 기능을 OpenAI 호환 API로 역분석해 Docker로 자가호스팅 가능한 이미지·
ChatGPT 웹의 이미지 생성·편집 인터페이스를 OpenAI 호환 API로 역구현해 다계정 풀, 온라인 편집 툴, Docker 기반 자가호스팅을 지원하는 프로젝트이다.
TL;DR
ChatGPT2API는 ChatGPT 공식 웹에서 관찰한 이미지 생성 및 편집 호출을 역분석해 OpenAI 호환 API로 매핑하는 자가호스팅 애플리케이션으로, Docker 기반으로 빠르게 배포해 로컬에서 이미지 생성·편집·다중 이미지 워크플로를 운영할 수 있다. 내부적으로는 계정 풀에서 유효 계정을 선택해 요청을 라우팅하고 결과를 OpenAI 스타일 JSON으로 변환하며, Cloudflare 차단 대응을 위해 WARP/Privoxy/FlareSolverr 같은 안정화 프록시 스택을 옵션으로 제공한다. 저장 백엔드로 JSON, SQLite, PostgreSQL, Git을 선택할 수 있고 프론트엔드는 Bun 기반 개발 서버와 연동되며, 비상업적 연구·테스트 목적을 전제로 계정 차단 위험과 서비스 약관 위반 가능성에 대한 주의가 README에 명확히 기재되어 있다.
주요 기능
- OpenAI 호환 엔드포인트를 노출해 POST /v1/images/generations 및 POST /v1/images/edits 같은 이미지 생성·편집 API 호출을 처리하고, chat/completions 및 responses API 호환 경로를 통해 텍스트와 이미지 혼합 시나리오를 지원한다. 이 구현은 gpt-image-2와 codex-gpt-image-2 모델 별칭을 통해 모델 선택을 노출한다. 다중 생성을 위한 n 파라미터와 b64_json 응답 포맷 등 공식 API와 유사한 입력·출력 규격을 유지한다.
- 웹 기반 온라인 그림판과 편집 워크플로를 내장해 참조 이미지 업로드, 다중 이미지 생성 인터랙션, 세션 기반 이미지 이력 저장과 재조회 기능을 제공한다. 프론트엔드는 Bun 환경에서 개발되며 로컬에서 개발 서버로 실행 가능하다. 이미지 생성 과정에서 서버측 캐시, 진행도 추적, 타임아웃 후 재대기 같은 사용자 경험 개선 로직을 포함한다.
- 계정 풀 관리 기능을 포함해 여러 계정의 메일·타입·잔액·복구 시간 정보를 자동 갱신·검사하며 사용 가능한 계정을 라운드로빈 방식으로 이미지 요청에 할당한다. 토큰 오류가 발생하면 자동으로 무효 계정을 제거하고 비정상 계정은 재로그인이나 비밀번호 재입력으로 복구를 시도할 수 있다. CPA JSON, 원격 CPA 서버, sub2api, access_token 등 네 가지 계정 도입 경로를 지원해 대규모 계정 수급 시나리오를 수용한다.
- 프록시 및 안정화 스택(WARP, Privoxy, FlareSolverr)을 옵션으로 제공해 Cloudflare 차단 문제를 완화하고 안정적으로 이미지 체인을 운영할 수 있게 구성한다. README의 docker-compose.warp.yml로 별도 스택을 빌드해 WARP SOCKS5를 HTTP 프록시로 변환하고 FlareSolverr가 클리어런스 토큰을 갱신하는 흐름을 만든다. 이 구성은 이미지 다운로드와 외부 요청 안정성을 높이는 목적이다.
어떻게 동작하는가
프로젝트는 ChatGPT 공식 웹 인터페이스에서 관찰한 요청 패턴과 엔드포인트를 역분석해 이를 OpenAI 호환 REST API로 매핑하는 프록시 역할을 수행한다. 내부적으로는 계정 풀에서 유효한 자격증명을 선택해 실제 상위 서비스에 요청을 전달하고, 응답을 OpenAI 스타일의 JSON 형식으로 변환해 클라이언트에 반환한다. 선택적 프록시 스택과 스토리지 백엔드 전환 기능은 네트워크 차단과 데이터 영속성 요구에 대응하기 위해 설계되었다.
해결 문제
공식 웹 환경에서 제공하는 이미지 생성·편집 기능을 API 형태로 외부에서 호출할 방법이 제한적일 때 이를 OpenAI 호환 API로 대체해 로컬 또는 자체 인프라에서 이미지 워크플로를 자동화할 수 있게 한다. 프로젝트는 다계정 풀과 안정화 프록시를 결합해 대량 이미지 생성 시 계정 관리와 Cloudflare 차단 문제를 동시에 해결하려는 요구를 충족한다. 또한 편집 가능한 PPT 및 PSD 파일 생성 등 특정 출력 포맷을 직접 생성해야 하는 파이프라인을 단일 서비스로 통합한다.
차별점
- 공식 웹 요청 패턴을 역분석한 결과물을 OpenAI 호환 API로 노출해 기존 OpenAI 클라이언트를 최소 변경으로 연동할 수 있게 만든 점이다.
- 계정 풀과 CPA/sub2api 등 다양한 계정 도입 경로를 결합해 대량 계정 운영과 자동 새로고침을 지원하는 점이다.
- WARP+Privoxy+FlareSolverr 같은 안정화 프록시 스택을 Docker Compose로 포함해 Cloudflare 관련 실패율을 낮추는 운영 측면의 도구 체인이 통합되어 있다는 점이다.
사용 사례
- 자가 호스팅 환경에서 ChatGPT 웹 기반의 이미지 생성·편집 기능을 API로 노출해 내부 툴이나 클라이언트 앱에서 이미지 생성 파이프라인을 통합할 때 유용하다. 이 방식은 공식 API 접근성이나 요금 정책에 제약이 있는 환경에서 자체 제어가 필요한 워크플로에 적합하다. 계정 풀과 프록시 구성을 통해 단회성이 아닌 반복적 대량 작업에도 적응할 수 있다.
- 테스트 환경이나 연구 목적으로 공식 웹의 동작을 로컬에서 재현해 프롬프트·응답 포맷 실험을 수행하려는 경우 효율적이다. 온라인 편집 도구와 세션 기반 이력으로 생성·편집 결과를 반복해서 비교·분석할 수 있다. 저장 백엔드를 sqlite/postgres/git 등으로 전환해 결과를 장기 보관하거나 협업 기반으로 공유할 수 있다.
- Cloudflare 차단 등 네트워크 제약이 있는 환경에서 안정적인 이미지 체인을 구축해야 할 때 WARP/FlareSolverr 옵션을 통해 차단 우회와 안정화 테스트를 병행할 수 있다. 이 경우 프록시 스택이 이미지 다운로드 성공률을 개선하는 데 직접적인 역할을 한다. 계정 자동화와 병행하면 외부 서비스 접근이 불안정한 환경에서도 작업을 지속할 수 있다.
시작하기
가장 빠른 실행 경로는 리포지토리를 클론한 뒤 Docker Compose로 스택을 띄우는 것이다. 실행 전에 config.json에서 auth-key를 설정하거나 docker-compose.yml에서 CHATGPT2API_AUTH_KEY 환경 변수를 통해 값을 덮어쓸 수 있다. 로컬 개발을 위해서는 백엔드를 uv run main.py로 실행하고 프론트엔드는 web 디렉터리에서 bun install 및 bun run dev로 기동하면 된다.
요구사항
- Docker 및 Docker Compose가 설치되어 있어야 하며 기본 배포는 Compose 기반으로 실행된다.
- 로컬 개발 시 Python 런타임과 프로젝트가 요구하는 파이썬 의존성이 필요하며 프론트엔드는 Bun 런타임 환경이 필요하다.
- 외부 스토리지를 사용하려면 PostgreSQL 등 외부 DB 접속 정보(DATABASE_URL) 구성이나 Git 리포지토리 접근 토큰이 필요하다.
5.1k
Stars
1.4k
Forks
+209
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.