Alibaba: HappyHorse 1.1
Alibaba HappyHorse 1.1 genereert korte video's met geluid vanuit een tekstbriefing, één eerste-frameafbeelding of maximaal negen referentiebeelden. De profielen van de maker benadrukken verbeterde beweging, huiddetails en consistentie van personages tussen clips. De uitvoer is MP4 van 3–15 seconden bij 24 fps, met opties van 480p, 720p of 1080p.
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.
Alibaba HappyHorse 1.1 is een videogeneratie-editie met afzonderlijk benoemde profielen voor tekst-naar-video, afbeelding-naar-video met een eerste frame en referentie-naar-video. De fabrikant benadrukt verbeteringen in visueel detail, beweging, personage-identiteit tussen clips, tekststabiliteit en audiovisuele synchronisatie. Het resultaat is een korte video met geluid, bruikbaar als productshot, portretanimatie of kleine personagescène. Kies de invoermodus op basis van wat de scène moet bepalen: een geschreven concept, een exact openingsbeeld of meerdere visuele referenties.
Beschrijf voor tekst-naar-video onderwerp, locatie, actie, kadrering, camerabeweging en bedoeld geluid. Laat voor een korte actiescène een fietser stoppen naast een café aan de rivier terwijl de camera rustig naar de geparkeerde fiets beweegt. Stem de actie af op een korte clip en beschrijf het laatste moment. De huidige tekstgids van de maker staat maximaal 5.000 niet-Chinese of 2.500 Chinese tekens toe en kapt overtollige tekst af. Orden de briefing zo dat het essentiële onderwerp en de actie expliciet zijn, in plaats van verborgen tussen herhaalde bijvoeglijke naamwoorden.
Afbeelding-naar-video met een eerste frame gebruikt precies één afbeelding als opening. Bereid onderwerp, compositie en gewenste uitsnede voor in dat stilstaande beeld en beschrijf daarna wat moet bewegen of hoe de camera moet veranderen. De gedocumenteerde afbeeldingsformaten zijn JPEG/JPG, PNG en WEBP, maximaal 20 MB, met beide afmetingen minstens 300 pixels en een beeldverhouding tussen 1:2.5 en 2.5:1. De uitvoer benadert het gekozen resolutieniveau met behoud van de verhoudingen van de bronafbeelding. Een staand resultaat begint dus met een geschikte staande compositie, niet met een ongerelateerde instructie over de beeldverhouding.
Referentie-naar-video accepteert één tot negen afbeeldingen. De prompt gebruikt [Image 1], [Image 2] en volgende posities om ze in invoervolgorde aan te duiden. Benoem de rol van elke referentie en het betreffende object of de persoon, zodat een scènebeeld niet voor een personagebron wordt gehouden. De referentiegids accepteert JPEG/JPG, PNG of WEBP tot 20 MB, vereist een korte zijde van minstens 400 pixels en beveelt duidelijke referenties in 720p of hoger aan. Vermijd een sterk gecomprimeerde referentie waarin herkenningsdetails al ontbreken.
Plaats voor een scène met meerdere referenties de persoon uit de ene afbeelding in de kamer uit een andere, met behoud van een jas of product uit een derde. Beschrijf de interactie en camera in dezelfde briefing. Het 1.1-referentieprofiel benadrukt stabiliteit van onderwerpen, scènestijl en filmische beweging; controleer het daadwerkelijke resultaat op de gewenste identiteit, productmarkeringen en ruimtelijke plaatsing. Meerdere afbeeldingen geven de briefing meer informatie, maar de beoordeling moet nog steeds nagaan welke kenmerken in de video terechtkwamen.
De maker vermeldt uitvoer in 480p, 720p en 1080p voor de 1.1-generatiemodi, met een duur in gehele seconden van drie tot vijftien en MP4 bij 24 fps. Het API-antwoord beschrijft H.264-codering. Tekst- en referentiegeneratie bieden onder meer 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 en 21:9; generatie vanuit een eerste frame volgt de invoerafbeelding. Kies het formaat voor de bestemming en laat ruimte voor latere ondertitels of lay-outelementen. Controleer de daadwerkelijke kadrering van de teruggestuurde video op de bedoelde weergavegrootte.
De uitvoer van de modelfamilie bevat geluid. Geef de voordracht of sfeer een duidelijke rol in de briefing en beoordeel dialoog, effecten of achtergrondmuziek samen met het beeld. Hou gesproken materiaal kort genoeg voor de actie en pauzes in plaats van een lang script in één kort shot te persen. Controleer lipbeweging, toewijzing aan de spreker en de daadwerkelijke woorden wanneer er spraak is. Acceptatie van een prompttaal bepaalt op zichzelf geen gegarandeerde uitspraak of afzonderlijke invoer voor stemreferenties.
De gedocumenteerde workflow van de maker is asynchroon: een taak-ID volgt de verwerking en een succesvol resultaat levert de videolocatie. Voor de resultaatlink en taakopvragingen wordt een geldigheid van vierentwintig uur gedocumenteerd. Bewaar de voltooide clip, referenties en prompt als herzieningsrecord. De gidsen documenteren ook seed- en watermerkbediening. Een vaste seed kan vergelijking ondersteunen, maar de maker zegt expliciet dat die geen identieke resultaten garandeert; beoordeel dus het teruggestuurde bestand in plaats van te verwachten dat één instelling elk frame vastlegt.
HappyHorse 1.0 en 1.1 zijn afzonderlijke edities. De 1.1-uitvoertabel voegt 480p toe aan de 720p- en 1080p-opties van 1.0 en de 1.1-modelpagina's beschrijven verbeteringen in detail, beweging en consistentie. Het afzonderlijk benoemde HappyHorse 1.0-videobewerkingsprofiel heeft eigen invoer en limieten en mag niet stilzwijgend als bewerkingsmodus aan 1.1 worden toegekend. Beoordeel de volledige 1.1-clip op identiteit, beweging, kadrering, tekst en geluid en maak daarna een specifieke correctie met behoud van de geslaagde delen van de briefing.
Ailoot Ultra · Video POST /v1/videos alibaba/happyhorse-1.1
alibaba/happyhorse-1.1Aan de slag
Alibaba HappyHorse 1.1 genereert korte video's met geluid vanuit een tekstbriefing, één eerste-frameafbeelding of maximaal negen referentiebeelden. De profielen van de maker benadrukken verbeterde beweging, huiddetails en consistentie van personages tussen clips. De uitvoer is MP4 van 3–15 seconden bij 24 fps, met opties van 480p, 720p of 1080p.
- Toegestane invoer
- Tekst
- Resultaten
- Video
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Video POST /v1/videos
- Invoer
text- Uitvoer
video- Uitvoerformaat
- mp4
- Aantal uitvoerresultaten
- Tot en met 4 uitvoers
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten alibaba/happyhorse-1.1 | Standaard— |
Veldprompt | Typestring | VereisteVereist | Waarden en limieten Minimumlengte: 1 Maximumaantal bytes: 10.000 Eenheid: UTF8-bytes | Standaard— |
Veldduration | Typeinteger | VereisteVereist | Waarden en limieten Minimum: 3 Maximum: 15 Eenheid: seconden | Standaard— |
Veldresolution | Typestring | VereisteVereist | Waarden en limieten 720p | Standaard— |
Veldaspect_ratio | Typestring | VereisteVereist | Waarden en limieten 16:9 | Standaard— |
Combinaties van invoermaterialen
Tekst naar video · Vereist: prompt
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, prompt, duration, resolution, aspect_ratio |
Parameterother_options | Contractfalse |
Parameterresolution | Contract720p |
Parameterprompt_max_bytes | Contract10000 |
Parameterduration_integer_range | Contract3, 15 |
Parameteraspect_ratio | Contract16:9 |
Parametergenerate_audio | Contractmoet worden weggelaten (geen false); AAC inbegrepen |
Parametermaterial_types | Contracttext |
Parameteradditional_properties | Contractfalse |
Methodealiasnamen: /v1/videos/generations, /videos, /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/videos/generations/{request_id}/content
Maak eenmaal aan en sla de teruggestuurde ID op.
Vraag de oorspronkelijke status herhaaldelijk op; bewaar elke voltooide asset en de duur ervan.
Tarieven
Zo worden de uiteindelijke kosten berekend
De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen 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 geselecteerd is
- Flex-modus
- Niet opgegeven Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Niet opgegeven Wanneer voor 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 | Rekeneenheid | Factureringsvoorwaarden | Kosten |
|---|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Verwachte hoeveelheid— | Rekeneenheid— | Factureringsvoorwaarden— | 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 |
| ConfiguratieVideoprijs | Tariefstaffel— | Verwachte hoeveelheid— | Rekeneenheidper videoseconde | Factureringsvoorwaardenresolution: 1080p | Kosten Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking $0.2556 per videoseconde |
| ConfiguratieVideoprijs | Tariefstaffel— | Verwachte hoeveelheid— | Rekeneenheidper videoseconde | Factureringsvoorwaardenresolution: 720p | Kosten Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking $0.1976 per videoseconde |
| ConfiguratieGeschatte generatiekosten | Tariefstaffel— | Verwachte hoeveelheidschatting voor één generatie | Rekeneenheid— | Factureringsvoorwaarden— | Kosten Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.5928 schatting vóór generatie Deze raming is geen extra kost 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 →
Details van het referentietarief
Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.
Prijsreferenties voor videoconfiguraties
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Factureringsvoorwaarden | Kosten |
|---|---|---|
| ConfiguratieVideoprijs | Factureringsvoorwaardenresolution: 720p | Kosten Uitvoer · Videoprijs $0.1976 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
| ConfiguratieVideoprijs | Factureringsvoorwaardenresolution: 1080p | Kosten Uitvoer · Videoprijs $0.2556 per videoseconde Gepubliceerde prijsreferentie voor de getoonde configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie. |
Voorbeeldverzoeken
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/happyhorse-1.1", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
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
Resultaten ophalen en opslaan
Ailoot Ultra · Video
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Taakstatus controleren
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Lezen van andere inhoud
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())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Alle voltooide resultaten bewaren
Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.
Na voltooiing bevat data[] alle ondertekende inhouds-URL's die je toebehoren. Haal elke teruggestuurde URL op of gebruik het inhoudseindpunt met index ingesteld op een werkelijke uitvoerindex. Een mislukte oorspronkelijke opdracht kan charge_pending_check terugsturen; controleer die oorspronkelijke opdracht in plaats van ze opnieuw aan te maken.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Raadpleeg de bestaande oorspronkelijke opdracht; dien een aanvraag met onbekende verzenduitkomst nooit opnieuw in.
Maximumaantal uitvoerresultaten: 4.
Antwoordvelden
| Veld | Type | Betekenis |
|---|---|---|
Veldid | Typestring | Betekenis— |
Veldobject | Typestring | Betekenis— |
Veldmodel | Typestring | Betekenis— |
Veldstatus | Typestring | Betekenis— |
Velddata[] | Typesigned content URL | Betekenis— |
Veldcharge_pending_check | Typeboolean | Betekenis— |
Velderror.code | Typestring | Betekenis— |
Velderror.message | Typestring | Betekenis— |
Veldoperation_id | Typestring | BetekenisOorspronkelijk status-/inhoudsantwoord met HTTP503 result_pending_check: dezelfde oorspronkelijke openbare video-ID als id. |
Velderror.type | Typestring | Betekenisserver_error bij HTTP503 result_pending_check. |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeHet lezen van de ruwe aanvraaginhoud mislukt voordat het videoprofiel wordt ontleed | Volgende stapBewaar het teruggestuurde antwoord en corrigeer de onleesbare aanvraaginhoud. |
Antwoord422 · price_unavailable | VoorwaardeHet exacte videoprofiel kan niet worden ontleed, of voor het volledig ontlede profiel is geen exacte prijskaart gereed | Volgende stapBewaar het antwoord; gebruik het volledige, exact toegelaten profiel en de bijbehorende gepubliceerde kaart. Deze vertakking wordt uitgevoerd voordat er iets naar een aanbieder wordt verstuurd. |
Antwoord409 · video_not_ready | VoorwaardeDe oorspronkelijke resultaatinhoud is nog niet beschikbaar | Volgende stapVraag de oorspronkelijk teruggestuurde ID herhaaldelijk op en respecteer Retry-After. |
Antwoordserver_error | VoorwaardeDe teruggegeven respons geeft aan dat de bewerking of het resultaat gecontroleerd moet worden | Volgende stapBewaar de oorspronkelijk teruggegeven bewerkings-/taak-ID, aanvraagheaders en respons; blijf de oorspronkelijke bewerking uitlezen via de ondersteunde leesaanvragen. Dien de aanmaakaanvraag niet opnieuw in. |
Antwoord503 · result_pending_check | VoorwaardeGET van oorspronkelijke status/inhoud: de taak is niet gepubliceerd, de oorspronkelijke opdracht is niet failed/cancelled/expired en de lokale status is unknown of de oorspronkelijke opdrachtstatus is completed. | Volgende stapBewaar de oorspronkelijke id en operation_id (dezelfde openbare video-ID), het antwoord en de headers; raadpleeg uitsluitend de oorspronkelijke status/inhoud. Dien nooit een nieuwe generatieaanvraag in. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra alibaba/happyhorse-1.1
Aliasnamen voor methodepaden
/v1/videos/generations, /videos, /videos/generations
Gerelateerde aanroeper-ID’s
FAQ · Alibaba: HappyHorse 1.1
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/videos·alibaba/happyhorse-1.1:text→video- Welke velden gebruikt het verzoek?
POST /v1/videos·alibaba/happyhorse-1.1:model,prompt,duration,resolution,aspect_ratio- Welke limieten gelden?
POST /v1/videos·alibaba/happyhorse-1.1:duration.minimum:3;duration.maximum:15