OpenAI décrit les modèles de la famille Sora comme exploitant des processus de diffusion vidéo latente avec des débruiteurs basés sur des transformers et un conditionnement multimodal, afin de produire des images temporellement cohérentes et un audio aligné. Sora 2 se concentre sur l’amélioration de la physicalité du mouvement (respect de l’inertie, flottabilité), sur des plans plus longs et cohérents, et sur la synchronisation explicite entre les visuels générés et la parole/les effets sonores générés. Les documents publics mettent l’accent sur la sécurité au niveau du modèle et des mécanismes de modération de contenu (blocages stricts pour certains contenus interdits, seuils renforcés pour les mineurs, et flux de consentement pour la ressemblance).
| Model Name | Tags | Orientation | Resolution | Price |
|---|---|---|---|---|
| sora-2 | videos | Portrait | 720x1280 | $0.08 / sec |
| sora-2 | videos | Landscape | 1280x720 | $0.08 / sec |
| sora-2-all | - | Universal / All | - | $0.08000 |
# Create a video with sora-2
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
-H "Authorization: Bearer $COMETAPI_KEY" \
-F "model=sora-2" \
-F "prompt=A calico cat playing a piano on stage")
echo "Response: $response"
# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '
' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"
# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
-H "Authorization: Bearer $COMETAPI_KEY")
# Parse progress from "progress": "0%" format
progress=$(echo "$status_response" | grep -o '"progress":"[^"]*"' | head -1 | sed 's/"progress":"//;s/"$//')
# Parse status from the outer level
status=$(echo "$status_response" | grep -o '"status":"[^"]*"' | head -1 | sed 's/"status":"//;s/"$//')
echo "Progress: $progress, Status: $status"
if [ "$progress" = "100%" ]; then
echo "Video generation completed!"
break
fi
if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ]; then
echo "Video generation failed!"
echo "$status_response"
exit 1
fi
sleep 10
done
# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
-H "Authorization: Bearer $COMETAPI_KEY" \
-o "./output/$video_id.mp4"
if [ -f "./output/$video_id.mp4" ]; then
echo "Video saved to ./output/$video_id.mp4"
ls -la "./output/$video_id.mp4"
else
echo "Failed to download video"
exit 1
fi