본문으로 건너뛰기

n8n NSFW 이미지 편집: 캐릭터 참조 하나로 여러 스타일 만들기

n8n 참조 편집 배치를 구성하세요. 이미지를 정확히 전달하고 작업 ID를 보관하며 캐릭터 일관성을 검토한 뒤 승인 파일만 저장·전달하는 방법입니다.

작성자
Lydia
발행
읽는 시간
약 24분
수정
초록 벨벳 소파에서 버건디 새틴 드레스를 입은 가상의 성인 캐릭터 Mara.

n8n에서 NSFW 캐릭터 시리즈를 배치 편집하려면 원하는 그림 하나를 작업 하나로 만들고 해당 참조를 함께 유지하며 모든 변형을 같은 승인 캐릭터 소스로 보내세요. 반환 파일을 검토 폴더에 저장하고 승인한 그림만 전달 폴더로 옮깁니다. 완료 API 요청을 얼굴 유지의 증거로 보지 않으면서 반복 가능한 제작 과정을 만듭니다.

어려운 것은 보통 프롬프트 여섯 개 작성이 아닙니다. 여섯 항목이 맞는 캐릭터·의상·방 참조를 받고 결과가 지시와 연결되며 임시 링크 만료 뒤 선택 버전을 찾는 일입니다. 이 결정이 없으면 완벽히 실행돼도 다른 캐릭터를 전달합니다.

가상의 34세 Mara를 위한 저녁 시리즈 여섯 장을 완전히 구성합니다. 확립된 정체성을 유지하며 의상, 빛, 구도를 바꿉니다. 공개 예시는 불투명 의상과 직접적이지 않은 지시입니다. 허용 성인 작업에도 같은 방식을 쓰지만 n8n·튜토리얼이 모든 NSFW의 허용·의도 렌더를 약속하지 않습니다.

출시된 SpicyAPI 커뮤니티 노드·현재 편집 스키마 기반의 제안이며 새로 실행한 여섯 장 보고서는 아닙니다. 노드의 자동 처리와 여러분의 창작 결정을 구분합니다.

승인 캐릭터 이미지 하나로 시리즈 구성하기

Mara가 누구냐고 물으면 보여 줄 그림부터 고르세요. 읽을 수 있는 얼굴, 유지할 머리, 절반을 가리지 않는 빛의 깨끗한 가까운 시야입니다. 예시는 어깨 길이 짙은 곱슬, 약간 비대칭 미소, 차콜 재킷 아래 불투명 짙은 파랑 캐미솔, 초록 소파 옆 착석입니다. 긴 가상 전기 없이 구체적으로 지시합니다.

캐릭터 원본으로 저장하고 SpicyAPI에 올려도 자체 저장소에 남기세요. 임시 URI는 제작 중 편리한 참조이지 영구 아카이브가 아닙니다. mara-master-v1처럼 버전을 주면 나중 머리 변경이 옛 시리즈 소스를 조용히 바꾸지 않습니다.

두 참조를 더 준비하세요. 의상은 다른 얼굴 없는 옷걸이·마네킹의 불투명 버건디 새틴 드레스, 방은 황동 램프·초록 벨벳 가구의 빈 라운지입니다. 1번의 인물, 2번의 의상, 3번의 배경이라는 구분된 지시를 줍니다.

다른 사람이 큰 방 사진이나 모델 얼굴의 의상 사진은 덜 명확합니다. 그것만 있으면 필요한 부분으로 크롭하세요. 최대 참조 세트가 아니라 각 이미지 기여의 모호함을 없애려는 것입니다.

첫 카메라 요청은 소스에 가깝게 둡니다. 착석 3/4가 등을 돌린 극단 하이앵글보다 다른 착석을 직접 지원합니다. 측정 성공률이 아닌 작업 권고입니다. 안 보인 특징을 발명할 각도에서는 가져갈 정보가 적습니다.

원본 → 의상 교체 → 새 방 → 새 포즈 → 클로즈업 사슬로 만들지 마세요. 출력마다 얼굴을 재해석하며 둘째 드리프트가 셋째 출발점이 됩니다. 여섯 행 모두 이전 결과 대신 mara-master-v1을 가리킵니다. 작은 수정용 의도 사슬은 가능하지만 연결의 우연한 결과와 구분하세요.

성인 캐릭터, 버건디 드레스, 빈 라운지를 제공하는 세 참조.

첫 이미지는 정체성, 둘째는 의상, 셋째는 방에 사용하세요. 일러스트.

자동화 전에 편집 엔드포인트 고르기

캐릭터 설명을 텍스트 생성기에 붙이지 말고 이미지 편집 모델을 쓰세요. 내장 Edit Image는 크롭·리사이즈·합성 도구이며 의상·방을 바꾸는 생성 편집기가 아닙니다. 예시 ID는 alibaba/qwen-image-2.1/edit입니다. Qwen Image 2.1 편집 페이지가 실제 작업·제어를 설명합니다.

현재는 1~10장 목록 image_urls, 필수 최대 5,000자 prompt, 출력 화면비, 해상도 등급, 형식을 받습니다. 요청당 한 이미지여서 여섯 그림은 여섯 작업입니다. 참조 세 장은 출력 하나를 요청하지 변형 세 장을 요청하지 않습니다.

일반 다중 참조 배치는 resolution: 2k, aspect_ratio: 4:5, output_format: png, background: opaque입니다. 글 지시 그대로 시작하려면 enable_prompt_expansion을 false로 둡니다. 1k·2k에서 확장 끄기를 제공하며 비교 설정이지 정체성 잠금은 아닙니다. 첫 시드는 비워 두세요. 반복 시드가 같은 얼굴·파일을 보장하지 않습니다.

현재 스키마에는 strength, CFG, 스텝, 별도 negative가 없습니다. 다른 튜토리얼의 익숙한 Stable Diffusion 필드를 더하지 마세요. 보존·제외는 주요 지시에 넣고 로컬 제어가 필요하면 실제 제공하는 경로를 고릅니다.

mask_url은 정확히 참조 하나의 부분 수정이라는 다른 작업입니다. 세 참조 시리즈에는 안 씁니다. 채택 후 작은 의상 가장자리는 별도 마스크 작업으로 할 수 있습니다. 캐릭터·의상·방과 마스크를 함께 보내면 부분 모드 입력 요구를 깨뜨립니다.

카탈로그는 unrestricted로 설명합니다. NSFW 편집 선택에 관련되지만 다음 배치의 보장은 아닙니다. 기존 Qwen 편집 글은 다른 관찰 결과입니다. 여기서는 제작 절차를 더할 뿐 이전 관찰을 새 일관성 벤치마크로 만들지 않습니다.

실제 노드 설치와 이름 지정

패키지, 키, Cloud HTTP 템플릿은 공식 SpicyAPI n8n 가이드를 여세요. 다음 장면·참조 설정은 이 경로의 설명입니다.

패키지는 @spicyapi/n8n-nodes-spicyapi, 버전 0.1.1입니다. 자체 호스팅의 Settings → Community Nodes → Install에 넣어 설치합니다. 키 콘솔의 키로 SpicyAPI (spicyapi.ai) API 자격 증명을 만드세요. 구체적 이유 없으면 기본 URL을 유지합니다.

Cloud는 검증 노드를 허용하며 npm 게시가 검증은 아닙니다. 여기서는 자체 호스팅 커뮤니티 노드입니다. Cloud는 내장 HTTP Request로 같은 호출을 구현할 수 있지만 드롭다운·자동 업로드가 나타난다고 기대하지 마세요. 설치 문서가 구분합니다.

‘Edit Character’, ‘Batch NSFW’라는 별도 작업은 없습니다. Resource: Image → Operation: Generate에서 편집 모델을 고릅니다. Generate는 편집을 포함한 이미지 모델 작업이며 모델이 실제 기능을 결정합니다. 드롭다운은 시작 가격이지 참조 세트 완성 견적이 아닙니다.

작은 흐름 두 개를 만듭니다. 첫째는 후보 생성·검토 저장, 둘째는 승인 행을 읽어 선택 파일 전달입니다. 돌아올 때까지 실행을 기다리게 하지 않고 여섯 장을 함께 검토하며 동일 이미지 재생성 비용 없이 전달을 다시 씁니다.

중요 노드를 Read Jobs, Ready Jobs, Loop Jobs, Prepare Edit, Edit Character, Attach Job, Save Candidate, Record Candidate로 이름 붙이세요. 아래 표현식이 참조합니다. 다른 이름이면 식도 바꿉니다. 수동 구성 가이드이지 정확한 공식 가져오기 템플릿이 있다는 주장은 아닙니다.

Manual Trigger부터 시작하세요. 작동 뒤 예약을 더할 수 있지만 첫 실행은 의도한 작업 하나입니다. 새 업로드 폴더 자체는 제작 기획이 아닙니다. 표가 어느 업로드가 함께이고 무슨 출력인지 정합니다.

관련 파일 폴더 대신 작업 행 여섯 개 만들기

예시는 Google Sheet의 Jobs 탭입니다. 행 하나가 출력 하나이며 고유 job_id, 배치명, 프롬프트, 세 소스 위치, 해상도, 화면비, 시도 수, 상태를 둡니다. 다른 그림까지 다시 만들지 않고 특정 재시도가 가능합니다.

여섯 요청은 유용한 시리즈를 만들 만큼 다릅니다.

작업만들 그림주요 변경유지할 익숙한 것
M01착석 라운지 초상버건디 드레스, 같은 착석얼굴, 곱슬, 미소, 초록 소파
M02램프 상반신더 따뜻한 측면광·가까운 구도얼굴, 머리, 드레스 구조
M03소파 옆 선 초상자세·방 노출 변경정체성, 의상 색, 팔레트
M04창가 3/4차가운 창빛, 뒤의 램프정체성, 머리 길이, 드레스
M05재킷 클로즈업원래 차콜 재킷 추가얼굴 비율, 곱슬, 절제 표정
M06넓은 착석제목·크롭 공간정체성, 드레스, 가구 배치

모두 batch_id: mara-evening-01, attempt: 1입니다. 처음 M01만 ready, 나머지 draft입니다. 행 정보가 맞게 저장까지 이동한 뒤 나머지를 ready로 바꿉니다. 분리 연결 테스트가 아닌 실제 편집 경로를 시험합니다.

character_uri, wardrobe_uri, room_uri를 따로 두세요. 새 업로드 URI나 API가 받을 공개 이미지 URL입니다. JSON 배열 문자열보다 읽기 쉽고 Prepare Edit가 고정 순서의 image_urls로 결합합니다.

기획을 덮지 말고 task_id, candidate_file_id, candidate_name, review_status, review_note, delivery_file_id, actual_cost를 더하세요. 여러 후보라면 별도 Candidates 탭에 candidate_id로 식별한 후보를 두고 Jobs는 샷을 유지합니다. 첫째는 행당 하나지만 M03에 두 번 필요할 때부터 유용합니다.

후보 ID는 mara-evening-01-M03-a2가 될 수 있습니다. 배치, 그림, 시도를 한눈에 알며 API ID는 복구에 중요하나 어느 의상인지 말하지 않습니다. 둘 다 둡니다.

상태는 자신의 표 값 draft, ready, pending_review, approved, identity_fix, creative_fix, task_error, delivered입니다. SpicyAPI 상태가 아닙니다. 파일이 있어도 얼굴이 다르면 API는 succeeded, 표는 identity_fix일 수 있습니다.

의상 옆에서 버건디 드레스와 차콜 재킷을 입은 가상 성인 Mara의 수채화 패션 스케치.

캐릭터 참조 하나를 유지하며 작업별 의상, 포즈, 구도를 계획하세요. 일러스트.

바이트와 URL을 구분해 참조 가져오기

한 항목에 일반 JSON과 바이너리를 함께 담을 수 있습니다. URL 문자열은 JSON, 다운로드 사진은 data·character 같은 바이너리입니다. 이름·저장 식별자는 공개 이미지 URL이 아닙니다.

한 작업에서는 저장소 연동으로 캐릭터를 character, 의상을 wardrobe, 방을 room에 받고 프롬프트와 같은 항목에 도착하게 하세요. 중간 Edit Fields에는 Include Binary Data를 켭니다. 아니면 JSON만 남고 사진이 사라질 수 있습니다.

SpicyAPI Media Inputs에 세 항목을 더합니다. 모두 image_urls, Source: Binary File이며 Input Binary Field는 character, wardrobe, room입니다. 같은 목록 필드 반복은 의도적이며 추가 순서로 업로드·참조 배열을 만듭니다.

mask_url 같은 단일 파일에 세 개를 넣지 마세요. 플러그인이 차이를 검사해 오류를 냅니다. 목록은 선택 스키마 기반이니 익숙하지 않으면 다른 흐름의 이름을 복사하기 전에 선택 모델을 보세요.

같은 세 소스 반복에는 명시적 업로드가 관리하기 쉽습니다. 원본을 받은 뒤 SpicyAPI → File → Upload에서 바이너리 이름을 맞춥니다. uri, fileId, fileName, mimeType, bytes가 돌아옵니다. uri를 대응 열에 둡니다.

업로드는 새 JSON이며 이전 reference_role을 자동 복사하지 않습니다. 세 항목 목록이면 연결 식·명시 merge로 역할을 보존하세요. 초보는 캐릭터·의상·방의 이름 붙인 업로드 노드 세 개가 쉽습니다. 각 URI를 표에 복사해 유료 전 역할을 보입니다.

업로드 입력은 임시이며 구현은 하루 보관으로 설명합니다. 다음 배치는 저장 원본에서 다시 올리세요. 지난달 표의 spicy://가 여전히 유효하다고 생각하지 마세요. 옆에 원래 Drive ID·저장 키를 두어 다시 만들게 합니다.

Drive 공유 페이지 URL도 흔한 오류입니다. API는 로그인 뒤 미리보기 HTML이 아닌 이미지 바이트가 필요합니다. 원본을 공개하지 말고 Drive 자격 증명으로 바이너리를 받고 SpicyAPI로 올리세요. 개인 소스 폴더를 비공개로 유지합니다.

여섯 행은 새 URI를 공유합니다. Media Inputs 세 개를 Source: URL, {{ $json.character_uri }}, {{ $json.wardrobe_uri }}, {{ $json.room_uri }}로 둡니다. UI의 URL은 Spicy URI도 받아 큰 바이너리를 모든 표 작업에 옮기지 않습니다.

여러 참조는 한 항목 안에 유지하기

여섯 작업은 n8n 여섯 항목, 각 세 참조는 항목 안의 세 요소 배열입니다. 배열을 세 항목으로 나누면 의미가 달라져 참조 하나씩의 독립 요청 셋이 될 수 있습니다.

실제 Telegram 앨범 토론에서는 여러 이미지가 별도 실행을 일으켰고 Wait는 각 실행을 늦췄을 뿐 묶지 않았습니다. 공유 앨범 ID 버퍼·수집과 처리 분리를 제안합니다. 보편 해결은 아니지만 ‘조금 기다림’과 ‘참조 세트 조립’의 차이를 보여 줍니다.

표는 편집 전에 참조를 선언해 수집 문제를 피합니다. 다중 업로드 양식을 더하면 선택 파일·역할 모두를 한 항목으로 만드세요. 모든 들어오는 파일이 Edit Character를 따로 시작하게 하지 마세요. 의상 업로드가 의상 단독 재설계 요청이 되어서는 안 됩니다.

반복 Media Inputs나 Additional Parameters (JSON)로 목록을 만듭니다. 상자는 한 객체이며 마지막 merge로 Prompt, Model Parameters, Media Inputs를 덮습니다. 동적 배열에 유용하지만 보이는 선택을 숨길 수 있습니다.

준비 행에서 완전 입력을 만드는 예시는 다음입니다.

javascript
{{ {
  prompt: $json.edit_prompt,
  image_urls: [$json.character_uri, $json.wardrobe_uri, $json.room_uri],
  resolution: $json.resolution,
  aspect_ratio: $json.aspect_ratio,
  output_format: "png",
  background: "opaque",
  enable_prompt_expansion: false
} }}

한 방식을 고르세요. JSON이면 Media Inputs를 비워 마지막 덮어쓰기로 버릴 업로드를 피합니다. 시각 목록이면 Additional Parameters에서 image_urls를 뺍니다. 입력은 세 요소 배열 하나이며 중첩 배열·쉼표 문자열이 아닙니다.

표의 배열 열이 JSON처럼 보여도 텍스트일 수 있습니다. 별도 URI 열은 이를 피합니다. references_json이면 생성 전 배열로 파싱하고 실패 행을 멈춥니다. "[first,second,third]"는 URL 목록이 아닙니다.

해상도·Boolean도 같습니다. JSON에는 Boolean false를 쓰고 문자열 "false"는 쓰지 않습니다. 2k는 유효 enum이며 추측 픽셀값이 아닙니다. 스키마 양식이 받는 값을 보여 줘 편합니다.

무엇이 어디서 오는지 첫 지시에 명시하기

Prepare Edit에서 고정 역할 소개와 개별 샷으로 edit_prompt를 만드세요. Edit Fields 문자열 결합이면 되고 단순 여섯 행에 Code는 불필요합니다. 정체성은 고정, 행은 변경을 줍니다.

M01 지시안입니다.

이미지 1은 가상의 34세 성인 Mara입니다. 얼굴 비율, 어깨 길이 짙은 곱슬, 약간 비대칭 미소, 착석을 유지하세요. 이미지 2는 불투명 버건디 새틴 드레스만 제공합니다. 색, 네크라인, 솔기를 복사하고 다른 인물 정체성은 복사하지 마세요. 이미지 3은 라운지, 초록 벨벳 소파, 황동 램프만 제공합니다. 드레스를 입은 Mara를 그곳에 두세요. 읽을 수 있는 눈과 부드러운 따뜻한 빛의 자연스러운 초상입니다. 4:5 착석 3/4 구도. 다른 사람, 텍스트, 추가 액세서리 없음.

실행·평가 프롬프트가 아닌 제안입니다. 역할, 변경, 남길 특징을 지정하고 참조가 다르면 얼굴은 1번, 의상은 2번이라고 정합니다.

M02는 램프가 얼굴 한쪽을 비추는 상반신으로 샷 문장을 바꿉니다. M01 뒤에 충돌 카메라 열 개를 붙이지 마세요. M03은 착석 유지 문장을 소파 옆 서기·편한 보이는 손으로 교체합니다. ‘착석 유지’와 ‘서기’ 동시는 모순입니다.

M04는 창빛입니다. 머리·의상을 유지하며 차가운 창빛과 뒤 램프를 씁니다. 새 캐릭터 설명 아닌 조명 관계·위치 변경입니다. M05는 원본 차콜 재킷을 드레스 위에 쓴다고 직접 말하세요. 아니면 의상 전용 참조를 따를 이유가 있습니다.

M06은 한쪽 빈 공간의 넓은 착석입니다. 생성 뒤 무작위 크롭으로 얼굴을 줄이는 것과 다릅니다. 원하는 구도를 주고 전체 크기 얼굴을 보세요. 헤더에는 유용해도 정체성 디테일은 줄 수 있습니다.

엔드포인트·관객에 맞는 NSFW 스타일을 기획에 쓰되 ‘NSFW로’ 태그가 의상, 표정, 크롭, 분위기를 지정한다고 가정하지 마세요. 제작자가 써야 합니다. 공개 예시는 성숙한 저녁, 불투명 새틴, 직접 눈맞춤으로 직접적 지시 없이 톤을 전달합니다.

원본에 없는 정확 포즈가 필요하면 대량 예약 전에 자체 승인 참조로 만드세요. 모호한 반복 요청은 빠진 시각 정보를 대체하지 못합니다. 첫 배치의 성과는 즉시 채택 여섯 장보다 개선 소스 세트일 수 있습니다.

별도 오류 경로와 생성 루프 연결하기

Read Jobs에 Sheets Get Row(s)를 더해 배치 행을 읽고 Ready Jobs Filter로 status=ready를 남깁니다. Sheets 안에서 필터하면 첫 일치만 아닌 전부 반환하도록 하세요. 여섯 행에서 한 항목은 여섯 배치가 아닙니다.

Loop Jobs Loop Over Items, Batch Size 1, Reset 끄기에 연결합니다. loop에서 Prepare Edit → Edit Character입니다. SpicyAPI는 다중 입력을 이미 처리해 여러 편집 자체에는 루프가 필수 아닙니다. 행별 저장·상태 완료 후 다음 요청하려고 씁니다.

Edit Character를 Image → Generate, 정확 모델, 준비 Prompt로 둡니다. 앞서 고른 세 참조·JSON을 넣고 Wait for Completion, Download Output을 켭니다. Max Cost per Item (USD)는 의도한 상한입니다. 완전 견적이 아래라면 작은 예시의 $0.10이 시작점입니다.

이는 항목 하나지 표 전체가 아닙니다. 백 행도 각각 10센트를 통과할 수 있습니다. 여섯 ready로 제한하고 두 번째 경계가 필요하면 키 계정 지출 한도를 둡니다. 이미지가 좋아지는 것이 아니라 실수 예약의 대량 처리를 막습니다.

노드는 자체 견적 후 생성하며 초과하면 생성 전에 오류입니다. 표에 별도 추정 표시가 필요하지 않으면 두 번째 견적 노드를 더하지 마세요. 계획용 Model → Get Quote는 같은 입력을 생성 없이 가격 매깁니다.

Settings의 On Error는 이 가이드 오류 분기용 regular output 계속입니다. 오류 결과에는 error, description, 가능하면 작업 ID가 있습니다. Edit Character 뒤 If에서 error 존재를 보세요. 오류는 task_error·메시지 기록 후 Loop Jobs, 성공은 저장·pending_review 후 같은 루프입니다.

done에서 새 이미지를 생성하지 마세요. 모든 행이 돌아온 뒤 요약용입니다. 후보 표·집계를 읽을 수 있습니다. API 오류를 빈 파일로 저장하지 않고 완료 파일을 바로 전달하지 않도록 두 분기를 명시합니다.

여섯 편집은 내장 대기를 유지하고 별도 콜백은 보통 필요 없습니다. 대기가 중단됐지만 작업이 running이면 ID로 Task → Get, Wait for Completion, Download Output을 켜세요. 기본 Get은 안 기다려 running 기록만 올 수 있습니다. 별도 복구는 대응 Jobs를 먼저 읽어 Prepare Edit를 거친 뒤 Task → Get → Attach Job → 저장으로 가세요. 아래 연결 문맥을 보존하며 Manual Trigger에서 Get으로 바로 가면 Prepare Edit가 실행되지 않습니다. 성공·다운로드 뒤 Generate에 돌아가지 말고 후보를 저장합니다. 타임아웃은 description에 ID가 표시될 수 있으며 별도 taskId 필드는 빌 수 있습니다. 느려 보여 새 생성하면 원래가 나중 성공해도 새 과금 작업을 만듭니다.

저장 전에 작업 정체성 다시 붙이기

성공 노드는 작업·바이너리를 내보내며 원래 행에 필드를 더한 것이 아닙니다. taskId, state, cost, settled, output 같은 기록입니다. 맞는 행으로 생성했어도 이후 {{ $json.job_id }}가 비는 이유입니다.

성공 뒤 Edit Fields Attach Job를 더하고 작업 JSON 유지, Include Binary Data 켜기, 연결 표현식으로 제작 필드를 더하세요. 항목 pairing이 있어 첫 행이 아닌 대응 Prepare Edit를 참조합니다.

{{ $('Prepare Edit').item.json.job_id }}를 job_id에 쓰고, batch_id, attempt, edit_prompt, 소스 버전도 같은 패턴입니다. 현재 기록의 task_id는 {{ $json.taskId }}입니다. 배치·작업·시도로 candidate_id를 만들어 파일명 줄기로 씁니다.

모든 행에 $('Read Jobs').first()를 쓰지 마세요. 전부 M01로 붙일 수 있습니다. 한 분기 정렬·필터 후 위치로 재결합도 피합니다. 명확 관계가 있어야 pairing이 작동하니 분리·집계하면 job_id를 명시적으로 남기세요.

첫 바이너리는 기본 data, 추가는 data_1, data_2입니다. 예시 한 출력은 data를 저장합니다. 여러 반환 모델로 바꾸면 data 저장만으로 전체를 저장했다고 가정하지 마세요. 후보 에셋을 정하거나 별도 이름 기록으로 펼칩니다.

output.assets[].url은 결과 링크이지 다운로드 내용이 아닙니다. 패키지 문서상 약 20분 뒤 만료됩니다. 즉시 검토에는 유용해도 나중 실패할 수 있습니다. Download Output이 저장할 바이트를 줍니다.

바이너리도 영구 목적지가 필요합니다. 링크처럼 짧게 만료하지 않아도 실행 데이터는 정리될 수 있습니다. 성공 실행이 아카이브는 아닙니다. 실행 중 저장해야 내일 재생성 없이 엽니다.

후보를 저장한 뒤 눈으로 다음 수정 결정하기

개인 저장소에 mara-evening-01/review를 만드세요. Save Candidate의 Drive File → Upload, Input Data Field Name data, 후보 ID+.png, 해당 폴더입니다. Drive 문서가 필드를 설명합니다.

이름은 실제 형식이어야 합니다. JPEG에 .png를 써도 변환되지 않습니다. 예시는 PNG를 선택했습니다. 친숙한 이름뿐 아니라 반환 ID를 보관하세요. 같은 이름이 둘일 수 있으며 전달은 명확한 소스를 필요로 합니다.

업로드는 전체 후보 대신 파일 메타데이터를 줍니다. Record Candidate는 현재 ID와 Attach Job 연결값의 후보·작업·task·비용을 씁니다. Candidates Append or Update Row를 candidate_id로 매칭해 수동 매핑하면 재시도가 첫 기록을 덮지 않습니다.

Jobs도 갱신하면 job_id 대응을 pending_review로 두고 마지막 출력이 Loop Jobs로 돌아갑니다. 오류는 Prepare Edit의 원래 ID, 설명, task ID를 기록 후 돌아갑니다. 둘 다 돌아가지 않으면 첫 성공·실패에서 멈출 수 있습니다.

두 크기로 여섯 장을 함께 보세요. 썸네일은 같은 캐릭터, 맞는 의상·방, 샷 변화가 있는지입니다. 전체는 소스와 눈, 코, 입, 턱, 헤어라인, 비대칭을 비교합니다. 실용 관찰 지점이지 자동 생체 점수 시스템이 아닙니다.

정체성·창작 실패를 나누세요. 맞는 Mara와 틀린 램프는 다른 사람의 아름다운 초상과 다음 지시가 다릅니다. 얼굴 맞고 구도 틀리면 creative_fix, 얼굴 달라지면 identity_fix와 좁은 턱·다른 헤어라인 같은 메모입니다.

state succeeded나 자동 캡션이 의상을 맞게 설명했다고 승인하지 마세요. 캡션은 버건디를 알아도 기존 얼굴인지 결정하지 못합니다. 메모 제안 보조를 더해도 실제 승인은 별도로 보이게 둡니다.

실패마다 구체적인 다음 편집 주기

M01이 마네킹 머리를 가져오면 2번에 경쟁 머리가 정말 없는지 보고 의상으로 크롭하세요. 드레스만 2번, 곱슬·헤어라인은 1번만이라고 명확히 합니다. 드리프트 후보 아닌 원래 원본의 시도 2입니다.

M02가 얼굴은 맞고 네크라인을 바꾸면 의상 참조를 개선하세요. 어두워 숨긴 사진은 보존 정보가 적습니다. 솔기를 더 명확히 크롭해 상반신을 유지하며 구조를 요청합니다. 비슷한 드레스 추가는 모호함을 늘릴 수 있습니다.

M03 서기는 두 실패가 있습니다. 포즈 맞고 얼굴 틀리면 각도 변화를 줄여 카메라를 향한 서 있는 3/4, 얼굴 맞고 몸이 어색하면 보이는 편한 손의 단순 소파 옆 서기입니다. 어려운 회전, 교차 팔, 극단 빛을 동시에 요구하면 원인을 못 봅니다.

M04는 얼굴 맞아도 너무 차갑고 어두워 비교가 어려울 수 있습니다. 거부 전 중립적으로 보고 빛과 비율 변화를 구분하세요. 창가를 유지하며 읽히는 얼굴·부드러운 그림자를 요청합니다. 색 때문에 낯설다고 정체성 참조를 자동 교체하지 마세요.

M05 재킷이 다른 의상으로 커지면 원래 차콜 재킷을 드레스 위에 열어 입고 구조를 보이라고 씁니다. 좋은 프레임의 한 가장자리만 틀리면 전체보다 채택본의 부분 마스크를 고려하세요. 원래 세 참조가 아닌 후보 하나가 소스인 새 작업입니다.

M06 빈 공간은 있지만 머리가 작으면 왼쪽 방이 보이고 얼굴은 읽히는 착석 미디엄샷으로 구도를 조정합니다. 비율만으로 제목 공간 위치를 알려 주지 못합니다. 4:5, 16:9 목록만이 아닌 레이아웃을 설명하세요.

콘텐츠 거부는 identity-fix가 아닌 오류 경로입니다. 이유를 읽어 적합한 허용 요청·모델을 고르고 같은 거부를 반복하지 마세요. 렌더됐지만 부적합하면 성공 생성이라 청구될 수 있습니다. 구분을 남겨 실패한 창작 시도 비용이 보이게 합니다.

첫 단계 두 번처럼 의도한 시도 한도 뒤 수정 분기를 멈추세요. 두 번이면 충분하다는 예측이 아닌 제작 선택입니다. 고집스러운 샷은 소스 준비·수동 편집으로 돌아갑니다. 자동화는 부재 중 관련 없는 스무 대안보다 문제를 보이고 반복 가능하게 할 때 유용합니다.

또렷한 곱슬과 뒤의 부드럽게 흐린 램프가 있는 가상 성인 클로즈 초상.

얼굴 비율·곱슬은 배경 구도·램프 위치와 따로 비교하세요. 일러스트.

다시 생성하지 않고 승인 파일 전달하기

검토 뒤 선택 후보를 approved로 바꾸고 다른 시도는 메모와 남깁니다. M03 시도 2를 승인하고 1은 identity_fix로 둘 수 있습니다. 전달은 폴더 최신 파일이 아닌 Candidates를 읽습니다.

둘째 흐름은 Manual Trigger, Sheets Get Row(s), review_status approved와 빈 delivery_file_id Filter입니다. Batch Size 1의 Loop Over Items를 더하고 저장 Drive ID로 data에 받아 배치 approved 폴더로 전달 이름 업로드합니다.

임시 API URL 대신 검토한 자체 파일을 받으세요. 같은 시드·고해상도로 Image → Generate를 다시 호출해 승인 유지라고 가정하지 마세요. 새 렌더는 얼굴·의상·구도가 바뀔 수 있어 새 검토가 필요합니다.

전달 업로드 후 delivery_file_id, review_status: delivered를 쓰고 선택 후보를 Jobs에도 넣을 수 있습니다. 루프로 돌아갑니다. 파일 ID는 안정 조회와 정상 재실행의 미완료 오인을 막습니다.

바이너리 인계가 명시적이라 다운로드·업로드 복사를 씁니다. 바이트를 유지하는 네이티브 복사가 있으면 써도 됩니다. 전달은 승인 이미지 복사이지 편집 재실행이 아닙니다.

리사이즈·크롭·압축은 별도 폴더에 두세요. 같은 소스의 정사각 썸네일·전체 초상은 다른 파일입니다. 원래 승인본을 보관하면 새 생성료 없이 또 내보냅니다. 머리가 잘리거나 표현이 바뀌면 해당 목적지에서 검토하세요.

소셜 게시 노드는 없습니다. 파일·선택표에서 끝나면 디자이너 전달, 개인 갤러리 준비, 목적지 수동 선택에 충분합니다. 나중 게시를 더할 수 있지만 생성·검토와 뗄 수 없게 만들지는 마세요.

드롭다운보다 실제 참조 세트 가격 매기기

시작 가격은 탐색용입니다. 완전 참조·설정이 견적을 정합니다. 기본은 1k $0.036, 2k $0.048, 1.5k $0.072입니다. 불투명 PNG·확장 끄기의 세 참조 견적은 1k $0.060, 2k $0.048입니다. 1k 추가 둘은 $0.024, 해당 2k에는 추가가 없습니다. 중간 해상도가 더 싸거나 추가료가 모든 등급에 같다고 생각하지 마세요.

나머지 다섯 ready 전에 같은 image_urls, 프롬프트·설정으로 Model → Get Quote를 쓰세요. 견적과 조립 입력을 반환해 세 참조가 매핑됐는지 봅니다. 필요하면 바이너리를 업로드하나 생성하지 않습니다.

세 참조 2k $0.048은 여섯 후보 $0.288, 열두 요청 $0.576입니다. 같은 여섯의 1k 견적은 $0.360입니다. 견적 기반 계획이지 실행 영수증·품질 비교가 아닙니다. 실제 세트·설정을 다시 견적하세요. 저장·n8n 호스팅·구독은 별도입니다.

시도를 작업으로 세세요. 유료 후보가 안 맞으면 승인 여섯 장에 성공 여섯 번 이상이 필요합니다. 첫 실행 뒤 샷당 최대 둘이면 계획 열두 번입니다. 대체 없는 ‘여섯 장 배치’보다 유용합니다.

플러그인은 항목별 멱등 키를 보냅니다. 같은 실행의 같은 호출 재시도는 기존 복구용입니다. 새 실행·입력 변경·다른 루프는 새 작업입니다. Execute Workflow 재클릭은 원래 task ID 복구와 다릅니다.

ID가 있으면 기술 중단의 대체 전에 조회·복구하세요. 성공했는데 Drive 실패로 안 저장됐으면 출력 조회·저장만 끝냅니다. 저장 키 만료 때문에 얼굴이 좋아지는 것이 아니므로 새 렌더 창작 이유는 없습니다.

문서상 failed·expired는 보통 hold 해제, 거부는 모델 안내가 다르지 않으면 무료입니다. 자신의 검토에서 거부한 성공 후보는 API 실패와 다릅니다. 정산 기록의 actual_cost를 남겨 전달 샷별 실제 비용을 보세요.

첫 작업을 소스부터 전달까지 끝낸 뒤 늘리기

여섯 ready 전에 M01 생성·저장·검토를 실행합니다. 저장 파일을 열고 행 M01, 역할 맞는 프롬프트, 보는 파일과 반환 일치를 확인하세요. 실행 미리보기만으로 저장 이름·연결을 입증하지 못합니다.

승인 뒤 전달 한 번으로 선택한 것과 같은지 봅니다. 상태 그대로 다시 전달하면 이미 ID 있는 행은 건너뛰어야 합니다. 수동으로 ID를 비우면 다시 대상이 되니 실제 사본이 필요할 때만 합니다.

M02~M06을 ready로 두면 작업별 후보나 구체 오류 기록 하나가 나와야 합니다. 콘택트 시트를 보고 짧은 메모가 정당화하는 대체만 만드세요. 일반 대체 샷은 계속 캐릭터 원본을 씁니다.

정해진 캐릭터 소스, 역할 참조, 별도 작업, 맞는 바이너리·URI, 읽기 쉬운 지시, 선택 그림의 전달 폴더라는 유용한 n8n NSFW 이미지 변환 경로가 됩니다. 자동화는 재료 전달·저장을 맡고, 샷 설계·선택이 공개할 가치 있는 시리즈를 결정합니다.

다른 언어 English · 日本語 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

가이드를 직접 활용해 보세요

워크플로 보기

n8n으로 NSFW 캐릭터 사진 세트를 만드세요.

선택한 성인 캐릭터로 통일감 있는 NSFW 크리에이터 갤러리를 만드세요. n8n에서 의상과 장면을 바꾼 이미지 4·8·12장을 만들며, 모든 Qwen Image 2.1 편집에 같은 원본 인물 이미지를 다시 사용합니다.

직접 해 보기

실행한 만큼만 결제하세요. 요금제도, 구독도 없습니다.

사용 모델: MiniMax H3 · ByteDance Seedance 2.0 Fast