
    (<i                        d Z ddlmZ ddl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e
dz  ZdZdZd	Zd
ZddZddZedk(  r e        yy)u   Meta 캐러셀 광고 A-2 배경 이미지 재생성 (QC 개선판).

"문제 진단" 슬라이드용 배경: 비 오는 밤 빈 사무실에 혼자 앉아있는 뒷모습 실루엣.
감정: 분노, 좌절, 고립감 / 톤: 어두운 네이비/차콜
    )annotationsN)Path)WORKSPACE_ROOTz8output/meta-ads/a-group-v6/production/_bg_a2_problem.pngu  A lone person sitting at a desk in a dark empty office at night, seen entirely from behind as a dark silhouette, cold harsh fluorescent ceiling light casting sharp shadows downward, heavy rain streaking down floor-to-ceiling window glass, city lights blurred through rain-covered glass in background, papers and documents scattered on the desk, single monitor glowing with cold blue-white light behind the person, completely empty abandoned office — all other desks empty and dark, claustrophobic and oppressive atmosphere, cinematic wide shot, rule of thirds composition, deep navy-charcoal color palette (#0F1220 to #1E2840), cold blue-grey tones, zero warm colors, film noir lighting, Arri Alexa cinematic grade, photorealistic photography, f/2.8 shallow depth of field, 1080x1080 square format, no visible face, no text, no logos, no icons, no graphics, mood: isolation, despair, exhaustion, lonelinesszgemini-3-pro-image-previewzgemini-3.1-flash-image-previewz0https://generativelanguage.googleapis.com/v1betac                    t        d       t        j                         } 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
         d       t        j                         }t        j                  |||d      }|j                  dv rHt        d|j                   dt                t         dt         d}t        j                  |||d      }|j                  s8t        d|j                   d|j                  dd         |j                          t        j                         |z
  }|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.                  j1                  d'd'(       t,        j3                  |       t,        j5                         j6                  }t        d)t,                t        d*|d+d,|d-z  d.d/       t        d0|d.d1       t        d2|        yc c}w )3uF   Gemini API로 배경 이미지를 생성하고 PNG로 저장합니다.u(   [배경] Gemini API 토큰 획득 중...u   [배경] 토큰 획득 완료 (z chars)z/models/z:generateContentzBearer zapplication/json)AuthorizationzContent-TypepartstextIMAGETEXTg      ?)responseModalitiestemperature)contentsgenerationConfigu1   [배경] 이미지 생성 요청 중... (모델: )i,  )headersjsontimeout)i  i  u$   [배경] 모델 접근 불가 (HTTP z). Fallback: u   [오류] HTTP z: Ni  
candidatesu   candidates 없음: r   contentc              3  *   K   | ]  }d |v s|  yw)
inlineDataN ).0ps     X/home/jay/workspace/.worktrees/task-2057-dev2/tools/ai-image-gen/gen_bg_a2_problem_v2.py	<genexpr>z&generate_background.<locals>.<genexpr>e   s     =Q<1+<q=s   	 u.   이미지 데이터 없음. 텍스트 응답:    r   mimeTypez	image/pngdataT)parentsexist_oku   [배경] 완료: u   [배경] 파일 크기: ,z bytes (i   z.1fz KB)u   [배경] 생성 시간: u   초u   [배경] MIME 타입: )printgcloud_authget_access_tokenlenGEMINI_API_BASEMODEL_ID	BG_PROMPTtimerequestspoststatus_codeFALLBACK_MODEL_IDokr	   raise_for_statusr   getRuntimeErrorstrnextbase64	b64decodeOUTPUT_PATHparentmkdirwrite_bytesstatst_size)tokenurlr   payloadstartrespelapsedr    r   r   
image_partr   textsmimeimage_bytessizes                   r   generate_backgroundrI   <   s   	
45((*E	+CJ<w
?@XhZ/?
@C"5'**G
  3456#*F"3
G 
=hZq
IJIIKE==gGSID :%4T5E5E4FmTeSfgh !*;)<<LM}}S'M77t//0499Tc?2CDEiikE!G99;D,+J0T4C0ABCCqMi,00"=E=%=tDJ,1AqVq[vr"AAKERTSTI;WXXl#''
K@D"":l#;F#CDKTD9K(%%D	k]
+,	$T!HHTD[4ET
JK	$WSM
56	"4&
)* Bs   	KKc                     t        d       t        d       t        dt                t        d       t                t        d       t        d       t        d       y )Nz<============================================================u<   Meta 캐러셀 A-2 배경 이미지 재생성 (QC 개선판)u   출력: u   완료)r$   r8   rI   r       r   mainrL   w   sC    	(O	
HI	H[M
"#	(O	(O	(O	(OrK   __main__)returnNone)__doc__
__future__r   r6   sysr+   pathlibr   r,   
gen_configr   pathinsertr4   __file__r9   r%   r8   r*   r)   r/   r(   rI   rL   __name__r   rK   r   <module>rY      s    #  
    % 3tH~,,- .  YY7 
0 (4 D8+v zF rK   