Communitygithub.com

Geokkk/cephalon-comfyui-video

Cephalon Cloud(端脑云)에서 ComfyUI 비디오/이미지 생성을 위해 API를 호출할 때 사용합니다. HMAC 서명 함정, 고아 미션 방지, 워크플로우 적응을 다룹니다.

cephalon-comfyui-video란 무엇인가요?

이 에이전트 기술은 Cephalon Cloud(端脑云)의 API를 통해 ComfyUI 기반 비디오 및 이미지 생성을 자동화합니다. HMAC-SHA256 인증 방식의 구체적인 구현과 함정(예: 상대 경로 사용 필수, 쿼리 파라미터 snake_case 강제 등)을 상세히 다루며, Workbench 직접 연결 CLI(lucy_run.py)를 통한 간편한 실행 경로와 user-center HMAC 서명 + 인스턴스(missions)CLI를 모두 지원합니다. 특히 '고아 인스턴스'로 인한 불필요한 CEP 소모를 방지하기 위한 상태 파일 관리, 생성 완료 후 즉시 close 호출 등의 실전 노하우를 제공합니다. 또한 Wan2.2, LTX-Video, HunyuanVideo 등 다양한 모델을 검증했으며, 다중 샷 체인 방식의 긴 비디오 생성 파이프라인과 xfade 연결 스크립트를 포함합니다. 이 요약은 개발자가 Cephalon Cloud 환경에서 안정적이고 비용 효율적인 비디오 생성 워크플로우를 구축하는 데 필요한 모든 정보를 제공합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add Geokkk/cephalon-comfyui-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Cephalon Cloud(端脑云)→ ComfyUI 비디오 생성 API 링크

완전 실행 가능한 스크립트(본 저장소 scripts/):

  • lucy_run.py — Workbench 직접 연결 CLI(권장 경로, 인스턴스 불필요):微信扫码 로그인 → SSO 세션 생성 → 제로 소모 견적 → 가격 잠금 제출(멱등 키로 중복 차감 방지)→ 폴링 → sha256 검증 다운로드 → 이미지素材 업로드。네 템플릿(t2v/i2v/fl2v/r2v)2026-10-14 모두 실주행 검증 완료.
  • cephalon_api.py — user-center HMAC 서명 + 인스턴스(missions)CLI
  • cephalon_verify.py — 링크 검증;cephalon_keys.py — 키 템플릿(env 변수 우선)
  • run_fairy_pipeline.py / concat_fairy.py — 자체 구축 인스턴스 다중 샷 파이프라인(구버전 경로)

Lucy 워크플로우 링크(lucy-agent 이미지 워크플로우、微信扫码 로그인、video.lucy.run Workbench 견적과 실제 실행):references/lucy-workflow-api.md 참고.

Workbench 직접 연결 빠른 시작(lucy_run.py)

export CEPHALON_PUBLIC_KEY=<32자리 hex> CEPHALON_PRIVATE_KEY=<64자리 hex>
python scripts/lucy_run.py login                      # 微信扫码,JWT 저장 lucy_state/token.txt
python scripts/lucy_run.py balance                    # 잔액(100 units = 1 CEP)
python scripts/lucy_run.py upload 첫프레임.png         # i2v/fl2v/r2v 필요,asset_id 반환
python scripts/lucy_run.py submit --template t2v --seconds 5 --yes \
  --prompt "…… overall_soundscape: …… non_diegetic_music: None."
python scripts/lucy_run.py download <run_id>

주의사항:가격 100 units/초(5s=5 CEP、10s=10 CEP、15s=15 CEP);차감은 제출 순간에 이루어지며, running 상태 이후 취소 불가;제출 전 스크립트가 출력하는 견적을 반드시 확인하세요. 파라미터 세부 사항과 함정은 reference 참고.

인증(실측 검증,문서에 함정 있음)

  • HMAC-SHA256. 서명 문자열 = JSON( relative_uri + 정규화된 body ),키 = 개인 키(64자리 hex),요청 헤더 Hmac-Key: 공개 키(32자리 hex) + Hmac.
  • 핵심 함정:requestURI는 user-center 기본 경로에 대한 상대 경로(예:/v1/load-balance),문서 링크에 표시된 /cephalon/user-center/v1/... 접두사가 아님. 접두사를 포함하면 반드시 401(빈 body 전송 계층 거부,오류 메시지 없음).
  • body 정규화:json.dumps(..., sort_keys=True),요청 body와 완전히 일치해야 함.
  • 401(빈 msg)= HMAC 서명 실패;code 40000 로그인 상태 만료 = 인증 헤더 없음;404 = 경로 없음. 이 세 가지로校准.
  • 공개 키/개인 키를 반대로 넣어도 401. 스크립트에 자동 교체 재시도 로직 포함.
  • GET 인터페이스의 query 파라미터:파라미터 이름 snake_case 사용(page_index/page_size),단, 두 개 파라미터 query는 반드시 401(서버 측 제한,단일 파라미터는 200). mission_list에 쿼리 파라미터 포함 시 사용 불가,건너뛰기;직접 create/status/access/close 사용.
  • POST/PUT 인터페이스:서명 문자열 = URI + 정규화된 body JSON 문자열(실측 통과).

API 엔드포인트(base: https://prod.unicorn.org.cn/cephalon/user-center)

  • POST /v1/user/missions/batch body: {batch_size, type, gpu_version, gpu_num} → data: [雪花ID]
  • GET /v1/user/missions/{id} → 상태/urls(페이지네이션 파라미터 불필요,단일 ID 조회 가능)
  • PUT /v1/user/missions/close/batch body: {ids: [...]}
  • GET /v1/load-balance(파라미터 없음)→ 사용자 로드 밸런싱 서비스 목록
  • GET /v1/load-balance/access-address/{id} → frpc_address/fb_address

인스턴스 생명 주기(과금)

  • waiting(무료)→ doing(접수됨, 실행 안 됨)→ supplying(과금 중, RTX4090 실측 unit_cep=36 CEP/시간, 2026-09-29 청구서 확인) → succeed/failed/canceled.
  • 준비 시간 일반적으로 5-8분(waiting 약 5분 + doing 약 2분).
  • 생성 후 urls 필드 나타남(["https://wp08.unicorn.org.cn:PORT", ".../fb"]). URL은 HTTPS + 비표준 포트,자체 서명 인증서(requests/urllib에서 인증서 검증 비활성화 필요).
  • doing 단계에서 urls가 아직 발급되지 않을 수 있음:create 스크립트에서 "접속 주소를 가져오지 못했습니다" 오류와 함께 종료되는 것은 정상적인 타이밍 문제,1-2분 후 create 재실행(스크립트의 고아 방지 로직이 자동으로 인스턴스 재사용 및 base 보완),새 인스턴스를 중복 생성하지 마세요.
  • mission status 반환 값에 username/password 필드 포함(인스턴스 Web UI 자격 증명, 예: admin/cephalon),인스턴스 UI 로그인 시 사용;HMAC 키와 무관.
  • 사용 후 반드시 close 인터페이스 호출,그렇지 않으면 유휴 상태로 CEP 소모. 종료 후 로컬 cephalon_state.json도 succeed로 업데이트해야 다음에 고아 인스턴스로 오판하지 않음. 단일 작업 청구서 약 2124 단위(≈21.24 CEP)약 1시간 supplying + 모델 로딩/생성 포함;2026-09-30 2차 검증:빠른 흐름(생성 완료 후 즉시 종료)생성부터 종료까지 약 24분,약 14 CEP 추정——비용 절감 핵심:생성 완료 후 즉시 close.

고아 인스턴스 방지(함정 경험,2026-09-28 실제로 약 1시간 CEP 소모)

  • 생성 성공 후 mission_id를 즉시 디스크에 저장한 후 대기 루프 진입. 대기 중 timeout/인터럽트로 죽어도 ID를 잃지 않음.
  • create 시작 시 state 파일 확인:이미 waiting/doing/supplying 인스턴스가 있으면 재사용,새로 생성하지 않음.
  • submit 전 인스턴스 상태 확인,supplying/doing이 아니면 제출 거부.
  • 고아 ID를 잃으면 사용자가 Cephalon Cloud 콘솔에서 수동으로 중지해야 함(雪花 ID는 열거 불가).

ComfyUI API(인스턴스 준비 후)

  • POST /prompt body: {"prompt": {API 형식 워크플로우}, "client_id": "..."} → prompt_id
  • GET /history/{prompt_id} → status.completed + outputs
  • GET /view?filename=...&subfolder=...&type=output → 결과 다운로드
  • GET /object_info(11MB)→ 모든 노드 정의;GET /object_info/{NodeName} 단일 노드.
  • API 형식:{node_id: {class_type, inputs: {param: value 또는 [from_node, slot]}}}.
  • 공식 Wan2.2 템플릿은 새 UI 중첩 서브그래프 형식(definitions.subgraphs),서버에 서브그래프 타입이 등록되지 않으면 오류 발생. 인라인으로 평면 API 형식으로展开 필요. 템플릿 해석:Wan2.2 T2V = 고노이즈 모델(UNETLoader)+lightx2v LoRA+ModelSamplingSD3(shift 5)+KSamplerAdvanced(0→2 step) → 저노이즈 모델+LoRA+KSamplerAdvanced(2→4 step) → VAEDecode → CreateVideo(fps 16) → SaveVideo. latent는 EmptyHunyuanLatentVideo(480x480x73, batch 1) 사용. 텍스트 인코더 umt5_xxl_fp8_e4m3fn_scaled.safetensors (CLIPLoader type=wan).
  • 4 step 생성 약 4.5초 480x480 16fps 비디오(RTX4090 실측),제출부터 완료까지 약 3-4분(모델 로딩 포함).
  • TI2V 5B 공식 파라미터는 14B와 완전히 다름(공식 템플릿 video_wan2_2_5B_ti2v.json 실측 해석):단일 KSampler 20 step / cfg 5 / uni_pc / simple + ModelSamplingSD3 shift 8 + CreateVideo fps 24;5B는 단일 모델로高低噪 UNET 없음. 5B 전용 증류 LoRA 없음,4 step 경로 적용 불가.
  • TI2V 5B 해상도는 1280x704 또는 704x1280만 가능(Wan22ImageToVideoLatent 폭 높이 스텝 32,720 높이 불가;공식 「720P」는 실제로 704). 프레임 길이 제약 (n-1)%4==0.
  • 공식 템플릿 기본 121 프레임 = 5초 학습 길이;>121 프레임은 동적 저하 위험,긴 장면은 ≤121 프레임 다중 샷으로 분할.
  • I2V:Wan22ImageToVideoLatent의 optional start_image에 IMAGE 연결;첫 프레임은 easy loadImageBase64 사용(base64_data 문자열 입력,multipart 업로드 불필요).

검증된 모델 라이브러리(3755 노드)

  • Wan2.2 전 계열(T2V/I2V 14B fp8、TI2V 5B fp16)、Wan2.1、LTX-2(19B/22B dev/distilled)、LTX-Video 0.9.5、HunyuanVideo 720p、SVD、Mochi、Hunyuan3D-2. TI2V 5B 전용 증류 LoRA 없음(357개 LoRA 중 5b/ti2v 없음),전체 품질 20 step 샘플링 단일 샷 720p 약 5-6분.
  • LoRA 357개(wan2.2 lightx2v 4steps v1.1 high/low noise 포함).
  • 탐지 스크립트:object_info.json 다운로드 후 로컬에서 CheckpointLoaderSimple/UNETLoader/VAELoader/CLIPLoader choices + 비디오 노드 존재 여부 분석.

다중 샷 체인 방식 완성 영상(2026-10-01 720p 실측 실행 성공)

  • 스크립트:scripts/run_fairy_pipeline.py(create/shot1/shot N/download/close)+ build_ti2v_t2v.py/build_ti2v_i2v.py(워크플로우 생성기)+ concat_fairy.py(xfade 연결). 사양 파일 shots_spec.json.
  • 체인 연속성 보장:샷1 T2V → ffmpeg -sseof -0.15로 마지막 프레임 추출(JPG q2 ~200KB,PNG 사용 금지——900KB는 터널 업로드 중 반드시 중단됨)→ 각 샷은 이전 샷의 마지막 프레임을 start_image로 사용.
  • 터널 불안정 세 가지 대책:POST /prompt timeout 반드시 300s(기본 60s 읽기 타임아웃은 900KB 업로드 견디지 못함);제출 시 재시도 루프 x5(재제출 안전——이미 큐에 있으면 서버에서 거절);socket.setdefaulttimeout(180)으로 다운로드 무한 대기 방지. 제출 응답 손실 시 /history 스캔하여 파일 이름 접두사로 결과물 탐색.
  • 샷3 교훈:POST가 업로드 단계에서 중단되면 워크플로우가 큐에 전혀 들어가지 않음(큐 비어 있음 + history에 기록 없음),백그라운드 폴링이 무한 유휴 상태로 CEP 소모——먼저 /queue와 /history 확인 후 재제출.
  • 20 step 720p 단일 샷 약 5-6분 생성 + 1분 업로드/다운로드;8샷 전체(장애 유휴 40분 포함)약 2시간 인스턴스 임대 기간.
  • xfade 연결:단계별로 두 개씩 병합(긴 filter_complex 한 번에 하면 디버깅 어려움),offset = 누적 길이 - 0.5s,완성 영상 길이 = Σ단일 샷 - (N-1)×0.5s.

작업 유형 열거(4.1 생성 시 사용)

comfyui_time(기본版)/ sd_time / sd_cmd_time(고급版)/ fooocus_time / sd_xl_time / jp_time / jp_conda_time / tabby_time / ascend_time / wt_time / ssh_time. 프로페셔널版 ComfyUI는 웹 페이지에서 유형 값 확인 필요(문서 댓글에서 API 기본값은 기본版이라고 함).

관련 스킬