
    i                        d Z ddlmZ ddlZddl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dz  Zej                  dd       d	Zd
ZdZdZdZddZddZddZedk(  r e        yy)uT   컨셉 #41 당신 같은 사람 (Unedited Reality Portrait) 인물 이미지 생성.    )annotationsN)Path)WORKSPACE_ROOTz:output/meta-ads/concept-catalog/41-cannes-unedited-realityT)parentsexist_okzgemini-3-pro-image-previewzgemini-3.1-flash-image-previewz0https://generativelanguage.googleapis.com/v1betaz3https://www.googleapis.com/auth/generative-languagea  A casual unposed photograph of a Korean man in his late 40s to early 50s. He is wearing everyday clothing a plaid flannel shirt. He is sitting at a cozy coffee shop with a cup of coffee. The photo looks like it was taken by a friend with a smartphone slightly imperfect framing, natural ambient lighting warm afternoon window light, no studio setup. His expression is genuine relaxed contentment, a real smile not a forced pose. Background is softly blurred shallow depth of field, recognizable but not prominent. Photo texture slightly grainy, warm color tones, documentary snapshot photography style. 1080x1080 square format, realistic, no AI-perfect skin, natural imperfections welcome. No text, no graphics, no overlays.c                     t        j                  g dddd      } | j                  dk7  rt        d| j                         | j
                  j                         S )u&   gcloud CLI로 액세스 토큰 획득.)gcloudauthzprint-access-tokenz<--scopes=https://www.googleapis.com/auth/generative-languageT   )capture_outputtexttimeoutr   u   gcloud 토큰 획득 실패: )
subprocessrun
returncodeRuntimeErrorstderrstdoutstrip)results    b/home/jay/workspace/.worktrees/task-2116-dev1/tools/ai-image-gen/gen_concept41_unedited_reality.py	get_tokenr   %   sW    ^^	I$F
 A:6==/JKK==      c                |    t          d| d}d|  dd}dd|igigdd	gd
dd}t        j                  |||d      S )Nz/models/z:generateContentzBearer zapplication/json)AuthorizationzContent-Typepartsr   IMAGETEXTg      ?)responseModalitiestemperature)contentsgenerationConfigi,  )headersjsonr   )GEMINI_API_BASErequestspost)tokenmodel_idprompturlr#   payloads         r   call_geminir-   1   sm    XhZ/?
@C"5'**G
  0123#*F"3
G ==gGSIIr   c            	        t        d       t        dt                	 t        j                  j	                  dt        t        dz               dd l} | j                  t              }t        dt        |       d       t        j                         }t        d
t         d       t        |t        t               }|j"                  dv r4t        d|j"                   dt$                t        |t$        t               }t        j                         |z
  }|j"                  dk7  r=t        d|j"                   d|j&                  d d         t        j(                  d       |j+                         }|j-                  dg       }|s9t        dt+        j.                  |      d d         t        j(                  d       |d   j-                  di       j-                  dg       }d }	|D ]
  }
d|
v s|
}	 n |	G|D cg c]  }d|v s|j-                  dd       }}t        d|        t        j(                  d       |	d   j-                  dd      }t1        j2                  |	d   d         }d|v rd nd!}t        d"| z  }|j5                  |       |j7                         j8                  }t        d#|        t        d$|d%d&|d'd(|        d)t         t        t        |      |t;        |d*      |d+}t        d,z  j=                  t+        j.                  |d-d*.      d/0       t        d1t        d,z          y # t        $ r<}t        d| d       t               }t        d	t        |       d       Y d }~d }~ww xY wc c}w )2Nu*   === 컨셉 #41 인물 이미지 생성 ===u   출력 디렉토리: r   ztools/ai-image-genu!   SA 토큰 획득 성공 (길이: )u   SA 토큰 실패: u   , gcloud CLI 시도...u)   gcloud CLI 토큰 획득 성공 (길이: u   모델: u    호출 중...)i  i  u   Pro 모델 실패 (z), fallback:    u   API 오류 z: i     
candidatesu   candidates 없음. 응답: contentr   
inlineDatar    u   이미지 없음. 텍스트: mimeTypez
image/jpegdatajpegz.jpgz.pngzperson-backgroundu   저장 완료: u   파일 크기: ,u    bytes, 소요: z.1fu   초, MIME: z41-cannes-unedited-reality   )conceptr*   modeloutput
size_bytestime_seconds	mime_typezgeneration-meta.jsonF)ensure_asciiindentzutf-8)encodingu   메타데이터: )print
OUTPUT_DIRsyspathinsertstrr   gcloud_authget_service_account_tokenGEMINI_SCOPElen	Exceptionr   timeMODEL_IDr-   PROMPTstatus_codeFALLBACK_MODEL_IDr   exitr$   getdumpsbase64	b64decodewrite_bytesstatst_sizeround
write_text)rJ   r(   estartresponseelapsedr7   r2   r   
image_partpartp
text_partsr@   image_bytesextoutput_pathsizemetas                      r   mainrk   A   sX   	
67	!*
./I3~0DDEF55lC1#e*Q?@ IIKE	HXJn
-.5(F3Hz)#H$8$8#9GXFYZ[u&7@iikE!Gs"H001HMM$34G3HIJ==?D,+J+DJJt,<Tc,B+CDEqMi,00"=EJ 4J
 16FA&A+aeeFB'F
F-j\:;<(,,ZFI"":l#;F#CDKi'&VC!23%88KK(%%D	OK=
)*	OD8#3GC=I;
WX 0k"gq)D ((44

4eA6 5  
j+AAB
CD}  I"1#%;<=9#e*QGHHID Gs$   A!L; :	NN;	N 1M;;N __main__)returnrI   )r(   rI   r)   rI   r*   rI   rm   zrequests.Response)rm   None)__doc__
__future__r   rW   r$   r   rF   rO   pathlibr   r&   
gen_configr   rE   mkdirrP   rS   r%   rL   rQ   r   r-   rk   __name__ r   r   <module>rv      s    Z "    
    %ZZ
 
    -'4 DD	) 	!J HEV zF r   