Genmo: Mochi 1
Mochi 1 is Genmo’s tekst-naar-videomodel met nadruk op realistische beelden, zichtbare beweging en het volgen van een scèneprompt. Bereid een concrete opnamebeschrijving voor en inspecteer de voltooide reeks op actie, beeldkader en consistentie door de tijd heen.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Mochi 1 is Genmo’s tekst-naar-videomodel om een geschreven scènebeschrijving in bewegende beelden om te zetten. De maker benadrukt beweging en het volgen van prompts, met een visuele focus op fotorealistische inhoud. Gebruik een concrete opnamebriefing om het onderwerp, de omgeving en de actie te beschrijven die in de voltooide reeks zichtbaar moeten zijn.
Schrijf de actie als iets wat de kijker kan volgen. Een hand die een citroen uit een kom optilt, een fiets die langs een zonnige muur rijdt of een vogel die op een tak landt, geeft telkens een duidelijke gebeurtenis met een openings- en slottoestand. Specificeer welk onderwerp de scène draagt, wat tijdens de opname verandert en welk detail leesbaar moet blijven terwijl het beweegt.
Kies het gezichtspunt en de omgeving om die actie te ondersteunen. Een nabije weergave kan vingers benadrukken die een object aanraken, terwijl een wijder beeld de relatie tussen een persoon en een locatie kan vastleggen. Neem materiaal-, licht- en achtergronddetails op wanneer die het zichtbare resultaat beïnvloeden. Houd de beschrijving voldoende gericht zodat de belangrijke beweging niet met meerdere niet-gerelateerde gebeurtenissen concurreert.
De gepubliceerde Mochi 1-release van de maker documenteert native videogeneratie in 480p en beschrijft een fotorealistische focus. Plan een scène waarvan de beslissende details op die schaal leesbaar blijven. Fijne patronen, kleine gezichten in de verte en precieze belettering vereisen afzonderlijke inspectie in de werkelijke uitvoer; een overtuigende algehele scène bewijst niet dat elk klein kenmerk beweging doorstaat.
Genmo noemt vervorming als een mogelijk probleem bij extreme beweging en merkt op dat de release minder geschikt is voor animatiestijlen. Inspecteer voor een briefing met veel actie het onderwerp tijdens de hele reeks, vooral wanneer het draait, van richting verandert of achter een ander object passeert. Selecteer de clip waarvan de zichtbare beweging het best bij de beoogde gebeurtenis past en richt de volgende creatieve revisie op een specifieke vervorming.
De referentie-implementatie van de maker biedt instellingen zoals een seed, aantal frames, inferentiestappen en guidance naast de prompt. Die beschrijven de referentiewerkstroom van het model; de instellingen van een specifieke gehoste methode worden bij die methode vermeld. Bewaar de daadwerkelijk gebruikte instellingen bij de resulterende clip zodat een vergelijking niet van een veronderstelde standaard of een parameter uit een andere implementatie afhangt.
Gebruik de voltooide beelden als conceptopname, realistisch scène-element of bronclip voor verdere montage. Bekijk de volledige reeks op de volgorde en voltooiing van de gevraagde actie, continuïteit van het onderwerp en bruikbaarheid van het slotbeeld. Een sterk openingsframe is maar één onderdeel van een bruikbare bewegende opname.
Bewaar de werkelijke video en de schriftelijke briefing. Bepaal wanneer het resultaat het doel mist of het probleem de scènebeschrijving, een verborgen onderwerpdetail, een abrupte actie of een ongeschikte kadrering is. Wijzig het relevante promptdeel met behoud van het geslaagde onderwerp en de omgeving. Vergelijk de revisie met hetzelfde zichtbare doel en gebruik de volledige clip in plaats van een miniatuur om te bepalen of die voor de beoogde montage geschikt is.
Ailoot Ultra · Videomateriaal POST /v1/videos genmo-mochi-v1
genmo-mochi-v1Aan de slag
Mochi 1 is Genmo’s tekst-naar-videomodel met nadruk op realistische beelden, zichtbare beweging en het volgen van een scèneprompt. Bereid een concrete opnamebeschrijving voor en inspecteer de voltooide reeks op actie, beeldkader en consistentie door de tijd heen.
- Toegestane invoer
- Tekst
- Resultaten
- Video
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Videomateriaal POST /v1/videos
- Invoertypen
text- Uitvoertypen
video
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten genmo-mochi-v1 Voorwaarden: Gebruik de exacte Ailoot-modelidentificatie. | Standaard— |
Veldprompt | Typestring | VereisteVereist | Waarden en limieten Voorwaarden: Beschrijf de scène en beweging. | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, prompt |
Parameteroptional | Contract |
Parametermaterial_types | Contracttext |
Parameterconditions | ContractGebruik de exacte Ailoot-modelidentificatie., Beschrijf de scène en beweging. |
Methodealiasnamen: /v1/videos/generations
Levenscyclus: 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}
Tarieven
Zo worden de uiteindelijke kosten berekend
De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
Geschatte tarieven ter vergelijking
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Verwachte hoeveelheid | Gefactureerde hoeveelheid | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Gefactureerde hoeveelheid— | Kosten Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens |
| ConfiguratiePer verzoek | Tariefstaffel— | Verwachte hoeveelheid— | Gefactureerde hoeveelheidéén verzoek | Kosten Invoer · Schatting uitsluitend ter vergelijking $1 per verzoek |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Gefactureerde hoeveelheid— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $1 schatting vóór generatie Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie. |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
Ailoot Ultra · Videomateriaal
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
Resultaten ophalen en opslaan
Ailoot Ultra · Videomateriaal
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}
Alle voltooide resultaten bewaren
Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.
Bewaar het volledige antwoord en de headers, de oorspronkelijke identificaties, alle daadwerkelijke uitvoer en alle gebruiks-/afrekenvelden. Sla elke unieke asset op die u bezit en behoud elke rol die ernaar verwijst.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de geretourneerde openbare taak- of operatie-id en alle headers. Lees uitsluitend de oorspronkelijke taak; unknown of result_pending_check geeft geen toestemming voor een nieuwe aanmaak.
Antwoordvelden
| Veld | Type |
|---|---|
Veldid | Typestring |
Veldpolling_url | Typestring |
Veldprovider_task_id | Typestring |
Veldtask_id | Typestring |
Veldstatus | Typestring |
Veldvideo_url | Typestring |
Aliasnamen
Modelaliasnamen
Ailoot Ultra genmo-mochi-v1
Aliasnamen voor methodepaden
/v1/videos/generations
Gerelateerde aanroeper-ID’s
FAQ · Genmo: Mochi 1
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/videos·genmo-mochi-v1:text→video- Welke velden gebruikt het verzoek?
POST /v1/videos·genmo-mochi-v1:model,prompt