프로젝트로 돌아가기
Openclaw + SNS 카드뉴스 자동화12 min

첫 이미지 생성 성공: job.json 전송부터 ComfyUI 출력까지

리눅스에서 job.json을 만들고 Windows 워커로 전송해 ComfyUI 이미지를 생성하는 첫 실전 테스트입니다. /tmp Permission denied 오류를 만나 경로를 바꾸는 과정, 전송 성공, 워커 실행, 이미지 저장까지 실제 터미널 출력을 그대로 기록합니다.

이번 단계에서 만들어진 이미지

아래가 ComfyUI에서 zimage-tubo 모델로 생성한 첫 번째 이미지입니다. 이 이미지가 카드뉴스 상단에 배치될 예정입니다.

ComfyUI zimage-tubo 생성 이미지

장당 약 5초. 텍스트 카드뉴스에 붙이기에 충분한 속도입니다. 앞으로 카드뉴스 이미지 생성은 이 zimage 모델로 진행합니다.

job.json 만들기 — /tmp Permission denied

SSH 연결이 성공한 직후, 테스트용 job.json을 만들었습니다. root 계정에서 /tmp에 파일을 쓰는 명령을 실행했습니다.

cat > /tmp/job.json << 'JSON'
{
  "job_id": "test_001",
  "topic": "card_test",
  "image_prompt": "cozy korean chibi girl, cat-ear hoodie, warm pastel light, cinematic",
  "negative_prompt": "blurry, watermark, text"
}
JSON

결과는 Permission denied였습니다.

-bash: /tmp/job.json: Permission denied

root 계정에서 /tmp 쓰기가 막힌 경우는 두 가지 원인이 있습니다. /tmp/job.json 파일이 이전에 이상한 권한으로 이미 존재하고 있거나, 현재 셸 환경이 제한된 상태인 경우입니다. 어느 쪽이든 /tmp 경로를 고집하는 것보다 작업 경로를 바꾸는 것이 빠릅니다.

경로 변경 — reedo 계정 워크스페이스로

OpenClaw 파이프라인 기준으로 job.json이 있어야 할 위치는 원래부터 차은별 워크스페이스의 outbox/ 폴더입니다. /tmp는 임시 테스트 경로였을 뿐입니다. 제대로 된 위치로 바꿨습니다.

cat > /home/reedo/.openclaw/workspace-chaeunbyul/outbox/job.json << 'JSON'
{
  "job_id": "test_001",
  "topic": "card_test",
  "image_prompt": "cozy korean chibi girl, cat-ear hoodie, warm pastel light, cinematic",
  "negative_prompt": "blurry, watermark, text"
}
JSON

이 경로로 바꾸자 파일이 정상적으로 만들어졌습니다. 앞으로 job.json은 이 위치가 기준입니다. outbox/ 폴더는 차은별이 Windows 워커에게 작업을 넘길 때 쓰는 교환 공간으로 설계한 폴더입니다.

SSH 키는 현재 /root/.ssh/ 에 있습니다. 키를 reedo 계정으로 옮기지 않고, 파일 경로만 outbox로 바꿔서 계속 진행했습니다. 연결 테스트가 먼저이고, 경로 정리는 나중에 해도 됩니다.

SCP로 Windows 서버에 전송

job.json을 Windows 서버의 D:\016_CardNew\io\ 폴더로 전송했습니다.

scp -i /root/.ssh/id_ed25519_cardnews \
  /home/reedo/.openclaw/workspace-chaeunbyul/outbox/job.json \
  reedoc@125.132.162.227:"D:/016_CardNew/io/job.json"

터미널 출력은 다음과 같았습니다.

job.json                  100%  181    13.3KB/s   00:00

181바이트짜리 파일이 0초에 전송 완료됐습니다. 네트워크가 빠른 편이라 실제 사용할 때도 전송 지연은 거의 없을 것으로 보입니다.

worker.ps1 실행 — 이미지 생성

job.json이 Windows에 들어간 것을 확인하고 worker.ps1을 실행했습니다.

ssh -i /root/.ssh/id_ed25519_cardnews reedoc@125.132.162.227 \
  'powershell -NoProfile -ExecutionPolicy Bypass -File "D:\016_CardNew\scripts\worker.ps1"'

worker가 실행되면서 터미널에 로그가 찍혔습니다.

[INFO] promptId=626d4d7c-6955-4577-a2b6-80d4cd80c172
[OK] saved: D:\016_CardNew\output\result_20260322_105758.jpg

두 줄이 전부였습니다. worker가 ComfyUI API에 이미지 생성 요청을 넣고, 완료 후 결과 파일을 저장한 뒤 경로를 출력했습니다. 에러 없이 정상 종료됐습니다.

파이프라인 동작 확인

이번 테스트로 확인된 것들입니다.

job.json 전송: 리눅스 outbox에서 Windows io 폴더로 SCP 전송 완료.

worker.ps1 실행: SSH로 원격 PowerShell 실행 성공. worker가 job.json을 읽고 ComfyUI API를 호출했습니다.

ComfyUI 이미지 생성: promptId가 정상 발급됐고, result_20260322_105758.jpg 파일이 D:\016_CardNew\output\ 에 저장됐습니다. 장당 생성 시간은 약 5초입니다. GPU가 붙어있는 Windows 서버 환경에서 나온 속도입니다.

파이프라인 경로 확인: 리눅스 → (SCP) → Windows io 폴더 → worker.ps1 → ComfyUI → output 폴더. 이 흐름이 처음으로 엔드투엔드로 작동했습니다.

다음 단계

이미지가 Windows D:\016_CardNew\output\ 에 저장된 것까지 확인했습니다. 이제 이 이미지를 리눅스로 가져와서 slides.json에 연결하고 최종 카드뉴스를 렌더링하는 단계가 남아 있습니다.

앞으로 사용할 이미지 모델은 zimage-tubo입니다. 이번 테스트 이미지처럼 카드뉴스 상단에 올라갈 비주얼을 이 모델로 생성합니다. 텍스트 카드뉴스 생성과 ComfyUI 이미지 생성이 각각 작동하는 것이 확인됐습니다. 이 둘을 합치는 것이 남은 작업입니다.

리도 프로필

리도 인사이트

기술을 현장 언어로 다시 풀어 쓰는 사람

3D 설계, 광통신 인프라 장비 개발, 글로벌 현장 교육을 19년 넘게 다뤄왔고, 요즘은 AI 자동화, 꿈꾸는 카메라, 실무 채널 운영을 연결해 복잡한 일을 더 쉽게 만드는 방법을 기록하고 있습니다.

다음 대화

읽고 끝내지 말고, 실제 문제로 이어가도 좋습니다.

자동화, 설계, 교육, 콘텐츠 중 무엇이든 지금 필요한 문제부터 같이 정리해볼 수 있습니다.

편하게 문의하기