Naja Zeit habe ich momentan leider weniger. Aber ich kann da vielleicht ein wenig Hilfestellung geben. Die API-Dokumentation ist zum Glück sehr sparsam:
https://deepai.org/machine-learning-model/text2img
Der API-Call lautet:
Code: Alles auswählen
curl \
-F 'text=YOUR_TEXT_URL' \
-H 'api-key:quickstart-QUdJIGlzIGNvbWluZy4uLi4K' \
https://api.deepai.org/api/<style-string>
Zeile 1 mit dem -F sind Parameter, die in den POST-Block einer HTTP-Anfrage mitgegeben werden. Zeile 2 mit dem -H ist eine zusätzliche Header-Zeile, die mit an den Server gesendet wird. Zeile 3 ist dann die Ziel URL für den API Call.
Bezogen auf die HTTP-Request Prozedur von PureBasic bedeutet das, das im ersten Parameter #PB_HTTP_Post (kann aber auch Get sein. Je nach Umsetzung. Allerdings nutzt cURL meines Wissens nach automatisch POST, wenn man ein Formular mitsendet) gesetzt werden sollte, im zweiten kommt die URL
https://api.deepai.org/api/<style-string> hinein (<style-string> muss natürlich durch den String des jeweiligen Styles ausgetauscht werden!), Parameter 3 ist dann ein String, der die Optionen enthält. Wichtig hierbei ist anzumerken, das du den Text aus dem Formular grundsätzlich durch die URLEncoder-Prozedur schicken musst. 4. Parameter kannst du #PB_HTTP_NoRedirect verwenden. API's leiten selten auf eine andere URL weiter. Und 5. Parameter, da übergibst du eine Map mit dem Element api-key und dem Key als Wert.
Als Rückgabe erhältst du ein JSON-Dokument, in dem die URL zu den Bild enthalten ist:
Code: Alles auswählen
{
"id": "1c5317c6-1889-4740-bdd7-1f9350e8a423",
"output_url": "https://api.deepai.org/job-view-file/1c5317c6-1889-4740-bdd7-1f9350e8a423/outputs/output.jpg"
}
Damit kannst das Bild dann entweder mit einem weiteren Request herunterladen oder über das Webgadget direkt anzeigen. Dafür reicht sogar das Standard-Webgadget von PB aus.
Hier einmal der Beispiel-Code, mit dem ich die Rückgabe erhalten habe:
Code: Alles auswählen
EnableExplicit
OpenConsole()
NewMap Headers.s()
Headers("api-key") = "quickstart-QUdJIGlzIGNvbWluZy4uLi4K"
Define Prompt.s = "text=" + URLEncoder("A little red Cat looks to a Sunrise")
Define Result.i
Prompt = "text=" + URLEncoder("A little red Cat looks to a Sunrise") + "&grid_size=1"
Result = HTTPRequest(#PB_HTTP_Post, "https://api.deepai.org/api/cute-creature-generator", Prompt, #PB_HTTP_NoRedirect, Headers())
If Result
PrintN("StatusCode: " + HTTPInfo(Result, #PB_HTTP_StatusCode))
PrintN("Response: " + HTTPInfo(Result, #PB_HTTP_Response))
FinishHTTP(Result)
Else
Print("Anfrage geschaitert")
EndIf
Input()
Das sollte als Grundlage für eine weitere Arbeit erst einmal reichen
