mallit

Recraft: Recraft V4

Markdown · JSON

Recraft: Recraft V4

Recraft V4 generoi 1K-rasterikuvia keskittyen sommitteluun, värisuhteisiin ja yksityiskohtaiseen luovaan ohjeeseen. Se kattaa kuvituksen, fotorealistiset kohtaukset ja graafiset suunnittelukonseptit sekä valinnaiset tyylisyötteet ja erillisen kuvasta kuvaksi -työnkulun.

Tietoa mallista

Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.

Recraft V4 on Recraftin V4-sukupolven tavallinen rasterimalli. Valmistaja painottaa suunnitteluharkintaa: tasapainoista sommittelua, yhtenäisiä värisuhteita ja visuaalista tarkoitusta tukevaa yksityiskohtaisuutta. Se voi työskennellä tyylitellyn kuvituksen, valokuvakohtausten ja graafisten suunnittelukonseptien parissa. Käytä sitä, kun ohje vaatii esteettiset valinnat ja kehotetarkkuuden yhdistävää kuvaa, olipa tavoitteena tunnelman tutkiminen lyhyestä ohjeesta tai tarkoituksellisen asettelun tarkka määrittely.

Nimenomainen mallikoodi on recraftv4. Valmistajan viite luettelee 1K-rasterituloksen häviöttömänä WebP:nä tai PNG:nä. Neliökuva on 1024 × 1024 pikseliä, 16:9 on 1344 × 768 ja 2:3 on 832 × 1280; muut tuetut suhteet käyttävät omia mittojaan. V4 Pro on erillinen 2K-rasteriversio, kun taas V4 Vector ja Pro Vector palauttavat muokattavan SVG:n. Valitse toimitukseen tarkka V4-muunnelma näiden erilaisten tulosominaisuuksien yhdistämisen sijaan.

Valmistajan opas erottaa lyhyet tulkinnalliset kehotteet rakenteisesta luovasta ohjeesta. Lyhyt ilmaus voi jättää tilaa muodon, tunnelman ja rajauksen tutkimiselle. Rakenteinen ohje voi nimetä kohteen, ympäristön, asennon, materiaalin, toissijaiset elementit, valaistuksen ja visuaalisen hierarkian. Kuvaile kerronnalliseen kuvitukseen pienen sillan ylittävä pyöräilijä, rohkeat pelkistetyt muodot, lämpimät hillityt värit ja selkeä liike vasemmalta oikealle. Nämä sisältö- ja sommitteluvalinnat ovat toteutuskelpoisempia kuin pitkä irrallisten tyyliadjektiivien luettelo.

V4:n alue sisältää kuvituksen, tilallisen kuvaston ja fotorealistiset kuvat. Opas suosittelee kuvitukseen piirustuslogiikan ja 3D:n näköiseen kuvaan materiaalin, valon, kameran ja syvyyden kuvaamista. Jälkimmäinen pysyy rasterikuvana eikä muokattavana meshinä. Kerro juliste- tai pakkauskonseptissa, mitkä sanat ovat ensisijaisia, mihin ne kuuluvat ja miten kuva ja typografia toimivat yhdessä. Valmistaja korostaa luettavaa lyhyttä ja keskipitkää tekstiä; tarkasta palautetusta kuvasta todellinen sanamuoto ja järjestely ennen käyttöä.

Generointi tukee enintään 10 000 merkin kehotteita, satunnaissiementä, yhdestä kuuteen tulosta, toivottuja värejä ja haluttua taustaväriä. Valinnaiset yhteensopivat omat tyylit ja viitekuvat voivat ohjata visuaalista käsittelyä joustavalla tai tarkalla vastaavuudella. Valitse selkeä viite tai samaan visuaaliseen maailmaan kuuluva joukko ja anna sitten kehotteen kuvailla uusi kohde ja kohtaus. Viitteen ja tuloksen värivastaavuutta ei taata, joten määrittele tarvittava paletti selvästi ja vertaa tulosta siihen. Käytä viitetyyligenerointiin yhdestä kymmeneen PNG-, JPG- tai WebP-kuvaa, yhteensä enintään 64 MB ja kukin alle 20 MB. Jokaisen viitteen lyhyemmän sivun on oltava vähintään 256 pikseliä, pidemmän enintään 4 096 pikseliä ja tarkkuuden enintään 16 megapikseliä. Käytä joko näitä viitteitä tai yhteensopivaa tallennettua tyyliä, älä molempia.

Dokumentoitu kuvasta kuvaksi -operaatio yhdistää olemassa olevan kuvan ja kehotteen; voimakkuus 0–1 määrittelee uuden tuloksen etäisyyden lähteestä. Se ei hyväksy V4-tyyliasetuksia kyseisessä operaatiossa. Nykyinen generointiviite sulkee pois myös kuratoidut tyylinimet sekä negative_prompt-, text_layout-, artistic_level- ja no_text-asetukset. Valmistele myönteinen kuvaus halutusta tuloksesta ja arvioi kuvaa kohdesommitelmassa. Tavallinen V4 tarjoaa kohdennetun rasterimuotoisen suunnittelutulkinnan tietyllä versiolla, muodolla ja tuloskoolla. Anna kuvasta kuvaksi -työhön PNG, JPG, WebP tai SVG alle 20 MB:n koossa, enintään 16 megapikseliä ja molemmat sivut 256–4 096 pikseliä.

Ailoot Ultra · Kuvat POST /v1/images/generations recraft/recraft-v4

recraft/recraft-v4

Recraft /recraft/recraft-v4

Aloitus

Recraft V4 generoi 1K-rasterikuvia keskittyen sommitteluun, värisuhteisiin ja yksityiskohtaiseen luovaan ohjeeseen. Se kattaa kuvituksen, fotorealistiset kohtaukset ja graafiset suunnittelukonseptit sekä valinnaiset tyylisyötteet ja erillisen kuvasta kuvaksi -työnkulun.

Hyväksytyt syötteet
Teksti · Kuvat
Tulokset
Kuvat

Saatavilla Ailootissa · syötteet & menetelmät

Ailoot Ultra · Kuvat POST /v1/images/generations
Syötetyypit
text, image
Tulostyypit
image
Tulosteen muoto
Kuvatiedosto
KenttäTyyppiVaatimusArvot & rajatOletus
KenttämodelTyyppistringVaatimusPakollinenArvot & rajat
recraft/recraft-v4
Oletus—
KenttäpromptTyyppistringVaatimusPakollinenArvot & rajat
Vähimmäispituus: 1
Oletus—
KenttänTyyppiintegerVaatimusValinnainenArvot & rajat
Vähimmäismäärä: 1
Enimmäismäärä: 6
Oletus—
Kenttäaspect_ratioTyyppistringVaatimusValinnainenArvot & rajat
1:1, 4:3, 3:4, 16:9, 9:16, auto
Oletus—
Kenttäinput_referencesTyyppiarrayVaatimusValinnainenArvot & rajat
Kohteiden vähimmäismäärä: 0
Kohteiden enimmäismäärä: 1
Oletus—
Syöteaineistojen yhdistelmät

Tekstistä kuvaksi · Pakollinen: prompt

reference_guided_image · Pakollinen: prompt, actual image reference

Menetelmän parametrit ja elinkaari
ParametriSopimus
Parametricontent_typeSopimusapplication/json
ParametrirequiredSopimusmodel, prompt
Parametrimaterial_typesSopimustext, image
Parametrioptional_controlsSopimusn, aspect_ratio, input_references
ParametrinSopimus{"minimum":1,"maximum":6}
Parametrireference_imagesSopimus{"minimum":0,"maximum":1,"source":"asiakkaan todellisuudessa toimittama aineisto"}
Parametriprovider_specific_optionsSopimusVain tallennettu täsmällinen rajapintapisteen sallittujen arvojen luettelo: style/controls/text_layout; rakenteita ei arvata.

Menetelmien aliakset: /v1/images

Elinkaari: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · todellisuudessa palautettu task_id tai mediakirjaston tietue

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Pelkkää kehotetta käyttävä esimerkki säilyttää virallisen ImageGenerationRequest-rakenteen.

Säilytä jokainen palautettu kuva ja koko vastaus; tulosmäärä on todellinen määrä, ei pyydetty n.

Hinnoittelu

Lopullisen veloituksen laskenta

Näytettyjen hintojen avulla arvioidaan kustannukset ennen generointia. Lopullinen veloitus lasketaan alkuperäiselle generoinnille kirjatun kustannuksen perusteella. Lopullisena laskutettavana määränä ei käytetä tulosteen mitattua kestoa eikä ennustettuja määriä.

Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.

Nopea tila
Ei määritetty Kun nopea tila on valittu
Flex-tila
Ei määritetty Kun flex-tila on valittu
Päättelyn enimmäisteho
Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä

Arvioidut vertailuhinnat

Hinnat asetusten mukaan

Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.

AsetuksetHinnastoEnnustettu määräLaskutusyksikköVeloitus
AsetuksetTokenien perushinnatHinnastoPerushintaEnnustettu määrä—Laskutusyksikkö—Veloitus
Syöte · Syötetokenit · Arvio vain vertailua varten — / 1K tokenia
Tuloste · Tulostokenit · Arvio vain vertailua varten — / 1K tokenia
Syöte · Välimuistin luku · Arvio vain vertailua varten — / 1K tokenia
Syöte · Välimuistiin kirjoitus · Arvio vain vertailua varten — / 1K tokenia
Syöte · Välimuistiin kirjoitus, 1 tunti · Arvio vain vertailua varten — / 1K tokenia
AsetuksetUltraHinnasto—Ennustettu määrä—Laskutusyksikkötuloskuvaa kohdenVeloitus
Tuloste · kuvatuloste · Arvio vain vertailua varten $0.08 tuloskuvaa kohden
AsetuksetArvioitu luontikustannusHinnasto—Ennustettu määräyhden generoinnin arvioLaskutusyksikkö—Veloitus
Tuloste · Arvioidut generointikustannukset · Arvio vain vertailua varten $0.08 arvio ennen generointia

Tämä arvio ei ole lisämaksu eikä valmistuneen generoinnin kiinteä hinta.

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →

Viitehinnaston tiedot

Mallitason viitehinnastot eivät muuta menetelmän valintaa, hinta-arvioita tai veloituksia. Käytössä olevat veloitukset käyttävät valitun Ailoot-menetelmän hintoja.

Kuvahinnoittelun kokoonpanot

Hinnat asetusten mukaan

AsetuksetLaskutusehdotVeloitus
AsetuksetTuloskuvaLaskutusehdotHinnoitteluvaihtoehtoa ei ole määritelty.Veloitus
Tuloste · Kuvatuloste $0.08 kuvaa kohden

Vastaavat luettelomerkinnät kuvaavat samaa veloitusta; ne eivät lisää toista maksua.

Esimerkkipyynnöt

Ailoot Ultra · Kuvat

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'recraft/recraft-v4', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

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/images/generations \
  -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 base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'recraft/recraft-v4', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "recraft/recraft-v4", "prompt": "a red panda astronaut floating in space, studio lighting"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Vastaanota ja tallenna tulokset

Ailoot Ultra · Kuvat

Lataa jokainen palautettu kuva tai tallenna sen Base64-sisältö

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Säilytä kaikki valmistuneet tulokset

Tallenna jokainen valmistunut kuva; nouda jokainen palautettu URL tai pura sen Base64-sisältö.

Säilytä jokainen data-alkio ja kaikki käyttötiedot; ota hallintaan ja tallenna kaikki todellisuudessa palautetut kuvat. Älä keksi osoitteita tai tunnisteita.

Jos alkuperäinen vastaus on tarkistettava

Jos kuvan generoinnin tai muokkauksen tulos edellyttää tarkistusta, säilytä alkuperäinen operation_id/X-Client-Request-ID ja palautetut tulostiedot. Hae olemassa olevat omistamasi tulokset mediakirjastosta käyttämällä todellisia task_id- tai asset_id-arvoja. Älä lähetä generointi- tai muokkauspyyntöä uudelleen äläkä muodosta tilakyselyn URL-osoitetta operation_id-arvosta.

Vastauksen kentät
KenttäTyyppi
KenttäcreatedTyyppiinteger
Kenttädata[].urlTyyppistring
Kenttädata[].b64_jsonTyyppibase64 string
KenttäusageTyyppiobject
Virheet ja seuraavat vaiheet
VastausEhtoSeuraava vaihe
Vastaus400 · invalid_request_errorEhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvoSeuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä.
Vastausserver_errorEhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistustaSeuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen.

Aliakset

Mallin aliakset

Ailoot Ultra recraft/recraft-v4

Menetelmäpolkujen aliakset

/v1/images

Liittyvät kutsujan ID:t

recraft/recraft-v4

FAQ · Recraft: Recraft V4
Mitä syötteitä ja tuloksia on saatavilla?

POST /v1/images/generations · recraft/recraft-v4: text, image → image

Mitä kenttiä pyyntö käyttää?

POST /v1/images/generations · recraft/recraft-v4: model, prompt, n, aspect_ratio, input_references

Mitä rajoja sovelletaan?

POST /v1/images/generations · recraft/recraft-v4: n.minimum: 1; n.maximum: 6

Lisätietoja

Yhdistä Ailoot Claude Codeen, OpenCodeen, Hermesiin tai omaan sovellukseesi.

Yritys ja sen projektisalkku

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

Osta tokenit alennuksella.

Tilausalennus säännölliseen käyttöön. Kampanjakoodit — jopa 50% tokeniostoista.

Tilaus
Valitse alennushintainen paketti säännöllisiä pyyntöjäsi varten.
Kampanjakoodi jopa 50%
Syötä koodi oston yhteydessä. Hinta lasketaan uudelleen voimassa olevan kampanjan mukaan.
Kulut historiassa
Malli, tokenit ja summa tallennetaan jokaiselle pyynnölle.

Valitse tilaus · Katso mallihinnat

Yhdistä API tuotteeseen, jonka myyt.

SaaS, sovellukset ja botit Ailootin palveluehtojen ja lisenssisopimuksen mukaisesti. Pyydä edelleenmyyntiin jälleenmyyjälisenssi.

Kaupallinen sovellus
Lisää tekstin, kuvien, videoiden ja äänen luonti palvelusi maksullisiin ominaisuuksiin.
Jälleenmyyjälisenssi
Lähetä projektikuvaus ja pääsyn toteutustapa. Pyydä kirjalliset käyttö- ja jälleenmyyntiehdot.
Asiakirjat verkkosivustolla
Palveluehdot, lisenssisopimus ja tietojenkäsittelykäytäntö ovat saatavilla ennen yhdistämistä.

Pyydä jälleenmyyjälisenssi · Palveluehdot ja lisenssisopimus