一键导入
webtoon-image-generation
prompts.json을 받아 codex-image의 5장 병렬 배치 기능으로 회차 컷 이미지를 실제로 생성하는 스킬. 시드 그룹 단위 묶음과 실패 재시도, 메타 기록을 처리한다. image-generator 에이전트가 호출한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
prompts.json을 받아 codex-image의 5장 병렬 배치 기능으로 회차 컷 이미지를 실제로 생성하는 스킬. 시드 그룹 단위 묶음과 실패 재시도, 메타 기록을 처리한다. image-generator 에이전트가 호출한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
codex의 image-to-image 기능으로 기존 컷 이미지에 손그림 말풍선·효과음을 직접 박아 진짜 웹툰 스타일 임팩트를 만드는 스킬. shout·큰 SFX·강조 dialogue만 처리하는 하이브리드 분담. CSS 말풍선의 어색함을 넘어설 때 반드시 사용. bubble-artist 에이전트가 호출한다.
한국 웹툰 스타일의 풍부한 대사를 작성하는 스킬. shot_list의 빈약한 텍스트 메타를 6가지 텍스트 타입(대사·생각·외침·속삭임·내레이션·효과음)으로 풍성하게 채워 shot_list_enriched.json을 만든다. 회차 추가 작성·기존 회차 대사 보강·대사 부족 피드백·웹툰 풍부화 요청 시 반드시 사용. dialogue-writer 에이전트가 호출한다.
시즌 전체 회차의 서사 흐름을 진단하고 빠진 장면·약한 인과·일관성 깨짐을 식별하여 보완 컷을 처방하는 스킬. 회차 추가·기존 회차 보완·서사 검증·연결성 점검 요청 시 반드시 사용. narrative-doctor 에이전트가 호출한다.
생성된 컷 이미지와 shot_list의 텍스트 메타를 결합하여 마우스/터치 스크롤로 읽을 수 있는 단일 세로 스크롤 웹툰 HTML 페이지(index.html)를 만드는 스킬. 말풍선·내레이션·시스템 UI·글리치를 모두 HTML/CSS로 오버레이한다. panel-assembler 에이전트가 호출한다.
systemless-player 시나리오를 토대로 세로 스크롤 웹툰을 회차 단위로 제작하는 오케스트레이터 스킬. 8인 전문가 팀(character-designer / scene-director / dialogue-writer / narrative-doctor / image-prompt-engineer / image-generator / panel-assembler / consistency-qa)을 조율하여 캐릭터 일관성 보장된 마우스 스크롤 가능한 HTML 웹툰을 출력한다. 트리거 - "웹툰 그려줘", "1화 그려줘", "에피소드 N 제작", "시즌 1 시작", "캐릭터 시트 만들어줘", "다시 그려줘", "재실행", "수정", "보완", "대사 보강", "대사 추가", "장면 추가", "서사 보완", "갭 채우기", "연결성 점검", "{회차}의 {특정 컷}만 다시", "이전 결과 기반으로 개선", "다음 화 작업" 등 시스템리스 플레이어 웹툰 제작 관련 모든 요청에 사용. 단, 시나리오/줄거리 자체를 새로 쓰는 것은 이 스킬의 범위가 아니다.
웹툰 캐릭터의 시각 레퍼런스 시트(외형 JSON + 정면/측면/표정/포즈 이미지)를 만들어 시즌 내내 캐릭터 일관성을 보장하는 스킬. 새 캐릭터 셋업, 기존 캐릭터 외형 변형(예: 부상으로 의상·신체 변화) 추가, 시트 갱신이 필요할 때 사용. character-designer 에이전트가 호출한다.
| name | webtoon-image-generation |
| description | prompts.json을 받아 codex-image의 5장 병렬 배치 기능으로 회차 컷 이미지를 실제로 생성하는 스킬. 시드 그룹 단위 묶음과 실패 재시도, 메타 기록을 처리한다. image-generator 에이전트가 호출한다. |
# 의사 코드
prompts = load("_workspace/episodes/ep{NN}/prompts.json")
groups = group_by(prompts.cuts, key="seed_group")
batches = []
for group_name, cuts in groups.items():
# 5장씩 잘라 배치 구성
for i in range(0, len(cuts), 5):
batches.append(cuts[i:i+5])
codex-image 스킬은 한 번에 최대 5장 병렬 생성 지원. 각 배치를 codex exec 한 번으로 처리:
codex exec --task "image_generation_batch" \
--inputs '[
{"prompt": "...cut1...", "size": "1024x1792", "seed_group": "ep01_location_seoul"},
{"prompt": "...cut2...", "size": "1024x1792", "seed_group": "ep01_location_seoul"},
...
]'
(실제 호출 형식은 codex-image 스킬의 SKILL.md 참조)
각 컷 이미지를 _workspace/episodes/ep{NN}/images/cut_{ID:02d}.png로 저장. 메타는 같은 폴더의 cut_{ID:02d}.meta.json:
{
"cut_id": 1,
"model": "gpt-image-2",
"seed": 4823917,
"seed_group": "ep01_location_seoul",
"size": "1024x1792",
"generated_at": "2026-05-17T20:00:15Z",
"duration_sec": 12,
"retry_count": 0,
"prompt_hash": "sha256:abc123..."
}
status: "GEN_FAILED", report에 기록, 빈 placeholder PNG는 생성하지 않는다 (panel-assembler가 자체 처리)회차 전체 결과 요약을 _workspace/episodes/ep{NN}/generation_report.json:
{
"episode": 1,
"total_cuts": 8,
"succeeded": 8,
"failed": [],
"batches": [
{"batch_id": 1, "cut_ids": [1,2,3,4,5], "duration_sec": 45, "seed_group_set": ["ep01_location_seoul", "ep01_han-do-hyun"]},
{"batch_id": 2, "cut_ids": [6,7,8], "duration_sec": 28, "seed_group_set": ["ep01_han-do-hyun", "ep01_group_han-do-hyun"]}
],
"started_at": "2026-05-17T20:00:00Z",
"completed_at": "2026-05-17T20:01:15Z",
"total_duration_sec": 75
}
prompts.json의 model_preference 필드 우선, 없으면 기본 사용.
| aspect_ratio | size |
|---|---|
| 9:16 | 1024x1792 (세로 임팩트) |
| 16:9 | 1792x1024 (가로 와이드) |
| 1:1 | 1024x1024 (정사각/침묵) |
scroll_length 3-4 임팩트 컷은 가능하면 9:16 + 1024x1792로 통일.