YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

import gradio as gr from huggingface_hub import InferenceClient import requests from PIL import Image import io

Claves de API: Necesitas un token de Hugging Face (gratis, obténlo en hf.co/settings/tokens)

HF_TOKEN = "tu_token_aqui" # Reemplaza con tu token real

Clientes para los modelos

image_client = InferenceClient(model="stabilityai/stable-diffusion-2-1", token=HF_TOKEN) video_client = InferenceClient(model="stabilityai/stable-video-diffusion", token=HF_TOKEN)

def generate_image(prompt, image_input=None): """Genera una imagen a partir de texto o refina una imagen subida.""" if image_input: # Si hay imagen, usa como base (aunque SD es text-based, podemos simular refinamiento) # Nota: Para refinamiento real, usa un modelo como img2img, pero aquí simplificamos. prompt = f"Refine this image: {prompt}" # Convertir imagen a bytes y enviar (HF Inference API soporta img2img en algunos modelos) image_bytes = io.BytesIO() image_input.save(image_bytes, format='PNG') image_bytes = image_bytes.getvalue() result = image_client.image_to_image(image=image_bytes, prompt=prompt) else: result = image_client.text_to_image(prompt) return result

def generate_video(image_input, prompt=""): """Genera un video a partir de una imagen.""" if image_input is None: return "Error: Sube una imagen para generar el video."

# Convertir imagen a bytes
image_bytes = io.BytesIO()
image_input.save(image_bytes, format='PNG')
image_bytes = image_bytes.getvalue()

# Generar video (image-to-video)
result = video_client.image_to_video(image=image_bytes, prompt=prompt if prompt else "Animate this image naturally")

# El resultado es un video; Gradio lo maneja automáticamente
return result

Interfaz Gradio

with gr.Blocks(title="Generador de IA: Fotos y Videos Sin Restricciones") as demo: gr.Markdown("# Generador de Fotos y Videos con IA\nBasado en Hugging Face. Sin restricciones de contenido.")

with gr.Tab("Generar Foto (Text-to-Image)"):
    prompt_input = gr.Textbox(label="Describe la imagen (prompt)", placeholder="Ej: Un gato volando en el espacio")
    image_upload = gr.Image(label="Opcional: Sube una imagen para refinar", type="pil")
    generate_btn = gr.Button("Generar Imagen")
    output_image = gr.Image(label="Imagen Generada")
    generate_btn.click(generate_image, inputs=[prompt_input, image_upload], outputs=output_image)

with gr.Tab("Generar Video (Image-to-Video)"):
    video_image_upload = gr.Image(label="Sube una imagen base", type="pil")
    video_prompt = gr.Textbox(label="Opcional: Prompt para el video", placeholder="Ej: Haz que se mueva como si estuviera vivo")
    generate_video_btn = gr.Button("Generar Video")
    output_video = gr.Video(label="Video Generado")
    generate_video_btn.click(generate_video, inputs=[video_image_upload, video_prompt], outputs=output_video)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support