⚠️ Important: Authentication Required
All client operations now require authentication with the HF-Inferoxy server. This is part of the Role-Based Access Control (RBAC) system that provides secure access to the proxy services.
Getting Your API Key
-
Default Admin User: The system creates a default admin user on first run. Check your server logs or the
users.json
file for the default admin credentials. - Create a User Account: Use the admin account to create a regular user account:
curl -X POST "http://localhost:8000/admin/users" \ -H "Authorization: Bearer ADMIN_API_KEY" \ -H "Content-Type: application/json" \ -d '{"username": "youruser", "email": "user@example.com", "full_name": "Your Name", "role": "user"}'
- Use the Generated API Key: The response will include an API key that you’ll use in all client operations.
For detailed RBAC setup and user management, see RBAC_README.md.
Image To Image
Basic Usage
import os
from huggingface_hub import InferenceClient
client = InferenceClient(
provider="replicate",
api_key=os.environ["HF_TOKEN"],
)
with open("cat.png", "rb") as image_file:
input_image = image_file.read()
# output is a PIL.Image object
image = client.image_to_image(
input_image,
prompt="Turn the cat into a tiger.",
model="black-forest-labs/FLUX.1-Kontext-dev",
)
cURL Example
curl -X POST "https://router.huggingface.co/replicate/v1/models/black-forest-labs/flux-kontext-dev/predictions" \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"input\": {
\"prompt\": \"Turn the cat into a tiger.\",
\"input_image\": \"data:image/jpeg;base64,$(base64 -w 0 cat.jpg)\"
}
}"
With HF-Inferoxy Token Management
from huggingface_hub import InferenceClient
from huggingface_hub.errors import HfHubHTTPError
from hf_token_utils import get_proxy_token, report_token_status
def replicate_image_to_image(image_path: str, prompt: str, model: str = "black-forest-labs/FLUX.1-Kontext-dev", proxy_api_key: str = None):
# Get token from proxy server (requires authentication)
token, token_id = get_proxy_token(api_key=proxy_api_key)
# Create client with managed token
client = InferenceClient(
provider="replicate",
api_key=token
)
try:
# Read the input image
with open(image_path, "rb") as image_file:
input_image = image_file.read()
# Perform image to image transformation
# output is a PIL.Image object
image = client.image_to_image(
input_image,
prompt=prompt,
model=model,
)
# Report success
report_token_status(token_id, "success", api_key=proxy_api_key)
return image
except HfHubHTTPError as e:
# Report the error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
except Exception as e:
# Report generic error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
# Usage
if __name__ == "__main__":
# You need to get your API key from the admin or create a user account
# See RBAC_README.md for details on user management
proxy_api_key = "your_proxy_api_key_here" # Get this from admin
result_image = replicate_image_to_image("cat.png", "Turn the cat into a tiger.", proxy_api_key=proxy_api_key)
result_image.save("tiger.png")
Text To Image
Basic Usage
import os
from huggingface_hub import InferenceClient
client = InferenceClient(
provider="replicate",
api_key=os.environ["HF_TOKEN"],
)
# output is a PIL.Image object
image = client.text_to_image(
"Astronaut riding a horse",
model="Qwen/Qwen-Image",
)
cURL Example
curl -X POST "https://router.huggingface.co/replicate/v1/models/qwen/qwen-image/predictions" \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Astronaut riding a horse"
}
}'
With HF-Inferoxy Token Management
from huggingface_hub import InferenceClient
from huggingface_hub.errors import HfHubHTTPError
from hf_token_utils import get_proxy_token, report_token_status
def replicate_text_to_image(prompt: str, model: str = "Qwen/Qwen-Image", proxy_api_key: str = None):
# Get token from proxy server (requires authentication)
token, token_id = get_proxy_token(api_key=proxy_api_key)
# Create client with managed token
client = InferenceClient(
provider="replicate",
api_key=token
)
try:
# Generate image from text
# output is a PIL.Image object
image = client.text_to_image(
prompt,
model=model,
)
# Report success
report_token_status(token_id, "success", api_key=proxy_api_key)
return image
except HfHubHTTPError as e:
# Report the error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
except Exception as e:
# Report generic error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
# Usage
if __name__ == "__main__":
# You need to get your API key from the admin or create a user account
# See RBAC_README.md for details on user management
proxy_api_key = "your_proxy_api_key_here" # Get this from admin
result_image = replicate_text_to_image("Astronaut riding a horse", proxy_api_key=proxy_api_key)
result_image.save("astronaut_horse.png")
Text To Video
Basic Usage
import os
from huggingface_hub import InferenceClient
client = InferenceClient(
provider="replicate",
api_key=os.environ["HF_TOKEN"],
)
video = client.text_to_video(
"A young man walking on the street",
model="Wan-AI/Wan2.2-TI2V-5B",
)
With HF-Inferoxy Token Management
from huggingface_hub import InferenceClient
from huggingface_hub.errors import HfHubHTTPError
from hf_token_utils import get_proxy_token, report_token_status
def replicate_text_to_video(prompt: str, model: str = "Wan-AI/Wan2.2-TI2V-5B", proxy_api_key: str = None):
# Get token from proxy server (requires authentication)
token, token_id = get_proxy_token(api_key=proxy_api_key)
# Create client with managed token
client = InferenceClient(
provider="replicate",
api_key=token
)
try:
# Generate video from text
video = client.text_to_video(
prompt,
model=model,
)
# Report success
report_token_status(token_id, "success", api_key=proxy_api_key)
return video
except HfHubHTTPError as e:
# Report the error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
except Exception as e:
# Report generic error
report_token_status(token_id, "error", str(e), api_key=proxy_api_key)
raise
# Usage
if __name__ == "__main__":
# You need to get your API key from the admin or create a user account
# See RBAC_README.md for details on user management
proxy_api_key = "your_proxy_api_key_here" # Get this from admin
result_video = replicate_text_to_video("A young man walking on the street", proxy_api_key=proxy_api_key)
# Save or process the video as needed
print(f"Generated video: {result_video}")