Genmo: Mochi 1
Mochi 1 est le modèle de génération vidéo à partir de texte de Genmo, axé sur l’imagerie réaliste, le mouvement visible et le respect de la consigne de scène. Préparez une description concrète du plan et examinez la séquence terminée pour vérifier l’action, le cadrage et la cohérence temporelle.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
Mochi 1 est le modèle de génération vidéo à partir de texte de Genmo, qui transforme une description écrite de scène en images animées. L’éditeur met l’accent sur le mouvement et le respect de la consigne, avec une orientation visuelle vers les contenus photoréalistes. Utilisez une description concrète du plan pour présenter le sujet, le décor et l’action qui doivent être visibles dans la séquence terminée.
Décrivez l’action comme un événement que le spectateur peut suivre. Une main soulevant un citron d’un bol, un vélo passant devant un mur ensoleillé ou un oiseau se posant sur une branche fournissent chacun un événement clair avec un état initial et un état final. Précisez quel sujet porte la scène, ce qui change pendant le plan et quel détail doit rester lisible au cours du mouvement.
Choisissez le point de vue et l’environnement pour servir cette action. Une vue rapprochée peut souligner des doigts touchant un objet, tandis qu’une vue plus large peut établir la relation entre une personne et un lieu. Incluez les détails de matériau, d’éclairage et d’arrière-plan lorsqu’ils affectent le résultat visible. Gardez une description assez ciblée pour que le mouvement important n’entre pas en concurrence avec plusieurs événements sans rapport.
La version publiée de Mochi 1 par l’éditeur documente une génération vidéo native en 480p et décrit une orientation photoréaliste. Prévoyez une scène dont les détails décisifs restent lisibles à cette échelle. Les motifs fins, les petits visages lointains et les inscriptions précises nécessitent un examen distinct de la sortie réelle ; une scène globalement convaincante ne prouve pas que chaque petit détail résiste au mouvement.
Genmo identifie les déformations ou distorsions comme un problème possible lors de mouvements extrêmes et indique que cette version convient moins aux styles d’animation. Pour une description comportant beaucoup d’action, examinez le sujet pendant toute la séquence, notamment lorsqu’il tourne, change de direction ou passe derrière un autre objet. Sélectionnez le clip dont le mouvement visible correspond le mieux à l’événement souhaité, puis ciblez toute déformation précise dans la révision créative suivante.
L’implémentation de référence de l’éditeur propose des paramètres tels qu’une graine, un nombre d’images, des étapes d’inférence et un guidage, en plus de la consigne. Ils décrivent le processus du modèle de référence ; les paramètres fournis par une méthode hébergée particulière sont indiqués avec cette méthode. Conservez les réglages réellement utilisés avec le clip obtenu pour qu’une comparaison ne repose pas sur une valeur par défaut supposée ou sur un paramètre d’une autre implémentation.
Utilisez la séquence terminée comme plan de concept, élément de scène réaliste ou clip source pour un montage ultérieur. Regardez toute la séquence pour vérifier l’ordre et l’achèvement de l’action demandée, la continuité du sujet et l’utilité de la vue finale. Une bonne image d’ouverture n’est qu’une partie d’un plan animé exploitable.
Préservez la vidéo réelle et sa description écrite. Lorsque le résultat manque l’objectif, déterminez si le problème vient de la description de la scène, d’un détail caché du sujet, d’une action brusque ou d’un choix de cadrage inadapté. Modifiez la partie pertinente de la consigne en conservant le sujet et le décor réussis. Comparez la révision au même objectif visible, en vous appuyant sur le clip complet plutôt que sur une miniature pour décider s’il convient au montage prévu.
Ailoot Ultra · Vidéo POST /v1/videos genmo-mochi-v1
genmo-mochi-v1Pour commencer
Mochi 1 est le modèle de génération vidéo à partir de texte de Genmo, axé sur l’imagerie réaliste, le mouvement visible et le respect de la consigne de scène. Préparez une description concrète du plan et examinez la séquence terminée pour vérifier l’action, le cadrage et la cohérence temporelle.
- Entrées acceptées
- Texte
- Résultats
- Vidéo
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Vidéo POST /v1/videos
- Entrée
text- Sortie
video
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites genmo-mochi-v1 Conditions: Utilisez le sélecteur de modèles Ailoot exact. | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites Conditions: Décrivez la scène et le mouvement. | Par défaut— |
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, prompt |
Paramètreoptional | Contrat |
Paramètrematerial_types | Contrattext |
Paramètreconditions | ContratUtilisez le sélecteur de modèles Ailoot exact., Décrivez la scène et le mouvement. |
Alias de méthode : /v1/videos/generations
Cycle de vie : submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tarifs
Calcul du coût final
Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs estimés à des fins de comparaison
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité prévisionnelle | Quantité facturée | Coût |
|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Quantité facturée— | Coût Entrée · Jetons en entrée · Estimation à des fins de comparaison uniquement — / 1K jetons Sortie · Jetons en sortie · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K jetons |
| ConfigurationPar demande | Barème tarifaire— | Quantité prévisionnelle— | Quantité facturéeune requête | Coût Entrée · Estimation à des fins de comparaison uniquement $1 par requête |
| ConfigurationCoût de génération estimé | Barème tarifaire— | Quantité prévisionnelleestimation pour une génération | Quantité facturée— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $1 estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Vidéo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "genmo-mochi-v1",
"prompt": "A cat is walking on grass."
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Recevoir et enregistrer les résultats
Ailoot Ultra · Vidéo
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Conserver tous les résultats terminés
Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.
Conservez la réponse et les en-têtes complets, les identifiants d’origine, chaque sortie réelle et tous les champs d’utilisation et de comptabilisation. Enregistrez chaque ressource unique appartenant à votre compte et conservez chaque rôle qui y renvoie.
Si la réponse d’origine doit être vérifiée
Conservez l’id public de tâche ou d’opération retourné et tous les en-têtes. Consultez uniquement la tâche d’origine; unknown ou result_pending_check n’autorise pas une autre création.
Champs de la réponse
| Champ | Type |
|---|---|
Champid | Typestring |
Champpolling_url | Typestring |
Champprovider_task_id | Typestring |
Champtask_id | Typestring |
Champstatus | Typestring |
Champvideo_url | Typestring |
Alias
Alias du modèle
Ailoot Ultra genmo-mochi-v1
Alias des chemins de méthode
/v1/videos/generations
ID d’appel associés
FAQ · Genmo: Mochi 1
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·genmo-mochi-v1:text→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·genmo-mochi-v1:model,prompt