성공지식백과 로고성공지식백과
바이브 코딩디자인Claude프롬프트 엔지니어링AI 영상HiggsfieldSeedance

클로드 오퍼스 4.7 + 힉스필드 Seedance 2.0으로 향수 광고 혼자 만드는 가이드

공유:

이 조합을 붙였더니 광고 한 편을 기획부터 영상까지 혼자 다 만들어버렸습니다. 모델은 2026년 4월 16일에 공개된 클로드 오퍼스 4.7, 영상 플랫폼은 힉스필드(Higgsfield), 그리고 힉스필드에 새로 들어온 Seedance 2.0 모델입니다.

오퍼스 4.7은 이전 세대인 오퍼스 4.6과 비교해서 비주얼을 인식하는 능력이 크게 개선됐습니다. Computer Use 벤치마크가 54.5%에서 98.5%로 뛰었고, 입력 이미지 해상도도 3.75MP까지 올라갔습니다. 카메라 무브, 조명 방향, 샷 구도 같은 시각적인 디렉팅 지시를 구조화된 프롬프트로 뽑아내는 데 특히 강해졌습니다.

힉스필드는 AI 영상 플랫폼 중에서 광고 제작 쪽으로 가장 빠르게 움직이고 있는 플랫폼입니다. Marketing Studio라는 공간을 따로 만들어 아바타, 제품 샷, 광고용 프리셋을 한 화면에서 끝낼 수 있게 해뒀습니다. 그리고 최근에 Seedance 2.0이 들어오면서, 결과 영상이 실제 촬영본과 구분이 안 될 만큼 뽑히기 시작했습니다.

오늘 이 가이드에서는 누잇(Nuit)이라는 가상 프리미엄 향수 브랜드 광고 한 편을, 기획부터 완성 영상까지 혼자 만드는 전 과정을 따라갑니다. 브랜드 컨셉은 '밤에 스스로를 위해서 꺼내는 향수', 타깃은 도시 여성, 광고 길이는 15초입니다.

왜 이 조합인가

오퍼스 4.7의 비주얼 디렉팅

오퍼스 4.7은 단순히 긴 글을 잘 쓰는 모델이 아닙니다. 이번 버전에서 특히 눈에 띄는 변화는 시각적인 디렉팅 프롬프트를 만들어내는 능력입니다. 카메라 렌즈, 샷 사이즈, 조명 방향, 색온도, 초점 거리 같은 영상 제작의 디테일을 JSON 형식으로 구조화해 달라고 하면 상당히 충실하게 뽑아줍니다.

여기에 100만 토큰 컨텍스트 윈도우가 기본으로 제공되기 때문에, 브랜드 톤앤매너 문서 여러 개를 한 번에 밀어 넣어도 맥락을 놓치지 않고 작업합니다.

힉스필드 Marketing Studio와 Seedance 2.0

힉스필드는 영상 제작 워크플로우에서 필요한 요소를 한 화면에 모아뒀습니다.

힉스필드 Marketing Studio의 구성
  1. 40개 이상 미리 만들어진 아바타 + Soul 2.0으로 직접 만드는 커스텀 아바타
  2. 나노바나나(Nano Banana) 기반의 제품 샷 생성
  3. UGC, 하이퍼모션, TV 스팟, 튜토리얼, 언박싱 같은 광고용 프리셋 내장
  4. Seedance 2.0을 비롯한 최신 영상 모델 선택

Seedance 2.0은 ByteDance가 만든 AI 영상 모델입니다. 현실과 구분이 어려운 수준까지 올라왔고, 힉스필드에서 상대적으로 저렴하게 접근할 수 있습니다.

⚠️지역 제한 주의

힉스필드의 Seedance 2.0은 현재 미국과 일본에서는 제공되지 않습니다. 한국에서는 정상적으로 쓸 수 있지만, 해외에서 접속한다면 지역 제한에 먼저 걸릴 수 있습니다.

사전 준비

시작하기 전에 아래를 준비합니다.

시작 전 체크리스트

0/4 완료

작업은 전부 웹 브라우저에서 진행합니다. 클로드 코드 CLI를 써도 되지만, 오늘은 오퍼스 4.7 모델 자체의 출력 품질에 집중하기 위해서 웹에서 바로 진행합니다.

Step 1: 클로드 오퍼스 4.7로 광고 기획하기

모델 선택과 브리프 입력

클로드 웹에 접속해서 모델을 Opus 4.7로 바꿉니다. 그리고 아래 형식으로 광고 브리프를 넣습니다.

brief.md복사
브랜드: 누잇 (Nuit, 프랑스어로 '밤')
카테고리: 가상 프리미엄 향수
컨셉: 밤에 스스로를 위해서만 꺼내는 향수
타깃: 도시 여성
광고 길이: 15초
필요한 출력:
1. 광고 기획안 + 핵심 카피
2. 스토리보드 (장면별 컷)
3. 모델 아바타 이미지 프롬프트 (JSON)
4. 제품 샷 이미지 프롬프트 (JSON)
5. 영상 프롬프트 (JSON, Seedance 2.0용)

오퍼스 4.7은 긴 컨텍스트를 잘 붙잡는 편이라, 브랜드 톤앤매너 문서나 레퍼런스 영상 설명이 있으면 같이 붙여서 주면 결과가 더 정밀해집니다.

출력 형식 고정하기

프롬프트 품질을 뽑아내려면 출력 형식을 먼저 고정해 두는 편이 좋습니다. 특히 아바타 프롬프트, 제품 샷 프롬프트, 영상 프롬프트를 각각 JSON으로 받으면 이후 힉스필드에 붙여 넣는 단계가 깔끔해집니다.

오퍼스 4.7이 만들어 준 기획안을 확인했다면, 이제 세 가지 프롬프트를 각각 달라고 요청합니다.

오퍼스 4.7에 요청할 세 가지 프롬프트
  1. 프렌치 여성 모델 아바타 프롬프트
  2. 향수 제품 샷 프롬프트
  3. 두 요소를 합친 영상 프롬프트

Claude에 붙여 넣는 JSON 프롬프팅 구조

브리프만 던져 주면 오퍼스 4.7이 대충 문장 형태로 프롬프트를 만들어 줍니다. 그런데 Seedance 2.0 같은 영상 모델은 구조화된 JSON을 훨씬 안정적으로 해석합니다. 그래서 브리프 뒤에 아래 구조 가이드를 함께 붙여 넣어서, 오퍼스 4.7이 이 규격에 맞춰 프롬프트를 뽑도록 고정해 줍니다.

아래 내용을 복사해서 브리프 다음 메시지로 그대로 붙여 넣으면 됩니다.

seedance-json-prompting-structure.md복사
# The Complete Guide to JSON Prompting for Seedance 2.0

## Why Structured Prompts Beat Paragraph Prompts Every Time

Think about how a film crew receives a shot list. It isn't a rambling note from the director — it's a structured breakdown: scene number, lens, blocking, lighting setup, audio cue. JSON prompting works the same way. Instead of bundling your entire vision into a single flowing sentence, you hand the model a clean, labeled blueprint built from braces, keys, commas, and nested objects.

JSON — short for JavaScript Object Notation — is effectively the mother tongue of modern generative video systems. These models parse structured data far more reliably than they parse mood-heavy prose, which means a well-formed JSON block translates directly into what appears on screen.

### The Problem With Paragraph Prompts

Consider a common paragraph-style instruction:

> A skateboarder glides through a neon-lit Tokyo alley at midnight. The atmosphere feels rainy and moody, with reflections bouncing off the pavement. The camera follows from behind with a smooth tracking motion, giving it a dreamy cyberpunk vibe.

Looks fine on paper. But when handed to a video model, several things can go sideways:

- **Pace drift** — Is the skateboarder cruising leisurely or pushing hard? The model guesses, and the motion often looks rubbery or teleported.
- **Lighting ambiguity** — "Neon-lit" can turn into a blown-out rainbow mess or a flat purple wash.
- **Atmosphere overreach** — "Rainy and moody" might deliver a hurricane or, alternatively, barely a mist.
- **Camera interpretation** — "Tracking motion" is vague. Dolly? Gimbal? Drone? The output shakes or glides unpredictably.
- **Scene drift** — The alley might morph mid-shot, neon signs flickering in and out of existence.

Fixing these issues means regenerating, burning credits, and rewriting half the prompt. Every time.

### The JSON Alternative

Here's the same idea, restructured:

```json
{
  "subject": "skateboarder",
  "appearance": "black hoodie, cargo pants, worn sneakers",
  "action": "gliding forward at a steady cruising pace",
  "environment": {
    "location": "narrow Tokyo alley",
    "time_of_day": "midnight",
    "weather": "light drizzle, wet asphalt",
    "lighting": "neon pink and cyan signage reflecting on puddles",
    "background_elements": ["steam vents", "hanging lanterns", "flickering kanji signs"]
  },
  "camera": {
    "position": "low angle, behind subject",
    "lens": "24mm",
    "movement": "smooth gimbal tracking shot",
    "speed": "matching subject velocity"
  },
  "mood": "dreamy, cyberpunk",
  "style": "cinematic realism",
  "avoid": ["motion blur artifacts", "teleporting limbs", "distorted neon text"]
}
```

The best part? You're not writing full sentences. You're writing labels and short values — and the output is sharper for it.

## What JSON Prompting Actually Gets You

Structured prompts trade vagueness for precision. Here's what changes when you make the switch.

1. **Director-Level Control** — Every parameter is its own field. Want to dial in a specific look? Slot a camera object with lens, aperture, focal_length, shot_type, and movement. A 35mm lens at f/2.8 with a slow dolly-in produces something fundamentally different from a 14mm wide at f/11 — and JSON lets you specify exactly that.
2. **Layered Scene Orchestration** — Real video contains stacked motion: a character moves, the camera moves, the background shifts, lighting evolves, and sound layers in — all at once. JSON handles this with nested objects instead of runaway sentences.
3. **Template-Driven Consistency** — For brand campaigns, series content, or recurring characters, JSON becomes a reusable scaffold. Lock in your character definition, lighting palette, and camera grammar once — then swap out only the action or location field for each new shot.
4. **Synchronized Audio Direction** — Modern video models generate sound alongside visuals. JSON makes timing precise via an audio_track array with time, type, content keys.
5. **Fewer Hallucinations** — Ambiguity is where models go rogue. Structured fields leave less room for invention — so you get stable faces, consistent wardrobe, locked-in lighting, and physics that don't break mid-clip.

## Meet Seedance 2.0: Why It Pairs Exceptionally Well With JSON

Seedance 2.0 is ByteDance's latest multimodal video model, and it's arguably the strongest match for JSON prompting available right now.

- **Multimodal input at scale.** Seedance 2.0 accepts text, images, videos, and audio as inputs — up to 12 assets in a single generation (9 images, 3 video clips up to 15 seconds each, 3 audio clips up to 15 seconds each, plus text prompts).
- **Native audio generation.** Generate video and audio simultaneously. Your audio_track field isn't aspirational — it's enforced.
- **Multi-shot consistency.** The model maintains stable character appearance across frames and shots, solving character drift, style inconsistency, and detail loss.
- **Camera and motion replication.** Upload a reference video with camera movements or choreography you like, and the model replicates them with your own content.
- **Flexible output.** 4 to 15 seconds in length, aspect ratios 16:9 / 9:16 / 4:3 / 3:4 / 21:9 / 1:1, up to 1080p.

## Building a Seedance 2.0 JSON Prompt — Step by Step

### Step 1: Sketch Your Shot Before You Type

Before opening a JSON editor, answer these questions:

- **Subject** — Who or what anchors the frame?
- **Action** — What are they doing, and at what tempo?
- **Environment** — Where? When? Weather? Time of day?
- **Camera** — Lens, movement, angle, framing
- **Lighting** — Direction, color temperature, intensity, contrast
- **Style** — Photoreal, anime, 3D render, claymation, documentary?
- **Audio** — Dialogue, ambient, music, SFX
- **Exclusions** — What should never appear?

These become your top-level keys.

### Step 2: Build the Structure

Here's a reusable Seedance 2.0 scaffold:

```json
{
  "model": "Seedance 2.0",
  "scene": {
    "subject": {
      "description": "[who or what]",
      "appearance": "[wardrobe, hair, distinguishing features]",
      "age_range": "[optional]"
    },
    "action": "[specific verb phrase with tempo]",
    "environment": {
      "location": "[specific place]",
      "time_of_day": "[precise time]",
      "weather": "[optional]",
      "lighting": "[direction + color + intensity]",
      "background_elements": ["element 1", "element 2", "element 3"]
    },
    "camera": {
      "lens": "[focal length]",
      "aperture": "[f-stop]",
      "shot_type": "[wide / medium / close-up / etc.]",
      "angle": "[eye-level / low / high / Dutch]",
      "movement": "[static / pan / tilt / dolly / tracking / crane]",
      "direction": "[left / right / forward / backward]"
    },
    "style": "[visual style]",
    "mood": "[emotional tone]"
  },
  "audio_track": [
    {"time": 0.0, "type": "ambient", "content": "[ambient sound]"},
    {"time": 0.0, "type": "music", "style": "[genre / instrument]"},
    {"time": 2.0, "type": "sfx", "content": "[specific sound effect]"}
  ],
  "output": {
    "duration_seconds": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  },
  "avoid": ["element 1", "element 2"]
}
```

Copy this as your base. Swap values. Ship videos.

### Step 3: Worked Example — Same Scaffold, Different Scene

Say you want to pivot the earlier Tokyo skateboarder into something completely different — a traditional tea ceremony in Kyoto, shot in a documentary style.

```json
{
  "model": "Seedance 2.0",
  "scene": {
    "subject": {
      "description": "an elderly tea master",
      "appearance": "indigo kimono, silver hair tied back, calm expression"
    },
    "action": "slowly whisking matcha in a ceramic bowl with deliberate, practiced motion",
    "environment": {
      "location": "tatami-floored tea room in Kyoto",
      "time_of_day": "late afternoon",
      "lighting": "warm diffused light filtering through shoji screens",
      "background_elements": ["hanging scroll", "single ikebana arrangement", "cast-iron kettle steaming"]
    },
    "camera": {
      "lens": "50mm",
      "aperture": "f/2.0",
      "shot_type": "medium close-up",
      "angle": "eye-level",
      "movement": "static tripod shot",
      "focus": "shallow depth of field on the whisk"
    },
    "style": "documentary realism",
    "mood": "meditative, reverent"
  },
  "audio_track": [
    {"time": 0.0, "type": "ambient", "content": "quiet room tone"},
    {"time": 0.0, "type": "sfx", "content": "bamboo whisk against ceramic"},
    {"time": 2.5, "type": "sfx", "content": "distant temple bell"},
    {"time": 5.0, "type": "sfx", "content": "kettle softly steaming"}
  ],
  "output": {
    "duration_seconds": 10,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  },
  "avoid": ["modern objects", "fast cuts", "harsh shadows"]
}
```

Same skeleton. Entirely different film.

### Step 4: Iterate Surgically

This is where JSON pays off. Don't like the lighting? Change the lighting field only. Want to test a wider lens? Adjust camera.lens. Everything else stays locked. Compare that to rewriting a paragraph and watching five other things drift unpredictably.

## Advanced Seedance 2.0 Patterns

### Multi-Shot Sequences

Seedance 2.0 handles multi-shot payloads in a single generation. Structure them as an array:

```json
{
  "model": "Seedance 2.0",
  "shots": [
    {
      "shot_id": 1,
      "duration": 4,
      "description": "Wide establishing shot of a coastal cliff at dawn",
      "camera": {"lens": "14mm", "movement": "slow aerial push-in"},
      "character_ref": "character_01"
    },
    {
      "shot_id": 2,
      "duration": 5,
      "description": "Medium shot of the same character looking out to sea, wind in her hair",
      "camera": {"lens": "85mm", "movement": "slight handheld drift"},
      "character_ref": "character_01"
    },
    {
      "shot_id": 3,
      "duration": 6,
      "description": "Close-up on her hands gripping a letter, fingers trembling",
      "camera": {"lens": "100mm macro", "movement": "static"},
      "character_ref": "character_01"
    }
  ],
  "character_library": {
    "character_01": {
      "appearance": "woman in her late 20s, auburn hair, cream wool sweater, weathered silver ring",
      "maintain_consistency": true
    }
  },
  "continuity": {
    "lighting": "cool dawn, soft overcast",
    "color_grade": "muted teal and warm skin tones",
    "audio_continuity": true
  }
}
```

The character_library block is what keeps her face, hair, and sweater identical across all three shots — exploiting Seedance 2.0's consistency engine directly.

### Reference-Driven Generation

When you're supplying images, video, or audio as references, tell the model what each one is for:

```json
{
  "model": "Seedance 2.0",
  "references": {
    "character_image": {"role": "subject appearance", "apply_to": "all shots"},
    "motion_video": {"role": "camera movement reference", "apply_to": "shot 2 only"},
    "audio_sample": {"role": "voice timbre for dialogue", "apply_to": "full sequence"}
  },
  "prompt": "A martial artist rehearsing a slow kata in a bamboo forest at dawn."
}
```

### Physics-Aware Actions

Seedance 2.0 is strong on physics. Lean into that with explicit physics fields:

```json
{
  "action": "glass shattering on stone floor",
  "physics": {
    "gravity": "realistic",
    "fragmentation": "radial scatter pattern",
    "debris_count": "medium",
    "sound_sync": true
  },
  "slow_motion": {
    "enabled": true,
    "factor": 0.25,
    "target_moment": "impact"
  }
}
```

## Practical Tips for Cleaner Output

- **Prioritize what matters.** Don't stuff every possible field. If lighting isn't critical, leave it loose and let the model interpret. Over-specification can box the model into awkward compromises.
- **One idea per key.** Writing "lighting": "warm sunset with cold blue shadows and dramatic fog" mashes three concepts into one field. Split them: key_light, fill_light, atmosphere.
- **Save your templates.** Once you dial in a look — say, a noir detective style — keep that JSON as a reusable preset.
- **Use avoid actively.** Seedance 2.0 responds well to exclusion lists. If you keep getting extra limbs, distorted text, or weird lens flare, name them in avoid.
- **Match your duration to your action.** A complex multi-beat action in 4 seconds will feel rushed. A simple static scene stretched to 15 seconds will feel empty.
- **Test small, then scale.** Generate a 4-second version first to validate the look. Once the core scene works, extend to full length.

## Wrapping Up

JSON prompting isn't a gimmick — it's what separates hobbyist output from production-grade video. Paragraph prompts leave too much to chance; structured prompts hand the model a shot list. Seedance 2.0 is built for this workflow.
전체 보기

이 구조 가이드를 읽고 난 오퍼스 4.7이, 방금 준 누잇 브리프에 맞춘 프롬프트 3개를 위 규격대로 반환합니다. 다음 Step부터는 그 반환물을 각각 힉스필드에 붙여 넣기만 하면 됩니다.

Step 2: 힉스필드에서 아바타 만들기

모델 아바타 프롬프트

오퍼스 4.7이 만들어 준 아바타 프롬프트를 그대로 복사해 둡니다. 누잇 광고에서는 파리지앵 감성의 30대 여성 한 명을 모든 씬에 일관되게 등장시켜야 하기 때문에, 얼굴, 머리, 체형, 낮/밤 의상, 메이크업, 에너지, 일관성 지시까지 하나의 character_reference 오브젝트 안에 묶어 둡니다.

nuit-character-reference.json복사
{
  "character_reference": {
    "id": "nuit_female_lead",
    "nationality": "French (Parisian)",
    "age_range": "early-to-mid 30s",
    "face": {
      "shape": "soft oval with defined jawline",
      "skin": "fair porcelain with natural warmth, subtle freckles across nose bridge",
      "eyes": "deep hazel, almond-shaped, slightly downturned, introspective",
      "eyebrows": "natural, softly arched, un-groomed elegance",
      "lips": "medium fullness, natural rose tone, no heavy lipstick",
      "cheekbones": "high, sculpted but soft",
      "expression_default": "quiet, unreadable, interior"
    },
    "hair": {
      "color": "dark chestnut brown with subtle warm highlights",
      "length": "collarbone length",
      "style": "effortless, slightly tousled, middle part, natural texture",
      "finish": "matte, not glossy"
    },
    "body": {
      "build": "slender, elongated neck, delicate collarbone prominent",
      "posture": "composed, unhurried, confident but not performative"
    },
    "wardrobe": {
      "daytime": "charcoal gray tailored wool coat, cream silk blouse, black cigarette trousers, black leather pumps",
      "nighttime": "ivory silk slip dress, bare feet, no jewelry except a thin gold chain"
    },
    "makeup": "minimal, skin-first, slight mascara, bare lips — Parisian no-makeup aesthetic",
    "energy": "self-contained, private, quietly sensual without performing for anyone",
    "consistency_note": "Same face, same hair, same woman across all four scenes. No identity drift."
  }
}
전체 보기

이 프롬프트는 Step 2의 힉스필드 Create Avatar 단계에서 그대로 붙여 넣습니다. consistency_note 필드가 핵심인데, 영상 모델이 여러 컷에서 얼굴을 헷갈리지 않게 잡아 주는 역할을 합니다.

Marketing Studio로 이동

힉스필드에 접속하고 상단의 Marketing Studio를 클릭합니다. 여기는 광고 영상 제작용으로 프리셋이 최적화되어 있는 공간입니다.

좌측 패널에서 Avatar를 선택합니다. 이미 만들어져 있는 40여 개의 기본 아바타 중에서 고르거나, 이번처럼 향수 브랜드 컨셉에 맞춘 커스텀 아바타가 필요하면 Create Avatar를 누릅니다.

Create Avatar → Generate

Create Avatar 창이 뜨면 방금 복사한 아바타 프롬프트를 붙여 넣고 Generate를 누릅니다. 몇 초 안에 아바타 후보가 여러 장 생성됩니다.

마음에 드는 이미지를 골라 저장합니다. 저장한 아바타는 내 아바타 목록에 바로 추가되기 때문에, 뒤 단계의 영상 생성에서 바로 불러올 수 있습니다.

💡아바타 저장 팁

한 번에 여러 장 뽑아두고 3명 정도를 저장해 두면, 나중에 영상 퀄리티가 애매한 장면에서 다른 아바타로 갈아 끼우기 쉽습니다.

Step 3: 제품 샷 만들기

제품 샷 프롬프트

오퍼스 4.7에서 받은 제품 샷 프롬프트를 복사해 둡니다. 누잇은 '밤에, 혼자서만 꺼내는 향수'라는 컨셉이라 병도 그 무드를 그대로 따라갑니다. 빛을 튕기지 않고 빨아들이는 스모크 블루-블랙 글래스, 각인된 워드마크, 낮게 속삭이는 이탤릭 서브카피까지 한 번에 잡아 두는 구조입니다.

nuit-product-reference.json복사
{
  "product_reference": {
    "id": "nuit_perfume_bottle",
    "brand": "NUIT",
    "concept": "a perfume worn only at night, only for oneself",
    "bottle": {
      "shape": "tall rectangular flacon, softly rounded shoulders, minimalist silhouette",
      "height_ratio": "slim and elongated, roughly 3:1 height-to-width",
      "material": "heavy smoked glass, deep midnight blue-black, semi-translucent",
      "glass_finish": "hand-polished, catches light along one vertical edge",
      "liquid": "dark amber-gold, visible faintly through the smoked glass",
      "cap": "solid matte black metal, weighted, architectural cylinder",
      "label": {
        "style": "no front label — only deep-embossed wordmark directly into glass",
        "wordmark": "NUIT",
        "typography": "thin serif, all caps, wide letter-spacing",
        "finish": "subtle, visible only when light crosses it"
      },
      "secondary_text": {
        "position": "lower front, very small",
        "text": "pour moi seule",
        "typography": "italic serif, almost whispered"
      }
    },
    "mood_signature": "silent luxury, nocturnal, private, not display-oriented",
    "light_behavior": "absorbs light rather than reflects it; one soft highlight along the edge is enough",
    "consistency_note": "Identical bottle in every shot it appears. No design variation."
  }
}
전체 보기

힉스필드 이미지에서 Nano Banana Pro로 생성

제품 샷은 Marketing Studio 안에서 바로 만드는 게 아니라, 이미지 생성 쪽으로 이동해서 만듭니다.

제품 샷 생성 순서

0/4 완료

힉스필드의 UGC Factory 자체가 나노바나나 기반이기 때문에, 제품 샷을 바로 Marketing Studio에 연결해서 쓰기 좋습니다.

제품 샷 결과물이 여러 장 나오면 그중 하나를 저장합니다. 이미 출시된 제품이 있어서 실제 제품 이미지의 URL이 있는 경우에는, 이미지 섹션의 링크 입력 필드에서 바로 끌어오는 것도 가능합니다.

Step 4: 영상 프롬프트 작성과 영상 생성

영상 프롬프트

오퍼스 4.7이 만들어 준 영상 프롬프트는 한 통째가 아니라, project 메타데이터, 씬 배열 scenes, audio_timeline, 전체 방향성을 잡아 주는 global_directives, 그리고 절대 피해야 할 요소를 모은 negative_prompts_global까지 여러 레벨로 쪼개져서 나옵니다. 누잇 광고는 15초짜리 4씬 구성으로 잡혔습니다.

누잇 광고 4개 씬 구성
  1. 씬 1 (0–3초) — The City Wears Her: 사무실에서 집까지, 도시가 그녀를 착용하고 있는 상태
  2. 씬 2 (3–6초) — The Door Closes: 현관문이 닫히는 순간 모든 소음이 끊기는 힌지
  3. 씬 3 (6–11초) — The Ritual — Pour Moi Seule: 쇄골 안쪽에 향수를 얹는, 광고의 주제 그 자체
  4. 씬 4 (11–15초) — Pour Moi Seule: 순수한 검정 위에 얇은 세리프 타이포 마무리
nuit-video-prompt.json복사
{
  "project": {
    "title": "NUIT — Pour Moi Seule",
    "duration_seconds": 15,
    "aspect_ratio": "9:16",
    "resolution": "1080p",
    "model_target": "Seedance 2.0",
    "genre": "premium fragrance commercial",
    "overall_tone": "intimate, nocturnal, quiet luxury, interior emotion",
    "color_grade": {
      "daytime_scenes": "desaturated, cool steel blue, low contrast, clinical",
      "nighttime_scenes": "warm amber shadow, single-source key light, deep blacks, film grain"
    },
    "character_ref": "nuit_female_lead",
    "product_ref": "nuit_perfume_bottle"
  },
  "scenes": [
    {
      "scene_id": 1,
      "timecode": "0.0 - 3.0",
      "title": "The City Wears Her",
      "subject": "nuit_female_lead in daytime wardrobe",
      "action_sequence": [
        "close-up of black leather pumps striking polished marble floor, rhythmic",
        "elevator floor-number display counting down rapidly: 24, 18, 11, 3, G",
        "over-shoulder glimpse of phone screen lighting up with notifications"
      ],
      "environment": {
        "location": "corporate lobby and elevator interior, Paris business district",
        "time_of_day": "late afternoon, overcast",
        "lighting": "cold fluorescent overhead, flat, slightly green-tinted",
        "atmosphere": "sterile, impersonal, fast-paced"
      },
      "camera": {
        "lens": "50mm",
        "aperture": "f/2.8",
        "shots": [
          {
            "type": "extreme close-up",
            "subject": "heels on marble",
            "movement": "locked, low angle"
          },
          {
            "type": "macro insert",
            "subject": "elevator digits",
            "movement": "static"
          },
          {
            "type": "medium close-up",
            "subject": "her face in profile",
            "movement": "subtle handheld"
          }
        ],
        "cut_pace": "fast, 3 cuts in 3 seconds"
      },
      "character_state": "performing a role, not herself, face neutral and closed",
      "mood": "pressure, anonymity, exhaustion beneath composure",
      "negative_prompts": [
        "warm colors",
        "smiling",
        "slow motion",
        "soft focus",
        "romantic lighting"
      ]
    },
    {
      "scene_id": 2,
      "timecode": "3.0 - 6.0",
      "title": "The Door Closes",
      "subject": "nuit_female_lead transitioning from day to night",
      "action_sequence": [
        "apartment door swings closed, heavy thud, all city sound instantly silenced",
        "she leans her back against the closed door for half a second, eyes closed, exhaling",
        "she steps out of her pumps — one shoe tips sideways on the parquet floor"
      ],
      "environment": {
        "location": "entrance hallway of a Haussmann-style Parisian apartment",
        "time_of_day": "early night, blue hour outside windows",
        "lighting": "transition from cool hallway bulb to deeper warm shadow as she moves inward",
        "atmosphere": "relief, enclosure, privacy reclaimed"
      },
      "camera": {
        "lens": "35mm",
        "aperture": "f/2.0",
        "shots": [
          {
            "type": "medium wide",
            "subject": "door closing behind her",
            "movement": "locked"
          },
          {
            "type": "close-up",
            "subject": "her face against the door, eyes closed",
            "movement": "slow push-in"
          },
          {
            "type": "low-angle detail",
            "subject": "pumps being slipped off, one tipping over",
            "movement": "static"
          }
        ],
        "cut_pace": "slowing, breath-like"
      },
      "character_state": "beginning to unspool, shedding the public self",
      "mood": "decompression, quiet exhale",
      "sound_design_note": "the door-close is the hardest cut in the film — everything before is noise, everything after is silence",
      "negative_prompts": [
        "dialogue",
        "bright overhead light",
        "visible clutter",
        "any other people"
      ]
    },
    {
      "scene_id": 3,
      "timecode": "6.0 - 11.0",
      "title": "The Ritual — Pour Moi Seule",
      "subject": "nuit_female_lead in nighttime wardrobe + nuit_perfume_bottle",
      "action_sequence": [
        "she sits at a dark wood vanity, only a small brass table lamp lit beside her",
        "her hand enters frame and picks up the NUIT bottle — fingers wrap around the smoked glass",
        "close-up: matte black cap is twisted off with a soft click",
        "she does NOT spray on her wrist — she tilts her head slightly and applies the perfume to the inside of her own collarbone, just below the throat",
        "her eyes close, a slow inhale, and the faintest lift at the corner of her mouth — a smile meant for no one"
      ],
      "environment": {
        "location": "dim bedroom, vanity area, Haussmann apartment interior",
        "time_of_day": "night",
        "lighting": "single warm tungsten source from the table lamp, practical light only, deep falloff into black, soft rim on collarbone and jaw",
        "atmosphere": "sacred, private, ceremonial"
      },
      "camera": {
        "lens": "85mm",
        "aperture": "f/1.8",
        "shots": [
          {
            "type": "medium close-up",
            "subject": "her seated at vanity, lamp in frame",
            "movement": "extremely slow push-in"
          },
          {
            "type": "macro insert",
            "subject": "hand closing around NUIT bottle",
            "movement": "locked"
          },
          {
            "type": "extreme close-up",
            "subject": "cap twisting off",
            "movement": "locked"
          },
          {
            "type": "close-up",
            "subject": "perfume being applied to inside of collarbone",
            "movement": "locked, shallow DOF"
          },
          {
            "type": "close-up",
            "subject": "her eyes closing, micro-smile",
            "movement": "almost imperceptible push-in"
          }
        ],
        "cut_pace": "slow, meditative, longer holds"
      },
      "product_visibility": "NUIT bottle is clearly featured — smoked blue-black glass, embossed wordmark catches lamp light along one edge, pour moi seule italics briefly visible",
      "character_state": "fully herself, no audience, a private ceremony",
      "mood": "intimate, sensual without being sexual, the emotional heart of the film",
      "key_direction": "the collarbone application is the thesis of the ad — wrists are for handshakes, the collarbone is a place only she knows",
      "negative_prompts": [
        "spraying on wrist",
        "looking at camera",
        "looking in mirror with seductive gaze",
        "another person in frame",
        "bright lighting",
        "jewelry or elaborate makeup",
        "overly glamorous posing"
      ]
    },
    {
      "scene_id": 4,
      "timecode": "11.0 - 15.0",
      "title": "Pour Moi Seule",
      "subject": "typography on pure black",
      "action_sequence": [
        "full fade to black at 11.0s",
        "at 11.5s, first line of copy fades in, thin white serif: Le soir venu,",
        "at 12.5s, second line fades in below: je me retrouve.",
        "at 13.8s, both copy lines fade out",
        "at 14.2s, NUIT wordmark fades in, centered, thin serif, wide letter-spacing",
        "at 14.6s, small italic line appears beneath: pour moi seule",
        "hold until 15.0s"
      ],
      "environment": {
        "location": "pure black void",
        "lighting": "none — typography only",
        "atmosphere": "silence, resolution"
      },
      "camera": {
        "shots": [
          {
            "type": "static frame",
            "movement": "none"
          }
        ]
      },
      "typography": {
        "font_family": "thin classical French serif (Didot-style)",
        "color": "warm off-white, not pure white",
        "weight": "light",
        "letter_spacing": "generous",
        "animation": "slow fade in, slow fade out, no motion effects"
      },
      "copy_korean_subtitle_option": "밤이 되면, 나는 나에게 돌아온다.",
      "mood": "quiet landing, emotional residue",
      "negative_prompts": [
        "motion graphics",
        "sparkle effects",
        "bright white",
        "bold fonts",
        "animated logo reveals"
      ]
    }
  ],
  "audio_timeline": [
    {
      "time": 0.0,
      "type": "ambient",
      "content": "city lobby noise — heels on marble, distant voices, elevator hum",
      "volume": "loud, present"
    },
    {
      "time": 0.5,
      "type": "sound_effect",
      "content": "phone notification chimes, overlapping"
    },
    {
      "time": 1.8,
      "type": "sound_effect",
      "content": "distant car horn, muted"
    },
    {
      "time": 3.0,
      "type": "sound_effect",
      "content": "heavy apartment door closing — THUD",
      "volume": "sharp, then total silence"
    },
    {
      "time": 3.1,
      "type": "ambient",
      "content": "complete silence, only faint room tone",
      "volume": "near-zero"
    },
    {
      "time": 4.5,
      "type": "sound_effect",
      "content": "soft exhale"
    },
    {
      "time": 5.2,
      "type": "sound_effect",
      "content": "pump dropping onto parquet floor, wooden tap"
    },
    {
      "time": 6.0,
      "type": "music",
      "style": "single sustained cello note, very low, entering almost subliminally"
    },
    {
      "time": 7.0,
      "type": "sound_effect",
      "content": "perfume cap twisting off — tiny mechanical click",
      "volume": "intimate, close-mic"
    },
    {
      "time": 8.5,
      "type": "sound_effect",
      "content": "soft atomizer mist — barely audible pfft"
    },
    {
      "time": 9.2,
      "type": "sound_effect",
      "content": "slow inhale through nose",
      "volume": "intimate, close-mic"
    },
    {
      "time": 10.0,
      "type": "music",
      "style": "cello joined by single piano note, holding"
    },
    {
      "time": 11.0,
      "type": "music",
      "style": "sustained tone continues under black frame"
    },
    {
      "time": 14.2,
      "type": "music",
      "style": "tone resolves, soft decay"
    },
    {
      "time": 15.0,
      "type": "end"
    }
  ],
  "global_directives": {
    "pacing": "the film breathes in halves — the first half is noise, the second half is silence; the door-close at 3.0s is the hinge",
    "performance_direction": "the actress must never perform for the camera; she is alone and we are eavesdropping",
    "color_continuity": "scenes 1-2 are desaturated cool; scenes 3-4 are warm amber black; the shift mirrors her returning to herself",
    "brand_rule_1": "no male presence, no party, no mirror self-gaze, no social setting — this perfume is not for seduction of others",
    "brand_rule_2": "the collarbone application in scene 3 is non-negotiable — it is the visual thesis",
    "brand_rule_3": "the NUIT bottle must read as silent luxury — it absorbs light, never sparkles",
    "consistency": "same actress, same bottle, same apartment universe across all scenes"
  },
  "negative_prompts_global": [
    "text overlays during scenes 1-3",
    "logo bugs or watermarks",
    "fast zoom effects",
    "lens flares",
    "bokeh hearts",
    "oversaturated colors",
    "any second character",
    "direct eye contact with camera",
    "product held up to camera like a commercial reveal",
    "smiling widely",
    "dancing or movement to music"
  ]
}
전체 보기

아바타와 제품 불러오기

Marketing Studio로 다시 돌아옵니다.

Marketing Studio에서 연결할 것

0/2 완료

영상 설명 프롬프트 붙여 넣기

Marketing Studio 하단의 영상 프롬프트 입력란에 방금 복사한 영상 프롬프트를 붙여 넣습니다. 오퍼스 4.7이 만들어 준 프롬프트는 장면별 시간과 카메라 지시까지 포함되어 있기 때문에, 수정 없이 그대로 붙여 넣어도 됩니다.

프리셋 선택

Marketing Studio에는 광고 성격에 따라 고를 수 있는 프리셋이 준비되어 있습니다.

프리셋어디에 잘 맞는가
UGC실제 사람이 제품을 리뷰하는 느낌의 영상
Tutorial제품 사용법을 보여주는 튜토리얼 영상
Unboxing제품을 새로 받고 언박싱하는 영상
HyperMotion제품 자체의 동적인 움직임이 돋보이는 영상
TV SpotTV 광고 스팟 느낌의 짧고 임팩트 있는 영상
Marketing Studio 프리셋 선택 가이드

향수 광고처럼 제품의 질감과 무브먼트가 살아나야 하는 경우는 HyperMotion이 특히 잘 맞습니다. TV 광고 톤을 내고 싶다면 TV Spot도 좋은 선택입니다.

우측 옵션 패널에서는 영상의 화면 비율, 해상도, 길이를 조절할 수 있습니다. 광고 길이는 15초로 설정하고, 영상 모델을 Seedance 2.0으로 선택한 뒤 Generate를 누릅니다.

Step 5: 결과 확인과 디테일 보정

첫 번째 영상이 나오면 아래 기준으로 확인합니다.

영상 결과물 체크포인트

0/4 완료

애매한 장면이 있으면 오퍼스 4.7로 돌아가서 해당 컷의 프롬프트만 수정해서 다시 돌리는 편이 효율적입니다. 영상 전체를 재생성하는 게 아니라 문제가 되는 컷만 찍어내고, Marketing Studio에서 이어 붙이는 방식입니다.

Step 6: 비용과 플랜 선택

이 워크플로우의 실제 비용은 영상 생성을 몇 번 돌리는지에 따라 결정됩니다.

힉스필드 플랜을 고를 때 기준
  1. 플랜은 Starter, Plus, Ultra 등급으로 나뉘고, 위로 올라갈수록 크레딧과 사용할 수 있는 모델 범위가 넓어짐
  2. Seedance 2.0 같은 상위 모델을 자주 돌린다면 Ultra 이상이 가성비가 남
  3. 연간 결제를 걸면 월 결제보다 크게 할인되는 혜택이 있음
  4. 새 가입자에게는 일정 기간 무제한 Seedance 2.0 체험이 제공되는 경우가 있음

힉스필드의 플랜 구성과 가격은 자주 바뀌기 때문에 정확한 수치는 힉스필드 Marketing Studio 페이지에서 확인하는 것을 권장합니다.

자주 막히는 문제

아바타의 얼굴이 컷마다 달라질 때

같은 아바타로 고정했는데 영상 컷마다 얼굴이 살짝 바뀐다면, 프롬프트에서 아바타 관련 설명을 영상 프롬프트 안에 다시 한 번 요약해서 넣는 방법이 있습니다. 오퍼스 4.7이 원본 아바타 프롬프트의 핵심 디스크립터를 짧게 뽑아 줍니다.

제품 라벨이 흐리게 뽑힐 때

Seedance 2.0 영상에서 제품 텍스트가 덜 선명하면, 영상 프롬프트에서 제품 클로즈업 컷의 카메라 거리, 초점 거리, 조명 방향을 좀 더 구체적으로 기재합니다. 오퍼스 4.7에 close-up lens, 85mm, rim light from the right 같은 디테일을 넣어 달라고 요청하는 게 빠릅니다.

Seedance 2.0이 목록에 안 보일 때

접속 지역이 미국이나 일본이면 Seedance 2.0이 아예 노출되지 않을 수 있습니다. 이 가이드는 한국에서 접속한 걸 기본으로 전제합니다.

마무리

오퍼스 4.7이 광고 기획, 카피, 샷 리스트, 그리고 세 가지 프롬프트를 한 번에 만들어 주고, 힉스필드 Marketing Studio가 아바타·제품·영상을 한 화면에서 이어 붙여 줍니다. Seedance 2.0이 마지막 순간에 이걸 현실 영상처럼 바꿔줍니다.

데모로 향수 광고 한 편을 끝내기까지 1시간이 채 안 걸리는 수준까지 워크플로우가 압축됐습니다. 광고 업계에서 더 이상 사람이 필요 없어진다는 말이 왜 나오는지, 한 번만 직접 돌려 보면 체감됩니다.

오늘 이 가이드를 다시 한 번 따라가면서, 오퍼스 4.7로 기획 구조를 짜는 방식과, 힉스필드 + Seedance 2.0으로 그 기획을 영상으로 내려놓는 감각을 익혀 보기 바랍니다.

관련 글

성공지식백과 뉴스레터 구독

매주 AI 도구와 워크플로우를 실전 단위로 정리해 보내 드립니다.