Spaces:
Sleeping
Sleeping
| import os | |
| import base64 | |
| from typing import Dict, Any | |
| from openai import OpenAI | |
| def generate_image( | |
| prompt: str, | |
| width: int = 1024, | |
| height: int = 1024, | |
| num_inference_steps: int = 28, | |
| negative_prompt: str = "", | |
| seed: int = -1 | |
| ) -> Dict[str, Any]: | |
| """ | |
| Generate an image using Nebius API. | |
| Args: | |
| prompt: Text prompt for image generation | |
| output_path: Path where to save the generated image | |
| width: Image width | |
| height: Image height | |
| num_inference_steps: Number of inference steps | |
| negative_prompt: Negative prompt for generation | |
| seed: Random seed (-1 for random) | |
| Returns: | |
| Dictionary with result information | |
| """ | |
| try: | |
| client = OpenAI( | |
| base_url="https://api.studio.nebius.com/v1/", | |
| api_key=os.environ.get("NEBIUS_API_KEY") | |
| ) | |
| response = client.images.generate( | |
| model="black-forest-labs/flux-dev", | |
| response_format="b64_json", | |
| extra_body={ | |
| "response_extension": "png", | |
| "width": width, | |
| "height": height, | |
| "num_inference_steps": num_inference_steps, | |
| "negative_prompt": negative_prompt, | |
| "seed": seed | |
| }, | |
| prompt=prompt | |
| ) | |
| image_data = base64.b64decode(response.data[0].b64_json) | |
| return { | |
| "success": True, | |
| "message": "Image generated successfully", | |
| "prompt": prompt, | |
| "b64": image_data, | |
| "generation_params": { | |
| "width": width, | |
| "height": height, | |
| "num_inference_steps": num_inference_steps, | |
| "negative_prompt": negative_prompt, | |
| "seed": seed | |
| } | |
| } | |
| except Exception as e: | |
| if "NEBIUS_API_KEY" in str(e) or not os.environ.get("NEBIUS_API_KEY"): | |
| return { | |
| "success": False, | |
| "error": "NEBIUS_API_KEY environment variable not set", | |
| "output_path": None, | |
| 'user': os.environ.get("USER") | |
| } | |
| return { | |
| "success": False, | |
| "error": f"Failed to generate image: {str(e)}", | |
| "output_path": None | |
| } |