| """ |
| 06 · Instruction Image Editor (REAL AI — needs a Hugging Face token) · one model node |
| =========================================================================================== |
| |
| Upload an image, type an edit instruction ("make it a snowy winter scene", "turn |
| the car red", "add sunglasses"), and get the edited photo back. The whole app is |
| a single `model` operator calling `Qwen/Qwen-Image-Edit` on |
| Hugging Face Inference Providers — no client code, no API wiring. |
| |
| Graph: |
| [Image] ─┐ |
| ├─▶ (model) Qwen/Qwen-Image-Edit (image_to_image) ─▶ 🖼️ Edited image |
| [Edit instruction] ─┘ |
| |
| Why a plain `model` node works here: the `image_to_image` endpoint schema is |
| exactly {image, prompt} → image, so the canvas keeps the ports as authored. |
| |
| SETUP: |
| export HF_TOKEN=hf_xxxxx # or: hf auth login (Windows: setx HF_TOKEN ...) |
| python apps/06_image_editor/app.py |
| On the hosted Space, click "Sign in with Hugging Face" first so the edit runs |
| under your own token. |
| """ |
|
|
| import os |
|
|
| import gradio as gr |
|
|
| WORKFLOW = os.path.join(os.path.dirname(os.path.abspath(__file__)), "workflow.json") |
| demo = gr.Workflow(WORKFLOW) |
|
|
| if __name__ == "__main__": |
| from huggingface_hub import get_token |
| if not get_token() and not os.environ.get("HF_TOKEN"): |
| print("\n ⚠ No Hugging Face token found — the edit will fail until you set\n" |
| " HF_TOKEN (or `hf auth login`), or sign in inside the app.\n") |
| demo.launch() |
|
|