Skip to content

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 22:59

v1.9.0 패치노트

기준 범위: v1.8.1 이후부터 v1.9.0까지의 변경 사항입니다.
주요 포함 변경: 번역·원문 지우기·말풍선 맞춤 통합 흐름, 말풍선 모양 기반 자동 배치와 수동 편집, 한국어 어절 중심 자연 줄 나눔, 설정 가능한 말풍선 안쪽 여백, Flux 원문 지우기 경계 개선과 런타임 안정성 보강.

번역부터 완성 배치까지

하나로 이어지는 번역 흐름

  • 번역 옵션에서 번역만 완료하거나, 번역 뒤 원문을 지우고 번역문을 말풍선 안에 자동 배치하도록 선택할 수 있습니다.
  • 자연스러운 줄 나눔, 원문 지우기와 말풍선 맞춤 선택을 다음 작업의 기본값으로 기억합니다.
  • 작품 일괄 가져오기 뒤에는 별도 축약 화면 대신 기존 번역 옵션 화면을 열며, 새 작품의 모든 화와 페이지가 선택된 상태에서 시작합니다.
  • 번역이나 인페인팅이 실패·취소된 경우에도 이미 적용된 작업은 하나의 편집 기록으로 남아 실행 취소할 수 있습니다.

블록 하나만 빠르게 처리

  • 오른쪽 패널의 텍스트 영역 위에 원문 지우기말풍선 맞춤 버튼을 추가했습니다.
  • 두 작업은 선택한 텍스트 블록의 영역에만 적용되며, 같은 페이지의 다른 블록과 마스크를 건드리지 않습니다.
  • 메인 창과 분리된 편집 패널 어디서 실행해도 같은 블록 범위와 결과를 사용합니다.

말풍선 감지와 자동 맞춤

실제 말풍선 모양을 사용하는 배치

  • 고정 버전의 INT8 ONNX 모델로 말풍선과 텍스트 영역을 감지하고, 모델과 약 13MB의 실행 런타임은 SHA-256 검증 후 첫 사용 시 한 번만 내려받아 계속 재사용합니다.
  • 감지한 윤곽의 가로·세로 여유를 줄 단위로 계산해 번역문이 말풍선 밖이나 인접 영역을 침범하지 않도록 배치합니다.
  • 자연스러운 줄 나눔을 켠 결합 워크플로는 후보정된 최종 말풍선 모양이 정해진 뒤 번역문 줄바꿈을 다시 계산해 저장합니다.
  • 가로쓰기와 세로쓰기, 여러 영역으로 이어진 말풍선과 사용자가 직접 만든 영역에 같은 모양 기반 배치 규칙을 적용합니다.
  • 저장된 말풍선 영역은 낮은 신뢰도라는 이유만으로 사각 OCR 영역으로 되돌리지 않고 그대로 사용합니다.
  • 번역문을 지나치게 잘게 나누고 글자를 과도하게 줄이던 품질 보정을 제거해, 확보한 말풍선 공간을 우선 사용합니다.

자연스러운 한국어 줄 나눔

  • 한국어 번역문은 글자 단위보다 띄어쓰기 기준 어절을 우선해 웃는, 여자였어처럼 함께 읽어야 하는 부분이 중간에서 잘리지 않도록 했습니다.
  • 이 녀석, 이런 얼굴처럼 짧게 이어지는 구를 우선 보존하고, 공간이 부족할 때만 여자 / 였어, 얼굴 / 이었나처럼 제한적인 어미 경계를 사용합니다.
  • 영문·숫자가 섞인 USB가, AI를, 100원은과 통화 기호, 하이픈, 문장부호도 자연스러운 줄 경계를 유지합니다.
  • 자동 글자 크기는 자연스러운 줄을 만들기 위해 지나치게 작아지지 않도록 제한하고, 고정 글자 크기는 줄바꿈이나 세로쓰기 전환을 위해 임의로 줄이지 않습니다.
  • 좋은 줄 나눔을 만들 수 없는 좁은 영역은 어색한 강제 개행을 저장하지 않고 기존 문장을 유지합니다.
  • 한 글자 폭밖에 남지 않는 매우 좁은 한국어 영역은 현재 글자 크기로 한 세로 열이 실제로 들어갈 때만 세로쓰기로 전환합니다.

연결되거나 겹친 말풍선 개선

  • 두 말풍선이 이어진 경우 전체를 직선으로 잘라 버리는 대신 OCR 글자 중심의 곡선형 소유 영역으로 나눕니다.
  • 서로 겹치는 부분에서만 경계를 계산해 각 말풍선 옆의 남는 공간을 계속 활용합니다.
  • 한 OCR 블록이 실제로 두 말풍선에 걸친 경우에는 읽기 순서대로 두 영역을 유지합니다.
  • 한 영역이 대부분의 글자를 포함하고 나머지가 작은 조각인 경우 작은 조각을 제거하거나 다시 분할합니다.
  • 세 조각 이상으로 잘게 깨지거나 안전하게 복구할 수 없는 불량 영역은 무리하게 적용하지 않습니다.
  • 둥근 말풍선의 대체 영역을 사각형이 아닌 타원형 마스크로 만들고, 인접 블록 사이의 간격을 보존합니다.

말풍선 안쪽 여백

  • 설정의 기본 서식에 말풍선 맞춤 안쪽 여백을 추가했습니다.
  • 여백은 0%부터 70%까지 조절할 수 있으며 기본값은 12%입니다.
  • 여러 영역으로 이어진 말풍선은 각 영역 중심을 기준으로 독립적으로 여백을 확보하고, 사각 대체 배치도 원래 큰 영역을 다시 침범하지 않도록 처리합니다.
  • 설정한 여백은 인페인팅이 끝난 뒤 최종 번역문 배치에만 적용하며, 원문 지우기 영역은 여백이 없는 원래 말풍선 안전 영역을 사용합니다.

Flux 원문 지우기 경계

  • 말풍선 영역을 사용할 수 있는 경우 Flux가 초록색 안전 영역만 지우고, 연결된 다른 말풍선까지 침범할 수 있는 큰 OCR 사각형은 합치지 않습니다.
  • Flux 결과의 최종 합성과 경계 페더링도 말풍선 안전 영역 밖으로 넘어가지 않도록 제한했습니다.
  • 말풍선 영역이 없는 블록은 기존의 채워진 OCR 지원 영역과 바깥 글자 감지를 사용해 잔여 글자가 덜 남도록 했습니다.
  • 인페인팅 전에는 여백 0% 영역을 임시로 만들고, 완료 뒤 설정된 여백으로 최종 배치를 다시 계산하므로 편집 기록에는 임시 영역이 남지 않습니다.
  • 사전 마스크 검사와 최종 말풍선 배치는 원본 감지 결과를 재사용해 같은 페이지에서 모델을 불필요하게 두 번 실행하지 않습니다.
  • CUDA와 Metal 모두 겹친 작업 창에서 블록별 소유권을 유지해 인접 영역의 결과가 섞이지 않도록 했습니다.

말풍선 직접 편집

  • 감지된 말풍선을 브러시로 늘리거나 깎고, 점을 찍어 새 다각형 영역을 만들 수 있습니다.
  • 영역 편집은 적용·취소·되돌리기를 지원하며 기존 텍스트 방향과 서식을 바꾸지 않습니다.
  • 말풍선 편집 브러시는 기존 이미지 보정 브러시의 이중 원형 테두리와 중앙점을 재사용합니다.
  • 세로·가로 페이지 비율과 관계없이 커서가 타원으로 늘어나지 않고 청록색 정원으로 표시됩니다.
  • 적용한 말풍선 맞춤을 해제해 기존 OCR 영역으로 되돌릴 수 있습니다.

작업 화면과 보정 도구

  • 페이지 빠른 작업과 작품 단위 작업을 작업 화면에 정리하고, 진행이 끝난 작업은 오른쪽 상태 영역에서 자동으로 치웁니다.
  • 블록 편집기를 텍스트·배치·서식 탭으로 정리하고 탭을 전환해도 작성 중인 값과 높이를 유지합니다.
  • 이미지 보정 그룹 아이콘을 클릭하면 마지막으로 선택한 브러시·사각형·원형 도구가 즉시 활성화됩니다.
  • 보정 도구의 마지막 모양은 페이지나 작품을 이동하고 선택·손바닥 도구를 사용해도 앱을 종료하기 전까지 유지됩니다.

취소와 다운로드 안정성

  • Paddle OCR 준비 확인 도중 작업을 취소하면 이를 런타임 고장으로 오인하지 않으며, 다음 작업에서 불필요하게 재설치하지 않습니다.
  • 말풍선 감지용 ONNX 실행 런타임은 설치 파일에 넣지 않고 버전별 사용자 데이터 캐시에 저장하며, 완료된 파일은 작업을 취소해도 다음 실행에서 다시 내려받지 않습니다.
  • Flux Python 모델은 기본적으로 안정적인 HTTP 다운로드 경로를 사용하고 캐시 위치와 연결 시간 제한을 명시합니다.
  • OCR 검토용 확대 이미지가 후보 글자를 너무 좁게 잘라내지 않도록 crop 영역을 보강했습니다.
  • OpenAI Codex가 계정 사용 한도 도달을 명확히 반환하면 반복 재시도를 중단하고, 초기화까지 남은 시간과 다른 모델 공급자 선택 안내를 표시합니다.
  • 일반적인 일시적 429 오류와 OpenAI API 키 공급자의 기존 재시도 정책은 그대로 유지합니다.

검증

  • TypeScript 타입 검사, ESLint, Prettier와 프로덕션 빌드 통과
  • Vitest 전체 281개 파일, 1,923개 테스트 통과·2개 건너뜀
  • 한국어 어절·고정 24px·초협폭 세로쓰기, 말풍선 안쪽 여백, Flux 초록 영역 경계와 기존 OCR 영역 대체 처리, Codex 사용 한도 회귀 테스트
  • 연결 말풍선 분할, 파편 복구, 블록 한정 원문 지우기·말풍선 맞춤, 작품 일괄 번역 선택, OCR 취소와 Flux 다운로드 환경 회귀 테스트
  • 실제 프로덕션 컴포넌트를 사용한 세로·가로 및 좁은 화면 Chromium UI QA에서 원형 브러시의 비율, 겹침과 잘림 확인
  • git diff --check 통과

Code signing policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

SignPath Foundation 신청은 2026년 7월 30일 현재 심사 중입니다.

v1.9.0 Windows 설치 파일에는 Authenticode 서명이 적용되지 않으므로 SignPath Foundation 정책의 보호 대상이 아닙니다. 유효한 SignPath Foundation 서명이 있는 산출물만 해당 정책의 적용을 받습니다.

v1.9.0 Apple Silicon 산출물은 인증서가 설정되지 않은 경우 ad-hoc 서명만 적용되며 Apple이 확인한 개발자 신원이나 공증을 포함하지 않습니다. Gatekeeper 승인 전에 릴리스의 체크섬과 다운로드한 파일을 대조하세요.