A Rust SDK for ChainGPT's AI NFT generator with Load's load0 data storage.
chaingpt_nft = {git = "https://github.com/loadnetwork/chaingpt-nft.git", branch = "main"}
use chaingpt_nft::core::api::Client;
let API_KEY: &str = "...";
let client = Client::new(API_KEY).build().unwrap();
use chaingpt_nft::core::api::Client;
use chaingpt_nft::core::nft_generate_image::{Enhance, GenerateImageRequest, Model};
async fn create_image() {
let client = Client::new("").build().unwrap();
// create a request
let request = GenerateImageRequest::new(
"a day in antarctica's life",
Model::Velogen,
Some(1),
512,
512,
Some(Enhance::X1),
None, // set to None for generate_image
None // generate_image
)
.build()
.unwrap();
let res = client.generate_image(request, true).await.unwrap(); // true is set to store the result on Load Network
println!("{:?}", res)
}
// returns
pub struct GenerateImageResponse {
pub data: Vec<u8>,
pub load0_hash: String,
}
// example of NFT media stored on load network: https://load0.network/download/0xe93b7b6192b7745b6f93596d8e1d18bbb8e6ffce8b5862f96ccd539a4ce8ae97
use chaingpt_nft::core::api::Client;
use chaingpt_nft::core::nft_generate_image::{Enhance, GenerateImageRequest, Model};
async fn create_image() {
let client = Client::new("").build().unwrap();
// create a request
let request = GenerateImageRequest::new(
"a day in antarctica's life",
Model::Velogen,
Some(1),
512,
512,
Some(Enhance::X1),
Some("0x_your_address"), // wallet address
Some(56) // chainId
)
.build()
.unwrap();
let res = client.generate_nft_queue(request).await.unwrap();
println!("{:?}", res)
}
// returns
pub struct GenerateImageQueueResponse {
pub collection_id: String
}
// ...init client...
let collection_id: &str = "";
let res = client.mint_nft(collection_id, "name", "description", "$TICKER").await.unwrap();
// ...init client...
let prompt: &str = "your prompt here";
let enhanced_prompted = client.enhance_prompt(prompt).await.unwrap();
// ...init client...
let collection_id: &str = "";
let progress = client.get_nft_progress(collection_id).await.unwrap();
// ...init client...
let chains: Vec<Chain> = client.get_chains(true).await.unwrap(); // true to include testnets
// returns a Vec of Chain
pub struct Chain {
pub chain_id: i32,
pub chain_name: String,
pub network: String,
pub network_type: String,
}
// ...init client...
let abi = client.get_nft_abi().await.unwrap();
This project is licensed under the MIT License