HiAPI
블로그

사용 가이드

wan2.7-image-standard 프롬프트 레시피: 레이아웃과 텍스트 렌더링을 위한 복사-붙여넣기 프롬프트

개발자를 위한 레시피 핸드북: 구조화된 레이아웃, 가독성 있는 텍스트, 재현 가능한 출력

Oct 31, 2026
封面插画:赤陶色与棕褐色阶梯状横向色带,自左向右逐级下降,铺于暖沙色底面上,平面印刷风格。

이 프롬프트 레시피 사용법

이 가이드의 모든 레시피는 동일한 형식을 따릅니다. 짧은 역할 설명 한 줄, 태그가 붙은 슬롯 묶음, 그리고 스타일과 렌더링 동작을 고정하는 고정 엔딩입니다. 슬롯 내용만 채우고 뼈대는 건드리지 않으면 여러 실행 간에 비교 가능한 출력을 얻을 수 있습니다.

템플릿은 다음과 같습니다:

[subject] | [layout spec] | [text block] | [style tail]

세로 막대로 구분된 각 구간은 하나의 질문에 답합니다. 주체(subject)는 이미지에 무엇이 있는지 설명합니다. 레이아웃 명세(layout spec)는 각 요소가 어디에 위치하는지 설명합니다. 텍스트 블록(text block)은 화면에 구워 넣어야 할 문구를 담습니다. 스타일 엔딩(style tail)은 렌더링 외관을 고정하여 여러 실행 간에 흔들리지 않게 합니다.

레시피를 변형할 때는 슬롯 구조가 아니라 슬롯 내용을 바꿉니다. 주체에 카드 블록이 두 개가 아니라 세 개 필요하다면 레이아웃 명세를 편집하세요. 레이아웃 구간을 삭제하지 마세요. 프레임워크를 온전히 유지해야 레시피를 재사용할 수 있고, 실패했을 때 디버깅도 할 수 있습니다. 어딘가 잘못됐을 때 어느 구간을 탓해야 하는지 알 수 있기 때문입니다.

실용적인 반복 루프는 이렇습니다: 레시피를 복사하고, 자신의 내용을 채우고, 생성한 뒤, 다른 변경을 하기 전에 직전 실행 결과와 비교하세요. 두 슬롯을 동시에 다시 쓰면 어떤 편집이 렌더링을 고쳤거나 망가뜨렸는지 판단할 능력을 잃게 됩니다.

레시피 형식: 템플릿의 빈 슬롯이 단일 렌더링 출력으로 모인다. 내용을 바꾸고 구조는 유지하라.

레시피: 레이아웃과 구도 제어

레이아웃은 프롬프트에서 가장 제어하기 쉬운 부분이면서 대부분의 사람이 가장 모호하게 표현하는 부분입니다. 모호한 레이아웃 언어는 모호한 구도를 낳습니다.

레시피: 못 박힌 그리드

[subject] | centered subject inside a 3-column grid, equal gutters, elements aligned to grid lines, generous outer margins, no overlapping shapes | [text block] | flat vector style, high contrast, clean edges

3-column grid, equal gutters라는 구절이 대부분의 일을 합니다. 이는 구도에 대한 바람을 셀 수 있는 제약으로 바꿉니다. 열 수를 레이아웃에 필요한 값으로 바꾸세요. 2-column, 4-column, single centered column 등입니다.

위계와 여백

위계란 프롬프트가 상대적 크기를 명시한다는 뜻입니다:

[subject] | one dominant headline block occupying the upper third, two smaller supporting blocks beneath it, at least 30% of the canvas left empty

여백 요청은 문자 그대로 적어 넣을 가치가 있습니다. 명시적인 빈 영역 지시가 없으면 출력은 화면을 채우는 경향이 있습니다. left empty와 spacious를 서로 다른 도구로 취급하세요. 전자는 제약이고, 후자는 분위기입니다.

예측 가능한 실패 사례

  • 한 번의 실행에 많은 위치 절을 쌓으면(top-left AND bottom-right AND centered) 모델이 모든 절에 타협합니다.
  • 같은 구간에서 레이아웃 언어와 스타일 언어를 섞으면 둘 다 혼란스러워집니다.
  • 서로를 함의하는 요소 이름(icon grid containing icons)은 아무 정보도 더하지 않습니다.

레이아웃 구간은 순수한 기하학적 설명으로 유지하세요. 스타일은 엔딩 구간에 둡니다.

느슨한 구도 영역과 엄격하게 제약된 구도 영역의 대비 — 같은 색 띠가 예측 가능한 구조로 그리드화된다.

레시피: 텍스트를 선명하게 렌더링하기

화면에 구워 넣는 텍스트는 이미지 생성에서 분산이 가장 큰 부분입니다. 신뢰할 수 있는 지렛대는 순서대로 길이, 따옴표, 위치입니다.

레시피: 짧은 따옴표 텍스트

[subject] | headline area in the upper center, one line of text only | headline text: "Ship Faster" | clean sans-serif, solid fill, high contrast against background

텍스트 내용은 큰따옴표 안에 두고, 다른 곳에는 두지 마세요. 따옴표는 산문으로 텍스트를 설명하는 것보다 훨씬 일관되게 "이것을 문자 그대로 렌더링하라"는 신호를 전달합니다. 따옴표 안의 문자열은 한두 단어로 유지하세요. 긴 문장은 근사적인 글리프로 퇴화합니다.

도움이 되는 배치 단서

텍스트 영역은 레이아웃 구간에, 텍스트 자체는 텍스트 구간에 두세요. 이 분리는 제목을 다시 쓰지 않고도 이동할 수 있게 해 주며, 이는 흔한 반복 조합입니다.

유용한 배치 표현:

  • headline area in the upper third
  • label beneath the main block
  • single centered line, no wrapping

no wrapping이라는 구절은 실제 제약으로, 모델이 짧은 문장을 두 줄로 나누는 것을 막습니다.

길이와 표현 규율

프롬프트를 쓰기 전에 문자 수를 마음속으로 제한하세요. 어떤 문구가 당신의 레이아웃 축척에서 한 시각적 줄에 들어가지 않는다면, 모델에게 줄이라고 요구하지 말고 줄이세요. 먼저 구두점을 삭제하고, 그다음 단어를 삭제하세요. 불필요한 쉼표와 아포스트로피는 아티팩트의 흔한 원인입니다.

텍스트 렌더링이 깨지면 먼저 길이를 줄이고, 그다음 스타일 설명어를 단순화하고, 그다음 배치 단서를 옮기세요. 각 실행마다 그중 하나만 바꾸세요.

서로 다른 레이아웃 영역에 배치된 짧고 촘촘하게 묶인 블록 — 가독성 있는 구워 넣기 텍스트 이면의 시각적 논리.

레시피: 구조화된 카드와 패널

다중 블록 레이아웃은 레시피가 가장 큰 보상을 주는 곳입니다. 반복이야말로 프롬프트가 정확히 설명해야 하는 내용이기 때문입니다.

레시피: 반복 카드 행

[subject] | a row of 3 identical cards, equal width, equal spacing between cards, consistent inner padding on all four sides, card content top-aligned within each card, unified outer margin | [text block] | flat vector style, subtle border, high contrast

핵심을 지탱하는 구절은 identical, equal width, equal spacing, consistent inner padding입니다. 각각은 측정 가능한 속성입니다. identical이라는 단어는 개수보다 더 중요합니다. 일관되어야 한다고 명시적으로 말하지 않으면 모델은 크기가 다른 카드 세 장을 기꺼이 생성합니다.

정렬 축

내용이 어느 모서리에 정렬되는지 명시하세요. top-aligned within each card와 left-aligned text with a single leading edge 모두 효과적입니다. 각 블록에 하나의 정렬 축을 지정하면 내용이 각 카드 안에서 독립적으로 떠다닐 때 생기는 표류를 막을 수 있습니다.

레시피 확장

한 행에서 그리드로 바꾸려면 기하학적 설명만 바꾸면 됩니다:

a 2x2 grid of 4 identical panels, equal gutters horizontally and vertically, consistent inner padding

밀도를 낮추려면 내부 여백을 줄이는 대신 블록 수를 줄이세요. 더 적고 여백이 충분한 블록이 많고 빽빽한 블록보다 더 깔끔하게 렌더링됩니다.

흔한 실패 패턴 하나는 각 카드의 내용은 다르지만 구조는 같으라고 요구하는 것입니다. 카드가 내용은 달라야 하지만 모양은 일치해야 한다면 명시하세요: identical card dimensions and spacing, varying text content per card.

매개변수와 반복 기법

프롬프트 작업은 디버깅 작업입니다. 중요한 규율은 단일 변수 반복입니다.

한 번에 하나만 바꾸기

현재 프롬프트를 적고, 편집을 하나만 하고, 생성한 뒤 비교하세요. 변경이 도움이 되면 유지하고 기록하세요. 도움이 되지 않으면 보정 문구를 덧붙이지 말고 완전히 되돌리세요. 보정 문구는 아무도 추론할 수 없는 프롬프트로 누적됩니다.

실행을 비교 가능하게 유지하기

프롬프트 텍스트를 반복하는 동안 매개변수는 고정하세요. 같은 라운드에서 레이아웃 문구와 생성 설정을 함께 조정하면 결과를 귀속시킬 수 없습니다. 시드나 설정 기준선을 선택하고, 그것에 대고 프롬프트를 변화시킨 다음, 승리한 프롬프트에 대해서만 매개변수를 조정하세요.

쌓지 말고 다시 쓰기

어떤 구간이 두 번 연속 실패하면 한정어를 추가하지 말고 다시 쓰세요. centered가 실패하면 centered, truly centered, make sure it is centered가 아니라 aligned to the horizontal center line으로 바꾸세요. 같은 단어의 반복은 노이즈로 읽힙니다.

무엇을 시도했는지 기록하기

각 레시피마다 짧은 변경 로그를 남기세요: 한 편집, 실행 식별자, 결과를 한 줄로 설명. 이것이 반복과 방황의 차이입니다. 몇 번의 실행 후에는 어느 슬롯이 실제로 민감한지 보이게 됩니다. 보통은 스타일 엔딩이 아니라 레이아웃이나 텍스트입니다.

마지막으로, 구조가 작동하기 전에는 스타일을 먼저 조정하려는 충동을 억제하세요. 먼저 소박한 스타일 엔딩 아래에서 기하학과 텍스트를 제대로 만든 다음 외관을 다듬으세요.

실제 생성 출력이 포함된 레시피

여기서는 레시피를 엔드투엔드로 실행하여 조언을 맹신하지 않고 결과를 판단할 수 있게 합니다. 아래 각 항목은 제출된 프롬프트와 그 옆의 생성 출력을 보여 줍니다.

실행 1: 따옴표 제목이 있는 못 박힌 그리드

announcement graphic | centered subject inside a 3-column grid, equal gutters, elements aligned to grid lines, generous outer margins | headline text: "Ship Faster" | flat vector style, high contrast, clean edges

볼 것: 제목이 한 줄에 있는지, 거터 간격이 실제로 동일하게 읽히는지, 외부 여백이 유지되는지. 외부 여백을 레시피가 선언한 의도와 비교하세요. "관대한(generous)"은 실행 간에 가장 먼저 침식되는 것입니다.

실행 2: 세 카드 행

feature overview | a row of 3 identical cards, equal width, equal spacing between cards, consistent inner padding, card content top-aligned | feature labels: "Build", "Ship", "Measure" | flat vector style, subtle border

볼 것: 카드 너비의 일관성, 세 레이블이 기준선을 공유하는지. 짧은 단일 단어 레이블은 가장 관대한 경우입니다. 이 실행은 상한을 설정하며, 이후 더 긴 카피를 시도할 때 기준이 됩니다.

실행 3: 여백이 있는 위계

section header | one dominant headline block in the upper third, one smaller supporting block beneath, at least 30% of canvas left empty | headline text: "Release Notes" | minimal flat style

볼 것: 빈 영역이 하나로 이어지는지 아니면 흩어져 있는지. 흩어진 여백은 레이아웃 지시가 느슨하게 해석되었다는 신호이며, 빈 영역을 이름 있는 영역으로 다시 표현해야 한다는 뜻입니다.

각 출력은 해당 레시피의 참조점이지 보장이 아닙니다. 내용을 채운 버전이 참조보다 못할 때 차이는 보통 당신이 바꾼 슬롯에 있습니다. 돌아가서 그 구간을 단어 단위로 비교하세요.

레시피를 반복 가능한 워크플로로 만들기

채팅 창에 사는 레시피는 자산이 아닙니다. 반복해서 가치를 얻으려면 레시피를 팀이 찾고, 비교하고, 버전 관리할 수 있는 곳에 저장하세요.

레시피를 파일로 저장하기

각 레시피를 작은 구조화 파일로 저장하고, 슬롯을 고정 프레임워크와 분리하며, 레시피 용도와 어떤 출력을 생성했는지에 대한 설명을 붙이세요. 슬롯을 분리해 저장하면 콘텐츠 업데이트가 프레임워크를 절대 건드리지 않게 되며, 이것이 바로 이 레시피들이 의존하는 불변량입니다.

내용뿐 아니라 프레임워크도 버전 관리하기

고정 엔딩(스타일 문구, 렌더링 설명어)을 바꿀 때는 기록하세요. 프레임워크 변경은 해당 레시피의 향후 모든 사용에 영향을 미치므로 버전 번호를 올리고 이유를 한 줄 붙일 가치가 있습니다.

출력을 버전에 첨부하기

각 버전 옆에 참조 출력 하나를 보관하세요. 리뷰어와 향후 기여자는 모든 것을 다시 실행하지 않고도 기대 품질을 볼 수 있습니다. 이는 위의 각 실행과 같은 원칙입니다. 출력은 항상 프롬프트 옆에 둡니다.

단일 인터페이스를 통해 라우팅하기

모든 레시피가 같은 API 인터페이스를 통해 실행되게 하여 생성 설정, 로그, 식별자가 일관되게 유지되도록 하세요. 서로 다른 레시피가 서로 다른 툴체인을 타면 일주일 만에 비교가 무의미해집니다. 실제로는 여러 머신에 흩어진 임시 스크립트 대신 프롬프트를 중앙에서 제출한다는 뜻입니다.

실제로 재사용하는 한두 개의 레시피부터 시작하고, 단일 인터페이스를 통해 파이프라인에 연결하며, 실제 필요가 생길 때만 모음을 늘리세요. 작고 잘 버전 관리된 레시피 집합이 아무도 신뢰하지 않는 방대한 프롬프트 라이브러리보다 낫습니다.

영구 AI 아티팩트로 빌드 시작하기

API 키를 받아 태스크 기반의 하나의 API로 이미지, 비디오, 오디오 모델을 호출하세요.

API 문서 보기