
    i                        d Z ddlmZ ddlZddlZddlmZ ddlZddlm	Z	 ej                  j                  d e ee      j                               ddlZdZdZdZd	Ze	d
z  ZdZddZedk(  r e        yy)u   Meta 광고 A그룹 A4 슬라이드 배경 이미지 생성.

포토리얼리스틱 사무실/카페 인테리어 배경 (밝은 크림~웜 베이지 톤).
CSS 단색 금지 QC 조건 충족을 위한 실제 공간 사진 느낌의 배경.
    )annotationsN)Path)WORKSPACE_ROOTz0https://generativelanguage.googleapis.com/v1betazgemini-3-pro-image-previewzgemini-3.1-flash-image-previewz3https://www.googleapis.com/auth/generative-languagez6output/meta-ads/a-group-v6/production/_bg_a4_proof.jpgu  A bright warm-toned modern office meeting room interior. Natural sunlight streaming through large floor-to-ceiling windows, casting soft volumetric light rays and warm dappled shadows across the scene. Smooth warm cream-colored walls. Beautiful natural oak wooden conference table surface in the foreground, with soft bokeh background. Minimalist Scandinavian-inspired interior design. Warm beige and cream color palette throughout. Subtle warm lens flare from sunlight. Soft diffused shadows from window frames. Indoor plants in the background (blurred). No people, no text, no logos, no icons, no graphic overlays. Shot on Hasselblad H6D-100c, 35mm lens, f/2.8. Professional architectural interior photography. Photorealistic, ultra high detail, 1080x1080 square format. Color tone: warm ivory, cream, natural oak, soft golden light. NOT a flat illustration, NOT CSS gradient, NOT stock photo clipart — real photographic quality.c                    t        d       t        dt                t        dt                t        dt        t               d       t        d       t        j                  t              } t        dt        |        d       t         d	t         d
}d|  dd}ddt        igigddgddd}t        d       t        j                  |||d      }|j                  dv rHt        d|j                   dt                t         d	t         d
}t        j                  |||d      }|j                          |j                         }|j                  dg       }|st!        dt#        |      d d        |d   j                  di       j                  dg       }t%        d  |D        d       }	|	5|D 
cg c]  }
d|
v s|
j                  dd!       }}
t!        d"|d d#        |	d$   j                  d%d&      }t'        j(                  |	d$   d'         }t        j*                  j-                  d(d()       t        j/                  |       t        j1                         j2                  }t        d*       t        d+t                t        d,|d-d.|d/z   d0       t        d1|        t        d2       t        d3       t        d4       t        d5       t        d6|d7kD  rd8nd9        y c c}
w ):Nu*   [A4 배경] Gemini 이미지 생성 시작u
     모델: u
     출력: u     프롬프트 길이: z charsu!   
[인증] SA 토큰 획득 중...u   [인증] 토큰 획득 완료 (z chars)z/models/z:generateContentzBearer zapplication/json)AuthorizationzContent-TypepartstextIMAGETEXTg      ?)responseModalitiestemperature)contentsgenerationConfigu2   
[API] 요청 전송 중... (최대 120초 대기)x   )headersjsontimeout)i  i  u%   [API] Pro 모델 접근 실패 (HTTP z). Fallback: 
candidatesu   응답에 candidates 없음: i,  r   contentc              3  *   K   | ]  }d |v s|  yw)
inlineDataN ).0ps     S/home/jay/workspace/.worktrees/task-2116-dev1/tools/ai-image-gen/gen_bg_a4_proof.py	<genexpr>zgenerate.<locals>.<genexpr>\   s     =Q<1+<q=s   	 u.   이미지 데이터 없음. 텍스트 응답:    r   mimeTypez
image/jpegdataT)parentsexist_oku"   
[완료] 이미지 저장 성공!u
     경로: u
     크기: ,z bytes (i   z KB)z  MIME: u   
품질 체크:u&     포토리얼: YES (Gemini AI 생성)u5     밝은 톤: YES (크림/웜 베이지 프롬프트)u(     텍스트 없음: YES (no text 지시)u     파일 크기 >100KB: i YESu   WARN - 재확인 필요)printMODEL_IDOUTPUT_PATHlenPROMPTgcloud_authget_service_account_tokenGEMINI_SCOPEGEMINI_API_BASErequestspoststatus_codeFALLBACK_MODEL_IDraise_for_statusr   getRuntimeErrorstrnextbase64	b64decodeparentmkdirwrite_bytesstatst_size)tokenurlr   payloadresponseurl_fallbackr    r   r   
image_partr   
text_parts	mime_typeimage_bytes	file_sizes                  r   generaterH   1   s   	68	Jxj
!"	J{m
$%	#CK=
78 

./11,?E	+CJ<w
?@ XhZ/?
@C"5'**G
  0123#*F"3
G 
?A}}S'MH z)5h6J6J5K=YjXklm)*(3D2EEUV==wWVYZ==?D ,+J:3t9Tc?:KLMMqMi,00"=E=%=tDJ16FA&A+aeeFB'F
FKJWYXYNK[\]]<(,,ZFI"":l#;F#CDK TD9K(  "**I	/1	J{m
$%	Jym8I,=+>d
CD	HYK
 !		24	AC	46	$i'.AUG`$a
bc' Gs   :	K2K2__main__)returnNone)__doc__
__future__r   r7   syspathlibr   r.   
gen_configr   pathinsertr5   __file__r9   r*   r-   r&   r1   r,   r'   r)   rH   __name__r       r   <module>rV      s    #  
   % 3tH~,,- . D'4 DWW! ,AdH zJ rU   