부적절 객체 1 > 마스크 기반 크기 조절 생성 방식 정리
문제 :


결론 :
마스크 제작 + 마스크 기반 패치 생성후 되돌리기로 구현.



자세한 수행 과정
1. 마스크 제작 (수동)

각 배경별 마스크 제작


직선 두개 +ground 지정으로 가상 카메라 위치 생성

4. 마스크 → crop 영역 계산 (read mask image · mask_cropper 200%)

마스크를 배경 크기로 맞춘 뒤 외접하는 사각형(노란색) 계산, pad = 2 × max(w, h) 패딩을 주고(녹색)을 crop 영역으로 정한다. (패딩 200%는 통계적 관찰에 의한 판단)
그리고 추후 되돌리는 작업을 위해 좌상단 꼭짓점 x,y 과 patch의 width height를 변수로 저장.
5. crop + 빨간 박스

프롬프트에 in the red box 지시를 주기 위해 빨간 박스 추가
6. 프롬프트
대량 생성을 위해 변수 class를 만들고, (보행자, 유모차, 자전거, 차량, 안전조끼 입은 남자 등등) 프롬프트에 자동 산입 + 파일명에 class 저장
"add korean " + class2 + " in the red box and remove red box. " + "You must watch about size and composition."
”size and composition”은 넣었을 때 100%의 효과는 아니었으나, 연산시간이 길어지는 것으로 보아 툴콜링이 더 되는 듯 해서 추가.
7. 생성 (나노 바나나 프로)(gemini 3 pro image preview)

출력 결과.

8. 후처리 — CCTV 화질 맞추기 (degrade)

degrade 단계별 이미지 (왼쪽 = 직전 단계 · 오른쪽 = 해당 단계 결과, ×4 확대)




![5. CameraRawToneCurve [[0,30],[255,225]] — 대비 축소 · 최종](assets/d5_tone_v4.jpg)

1K 생성물을 다시 crop 크기 w, h 로 줄이고(lanczos · stretch), 배경 CCTV 톤에 맞춰 순서대로 열화.
노드 | 값 | 목적 |
|---|---|---|
ImageBlur | 4 / 1 · bypass | 현재 비활성 |
ImageResizeKJv2 | w, h · lanczos · stretch | 원래 crop 크기로 복원 |
NoisePlusBlend | 0.4 / 10 | 센서 노이즈 |
ImageSharpen | 1 / 0.5 / 0.25 | 축소로 죽은 엣지 복원 |
ImageDesaturate+ | 0.2 · Rec.709 | 채도 낮추기 |
CameraRawToneCurve | Linear [[0,30],[255,225]] | 블랙 띄우고 화이트 눌러 대비 축소 |
9. 되돌려 붙이기 (overlay)


Image Overlay: base = orginal_img, overlay = 후처리 패치, 크기 w, h · 위치 x, y (4단계 값 재사용). optional_mask 는 mask2.png red 채널 → InvertMask 로 경계 마스크.


(중심 r≤256 흰색 · 256~512 코사인 감쇠 · 밖 검정)
10. 저장 (saveURL / save_render / save_mask)
파일명은 JoinStringMulti 10개 조각으로 조립. 인덱스는 PrimitiveInt increment → zero_padding 5자리.
./prj/{draft}/{location}/{00000}_${class1}${time} ← render
./prj/{draft}/{location}/{00000}_${class1}${time}_mask ← mask