Alibaba: HappyHorse 1.0
Alibaba HappyHorse 1.0 skapar korta videor med ljud från text, en startbild eller upp till nio referensbilder. Genereringslägena ger MP4-klipp på 3–15 sekunder med 24 bilder per sekund i 720p eller 1080p. En separat namngiven profil för videoredigering i 1.0 bearbetar inskickat material med valfria visuella referenser och egna begränsningar.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
Alibaba HappyHorse 1.0 är en videoskapande utgåva med namngivna profiler för text-till-video, bild-till-video från en första bildruta och referens-till-video. Tillverkaren beskriver fysiskt övertygande rörelser, semantisk förståelse och synkronisering mellan ljud och bild som dess kreativa fokus. Referensprofilen kan använda upp till nio bilder för att styra motiv och scener. Den användbara leveransen är ett kort klipp med ljud: en ny scen, en animation från en förberedd öppningsbild eller en referensstyrd tagning med en karaktär eller produkt.
För en textbaserad scen anger du motiv, miljö, handling och kamera samt önskat ljud. En bordsscen kan visa en liten modellsegelbåt som rör sig genom en grund vattenbricka medan kameran följer den i bordshöjd. Vid granskningen kan du då kontrollera båtens form, scenens skala, vattnets rörelse och sambandet mellan rörelse och ljud. En fokuserad handling är lättare att bedöma än en tät sekvens där det centrala ögonblicket inte anges tydligt.
För generering från en första bildruta använder du en stillbild vars motiv och komposition redan passar den önskade öppningen. Beskriv den efterföljande rörelsen och kamerans bana. Tillverkarens specifika bildprofil för 1.0 tar emot text och bild, medan genereringsmatrisen anger detta som bild-till-video från en första bildruta. Förbered beskärningen och synliga produkt- eller karaktärsdetaljer innan tagningen genereras. Kontrollera att detaljerna förblir igenkännbara genom rörelsen i stället för att bara bedöma öppningsbilden.
Referens-till-video kombinerar personer, produkter, stil eller miljö från visuella källor i en nybeskriven scen. Den specifika modellsidan för referensläget i 1.0 dokumenterar upp till nio bilder. Tilldela dem roller i instruktionen och beskriv hur motivet ska agera i scenen. I en produktpresentation kan du skilja produktreferensen från den omgivande platsen eller den visuella stilen. Tillverkarens betoning på stabilitet är ett granskningsmål: jämför motivet, märkningarna och placeringen med de faktiska referenserna genom hela klippet.
Familjen 1.0 har också en separat namngiven videoredigeringsprofil för stiländringar och lokala eller mer omfattande bearbetningar av befintligt material. Den profilen tar emot exakt en källvideo och noll till fem referensbilder, i stället för referensgenereringens upplägg med nio bilder. Ange vad som ska ändras och vad som ska bevaras, till exempel att byta ett plagg men behålla personen, rörelsen och bakgrunden. Redigeringsresultatet behöver jämföras med hela källklippet, inte bara en bildruta som visar det avsedda bytet.
Den specifika redigeringsguiden för 1.0 tar emot källmaterial i MP4 eller MOV, rekommenderar H.264 och tillåter en källängd på tre till sextio sekunder. Den anger högst 100 MB, en kortsida på minst 360 pixlar, en långsida på högst 4 096 pixlar, proportioner mellan 1:2,5 och 2,5:1 samt en bildfrekvens på åtta till sextio bilder per sekund. Redigerade utdata är begränsade till tre till femton sekunder: källor på högst femton sekunder behåller sin längd, medan bara de första femton sekunderna används från längre källor. Klipp ut det avsedda avsnittet innan du förbereder redigeringen om en viktig handling inträffar senare i källan.
Redigeringsprofilens valfria referensbilder har en egen gräns på tjugo MB och kräver formatet JPEG/JPG, PNG eller WEBP, med båda dimensionerna på minst 300 pixlar och samma dokumenterade proportionsintervall. Guiden skiljer också mellan automatisk ljudbehandling och att behålla originalljudet. Förbered referensen som identifierar den önskade ändringen och välj hur källans ljud ska förhålla sig till den. Detta är specifika kontroller för redigeringsprofilen i 1.0, separata från lägena för generering av nya scener.
För genereringslägena i 1.0 anger tillverkarens specifika matris 720p eller 1080p, tre till femton sekunder, MP4 med 24 bilder per sekund och ljud. Redigeringsprofilen ger också 720p eller 1080p inom sin gräns på femton sekunder. Det dokumenterade uppgiftsflödet returnerar först ett bearbetnings-ID och efter lyckat resultat videons plats; resultatadresserna gäller i tjugofyra timmar. Spara själva klippet, prompten och referenserna när du förbereder en produktionsredigering, och granska bildutsnitt, längd och ljud tillsammans.
HappyHorse 1.1 lägger till genereringsalternativet 480p och namngivna förbättringar av visuella detaljer, rörelse och konsekvens mellan klipp. Dessa senare påståenden om generering är ingen garanti för den fasta versionen av profilen 1.0. Användbar förberedelse för 1.0 följer det valda läget och dess faktiska källmaterial. Granska identitet, kontakt, objektgeometri, text och ljud, och gör sedan nästa korrigering konkret. För ett redigerat klipp kontrollerar du också att viktiga originaldetaljer utanför den begärda ändringen fortfarande passar den avsedda scenen.
Ailoot Ultra · Video POST /v1/videos alibaba/happyhorse-1.0
alibaba/happyhorse-1.0Start
Alibaba HappyHorse 1.0 skapar korta videor med ljud från text, en startbild eller upp till nio referensbilder. Genereringslägena ger MP4-klipp på 3–15 sekunder med 24 bilder per sekund i 720p eller 1080p. En separat namngiven profil för videoredigering i 1.0 bearbetar inskickat material med valfria visuella referenser och egna begränsningar.
- Godkända indata
- Text · Bilder
- Resultat
- Video
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Video POST /v1/videos
- Indatatyper
text,image- Utdatatyper
video- Utdataformat
- ursprungliga MP4-byte; ingen normalisering/omkodning
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser alibaba/happyhorse-1.0 | Standard— |
Fältprompt | Typstring | KravObligatoriskt | Värden & gränser | Standard— |
Fältduration | Typinteger | KravObligatoriskt | Värden & gränser 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Minimum: 1 Maximum: 600 | Standard— |
Fältresolution | Typstring | KravValfritt | Värden & gränser 720p, 1080p | Standard— |
Fältaspect_ratio | Typstring | KravValfritt | Värden & gränser 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21 | Standard— |
Fältgenerate_audio | Typboolean | KravValfritt | Värden & gränser false | Standard— |
Fältframe_images | Typarray | KravValfritt | Värden & gränser Minsta antal objekt: 1 Maximalt antal objekt: 1 Indatainnehåll: Array med bildruteobjekt. Varje objekt har type=image_url, image_url som innehåller url samt frame_type. Använd en HTTPS URL till en bild och sätt frame_type till first_frame. Varje bildruteroll förekommer högst en gång. Exakta nycklar: type, image_url, frame_type Villkor: Dessa nycklar beskriver varje bildruteobjekt; image_url innehåller endast url. Utelämna frame_images för en begäran med enbart text. | Standard— |
Fältinput_references | Typarray | KravValfritt | Värden & gränser | Standard— |
Fältsize | Typstring | KravValfritt | Värden & gränser 1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520 Mönster: ^[1-9][0-9]*x[1-9][0-9]*$ | Standard— |
Fältseed | Typinteger | KravValfritt | Värden & gränser Minimum: −9 223 372 036 854 775 808 Maximum: 9 223 372 036 854 775 807 | Standard— |
Fältcallback_url | Typstring | KravValfritt | Värden & gränser Mönster: ^https:// | Standard— |
Fältsession_id | Typstring | KravValfritt | Värden & gränser | Standard— |
Fälttrace | Typobject | KravValfritt | Värden & gränser | Standard— |
Fältuser | Typstring | KravValfritt | Värden & gränser | Standard— |
Kombinationer av indatamaterial
Text till video · En skriven prompt. · Krävs: model, prompt, duration
Ange prompt som text och längd i hela sekunder. Välj en upplösning som stöds; lägg till ett bildförhållande eller använd en angiven storlek.
model: Typ: string · alibaba/happyhorse-1.0
prompt: Typ: string · Maximalt antal UTF-8-byte: 10 000 · Minst ett tecken som inte är blanksteg krävs: Ja
Bild till video · En skriven prompt och en bild för den första bildrutan. · Krävs: model, prompt, duration, frame_images
frame_images är en array. Varje bildruteobjekt har type, image_url och frame_type; image_url innehåller url. Sätt type till image_url. Använd first_frame. Varje bildruteroll förekommer högst en gång. Ange en offentlig HTTPS URL till en bild för varje bildruta. Välj en upplösning som stöds; lägg till ett bildförhållande eller använd en angiven storlek.
Exakta nycklar: type, image_url, frame_type
model: Typ: string · alibaba/happyhorse-1.0
prompt: Typ: string · Maximalt antal UTF-8-byte: 10 000 · Minst ett tecken som inte är blanksteg krävs: Ja
Reference to video · En skriven prompt och bildreferenser som stöds. · Krävs: model, prompt, duration, input_references
input_references är en array med objekt. Sätt type till image_url och använd motsvarande fält som innehåller url. Använd offentliga HTTPS-länkar. Utelämna frame_images för att välja referensläge. Välj en upplösning som stöds; lägg till ett bildförhållande eller använd en angiven storlek.
model: Typ: string · alibaba/happyhorse-1.0
prompt: Typ: string · Maximalt antal UTF-8-byte: 10 000 · Minst ett tecken som inte är blanksteg krävs: Ja
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, prompt, duration |
Parametermaterial_types | Avtaltext, image |
Parameteradditional_properties | Avtalfalse |
Parameteroptional_controls | Avtalresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user |
Livscykel: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
Priser
Så beräknas slutavgiften
De visade priserna används för att uppskatta kostnaden före genereringen. Den slutliga debiteringen beräknas utifrån den kostnad som registrerats för den ursprungliga genereringen. Uppmätt längd på resultatet och uppskattade mängder utgör inte den slutliga debiterbara mängden.
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Ej angivet När snabbt läge är valt
- Flex-läge
- Ej angivet När läget flex är valt
- Högsta resonemangsnivå
- Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)
Uppskattade priser för jämförelse
Priser efter konfiguration
Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.
| Konfiguration | Prislista | Prognostiserad mängd | Debiteringsenhet | Debiteringsvillkor | Avgift |
|---|---|---|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Prognostiserad mängd— | Debiteringsenhet— | Debiteringsvillkor— | Avgift Indata · Indatatoken · Uppskattning endast för jämförelse — / 1K token Utdata · Utdatatoken · Uppskattning endast för jämförelse — / 1K token Indata · Cacheläsning · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache · Uppskattning endast för jämförelse — / 1K token Indata · Skrivning till cache, 1 tim · Uppskattning endast för jämförelse — / 1K token |
| KonfigurationVideopris | Prislista— | Prognostiserad mängd— | Debiteringsenhetper videosekund | Debiteringsvillkorresolution: 1080p | Avgift Utdata · Videopris · Uppskattning endast för jämförelse $0.3388 per videosekund |
| KonfigurationVideopris | Prislista— | Prognostiserad mängd— | Debiteringsenhetper videosekund | Debiteringsvillkorresolution: 720p | Avgift Utdata · Videopris · Uppskattning endast för jämförelse $0.1976 per videosekund |
| KonfigurationUppskattad genereringskostnad | Prislista— | Prognostiserad mängduppskattning för en generering | Debiteringsenhet— | Debiteringsvillkor— | Avgift Utdata · Uppskattad genereringskostnad · Uppskattning endast för jämförelse $0.5928 uppskattning före generering Denna uppskattning är varken en extra avgift eller ett fast pris för den slutförda genereringen. |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Detaljer om referenstariffen
Referensprislistor på modellnivå ändrar inte metodval, prisuppgifter eller avgifter. Aktiva avgifter använder priserna för den valda Ailoot-metoden.
Prisreferenser för videokonfigurationer
Priser efter konfiguration
Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.
| Konfiguration | Debiteringsvillkor | Avgift |
|---|---|---|
| KonfigurationVideopris | Debiteringsvillkorresolution: 720p | Avgift Utdata · Videopris $0.1976 per videosekund Publicerad prisreferens för den visade konfigurationen. Den slutliga debiteringen följer den konfiguration som faktiskt debiterades. |
| KonfigurationVideopris | Debiteringsvillkorresolution: 1080p | Avgift Utdata · Videopris $0.3388 per videosekund Publicerad prisreferens för den visade konfigurationen. Den slutliga debiteringen följer den konfiguration som faktiskt debiterades. |
Exempelbegäranden
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":3,"model":"alibaba/happyhorse-1.0","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
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
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.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
Ta emot och spara resultat
Ailoot Ultra · Video
signerade innehållslänkar som du äger
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Kontrollera jobbstatus
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
Andra innehållsläsningar
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
Behåll alla färdiga resultat
Spara varje färdig video eller returnerad fil; hämta varje faktiskt returnerad resurs-URL.
Behåll varje faktiskt resultat som du äger och dess returnerade, uppmätta metadata.
Om det ursprungliga svaret behöver kontrolleras
503 result_pending_check + ursprungligt id + X-Should-Retry:false; upprepa aldrig originalet
Svarsfält
| Fält | Typ | Betydelse |
|---|---|---|
Fältindex | Typinteger | BetydelseNollbaserad position för denna video i utdatalistan. |
Fältcontent_url | Typstring | BetydelseSignerad HTTPS URL för hämtning av denna färdiga video. |
Fältsha256 | Typstring | null | BetydelseSHA-256-kontrollsumma för den ursprungliga videons byte; null om den inte är tillgänglig. |
Fältsize_bytes | Typinteger | null | BetydelseStorleken på den ursprungliga videofilen i byte; null om den inte är tillgänglig. |
Fältduration_ms | Typinteger | null | BetydelseUppmätt videolängd i millisekunder; null om den inte är tillgänglig. |
Fältwidth | Typinteger | null | BetydelseVideobredd i pixlar; null om den inte är tillgänglig. |
Fältheight | Typinteger | null | BetydelseVideohöjd i pixlar; null om den inte är tillgänglig. |
Fältvideo_codec | Typstring | null | BetydelseIdentifierare för videokodek; null om ingen har registrerats. |
Fälthas_audio | Typboolean | null | BetydelseOm videon innehåller ett ljudspår; null om detta inte har mätts. |
Fältaudio_codec | Typstring | null | BetydelseIdentifierare för ljudkodek; null när ingen identifierare har registrerats. |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar404 · not_found_error | VillkorVideoåtkomst är inte tillgänglig eller detta video-ID hittades inte. | Nästa stegKontrollera videoåtkomst. För en befintlig video använder du dess ursprungliga offentliga ID och samma API-nyckel. |
Svar401 · authentication_error | VillkorAPI-nyckeln motsvarar inte det autentiserade kontot. | Nästa stegKontrollera din API-nyckel och kontoåtkomst innan du skickar in. |
Svar400 · invalid_request_error | VillkorBegäran kunde inte läsas eller hämtningsindexet är ogiltigt. | Nästa stegKorrigera begäranskroppen. Vid hämtning väljer du ett utdataindex som returnerats av den ursprungliga uppgiften. |
Svar422 · price_unavailable | VillkorDen valda videokonfigurationen kan inte prissättas. | Nästa stegVälj en videokonfiguration som stöds och fyll i dess obligatoriska alternativ innan du skickar en korrigerad begäran. |
Svar422 · invalid_request_error | VillkorVideoindata eller den ursprungliga fortsättningsuppgiften är ogiltig. | Nästa stegAnvänd giltiga HTTPS-indata. För fortsättning använder du det färdiga originalets offentliga video-ID med samma API-nyckel. |
Svar402 · billing_error | VillkorDet tillgängliga saldot eller gränserna medger ingen reservation. | Nästa stegKontrollera ditt tillgängliga saldo och dina gränser innan du skickar en ny begäran. |
Svar503 · server_error | VillkorVideoverifiering, lagring eller tjänsteåtkomst är tillfälligt otillgänglig. | Nästa stegVänta tills tjänsten är tillgänglig. Om du redan har ett video-ID kontrollerar du den ursprungliga uppgiften i stället för att skapa en ny generering. |
Svar503 · result_pending_check | VillkorDet ursprungliga videoresultatet och debiteringen behöver kontrolleras. | Nästa stegBehåll det returnerade video-ID:t och kontrollera den uppgiften. Skicka ingen ersättande genereringsbegäran medan den kontrolleras. |
Svar503 · owned_result_unavailable | VillkorHämtningen av den befintliga videon är tillfälligt otillgänglig. | Nästa stegKontrollera samma videouppgift senare och hämta dess befintliga resultat. En ny generering skapar en separat operation. |
Svar409 · video_not_ready | VillkorVideoinnehållet har inte publicerats. | Nästa stegKontrollera den ursprungliga uppgiftens status. Hämta när den rapporterar completed; om den rapporterar failed följer du dess meddelande om debiteringskontroll. |
Alias
Modellalias
Ailoot Ultra alibaba/happyhorse-1.0
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
FAQ · Alibaba: HappyHorse 1.0
- Vilka indata och resultat finns?
POST /v1/videos·alibaba/happyhorse-1.0:text,image→video- Vilka fält använder begäran?
POST /v1/videos·alibaba/happyhorse-1.0:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- Vilka gränser gäller?
POST /v1/videos·alibaba/happyhorse-1.0:duration.minimum:1;duration.maximum:600;frame_images.max_items:1;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807