Note de l'auteur : Analyse approfondie de l'erreur cameo_permission_denied de Sora 2, incluant les 4 types de paramètres de permission, les méthodes de vérification d'existence des rôles, les meilleures pratiques d'appel API et les stratégies de tolérance aux pannes en environnement de production.
Lors de l'utilisation de la fonction de personnage (Cameo) via l'API Sora 2, les développeurs rencontrent fréquemment l'erreur 「cameo_permission_denied」. Le message d'erreur complet est le suivant : {"error":{"code":"cameo_permission_denied","message":"You are not allowed to access one or more mentioned cameos.","param":null,"type":"invalid_request_error"}}. La cause fondamentale de cette erreur réside dans les restrictions de paramétrage des permissions du personnage ou le fait que le personnage a été supprimé ou désactivé, et non dans un problème de code.
Valeur ajoutée : À la fin de cet article, vous comprendrez les 4 mécanismes de réglage des permissions des personnages Sora 2, vous maîtriserez la méthode de vérification d'existence via l'URL du profil, vous apprendrez la logique de pré-vérification des permissions avant l'appel API et vous saurez construire une stratégie de tolérance aux pannes de niveau production.

Points clés des erreurs de permission Sora 2
| Point clé | Description | Impact |
|---|---|---|
| 4 niveaux de permission | Moi uniquement / Approuvés / Mutuels / Tout le monde | Détermine qui peut utiliser le rôle dans une vidéo |
| Validation URL Profil | Vérifier l'état via sora.chatgpt.com/profile/{handle} |
Détermine si le rôle existe ou a été supprimé |
| Révocation dynamique | Le créateur peut modifier ou désactiver le rôle à tout moment | L'appel API peut échouer soudainement |
| Nettoyage sous 30 jours | Les rôles supprimés sont effacés après 30 jours | Le profil renvoie "Failed to load profile" |
| Pas de pré-vérification API | L'API Sora ne propose pas d'endpoint de vérification | Doit être déduit via l'erreur lors de la requête |
Détails sur les permissions des personnages Sora 2
Qu'est-ce qu'un Cameo (Personnage) ?
La fonction Cameo de Sora 2 permet aux utilisateurs de créer des personnages numériques en enregistrant de courtes vidéos, lesquels peuvent ensuite être référencés dans des générations futures. Chaque personnage possède un Handle (identifiant) unique et un ID de personnage, par exemple :
- Handle :
@vee.papi - URL du profil :
https://sora.chatgpt.com/profile/vee.papi - ID de personnage :
25d56f016.meridian(identifiant interne au système)
Pourquoi l'erreur permission_denied se produit-elle ?
Selon la documentation officielle d'OpenAI et les retours de la communauté, cette erreur survient pour plusieurs raisons :
- Restriction des paramètres de permission : Le créateur a configuré le rôle sur "Moi uniquement" ou "Personnes approuvées", et votre compte ne figure pas dans la liste.
- Personnage supprimé : Le créateur a supprimé le personnage ; le système renvoie une erreur de permission plutôt qu'une erreur "non trouvé".
- Personnage désactivé : Le créateur a volontairement désactivé le personnage, le rendant indisponible pour tous.
- Faute de frappe dans le Handle : Le Handle référencé n'existe pas ou contient une erreur, ce qui déclenche également une erreur de permission.
- Problème de compte : Votre compte Sora est restreint pour l'accès à certains rôles (cas rare).
Les 4 niveaux de permission
| Niveau de permission | Description | Impact sur l'appel API |
|---|---|---|
| Only me | Uniquement pour le créateur | Tout autre utilisateur recevra permission_denied |
| People I approve | Utilisateurs spécifiques approuvés manuellement | Les non-approuvés recevront permission_denied |
| Mutuals | Abonnements mutuels (suivi réciproque) | Les utilisateurs non mutuels recevront permission_denied |
| Everyone | Ouvert à tous les utilisateurs Sora | En théorie, pas d'erreur (sauf si supprimé) |

Vérifier l'existence d'un personnage via l'URL de son profil
Format de l'URL du profil
Les pages de profil des personnages Sora suivent le format d'URL suivant :
https://sora.chatgpt.com/profile/{handle}
Exemples :
https://sora.chatgpt.com/profile/vee.papihttps://sora.chatgpt.com/profile/25d56f016.meridian
Logique de vérification
En effectuant une requête sur l'URL du profil, on peut déterminer le statut du personnage :
| Réponse HTTP | Contenu de la page | Statut du personnage | Résultat attendu de l'appel API |
|---|---|---|---|
| 200 OK | Affiche les infos et vidéos du personnage | Personnage existant et public | Dépend des paramètres de confidentialité |
| 200 OK | "Failed to load profile. Please try again." | Personnage supprimé ou Handle inexistant | Retourne forcément permission_denied |
| 403 Forbidden | Accès non autorisé | Personnage existant mais accès restreint à "Only me" | Retourne forcément permission_denied |
| 404 Not Found | Handle inexistant | Le personnage n'a jamais été créé | Retourne forcément permission_denied |
Constat clé : Même si un personnage a été supprimé, Sora peut toujours renvoyer un code d'état 200, mais la page affichera "Failed to load profile". Cela indique que le système conserve un emplacement réservé pour le Handle, mais que les données du personnage ont été vidées.
Implémentation Python : Vérification de l'existence du personnage
Voici une implémentation complète pour vérifier si un personnage existe via l'URL de son profil :
import requests
from typing import Dict, Optional
def check_character_availability(handle: str) -> Dict[str, any]:
"""
Vérifie si un personnage Sora est disponible
Args:
handle: Le Handle du personnage (avec ou sans le préfixe @)
Returns:
{
"exists": bool, # Le personnage existe-t-il ?
"accessible": bool, # Est-il accessible ? (pas forcément utilisable via API)
"status": str, # "available" / "deleted" / "not_found" / "unknown"
"profile_url": str
}
"""
# Nettoyage du Handle (suppression du préfixe @)
handle = handle.lstrip("@")
profile_url = f"https://sora.chatgpt.com/profile/{handle}"
try:
response = requests.get(profile_url, timeout=10)
# Vérification du contenu de la page
content = response.text.lower()
if response.status_code == 200:
if "failed to load profile" in content:
return {
"exists": False,
"accessible": False,
"status": "deleted",
"profile_url": profile_url,
"message": "Le personnage a été supprimé ou le Handle n'existe pas"
}
else:
return {
"exists": True,
"accessible": True,
"status": "available",
"profile_url": profile_url,
"message": "Le personnage existe et le profil est accessible (mais l'appel API dépend des permissions)"
}
elif response.status_code == 403:
return {
"exists": True,
"accessible": False,
"status": "restricted",
"profile_url": profile_url,
"message": "Le personnage existe mais les paramètres de confidentialité sont réglés sur privé"
}
elif response.status_code == 404:
return {
"exists": False,
"accessible": False,
"status": "not_found",
"profile_url": profile_url,
"message": "Le Handle n'existe pas"
}
else:
return {
"exists": None,
"accessible": None,
"status": "unknown",
"profile_url": profile_url,
"message": f"Code statut inconnu : {response.status_code}"
}
except requests.RequestException as e:
return {
"exists": None,
"accessible": None,
"status": "error",
"profile_url": profile_url,
"message": f"Échec de la requête : {str(e)}"
}
# Exemple d'utilisation
result = check_character_availability("vee.papi")
print(f"Statut du personnage : {result['status']}")
print(f"Message : {result['message']}")
if result["exists"]:
print("✅ Le personnage existe, vous pouvez tenter un appel API")
else:
print("❌ Le personnage n'existe pas ou a été supprimé, l'appel API échouera forcément")
Voir le code complet prêt pour la production
import requests
import time
from typing import Dict, List, Optional
from openai import OpenAI
class SoraCharacterValidator:
"""
Validateur de personnage Sora
Supporte la vérification par lots, le cache et la pré-vérification avant appel API
"""
def __init__(self, cache_ttl: int = 3600):
"""
Args:
cache_ttl: Durée de validité du cache (secondes), par défaut 1 heure
"""
self.cache = {}
self.cache_ttl = cache_ttl
def check_character(self, handle: str, use_cache: bool = True) -> Dict:
"""Vérifie un seul personnage (avec support du cache)"""
handle = handle.lstrip("@")
# Vérification du cache
if use_cache and handle in self.cache:
cached_result, timestamp = self.cache[handle]
if time.time() - timestamp < self.cache_ttl:
return cached_result
# Exécution de la vérification
profile_url = f"https://sora.chatgpt.com/profile/{handle}"
try:
response = requests.get(profile_url, timeout=10)
content = response.text.lower()
if response.status_code == 200:
if "failed to load profile" in content:
result = {
"exists": False,
"accessible": False,
"status": "deleted",
"message": "Personnage supprimé"
}
else:
result = {
"exists": True,
"accessible": True,
"status": "available",
"message": "Personnage disponible"
}
elif response.status_code == 403:
result = {
"exists": True,
"accessible": False,
"status": "restricted",
"message": "Personnage privé"
}
else:
result = {
"exists": False,
"accessible": False,
"status": "not_found",
"message": "Handle inexistant"
}
except Exception as e:
result = {
"exists": None,
"accessible": None,
"status": "error",
"message": str(e)
}
# Mise à jour du cache
self.cache[handle] = (result, time.time())
return result
def batch_check(self, handles: List[str]) -> Dict[str, Dict]:
"""Vérification par lots de personnages"""
results = {}
for handle in handles:
handle = handle.lstrip("@")
results[handle] = self.check_character(handle)
time.sleep(0.5) # Évite d'envoyer les requêtes trop rapidement
return results
def validate_before_api_call(
self,
client: OpenAI,
prompt: str,
characters: List[str]
) -> Dict:
"""
Validation avant l'appel API
Args:
client: Client OpenAI
prompt: Invite de génération vidéo
characters: Liste des Handles de personnages à utiliser
Returns:
{
"safe_to_call": bool,
"invalid_characters": List[str],
"warnings": List[str]
}
"""
invalid_characters = []
warnings = []
for handle in characters:
result = self.check_character(handle)
if not result["exists"]:
invalid_characters.append(handle)
warnings.append(f"⚠️ {handle} : {result['message']}")
elif not result["accessible"]:
warnings.append(f"⚠️ {handle} : L'appel API pourrait échouer à cause des paramètres de confidentialité")
return {
"safe_to_call": len(invalid_characters) == 0,
"invalid_characters": invalid_characters,
"warnings": warnings
}
# Exemple d'utilisation
validator = SoraCharacterValidator()
# Vérification par lots
handles = ["vee.papi", "25d56f016.meridian", "nonexistent.user"]
results = validator.batch_check(handles)
for handle, result in results.items():
print(f"{handle} : {result['status']} - {result['message']}")
# Validation avant appel API
client = OpenAI(api_key="VOTRE_CLÉ_API", base_url="https://vip.apiyi.com/v1")
validation = validator.validate_before_api_call(
client=client,
prompt="A character walking in a park",
characters=["vee.papi", "25d56f016.meridian"]
)
if validation["safe_to_call"]:
print("✅ Tous les personnages sont validés, l'appel API est sûr")
else:
print(f"❌ Personnages invalides détectés : {validation['invalid_characters']}")
for warning in validation["warnings"]:
print(warning)
Conseil technique : Pour un environnement de production, nous vous recommandons d'utiliser la plateforme APIYI (apiyi.com) pour vos appels API Sora. La plateforme vérifie automatiquement la disponibilité des personnages avant l'appel et fournit des journaux d'erreurs détaillés ainsi que des stratégies de repli, évitant ainsi les échecs massifs dus aux problèmes de droits d'accès des personnages.
Meilleures pratiques pour l'appel de l'API Sora 2
Pratique n°1 : Valider le personnage avant l'appel
Avant tout appel API réel, effectuez une pré-vérification du statut du personnage via l'URL de son profil :
from openai import OpenAI
client = OpenAI(
api_key="VOTRE_CLÉ_API",
base_url="https://vip.apiyi.com/v1"
)
def safe_generate_with_character(prompt: str, character_handle: str):
"""
Génération sécurisée avec validation du personnage
"""
# Étape 1 : Valider le personnage
validator = SoraCharacterValidator()
check_result = validator.check_character(character_handle)
if not check_result["exists"]:
raise ValueError(f"❌ Le personnage {character_handle} n'existe pas ou a été supprimé, arrêt de l'appel")
if check_result["status"] == "restricted":
print(f"⚠️ Attention : Le personnage {character_handle} pourrait faire échouer l'appel à cause des permissions")
# Étape 2 : Appeler l'API
try:
response = client.videos.generate(
model="sora-2-1080p",
prompt=f"{prompt} @{character_handle}",
timeout=120
)
return response
except Exception as e:
error_msg = str(e)
if "cameo_permission_denied" in error_msg:
print(f"❌ Erreur de permission : Vous n'avez pas accès au personnage @{character_handle}")
print(f" Cause possible : Permissions réglées sur 'Only me' ou 'People I approve'")
else:
print(f"❌ Autre erreur : {error_msg}")
raise e
# Exemple d'utilisation
try:
result = safe_generate_with_character(
prompt="A character dancing in the rain",
character_handle="vee.papi"
)
print("✅ Génération réussie")
except ValueError as e:
print(f"Échec de la pré-vérification : {e}")
except Exception as e:
print(f"Échec de l'appel API : {e}")
Pratique n°2 : Gérer élégamment l'erreur permission_denied
En cas d'erreur cameo_permission_denied, proposez un message d'erreur clair et une solution de repli :
def generate_with_fallback(prompt: str, character_handle: str):
"""
Génération avec stratégie de repli (fallback)
En cas d'échec, on retire la référence au personnage et on continue la génération
"""
try:
# Tentative avec le personnage
response = client.videos.generate(
model="sora-2-1080p",
prompt=f"{prompt} @{character_handle}",
timeout=120
)
return {
"success": True,
"used_character": True,
"data": response
}
except Exception as e:
error_msg = str(e)
if "cameo_permission_denied" in error_msg:
print(f"⚠️ Impossible d'utiliser le personnage @{character_handle}, tentative sans personnage")
# Repli : Retrait de la référence au personnage, génération avec le prompt pur
try:
response = client.videos.generate(
model="sora-2-1080p",
prompt=prompt, # Sans référence au personnage
timeout=120
)
return {
"success": True,
"used_character": False,
"fallback": True,
"data": response
}
except Exception as fallback_error:
return {
"success": False,
"error": str(fallback_error)
}
else:
return {
"success": False,
"error": error_msg
}
# Exemple d'utilisation
result = generate_with_fallback(
prompt="A person walking on the beach at sunset",
character_handle="vee.papi"
)
if result["success"]:
if result.get("used_character"):
print("✅ Génération réussie avec le personnage")
else:
print("⚠️ Repli sur une génération sans personnage")
else:
print(f"❌ Échec de la génération : {result['error']}")
Pratique n°3 : Stratégie de tolérance aux pannes pour les appels par lots
Dans les scénarios de génération par lots, l'échec d'un seul personnage ne doit pas interrompre l'ensemble du processus :
from typing import List, Dict
def batch_generate_with_characters(
prompts: List[str],
character_handles: List[str]
) -> List[Dict]:
"""
Génération par lots (avec tolérance aux pannes personnages)
Args:
prompts: Liste des invites (prompts)
character_handles: Handle du personnage correspondant à chaque invite
Returns:
Liste des résultats
"""
results = []
validator = SoraCharacterValidator()
for i, (prompt, handle) in enumerate(zip(prompts, character_handles)):
print(f"\nTraitement de la tâche {i+1}/{len(prompts)} : @{handle}")
# Pré-vérification du personnage
check_result = validator.check_character(handle)
if not check_result["exists"]:
print(f"⚠️ Ignoré : Le personnage @{handle} n'existe pas")
results.append({
"index": i,
"success": False,
"reason": "character_not_found"
})
continue
# Tentative de génération
try:
response = client.videos.generate(
model="sora-2-1080p",
prompt=f"{prompt} @{handle}",
timeout=120
)
results.append({
"index": i,
"success": True,
"data": response
})
print(f"✅ Tâche {i+1} terminée")
except Exception as e:
error_msg = str(e)
if "cameo_permission_denied" in error_msg:
print(f"⚠️ Erreur de permission, tentative sans personnage")
# Génération de repli
try:
response = client.videos.generate(
model="sora-2-1080p",
prompt=prompt,
timeout=120
)
results.append({
"index": i,
"success": True,
"fallback": True,
"data": response
})
print(f"✅ Tâche {i+1} terminée avec repli")
except:
results.append({
"index": i,
"success": False,
"reason": "fallback_failed"
})
else:
results.append({
"index": i,
"success": False,
"reason": "api_error",
"error": error_msg
})
time.sleep(2) # Évite d'envoyer les requêtes trop vite
return results
# Exemple d'utilisation
prompts = [
"A character running in the forest",
"A character sitting by the fireplace",
"A character flying in the sky"
]
characters = ["vee.papi", "25d56f016.meridian", "another.user"]
results = batch_generate_with_characters(prompts, characters)
# Statistiques des résultats
success_count = sum(1 for r in results if r["success"])
print(f"\nTotal tâches : {len(results)}, Réussites : {success_count}, Échecs : {len(results) - success_count}")

Suggestion de solution : Pour les applications d'entreprise, il est recommandé d'appeler l'API Sora via la plateforme APIYI (apiyi.com). Cette plateforme propose des fonctionnalités professionnelles telles que la relance intelligente (retry), le cache de validation des personnages et l'optimisation des appels par lots, améliorant considérablement le taux de réussite et la stabilité de vos tâches de génération massive.
Impact des paramètres de permissions des personnages sur les appels API
Détails des paramètres de permissions
Lors de la création d'un personnage Sora, vous pouvez choisir parmi les niveaux de permission suivants :
| Niveau de permission | Cas d'utilisation | Impact sur l'appel API |
|---|---|---|
| Only me | Utilisation personnelle, pour protéger son image | Tous les appels API échouent, sauf pour le créateur |
| People I approve | Projets collaboratifs, accès restreint à une équipe | Le créateur doit approuver manuellement chaque utilisateur |
| Mutuals | Cadre social, réservé aux abonnements mutuels | Nécessite une relation de suivi bidirectionnelle |
| Everyone | Personnage public, destiné à une large utilisation | En théorie, tous les utilisateurs peuvent appeler l'API |
Les permissions peuvent être révoquées à tout moment
Risque majeur : Même si un personnage est initialement configuré sur "Everyone", le créateur peut à tout moment basculer sur "Only me" ou supprimer le personnage. Cela implique que :
- Un personnage fonctionnel aujourd'hui peut devenir inaccessible demain
- Les tâches par lots peuvent échouer en cours de route suite à un changement de permissions
- Dépendre à long terme d'un personnage public présente un risque
Stratégies d'adaptation :
- Vérification régulière : Vérifiez quotidiennement ou hebdomadairement si les personnages dont vous dépendez sont toujours disponibles.
- Stratégie de mise en cache : Mettez en cache les résultats de validation pendant 1 à 6 heures pour éviter les requêtes trop fréquentes.
- Solution de secours (Fallback) : Prévoyez toujours une invite de secours sans personnage.
- Sauvegarde multi-personnages : Pour les scénarios critiques, préparez 2 ou 3 personnages similaires en réserve.
Questions Fréquentes
Q1 : Pourquoi mon appel API renvoie-t-il permission_denied alors que la page de profil s’ouvre normalement ?
C'est parce que la visibilité du profil et les permissions d'utilisation du personnage sont deux paramètres distincts :
- Visibilité du profil : Contrôle qui peut voir la page de profil du personnage et l'historique des vidéos.
- Permissions d'utilisation du personnage : Contrôle qui peut référencer ce personnage lors de la génération de vidéos.
Même si un profil est public (visible par tous), l'utilisation du personnage peut être restreinte à "Only me". Dans ce cas :
- ✅ Vous pouvez accéder à
https://sora.chatgpt.com/profile/{handle}et voir les infos du personnage. - ❌ Votre appel API renverra l'erreur
cameo_permission_denied.
Solution : Contactez le créateur du personnage pour lui demander de passer les permissions en "Everyone" ou d'ajouter votre compte à la liste "People I approve".
Q2 : Comment faire la différence entre un personnage supprimé et une permission insuffisante ?
Vous pouvez faire la distinction via le contenu renvoyé par l'URL du profil :
Scénario 1 : Le personnage est supprimé
- L'URL du profil renvoie un code d'état 200.
- La page affiche :
Failed to load profile. Please try again. - Appel API :
cameo_permission_denied.
Scénario 2 : Permission configurée sur privé
- L'URL du profil peut renvoyer un 200 (infos limitées) ou un 403 (accès refusé).
- La page affiche : informations partielles ou "Private profile".
- Appel API :
cameo_permission_denied.
Méthode de diagnostic rapide :
result = check_character_availability("handle")
if result["status"] == "deleted":
print("❌ Personnage supprimé, l'appel API échouera forcément.")
elif result["status"] == "restricted":
print("⚠️ Le personnage existe mais l'appel peut échouer selon les permissions.")
elif result["status"] == "available":
print("✅ Le personnage existe, mais l'appel API dépend toujours des permissions d'utilisation.")
Conseil : En production, pour un personnage qui échoue plusieurs fois consécutivement, il est préférable de le retirer de votre liste d'appels pour éviter de gaspiller vos quotas API.
Q3 : Comment référencer le Handle et le Character ID lors d’un appel API ?
L'API Sora prend en charge deux modes de référencement :
Option 1 : Utiliser @ + Handle (Recommandé)
response = client.videos.generate(
model="sora-2-1080p",
prompt="A character dancing @vee.papi" # Une invite incluant le handle
)
Option 2 : Utiliser le Character ID (Non recommandé)
response = client.videos.generate(
model="sora-2-1080p",
prompt="A character dancing @25d56f016.meridian"
)
Différences clés :
- Handle : Convivial, facile à mémoriser, mais le créateur peut le modifier (l'ancien handle devient alors invalide).
- Character ID : Identifiant interne du système, permanent et immuable, mais difficile à lire et à identifier.
Bonne pratique : En production, il est conseillé de stocker à la fois le Handle et le Character ID. Utilisez le Handle en priorité, et basculez sur le Character ID si le Handle devient invalide.
Note : Quel que soit le mode utilisé, vous devez respecter les paramètres de permissions du personnage. Si vous n'avez pas l'autorisation d'accès, les deux méthodes renverront l'erreur cameo_permission_denied.
Résumé
Points clés concernant l'erreur cameo_permission_denied de Sora 2 :
- Système de permissions complexe : 4 niveaux de permission (Moi uniquement / Personnes approuvées / Abonnements mutuels / Tout le monde) déterminent qui peut utiliser un personnage via l'API.
- L'URL du profil est l'élément clé : Vous pouvez vérifier si un personnage existe via
sora.chatgpt.com/profile/{handle}. Si le message "Failed to load profile" s'affiche, c'est que le personnage a été supprimé. - Les permissions sont dynamiques : Le créateur du personnage peut modifier les permissions ou supprimer le personnage à tout moment, rendant un personnage précédemment fonctionnel soudainement indisponible.
- Pas d'interface de pré-vérification dans l'API : L'API Sora ne propose pas de point de terminaison pour vérifier les permissions. Il faut passer par l'URL du profil ou déclencher l'erreur lors de l'appel réel pour le savoir.
- Tolérance aux pannes indispensable en production : Mettez en place un cache de validation des personnages, des stratégies de repli (fallback) et une gestion d'erreurs pour les tâches par lots afin d'éviter qu'un seul échec de personnage ne bloque tout le processus.
En tant que fonctionnalité reposant sur le contenu généré par les utilisateurs (UGC), la disponibilité des personnages Sora comporte une part d'incertitude. Nous vous recommandons d'utiliser APIYI (apiyi.com) pour tester rapidement votre logique d'appel de personnages. La plateforme offre des crédits gratuits, des outils de diagnostic d'erreurs détaillés et supporte Sora 2 ainsi que d'autres modèles de génération vidéo pour vous aider à bâtir un environnement de production stable.
📚 Références
⚠️ Note sur le format des liens : Tous les liens externes utilisent le format
Nom de la ressource : domain.com. Ils sont faciles à copier mais non cliquables pour préserver le référencement (SEO).
-
Documentation officielle OpenAI Sora : Guide de génération de personnages (Cameo)
- Lien :
help.openai.com/en/articles/12435986-generating-content-with-cameos - Description : Présentation officielle du processus de création, du paramétrage des permissions et des limitations d'usage de la fonction Cameo.
- Lien :
-
Tutoriel complet Sora 2 Cameo : Création de personnage et dépannage
- Lien :
www.aifreeapi.com/en/posts/sora-2-cameo-yourself-tutorial - Description : Guide complet 2026 sur la fonction Cameo, incluant des astuces d'enregistrement et la configuration des permissions.
- Lien :
-
Sora Character Creation Guide : Bonnes pratiques pour maintenir la cohérence des personnages
- Lien :
help.apiyi.com/sora-character-creation-complete-guide-en.html - Description : Analyse approfondie des meilleures pratiques pour la création de personnages Sora et les appels API.
- Lien :
-
Cameo Likeness in Sora 2 : Permissions, vie privée et questions fréquentes
- Lien :
sider.ai/blog/ai-tools/cameo-likeness-in-sora-2-a-friendly-guide-to-prompts-permissions-and-pitfalls - Description : Explications détaillées sur le système de permissions et les mécanismes de protection de la vie privée des Cameos.
- Lien :
Auteur : Équipe technique
Échanges techniques : N'hésitez pas à partager votre expérience sur l'appel de personnages Sora dans les commentaires. Pour plus de ressources sur le dépannage API, rendez-vous sur la communauté technique APIYI (apiyi.com).
