AI Resource Identifier (AIR)
Uniform Resource Naming system for identifying AI resources across platforms (Civitai, Hugging Face, etc.).
Format
urn:air:{ecosystem}:{type}:{source}:{id}@{version?}:{layer?}.?{format?}
Required: urn, air, ecosystem, type, source, id
Optional: version, layer, format
Examples
urn:air:sd1:model:civitai:2421@43533
urn:air:sdxl:lora:civitai:328553@368189
urn:air:dalle:model:openai:dalle@2
urn:air:model:huggingface:stabilityai/sdxl-vae
Usage
Parse:
var air = AirIdentifier.Parse("urn:air:sdxl:lora:civitai:328553@368189");
Console.WriteLine($"Ecosystem: {air.Ecosystem}");
Console.WriteLine($"Asset Type: {air.AssetType}");
Console.WriteLine($"Source: {air.Source}");
Console.WriteLine($"Model ID: {air.ModelId}");
Console.WriteLine($"Version ID: {air.VersionId}");
Create:
var airIdentifier = new AirIdentifier(
AirEcosystem.StableDiffusionXl,
AirAssetType.Lora,
AirSource.Civitai,
328553,
368189);
Console.WriteLine(airIdentifier.ToString());
Builder:
var builtAir = new AirBuilder()
.WithEcosystem(AirEcosystem.StableDiffusionXl)
.WithAssetType(AirAssetType.Lora)
.WithSource(AirSource.HuggingFace)
.WithModelId(328553)
.WithVersionId(368189)
.Build();
Console.WriteLine(builtAir.ToString());
Validate:
if (AirIdentifier.TryParse("urn:air:sdxl:lora:civitai:328553@368189", out var validAir))
{
Console.WriteLine($"Valid AIR: {validAir}");
}
else
{
Console.WriteLine("Invalid AIR format");
}
Supported Sources
AirSource.CivitaiAirSource.HuggingFaceAirSource.OpenAiAirSource.Leonardo
Enabling AIR on Civitai
- Go to Account Settings
- Find Browsing settings
- Toggle AI Resource Identifier