Gemini API 무료등급의 벽을 깔끔하게는 못 넘었지만, Claude랑 짱친 되어가는 중

소개

gemini api 를 받아와서 claude가 이미지를 생성하도록 하는 일을 시도했지만 반만 성공하고 반은 실패. gemini api 무료등급에는 국가제한으로 추정되는 limit 0의 저주가 걸려있다는 것 같은데, 유료모델로 결제를 붙이는 등의 시도를 했지만 깔끔하게 해소되지는 않고 있다. 그러나 이 과정에서 다양한 개념과 용어를 이해해나가고 있고 claude랑 같이 이슈를 파악하고 디버깅도 해가면서, 결정적으로 이 모든 시행착오를 꼼꼼하게 '워크로그'로 만드는 스킬을 만들어두었더니 아주 집요하게 작성된 일기장이 생겼음!

진행 방법

VS Code에 Claude를 연결해서 씨름 중!

결과와 배운 점

종일 씨름하느라 체력이 후달려서 전체적인 삽질의 과정은 워크로그 복붙으로 대신합니당. 갱장히 작고 소중한 배움 한 가지만 덧붙여보자면: api key를 알려달라길래 알려달라는대로 알려주었더니, 대뜸 대화창에 직접 쳐넣으면 보안이 허술해진다고 지적. 자기가 해달래서 한건데도 좀 어이가 없었지만 그럼 더 나은 방법을 알려달라고 했더니, 터미널에서 보다 안전하게 보관하고 호출하는 법을 알려주어서 그대로 따라했더니 챡챡챡 되어서 신기방기. 다른 스킬들에도 업데이트해달라는 거나, 다른 프로젝트와 섞이지 않게 이 폴더 내부에서만 호출하는 구조를 짜달라고 하는 것도 척척.

모르는 것 투성이지만 넘모 재밌어요! 뭐가 나올진 모르겠지만 일단 마구잡이로 해보자고!

오늘의 워크 로그

# 2026-03-22 (일)

## 오늘 한 일

- Gemini API 이미지 편집 성공 (소요: ~2시간)
  - tinkerbell.png → tinkerbell-waltz.png 편집 완료 (흰 드레스 + 왈츠 포즈)
  - 최종 사용 모델: `gemini-2.5-flash-image`
- Gemini API 키 환경변수 설정
  - 초기에 `~/.env` + `~/.zshrc` 전역 설정으로 잘못 구성 → `~/dev/ShorFormDramaEx/.env` 프로젝트 로컬 설정으로 수정
  - `~/.zshrc`에 `chpwd` 훅 추가 → `ShorFormDramaEx` 폴더 진입 시 `.env` 자동 로드
- nano-banana 스킬 업데이트
  - 기본 모델 변경: `gemini-3.1-flash-image-preview` → `gemini-2.5-flash-image` (edit.py, multi_ref.py, multi_turn.py)
  - edit.py에 `--thinking-level` 옵션 추가 (`minimal` / `High`)
  - 3개 파일에 `_load_dotenv()` 추가 — 프로젝트 루트 `.env`에서 GEMINI_API_KEY 자동 로드
  - SKILL.md 전면 업데이트 (API별 구분, 환경변수, 의존성 정리)
- Gemini 이미지 생성 모델 3종 학습 (공식 문서 기반)
  - `gemini-2.5-flash-image`, `gemini-3.1-flash-image-preview`, `gemini-3-pro-image-preview`

## 이슈 / 블로커

### 1. Gemini 이미지 생성 API `limit: 0` 문제
- **증상**: 모든 이미지 생성 모델(`gemini-2.5-flash-image`, `gemini-3.1-flash-image-preview`)에서 429 RESOURCE_EXHAUSTED, `limit: 0`
- **원인**: 무료 티어에서 이미지 생성 모델의 할당량 자체가 0으로 설정됨. 같은 프로젝트 내 키 재발급은 할당량을 공유하므로 의미 없음 (할당량은 프로젝트 단위)
- **해결**: 새 Google Cloud 프로젝트 생성 후 해당 프로젝트에서 API 키 발급 → 정상 동작 확인

### 2. edit.py 실행 시 4분 이상 비정상적 지연
- **증상**: edit.py를 background로 실행했을 때 4분 이상 응답 없이 대기
- **원인**: edit.py의 retry 로직 (MAX_RETRIES=3, RETRY_DELAY=2초)에서 API 호출이 `'NoneType' object is not iterable` 에러로 실패 → 3회 반복 재시도 → 각 API 호출 자체가 오래 걸림 (이미지 모델 특성상 응답 시간이 김)
- **해결**: foreground 실행으로 에러 메시지 즉시 확인. `gemini-2.5-flash-image` 모델로 변경 + `PIL.Image.open()`으로 이미지 전달 방식 수정 후 정상 동작

### 3. `google-generativeai` 패키지 deprecated
- **증상**: `response_modalities` 파라미터 미지원 에러
- **해결**: `google-genai` 패키지로 교체 (`pip3 install google-genai`)

## 추가 시도 (오후)

- 팅커벨 왈츠 동작 3장 연속 이미지 생성 재시도 (`multi_ref.py`, `gemini-2.5-flash-image`)
  - → limit 0 재발. 새 API 키도 동일 증상
- Veo 영상 생성 시도 (`veo-2.0-generate-001`) → limit 0
- TTS 테스트 (`gemini-2.5-flash-preview-tts`) → **성공** (`output/test_tts.wav` 생성)
- 이미지 생성 해결 방향 검토
  - 옵션 1: Gemini 유료 전환 (결제 정보 등록 → limit 0 해제)
  - 옵션 2: fal.ai 무료 크레딧으로 시작 (스크립트 이미 준비됨, `FAL_KEY`만 필요)

## 내일 할 일

- Gemini 유료 전환 또는 fal.ai 중 선택 후 왈츠 이미지 3장 생성

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요