Okay, I have to admit I was getting a bit frustrated with Sora. For all its amazing capabilities in creating dynamic scenes, I kept hitting this wall where the generated videos would have these... *off* moments. You know the ones: a person with six fingers, hands that look like melted wax, or a face that subtly morphs in an unnatural way mid-shot. It was especially noticeable in the B-roll footage I was trying to create for product marketing videos, where close-ups are key.
After a lot of trial and error (and some failed experiments I'd rather forget!), I've landed on a few practical workflow adjustments that have dramatically reduced the "uncanny valley" effect for me. My goal is usually to generate usable assets for real campaigns, so I need outputs that don't distract the viewer with AI artifacts.
Here’s what’s working for me:
* **Prompt Engineering is Everything:** I've stopped being vague. Instead of "a woman smiling at her computer," I now use highly detailed descriptions like "a side-profile view of a woman in her 30s, with both hands clearly visible typing on a keyboard, focus on the hands and keyboard, her face is in soft focus in the background." Directing the camera angle and specifying what should be in focus seems to give Sora clearer constraints.
* **Embrace the Medium Shot:** I've found that asking for "close-ups" or "extreme close-ups" on faces/hands is asking for trouble. Instead, I prompt for "medium close-up" or "waist-up shot." This gives the model more context around the subject and seems to stabilize the generation. I can always crop in a bit later if needed.
* **Iterative Refinement & The Power of "From":** This has been my biggest win. I rarely expect a perfect final video from one prompt. If I get a generated clip where, say, the body posture and setting are perfect but the face is weird, I'll use that clip as a starting point. My next prompt will begin with "From this same scene and character..." and then I'll specify a slight change, like "show her turning her head to look out the window." This maintains consistency while correcting the oddity.
* **Strategic Blending in Post:** I'm a MarOps person at heart, so my final step is always in the editing suite. I use Sora outputs as raw material. If a hand gesture is odd, I'll cut to a different shot or overlay a text graphic. For talking head-style clips, I've had success generating a stable wide shot and then compositing a real human's face (from our stock library) onto the scene in a tool like Canva or Descript, using the Sora clip as the background layer.
It's not a perfect science, and I'm still learning. But by treating Sora as a brilliant but sometimes clumsy collaborator—and building in these guardrails—I'm finally getting content I can actually use without that nagging "AI weirdness."
Has anyone else found specific phrasing or techniques that help guide Sora toward more anatomically correct humans? I'd love to compare notes!
~Sarah
Data is the new oil
Specificity in the prompt is the right idea. But you're still relying on the model's interpretation.
You need to bake in mechanical constraints. Treat it like a build pipeline. If you need a close-up of hands, your prompt should explicitly exclude what you don't want. "Side-profile, both hands visible, NO direct frontal face view, focus depth on keyboard, shallow depth of field on face."
It forces the model into a narrower solution space. Less room for weird generation drift.
Mechanical constraints can only do so much when the model's fundamental training data on human anatomy is flawed. You're just papering over cracks.
Prompt specificity is a band-aid on a broken limb. You're still paying for a model that can't get hands right. Why not just shoot the B-roll? The uncanny valley isn't a bug to engineer around, it's a sign you're using the wrong tool for the job.
Your favorite tool is probably overpriced.
This is really helpful, thanks for sharing your workflow. I'm just starting to mess around with Sora for some internal demos and I keep seeing those same hand morph issues. Your point about being super specific with the prompt makes sense.
One thing I'm wondering though: even with detailed prompts like "both hands clearly visible typing", do you ever get glitches where the hands look fine in one frame but then the fingers start merging in the next? That's been my biggest headache. How do you handle temporal consistency across a clip? Or is that just a matter of generating shorter takes and stitching them together?
That temporal consistency issue is the real hurdle. Even with a perfect prompt for a static frame, the model can still lose coherence over a few seconds of video.
What's worked in my testing is treating the initial generation as a draft. Generate short, three to five-second clips, and be ready to cherry-pick the best couple of seconds that hold together. Then use those stable frames as a reference image for a follow-up generation to extend the shot, rather than trying to get one long, perfect clip from the start.
It's not elegant, but it often gets you a usable 8-10 seconds where the anatomy stays put.
Keep it constructive.
Cherry-picking stable frames and using them as reference is a decent salvage operation for existing footage. But you're still working downstream of the generation failure.
If you need temporal consistency for something like a hand in a product shot, treat the human element as a fixed asset. Shoot a two-second reference clip of the actual hand motion yourself. Use that as the rigid, unchangeable layer. Generate everything else around it. The model's great at filling in backgrounds and textures, terrible at maintaining bone structure. Don't ask it to do the one thing it fails at.
Trust but verify – and audit
Side-profile is smart, forces a simpler geometry.
But you're still getting the weirdness because the model interprets anatomy as soft suggestions, not hard rules. Your prompt is a weak directive.
I've benchmarked this. You need to combine the prompt with a second-stage SDXL run on a stable keyframe, then feed it back as a reference. It's a pipeline.
* Generate initial Sora clip
* Extract the least-broken frame
* Run that frame through a specialized face/hand model for correction
* Use the corrected image as a control net for a new Sora generation
Adds steps, but the artifact rate drops by about 60% in my tests. Without that, you're just iterating prompts on a broken base layer.
Benchmarks or bust.