r/seedance
Here's a musical on this wonderful July fourth day
Where all my musical peeps in AI world? Come on now we need a lil song and dance.
UGC Ad Testing: Seedance 2.0 x Gemini Omni x Grok Imagine 1.5 x Kling 3.0 (same prompt, same product)
wanted to see how the newer AI video models handle UGC style product ads, so I ran the exact same prompt through 4 models back to back.
Video #1 – Seedance 2.0
Video #2 – Gemini Omni
Video #3 – Grok Imagine 1.5
Video #4 – Kling 3.0
honestly the most surprising one was Gemini Omni didn't expect much going in, but the motion and product consistency held up really well, and it's noticeably cheaper per generation than the others.
ran all of these through Omnely because it's cheaper than Higgs
happy to answer questions on setup if anyone's curious.
Made with Seedance 2.0 on Easy-Peasy.AI: Singapore in 2000
Seedance 2.0 Prompt on Easy-Peasy.AI:
Main subject: Young Singaporean Chinese woman, early 20s, natural everyday appearance, faded sage-green ribbed tank top, loose high-waisted sand-beige cotton shorts, brown leather slides, thin gold chain necklace, dark brown straight hair in a low loose bun with face-framing strands. Realistic skin texture, minimal makeup (defined brows, lip balm only), warm and approachable personality. Faint tan lines visible on shoulders. Maintain consistent identity, clothing, hairstyle, and appearance throughout the entire video.
Location: Authentic mature Singapore HDB estate during a calm late morning. Long open-air concrete corridors with metal railings, neighbors' potted plants and hanging ferns lining the walkway, painted block numbers on wall ends, bamboo pole drying racks outside kitchen windows, void deck concrete benches, covered link walkways, mature rain trees and angsana trees casting moving dappled shadows, distant playground visible below. Quiet residential atmosphere. No stores, advertisements, kopitiams, crowds, or commercial activity.
Visual Style: Ultra-realistic documentary realism. Genuine candid behavior. Natural body language. Unscripted slice-of-life feeling. Strong environmental authenticity. Rich real-world details and believable human motion.
Camera Style: Early-2000s consumer DV camcorder aesthetic. Friend casually recording everyday moments. Heavy handheld shake, imperfect framing, frequent autofocus hunting, lens breathing, exposure pumping when moving between sun and shade, occasional motion blur, subtle rolling shutter, mild digital compression artifacts, faded colors, soft contrast, slight sensor noise. No stabilization. No cinematic camera moves. No modern color grading.
00:00–00:02 Outside an HDB flat entrance along an open-air corridor. She sits on a low concrete ledge beside the doorway, adjusting her hair bun with both hands raised. A warm breeze moves loose strands across her face. She smiles naturally while the camera struggles to hold focus. Drying rack with bamboo poles visible behind her.
00:02–00:04 The camera follows her along the corridor past rows of potted plants, hanging pothos, and a neighbor's small herb garden. She notices a community cat approaching from around a corner and crouches down near the railing. Framing drifts off-center as the operator tries to keep up. Dappled sunlight filters through a rain tree canopy above the corridor.
00:04–00:06 She gently pets and feeds the community cat from a small plastic container. Autofocus repeatedly shifts between her face and the animal. Morning sunlight flickers through leaves overhead. The cat rubs against her slides.
00:06–00:08 At a corridor drying area outside the kitchen window. She slides wet laundry onto a bamboo pole and lifts it onto the metal drying rack, fabrics swaying in the breeze. Exposure changes as clouds briefly pass overhead. A mynah bird hops along the railing in the background.
00:08–00:10 At the void deck below, sitting on a concrete bench under a covered walkway with a ceramic mug of kopi. She sits comfortably watching the estate, occasionally brushing hair behind her ear. Loose handheld side angle with natural camera drift. A bicycle is parked against a nearby pillar.
00:10–00:12 Close side profile. A neighbor walking past greets her off-camera. She turns, raises her hand, smiles warmly, and casually says, "Hi." The camera catches the moment slightly late, the neighbor already partially out of frame.
00:12–00:15 Walking slowly down a tree-lined covered walkway between blocks, holding her mug. She notices the camera, gives a small genuine smile, then looks away and continues walking. A distant bus passes on the road beyond the trees. Recording cuts abruptly to black mid-motion as if the camcorder was switched off.
Audio: Natural ambient sound only — mynah birds and sparrows chirping, distant bus engine braking, faint MRT announcement echo from a nearby station, light wind through rain trees, leaves rustling, faint neighborhood chatter in a mix of English and Singlish, cat purring and meowing, slides on concrete, fabric flapping on bamboo poles, subtle HDB estate ambience. No music. No sound design. No narration.
Goal: Authentic Singapore HDB heartland life captured like a forgotten home video from the early 2000s — candid, imperfect, realistic, warm, and deeply believable.
Most affordable Seedance 2.0 platform that doesn’t suck?
I’m not looking for the absolute cheapest random site if the queue is terrible or the output is unstable. Just want a Seedance 2.0 platform with decent pricing and usable workflow.
Loova ai seems to offer Seedance 2.0 at a pretty competitive price from what I’ve seen, starting from $0.1/s for 720p in credit mode, but I’d love to know if anyone has done a real comparison.
Disclaimer: not trying to start a platform war, just want to know where people are getting the best value rn.
What LLM/AI for prompting ?
Which LLM generates the best prompts for creating coherent, beautiful cinematic shots? Is it Google’s Gemini, with its advanced multimodal features and strong image understanding, or is it a more generally intelligent model like Claude Opus?
What's one Seedance mistake that actually made your video look better?
I feel like every time I try to force the "perfect" prompt, the result is just... okay.
But every now and then Seedance misunderstands something, changes the camera angle, or adds motion I never asked for-and somehow the clip ends up looking better than what I had in mind.
Has anyone else had a "happy accident" like that?
What did you originally prompt, and what unexpected thing did Seedance do that you actually kept?
Seedance . . .what am I doing wrong ???
THIS PROMPT IS FLAGGED - ' THE MOST AMAZING SCENIC VIDEO ' .....while it may work sometimes, it's still like a 20 percent chance it works.....simple reasoning tells me - I DON'T GIVE A FUCK HOW GOOD SEEDANCE IS IF IT'S CENSORING THE MOST BASIC THINGS AND IS A WORTHLESS PIECE OF SHIT TO ME.
Seedance 2.5 vs Seedance 2.0
Seedance 2.5 looks so much more natural and realistic than 2.0. The price is probably gonna skyrocket, though. Still can't wait to get my hands on it and try it out.
Seedance.ai refuses to give me a refund
I accidentally paid annual subs. I was in the wrong tab actually. In the annual tab it then quotes monthly price.
Anyways I wrote to them and they replied with incorrect information
Is there any recourse to get a refund and pay monthly subs?
Control facial expressions with FACS sheet in Seedance 2.0. Mini tutorial with free prompts inside.
First of all: credits:
I saw this on X, author: aimikoda.
Here's the original post on X.
I suggest you read all of it, see what others do, and adjust it for your needs.
FACS is a visual guide for the Facial Action Coding System. It let's you tell Seedance 2.0 inside prompt, what exact facial expression you want to see. It uses codes which are generated in first step. Disclaimer: remember that this is still AI video generations, not all generations will nail it in first shot. Iterate!:)
Here's step by step mini tutorial:
- Upload your character image to AI Image generation model. I've tested it with GPT Image 2 and Nano Banana Pro - both works for this, although sometimes captions unreadable, so iterate!:). Then use this prompt (again, credit for this: aimikoda):
​
Create a clean educational FACS Action Unit expression grid featuring a realistic adult female character. Use minimal studio lighting, neutral white background, high readability, professional facial anatomy reference sheet aesthetic, realistic skin texture, consistent identity across all panels. COLOR SYSTEM: Use soft pastel color coding for categories while keeping the overall sheet minimal and elegant. Forehead & Brow AUs: soft pastel blue Eye & Eyelid AUs: soft pastel lavender Nose & Cheek AUs: soft pastel peach Lip & Mouth AUs: soft pastel pink Head Movement AUs: soft pastel mint Eye Direction AUs: soft pastel cyan Special / Misc AUs: soft pastel beige Apply the color subtly as: - panel background tint - thin borders - small label accents Keep colors soft, muted and professional. Include these Action Units: GROUPS: FOREHEAD & BROW AU1 Inner Brow Raiser AU2 Outer Brow Raiser AU4 Brow Lowerer AU71 Brow Furrow AU72 Brow Bulge EYE & EYELID AU5 Upper Lid Raiser AU7 Lid Tightener AU41 Lid Droop AU42 Slit Eyes AU43 Eyes Closed AU44 Squint AU45 Blink AU46 Wink NOSE & CHEEK AU6 Cheek Raiser AU9 Nose Wrinkler AU11 Nasolabial Deepener AU82 Nostril Dilator AU83 Nostril Compressor LIP & MOUTH AU10 Upper Lip Raiser AU12 Lip Corner Puller AU13 Sharp Lip Puller AU14 Dimpler AU15 Lip Corner Depressor AU16 Lower Lip Depressor AU17 Chin Raiser AU18 Lip Pucker AU20 Lip Stretcher AU22 Lip Funneler AU23 Lip Tightener AU24 Lip Pressor AU25 Lips Part AU26 Jaw Drop AU27 Mouth Stretch AU28 Lip Suck AU84 Tongue Up AU85 Tongue Out HEAD MOVEMENT AU51 Head Turn Left AU52 Head Turn Right AU53 Head Up AU54 Head Down AU55 Head Tilt Left AU56 Head Tilt Right AU57 Head Forward AU58 Head Back EYE DIRECTION AU61 Eyes Turn Left AU62 Eyes Turn Right AU63 Eyes Up AU64 Eyes Down SPECIAL / MISC AU81 Chewing
And you have your FACS sheet.
2. Use it with Seedance 2.0. Example prompt from aimikoda:
Use the provided character @[image1] as the fixed identity reference.
15s, 1:1, 14 beats, beat-synced, cinematic tight close-up, subtle neutral background, high facial clarity, slow micro push-in, shallow depth of field.
1: AU10
2: AU20
3: AU22
4: AU23
5: AU27
6: AU28
7: AU45
8: AU53
9: AU61
10: AU62
11: AU64
12: AU85
13:AU84
14: AU46
Uneasy, hypnotic, controlled mood. No monster transformation, no gore, no comedy, no text overlay, no watermark.
As you can see, you just prompt the code of specific expression. You can ask your favourite LLM model which code to use to express i.e. anger, etc, it will tell you.
Final thoughts and tips:
Here's the prompt I've used to create top-left video:
Photorealistic 15-second video. 50-year-old Creole woman, face and shoulders only, bare skin no makeup, natural soft diffused light, plain white background, 4K, shallow depth of field.
Timeline: 0–2s: Neutral resting face, eyes forward, relaxed brow and lips. 2–4s: Happy — AU6 (cheek raiser, orbital orbicularis oculi tightens, crow's feet appear) + AU12 (zygomaticus major pulls lip corners up and laterally), Duchenne smile, slight natural eye squint from cheek push. 4–6s: Sad — AU1 (inner brow raise, frontalis medial lifts producing oblique brow) + AU4 (corrugator and procerus knit and lower the brow, grief knot) + AU15 (depressor anguli oris pulls lip corners down), eyes slightly glassy. 6–7s: AU61 — eyes turn left, head stays still, gaze shifts left. 7–8s: AU62 — eyes turn right, head stays still, gaze shifts right. 8–9.5s: AU46 left eye — left orbicularis oculi closes left eye with slight compression, right eye stays open, subtle smirk. 9.5–11s: AU46 right eye — right orbicularis oculi closes right eye with slight compression, left eye stays open. 11–12.5s: AU85 — tongue protrudes straight out from mouth, jaw drops slightly via AU26. 12.5–13.5s: Tongue moves to the left side of the mouth, visible tip extends past left lip corner. 13.5–14.5s: Tongue moves to the right side of the mouth, visible tip extends past right lip corner. 14.5–15s: Returns to neutral, tongue retracts, lips close via AU8, relaxed expression.
I did not include the character's photo for any of the generations used in the video above. There is no difference between using or not using it, of course if you want to have consistency - use image character.
Test different approaches - check what you get if you use codes only, codes with short description. And again - this is still not perfect. Prompts and FACS codes DO NOT guarantee that you'll get what you explicitly told in prompt regarding facial expressions. But the success rate is really high.
I've noticed that the more expressions in one prompt, the less accuracy in output will be, which is absolutely understable. So I'd suggest 3-4 expressions max in one generation.
Of course facial expressions itself are not particularly useful, the purpose is to use them in prompts when creating monologues, dialogs, or other videos where you need specific facial expressions. Here's the example prompt, feel free to test it:
Use the provided character @[image1] as the fixed identity reference. 15s, 16:9, dim interior, single warm lamp, slight low angle, handheld micro-sway, shallow depth of field. Dialogue: "Hey, hey — everything's fine, okay? We're just gonna play a game where we stay really quiet. Can you do that for me?" Beat 1 (0–1s): AU5+AU38 (upper lid raiser + nostril dilator — genuine fear, pre-dialogue) Beat 2 (1–2s): AU45 (blink — forcing reset, composing the mask) Beat 3 (2–4s): AU12+AU6 (Duchenne smile — forced but committed, parental warmth overriding terror) — delivers "Hey, hey — everything's fine" Beat 4 (4–5s): AU1 (inner brow raiser — pleading sincerity leaking through) — delivers "okay?" Beat 5 (5–6s): AU7 (lid tightener — eyes betraying the fear the smile is hiding) Beat 6 (6–8s): AU12+AU2 (smile + outer brow raise — brightening, performing fun) — delivers "We're just gonna play a game" Beat 7 (8–10s): AU4+AU24 (brow lowerer + lip presser — seriousness cracking through for a flash) — delivers "where we stay really quiet" Beat 8 (10–11s): AU45 (blink — catching the slip, resetting to warmth) Beat 9 (11–13s): AU12+AU1 (smile + inner brow raise — tenderness and desperation fused) — delivers "Can you do that" Beat 10 (13–15s): AU6+AU17 (cheek raiser + chin raiser — eyes smiling while chin trembles) — delivers "for me?" Devastating contrast between performed safety and visible terror. The face should never fully commit to either — the audience reads both simultaneously. No action sequences, no visible threat, no sound effects, no text overlay, no watermark.
FACS are being used by professional video animators in movie industry.
I found this resource very helpful to understand the topic, and also started to create my own sheets. Why? Because when you prompt the LLM to generate you a FACS sheet - it's an LLM! It can be wrong. My results improved after studying this resource and free references which available on this website.
PS: 95% of times if you tell not to generate audio, Seedance will listen. Enjoy the remaining 5% from the low left girl :D.
Now go and experiment, and have some fun with it :)
Which one is AI? Don't pick the low quality one — you might get the wrong answer. Recreated a scene from Pride and Prejudice movie using Seedace 2.0. Single shot responses, no redos, no edits.
AI isn't just coming for Hollywood. It's going to make movies 1000x better.
Think about it — when was the last time you specifically searched for and bought a handmade dress? You didn't. You buy factory-made clothes because they come in more varieties, higher consistency, and cheaper prices. Nobody cries about it.
Films are going the exact same way. AI-made films will be mainstream in less than 2 years. The current studio system won't survive it, and honestly? Good riddance.
The gatekeepers had their run. Now anyone with a laptop and a story can make cinema.
15 hours. $65 budget. My goal was to make people forget this is AI. Did I succeed?
youtu.beWhat does Seedance 2.0 actually cost across platforms (price comparison)
People compare Seedance 2.0 using the monthly subscription price, but that number hides what actually drives cost per usable clip: resolution, regional credit allocation, how often generations get filtered or fail, and watermarks. Here is the math for a 5-second clip across three platforms. This is ONLY what I’ve tried so far.
Dreamina has the lowest list price: about $42/month for roughly 8,600 credits. A 5-second clip costs around 85 credits, so about 100 generations, or $0.40–0.45 each. In some regions the same plan gives only 5,000–7,000 credits, which raises the real cost to $0.60–0.80.
AtlasCloud bills per second through its API: about $0.10/s at 480p ($0.50 per clip) and $0.20/s at 720p (about $1.00). Higher, but predictable, with no credit system in between.
Higgsfield usually costs more per Seedance clip, except during promotional or unlimited tiers, when the effective price can drop sharply. Outside those, it is not the cheapest.
The figure tables miss is the failure rate: filtered generations and watermarks make the real cost per usable clip much higher than the headline.
What else is worth mentioning?
The most underused Seedance 2.0 feature - audio as an input (tutorial with prompts)
Seedance isn't treating audio as an output layer.
It's a conditioning input, meaning: the model processes your uploaded audio file "during generation", alongside your text and image references.
The temporal branch (the part of the model responsible for reasoning about time, motion, and sequence across frames) uses the sound's structure to decide when cuts happen, how fast camera movements accelerate, where visual energy peaks.
So it's not like post-production sync or something. It's choreography baked into the generation itself.
There are two features that make this real. Most people use neither.
- Beat sync: upload a track, get auto-choreographed visuals
Upload an MP3 as `@Audio1`. The model analyzes it across four dimensions simultaneously — beat positions, dynamic contour, timbral texture, and song structure sections.
Then it maps all of that to the visual output. Camera cuts snap to beats. Movement accelerates into the build. Visual energy peaks at the drop.
The prompt structure is three sentences (delete quotes, I had to add them to avoid reddit default formatting when using @):
Use \@Audio1` ( as the rhythmic foundation. Sync camera transitions`
to the beat positions. Visual energy should build with the audio
crescendo and peak at the drop.
That's it. Each sentence handles one thing: which file is the rhythm source, which visual element responds to it, how visual energy maps to the audio arc.
You can get more specific if you want different visual elements responding to different audio characteristics:
\@Audio1` drives the visual rhythm. Camera cuts land on the downbeats.`
Subject movement accelerates into the build, holds at the peak, releases
on the drop. Colour temperature shifts warmer with the crescendo.
Camera responds to beat position. Movement responds to dynamic contour. Colour responds to the overall energy arc. You're essentially mixing audio-to-visual assignments in the same prompt.
And it stacks with other references. You can run a character reference from `@Image1`, pull camera movement style from `@Video1`, and drive the rhythm from `@Audio1` at the same time. The model processes them all simultaneously:
'@Image1' as character reference. Follow '@Video1' camera movement style.
'@Audio1' as rhythmic foundation — sync all camera transitions to
the beat positions. Character movement should pulse with the music.
The one constraint: `@Video1` camera style and `@Audio1` rhythm have to be compatible. A slow continuous dolly from the video reference fighting an EDM track sends conflicting temporal instructions. Pick references that can coexist.
2. The audio script block — dialogue and lip-sync from text alone
This is the one that genuinely surprised me. No microphone. No recording session. No post-production audio work. You write a timestamped script inside your text prompt, and Seedance generates the voices, the sound effects, and the lip-sync automatically.
The syntax:
[AUDIO: 0s] sharp inhale
[AUDIO: 2s] sword clash, metallic ring
[AUDIO: 4s] character says "Now you see"
Quoted text inside the marker generates speech with automatic lip-sync. Physical descriptions generate sound effects. Each `[AUDIO: Xs]` is a timestamp in the clip. The model builds the audio and synchronises the character's lip movement to the generated voice waveform.
A more complete example with mixed dialogue and SFX:
[AUDIO: 0s] heavy footsteps on concrete, echoing in a corridor
[AUDIO: 2s] door bursting open, impact bang
[AUDIO: 3s] character says "Nobody move"
[AUDIO: 5s] tense silence, distant traffic
[AUDIO: 7s] character says "Put it down. Slowly."
[AUDIO: 9s] object placed on table, soft thud
One block.
Six audio events.
Two dialogue lines with lip-sync generated at millisecond accuracy.
The model generates the voice first, then maps facial movement to the waveform — so the quality of the lip-sync is mostly determined by how precisely you wrote the dialogue.
Exact quoted text outperforms paraphrase.
A strong character reference in `@Image1` gives the model a consistent mouth structure to animate. Close-up framing produces better lip-sync than wide shots where the face is small.
It works in multiple languages too. Write the dialogue in Spanish, Japanese, French — the model generates speech in that language with appropriate phoneme-level lip-sync.
And you can combine it with beat sync in the same generation:
'@Audio1' as background music. Sync camera transitions to the beats.
[AUDIO: 0s] music from '@Audio1' begins
[AUDIO: 3s] character says "This changes everything"
[AUDIO: 5s] sharp breath — beat drop hits simultaneously
[AUDIO: 8s] character says "Let's go"
Music from the uploaded file as the rhythmic foundation. Dialogue and SFX from the script block as foreground. Camera cuts synced to the beat structure. One generation, complete mixed output.
3. The 15-second extraction problem
The audio file limit is 15 seconds.
The model takes the first 15 seconds of whatever you upload.
If you drop in a full 3-minute track and let the model decide what to use, you almost always get the intro — which is low energy, often ambient, no rhythmic drive. Nothing for the model to work with.
The right 15 seconds follow a specific arc: a build followed by a drop.
Rising tension into a peak.
That dynamic gradient is what the model translates into visual structure.
A segment with uniform energy gives the model beats to detect but no arc to map to visual energy shifts — the output is rhythmically synced but dramatically flat.
Where to find the window:
- Pre-chorus into chorus
- Instrumental build into the drop (EDM, electronic, hip-hop)
- Verse climax into a bridge
- The last 15 seconds of an intro that breaks into the first hook
Extract exactly that segment before uploading. 256kbps MP3 or above — lower bitrate degrades beat detection. Don't upload the full track and hope. Pick the window, extract it, upload that.
Flipping the workflow — audio in first, visuals built around it — changes what the model produces at a structural level. It's not a subtle difference.
Go, have fun, try this approach and tell me if that made a difference in your outputs.
I've wasted a lot of Seedance credits. Here are the 7 mistakes I was making.
I love Seedance and been heavily using it from 1.5 version, but of course 2.0 is asbolute beast, but you know it already. But it was the first model I really put effort to test, which usually was repeating the same mistakes, or prompt patterns I've used on other models. Here are my thought, I wonder if anyone has the same, or (I hope, that's what this post is for) can add some other tips. Also can't wait for 2.5, it's gonna shake the industry IMHO.
Some of you probably knows that stuff, so maybe it's more for people who just starting out.
- Longer prompts produce worse output, not better
I was writing 150–200 word prompts thinking more detail equals more control. It doesn't. Seedance reads left-to-right with diminishing attention weight — your first sentence carries the most influence, and by the third sentence you're well into "detail territory" where coherence per element starts dropping. I tested this directly: a 70-word prompt consistently outperformed a structurally identical 200-word version of the same scene. The model stops treating late-prompt elements as primary instructions and starts sampling them diffusely. The sweet spot I landed on: 50–80 words, structured as subject + action in sentence 1, camera + style in sentence 2, constraints in sentence 3.
- "Cinematic" is nearly useless.
I used this word in almost every prompt. It did nothing reliable. The problem is that "cinematic" was attached to an enormous range of footage in training data — dark thrillers, bright rom-coms, nature docs — so the model samples a broad, diffuse distribution when it encounters it. It has no specific meaning to the model. What works instead: name a director or a specific lighting setup. "Wes Anderson symmetry" gives you centered framing and pastel palette. "Kubrick one-point perspective" gives you geometric corridors. "Golden hour backlight, long shadows stretching forward" does what "cinematic lighting" never managed.
- Stacking camera movements produces jitter.
"Dolly in while panning left" seems completely reasonable. In Seedance it produces artifact-heavy output every time. The reason: camera movements are spatial vectors, and the model processes them sequentially, not as a unified compound move. Two directional vectors simultaneously means the model tries to execute both in sequence, which produces jitter at the transition. I switched to one primary movement plus one texture modifier at most. "Slow dolly in, slightly handheld" works cleanly. "Dolly in while panning left" doesn't.
- There are no negative prompts.
Coming from Stable Diffusion, writing "negative: jitter, bent limbs, deformation" felt completely natural to me. It made everything worse. Seedance has no negative embedding architecture — all text is processed as positive instruction. When you write "negative: jitter," the model reads noise it tries to interpret as a scene description, not a constraint. The fix I use now is positive constraint statements:
Instead of this:negative: jitter,negative: bent limbs,negative: flicker,negative: deformation
I use this:Face stable, Limbs anatomically natural,Consistent lighting, no flicker, Body proportions consistent throughout.
So it's like direct declarations of what must be true. That's what the architecture actually responds to.
- The word "fast" degrades output quality.
This one surprised me the most. "Fast" is the single highest-degradation keyword when you combine it with complex action or camera movement. The reason: the temporal branch has to run multiple high-velocity calculations simultaneously when motion elements are layered — and "fast" asks all of them to run at maximum velocity at once. Two competing fast elements produce jitter. Three produce compounding error that's hard to salvage. I stopped using the word entirely. Instead I describe the physics: "feet striking hard, each stride full extension, arms pumping at 90 degrees" generates the perception of speed without triggering the degradation. One element can carry speed — just not all of them simultaneously.
- Re-describing your reference image causes subject drift.
I'd upload a photo of a woman in a red dress and then write "a woman in a red dress standing at a window." The character came back slightly wrong every time. What's happening: when you re-describe the image in text, you give the model two competing inputs for the same subject. The model reconciles them, and reconciliation introduces drift. For image-to-video, I learned to keep the prompt to exactly two things — motion instructions and camera instructions. Everything already visible in the image stays out of the prompt entirely.
- Generic quality words do nothing.
"Amazing," "beautiful," "high quality," "epic" — I was loading my prompts with these. You know what I think when I or someone uses these in prompts? That I have no idea what I want to create :). SHortest path to wasted credits and/or slop.
These words are useless because they're high-frequency labels attached to an enormous range of outputs in training data. The model has no idea what "epic" means for your specific use case. The fix: replace every generic adjective with a specific named thing. A director's name. A lighting setup. A lens spec ("anamorphic 2.39:1, lens flare from practical light source"). These sample narrow, well-trained distributions and actually move the output.
Am I missing something? would you add some other stuff?