아이폰에 있는 사진을 집 PC로 보내 AI로 처리하고, 완성된 이미지를 다시 아이폰에 저장하고 싶을 때가 있다. PC 앞에 앉지 않고도 배경을 지우거나 사진을 보정하고, 준비해 둔 워크플로를 실행하는 방식이다. ComfyUI에 Tailscale과 App Mode를 조합하면 이런 환경을 만들 수 있다. Tailscale은 아이폰과 PC를 연결하고, App Mode는 복잡한 노드 화면에서 필요한 입력과 결과만 꺼내 보여준다.

아쉽지만 PC와 함께 ComfyUI를 켜두고 외부에서 사용하려면 Tailscale과 함께 AppMode를 만들어놔야한다. Tailscale은 우리가 복잡한 네트워크 설정 없이 여러 기기를 하나의 안전한 사설 가상 네트워크로 묶어주는 메시(Mesh) VPN 서비스로 안전하면서도 쉽게 내 PC로 접속할 수 있게된다. 아래는 tailscale 설정법과 AppMode 설정법이다.

Tailscale과 App Mode는 각각 어떤 역할을 할까

ComfyUI의 기본 화면은 노드를 연결하며 작업하기에 좋다. 하지만 휴대폰에서 작은 입력칸을 누르고, 화면을 확대하고, 노드를 옮기며 사용하기에는 번거롭다. App Mode에서는 워크플로의 사진 입력, 프롬프트, 필요한 옵션과 결과만 화면에 배치할 수 있다. 공식적으로 모바일과 좁은 화면에 대응하며, 입력·결과·이미지 목록을 탭으로 전환하는 구성을 제공한다. ComfyUI App Mode 공식 안내

여기에 Tailscale을 연결하면 집 밖에서도 해당 화면에 접속할 수 있다.

  1. 폰에서 사진 선택

  2. Tailscale을 통해 집 PC에 업로드

  3. ComfyUI에서 워크플로 실행

  4. 폰에서 결과 확인·저장

로컬 모델을 사용하는 워크플로라면 연산은 집 PC에서 이루어진다. 폰은 사진을 보내고 작업을 실행한 뒤 결과를 확인하는 역할을 한다.

시작하기 전에 준비할 것

다음 환경을 준비한다.

  • 정상 실행되는 Windows용 ComfyUI

  • PC에서 실행해 본 사진 처리 워크플로

  • 해당 워크플로에 필요한 모델과 노드

  • PC와 폰에 설치한 Tailscale

  • App Mode를 지원하는 ComfyUI 프론트엔드

App Mode는 프론트엔드 1.41.13부터 정식 지원한다. 메뉴가 없다면 프론트엔드 버전을 확인한다. ComfyUI 본체 버전과 프론트엔드 버전은 서로 다르다. PC는 사용 중에 켜져 있어야 하며, 절전 상태에 들어가면 원격 접속과 작업 처리가 중단될 수 있다. ComfyUI와 Tailscale도 실행 중이어야 한다.

1. PC와 아이폰을 Tailscale에 연결한다

Tailscale 다운로드 페이지에서 Windows용 앱을 설치한다. 폰에도 Tailscale 앱을 설치하고, 두 기기를 같은 계정으로 로그인해 같은 Tailscale 네트워크에 등록한다.

아이폰에서는 VPN 구성 추가 요청을 허용하고 Tailscale을 연결한다. Tailscale의 기기 목록에서 PC와 아이폰이 온라인으로 표시되는지 확인한다.

기본적인 개인 사용 환경에서는 두 기기를 같은 네트워크에 등록해 연결하면 된다. 이미 접근 정책을 따로 설정한 네트워크라면 아이폰에서 PC의 사용할 포트에 접근할 수 있어야 한다. 두 기기가 같은 와이파이에 연결될 필요는 없다. 양쪽 모두 인터넷과 Tailscale에 연결되어 있으면 아이폰의 모바일 데이터로도 PC에 접속할 수 있다.

2. PC에서 ComfyUI가 정상 실행되는지 확인한다.

먼저 PC에서 ComfyUI를 실행한다. 기본 포트를 사용하는 경우 PC 브라우저에서 다음 주소를 연다.

일반 텍스트일반 텍스트
http://127.0.0.1:8188

화면이 열리면 사용할 워크플로를 실행해 본다. PC에서도 실패하는 워크플로라면 모바일 연결보다 모델이나 노드 문제를 먼저 해결해야 한다. 이 글에서는 Tailscale Serve가 PC 내부의 ComfyUI로 요청을 전달하는 방식을 사용한다. ComfyUI는 127.0.0.1에서 접속을 받도록 유지할 수 있다. 다른 포트를 사용하는 환경이라면 이후 명령의 목적지 포트도 그에 맞춰 바꾼다.

3. Tailscale Serve로 접속 주소를 만든다

PC에서 PowerShell을 열고 기존 설정을 확인한다.

powershellpowershell
& 'C:\Program Files\Tailscale\tailscale.exe' serve status

다른 서비스를 이미 연결해 사용 중이라면 해당 설정과 포트가 겹치는지 확인한다. Tailscale을 다른 위치에 설치했다면 실행 파일 경로를 바꾼다. 다음 명령으로 ComfyUI를 Tailscale 내부에 연결한다.

powershellpowershell
& 'C:\Program Files\Tailscale\tailscale.exe' serve --bg --http=8188 http://127.0.0.1:8188

명령이 완료되면 접속 주소가 출력된다. 출력된 주소를 그대로 복사해 사용한다. 아래는 주소 형식을 설명하기 위한 예시다.

일반 텍스트일반 텍스트
http://<PC이름>.<Tailscale네트워크이름>.ts.net:8188/

이 명령은 내부 전용 HTTP Serve 구성이다. HTTPS Serve의 초기 설정을 진행하는 명령과는 다르며, 인터넷 전체에 서비스를 공개하는 Funnel도 사용하지 않는다. Serve 옵션은 Tailscale 공식 명령 안내에서 확인할 수 있다. 폰에서 Tailscale을 연결한 뒤 Safari로 이 주소를 연다. ComfyUI 화면이 나타나면 연결 단계가 끝난 것이다.

4. 워크플로를 App Mode로 구성한다

처음 화면을 구성하는 작업은 PC에서 하는 것이 편하다. 사진 입력과 결과가 연결된 워크플로를 준비한 뒤 App Mode에서 보여줄 항목을 고르는거다.

앱모드는 워크플로 좌측 상단의 노드 그래프 좌측에 작은 버튼으로 나타난다 누르면 앱모드로 진입한다.

여기서 앱 만들기를 진행한다.

이 워크플로에서 내가 행하여야 하는 노드들의 옵션을 클릭한다. 쉽게 말해 이미지를 업로드해야 하면 이미지 업로드 노드의 업로드 영역 체크, 프롬프트면 프롬프트 체크. 시드값도 내가 바꾸고 싶다면 시드도 체크하는 등과 같이 말이다. 그리고 다음을 눌러 출력 받는 노드를 체크한다. 즉 첫번째는 내가 입력할 것, 다음 페이지에서는 결과가 나타나는 노드를 체크하는 것.

그리고 미리보기에서는 우측에 아까 내가 체크한 노드의 세부 내역이 나오고 좌측에는 결과를 볼 수 있는 출력화면이 나온다.

앱모드는 마지막으로 저장 옆에 아래 꺽쇠를 눌러 다른 이름으로 저장을 눌러 저장해줘야한다.

PC여도 워크플로우를 자주 변경할게 아니고 고정적인 값만 입력한다면 앱을 기본값으로 선택하고 저장해도된다.

그렇다면 PC에서도 좌측 메뉴에 앱에서 내가 저장한 워크플로우 앱을 볼 수 있게된다. 마찬가지로 모바일에서도 이렇게 나타나기 떄문에 정말 보기가 편해진다.

사진을 보내고 받을 때 데이터는 안전할까

이 구성에서 먼저 이해할 점은 기기 사이의 암호화와 프로그램의 외부 송신은 서로 다른 문제라는 것이다. 위에서 만든 Tailscale 주소로 접속하면 기기 사이의 트래픽은 Tailscale 터널에서 암호화된다. 주소가 http://로 표시되더라도 Tailscale 구간의 내용이 그대로 공개되는 것은 아니다. PC에 도착한 요청은 Serve가 같은 PC의 ComfyUI로 전달한다.

Tailscale은 개인 키가 기기에 남으며 전송 내용을 복호화할 키를 갖지 않는다고 설명한다. 중계 서버를 거치는 경우에도 기기 간 내용 암호화는 유지된다. Tailscale 트래픽 암호화 설명

다만 브라우저는 이 주소를 HTTPS 보안 컨텍스트로 취급하지 않으므로, HTTPS를 요구하는 일부 브라우저 기능은 제한될 수 있다. 이런 기능이 필요하면 HTTPS Serve 구성을 별도로 검토한다. Tailscale은 ComfyUI의 인터넷 접근을 차단하는 도구가 아니다. 외부 API 노드를 실행하면 사진이나 프롬프트가 해당 서비스로 전송될 수 있다. 커스텀 노드와 브라우저에서 실행되는 확장 코드도 별도 통신 경로를 가질 수 있다.

사진을 PC 안에서만 처리하려면 사용하는 워크플로가 로컬 모델과 로컬 처리 노드로 구성되어 있는지 확인해야 한다. 외부 API를 사용하지 않는 환경에서는 ComfyUI 실행 옵션에 다음을 추가해 공식 Partner 노드를 비활성화할 수 있다.

일반 텍스트일반 텍스트
--disable-api-nodes

이 옵션은 공식 API 노드와 프론트엔드의 외부 통신을 제한한다. 모든 커스텀 노드의 Python 통신까지 차단하는 방화벽 기능은 아니다. 외부 송신 자체를 제한하려면 별도의 방화벽 정책과 사용 중인 확장 기능 점검이 필요하다. Partner Nodes 비활성화 방법

내부 전용 연결도 접근 권한은 관리해야 한다

Serve는 Tailscale 네트워크 내부에서 서비스를 제공한다. 하지만 내부 전용이라는 말이 특정 아이폰 한 대만 접속할 수 있다는 뜻은 아니다. 같은 네트워크에서 접근 권한을 가진 다른 기기도 연결할 수 있다. 개인 사용 환경이라면 등록된 기기를 확인하고, 여러 사람과 네트워크를 함께 사용한다면 접근 정책으로 범위를 제한한다. 혼자 사용하려고 워크플로를 외부에 게시하거나 공유 링크를 만들 필요는 없다. PC에 저장한 워크플로를 Serve 주소에서 열면 된다. Tailscale은 기기 이름, IP, 접속 정보, 연결·전송량 통계 같은 메타데이터를 처리할 수 있다. 아이폰에 결과를 저장한 뒤 iCloud 사진으로 동기화되는지도 별도의 설정이다. 따라서 이 구성을 ‘어떤 정보도 외부로 나가지 않는 완전한 오프라인 환경’이라고 이해해서는 안 된다. Tailscale 개인정보 처리방침

연결이 안 될 때 확인할 것

증상

확인 방법

Safari에서 페이지가 열리지 않는다

PC 전원과 절전 상태, 양쪽 Tailscale 연결, ComfyUI 실행 여부를 확인한다

접속 시 404가 나온다

숫자 IP 대신 Serve가 출력한 전체 호스트 이름 주소를 사용한다

App Mode 메뉴가 없다

프론트엔드 버전과 새로고침 여부를 확인한다

사진 업로드 항목이 없다

App Builder의 Inputs에 이미지 입력을 추가하고 저장한다

사진을 골랐는데 업로드되지 않는다

파일 크기와 형식을 확인하고, 필요하면 JPEG 또는 PNG 사본으로 확인한다

Run을 눌렀는데 작업이 실패한다

동일한 워크플로가 PC에서 실행되는지와 누락된 모델·노드를 확인한다

작업은 끝났는데 결과가 보이지 않는다

App Builder의 Outputs에 결과 노드가 선택되어 있는지 확인한다

사진 앱에 결과가 없다

Safari 다운로드 목록이나 파일 앱에서 확인한 뒤 사진 앱에 저장한다


이 글이 도움이 되었나요?