This commit is contained in:
8
fal-upscale/.skillshare-meta.json
Normal file
8
fal-upscale/.skillshare-meta.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"source": "github.com/fal-ai-community/skills/tree/main/skills/claude.ai/fal-upscale",
|
||||
"type": "github-subdir",
|
||||
"installed_at": "2026-01-30T02:27:22.240860959Z",
|
||||
"repo_url": "https://github.com/fal-ai-community/skills.git",
|
||||
"subdir": "skills/claude.ai/fal-upscale",
|
||||
"version": "69efe6e"
|
||||
}
|
||||
164
fal-upscale/SKILL.md
Normal file
164
fal-upscale/SKILL.md
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
name: fal-upscale
|
||||
description: Upscale and enhance image resolution using AI. Use when the user requests "Upscale image", "Enhance resolution", "Make image bigger", "Increase quality", or similar upscaling tasks.
|
||||
metadata:
|
||||
author: fal-ai
|
||||
version: "1.0.0"
|
||||
---
|
||||
|
||||
# fal.ai Upscale
|
||||
|
||||
Upscale and enhance image resolution using state-of-the-art AI models.
|
||||
|
||||
## How It Works
|
||||
|
||||
1. User provides image URL and optional scale factor
|
||||
2. Script selects appropriate upscaling model
|
||||
3. Sends request to fal.ai API
|
||||
4. Returns upscaled image URL
|
||||
|
||||
## Image Upscale Models
|
||||
|
||||
| Model | Scale | Best For |
|
||||
|-------|-------|----------|
|
||||
| `fal-ai/aura-sr` | 4x | General upscaling, fast |
|
||||
| `fal-ai/clarity-upscaler` | 2-4x | Detail preservation |
|
||||
| `fal-ai/creative-upscaler` | 2-4x | Creative enhancement |
|
||||
|
||||
## Video Upscale Models
|
||||
|
||||
| Model | Notes |
|
||||
|-------|-------|
|
||||
| `fal-ai/video-upscaler` | General purpose |
|
||||
| `fal-ai/topaz/upscale/video` | **Premium quality** |
|
||||
| `fal-ai/bria/video/increase-resolution` | Fast |
|
||||
| `fal-ai/flashvsr` | Real-time |
|
||||
| `fal-ai/seedvr/upscale/video` | High fidelity |
|
||||
| `fal-ai/bytedance-upscaler` | Good balance |
|
||||
| `fal-ai/simalabs/sima-video-upscaler-lite` | Lightweight |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
bash /mnt/skills/user/fal-upscale/scripts/upscale.sh [options]
|
||||
```
|
||||
|
||||
**Arguments:**
|
||||
- `--image-url` - URL of image to upscale (required)
|
||||
- `--model` - Model ID (defaults to `fal-ai/aura-sr`)
|
||||
- `--scale` - Upscale factor: 2 or 4 (default: 4)
|
||||
|
||||
**Examples:**
|
||||
|
||||
```bash
|
||||
# Image upscale with AuraSR (4x, fast)
|
||||
bash /mnt/skills/user/fal-upscale/scripts/upscale.sh \
|
||||
--image-url "https://example.com/image.jpg"
|
||||
|
||||
# Image upscale with Clarity (detail preservation)
|
||||
bash /mnt/skills/user/fal-upscale/scripts/upscale.sh \
|
||||
--image-url "https://example.com/image.jpg" \
|
||||
--model "fal-ai/clarity-upscaler" \
|
||||
--scale 2
|
||||
|
||||
# Video upscale (general purpose)
|
||||
bash /mnt/skills/user/fal-upscale/scripts/upscale.sh \
|
||||
--video-url "https://example.com/video.mp4" \
|
||||
--model "fal-ai/video-upscaler"
|
||||
|
||||
# Video upscale (premium quality)
|
||||
bash /mnt/skills/user/fal-upscale/scripts/upscale.sh \
|
||||
--video-url "https://example.com/video.mp4" \
|
||||
--model "fal-ai/topaz/upscale/video"
|
||||
```
|
||||
|
||||
## MCP Tool Alternative
|
||||
|
||||
If MCP tools are available, prefer using:
|
||||
```
|
||||
mcp__fal-ai__generate({
|
||||
modelId: "fal-ai/aura-sr",
|
||||
input: {
|
||||
image_url: "https://example.com/image.jpg"
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
## Output
|
||||
|
||||
```
|
||||
Upscaling with fal-ai/aura-sr...
|
||||
Upscale complete!
|
||||
|
||||
Image URL: https://v3.fal.media/files/abc123/upscaled.png
|
||||
Original: 512x512
|
||||
Upscaled: 2048x2048
|
||||
```
|
||||
|
||||
JSON output:
|
||||
```json
|
||||
{
|
||||
"image": {
|
||||
"url": "https://v3.fal.media/files/abc123/upscaled.png",
|
||||
"width": 2048,
|
||||
"height": 2048
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Present Results to User
|
||||
|
||||
```
|
||||
Here's your upscaled image:
|
||||
|
||||

|
||||
|
||||
• 512×512 → 2048×2048 (4x)
|
||||
```
|
||||
|
||||
## Model Selection Guide
|
||||
|
||||
**AuraSR** (`fal-ai/aura-sr`)
|
||||
- Best for: Quick upscaling, general images
|
||||
- Speed: ~2 seconds
|
||||
- Fixed 4x scale
|
||||
|
||||
**Clarity Upscaler** (`fal-ai/clarity-upscaler`)
|
||||
- Best for: Preserving fine details
|
||||
- Speed: ~5 seconds
|
||||
- Configurable scale (2x or 4x)
|
||||
|
||||
**Creative Upscaler** (`fal-ai/creative-upscaler`)
|
||||
- Best for: Adding artistic detail
|
||||
- Speed: ~10 seconds
|
||||
- Enhances while upscaling
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### API Key Error
|
||||
```
|
||||
Error: FAL_KEY environment variable not set
|
||||
|
||||
To fix:
|
||||
1. Get your API key from https://fal.ai/dashboard/keys
|
||||
2. Set: export FAL_KEY=your_key_here
|
||||
```
|
||||
|
||||
### Image URL Error
|
||||
```
|
||||
Error: Could not fetch image from URL
|
||||
|
||||
Make sure:
|
||||
1. The image URL is publicly accessible
|
||||
2. The URL points directly to an image file
|
||||
3. The image format is supported (JPEG, PNG, WebP)
|
||||
```
|
||||
|
||||
### Network Error
|
||||
```
|
||||
Network error. To fix on claude.ai:
|
||||
|
||||
1. Go to https://claude.ai/settings/capabilities
|
||||
2. Add *.fal.ai to the allowed domains
|
||||
3. Try again
|
||||
```
|
||||
141
fal-upscale/scripts/upscale.sh
Executable file
141
fal-upscale/scripts/upscale.sh
Executable file
@@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
|
||||
# fal.ai Upscale Script
|
||||
# Usage: ./upscale.sh --image-url URL [--model MODEL] [--scale SCALE]
|
||||
# Returns: JSON with upscaled image URL
|
||||
|
||||
set -e
|
||||
|
||||
FAL_API_ENDPOINT="https://fal.run"
|
||||
|
||||
# Default values
|
||||
MODEL="fal-ai/aura-sr"
|
||||
IMAGE_URL=""
|
||||
SCALE=4
|
||||
|
||||
# Check for --add-fal-key first
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" = "--add-fal-key" ]; then
|
||||
shift
|
||||
KEY_VALUE=""
|
||||
if [[ -n "$1" && ! "$1" =~ ^-- ]]; then
|
||||
KEY_VALUE="$1"
|
||||
fi
|
||||
if [ -z "$KEY_VALUE" ]; then
|
||||
echo "Enter your fal.ai API key:" >&2
|
||||
read -r KEY_VALUE
|
||||
fi
|
||||
if [ -n "$KEY_VALUE" ]; then
|
||||
grep -v "^FAL_KEY=" .env > .env.tmp 2>/dev/null || true
|
||||
mv .env.tmp .env 2>/dev/null || true
|
||||
echo "FAL_KEY=$KEY_VALUE" >> .env
|
||||
echo "FAL_KEY saved to .env" >&2
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Load .env if exists
|
||||
if [ -f ".env" ]; then
|
||||
source .env 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Parse arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--image-url)
|
||||
IMAGE_URL="$2"
|
||||
shift 2
|
||||
;;
|
||||
--model)
|
||||
MODEL="$2"
|
||||
shift 2
|
||||
;;
|
||||
--scale)
|
||||
SCALE="$2"
|
||||
shift 2
|
||||
;;
|
||||
--help|-h)
|
||||
echo "fal.ai Upscale Script" >&2
|
||||
echo "" >&2
|
||||
echo "Usage:" >&2
|
||||
echo " ./upscale.sh --image-url URL [options]" >&2
|
||||
echo "" >&2
|
||||
echo "Options:" >&2
|
||||
echo " --image-url Image URL to upscale (required)" >&2
|
||||
echo " --model Model ID (default: fal-ai/aura-sr)" >&2
|
||||
echo " --scale Scale factor (default: 4)" >&2
|
||||
echo " --add-fal-key Setup FAL_KEY in .env" >&2
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Validate required inputs
|
||||
if [ -z "$FAL_KEY" ]; then
|
||||
echo "Error: FAL_KEY not set" >&2
|
||||
echo "" >&2
|
||||
echo "Run: ./upscale.sh --add-fal-key" >&2
|
||||
echo "Or: export FAL_KEY=your_key_here" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$IMAGE_URL" ]; then
|
||||
echo "Error: --image-url is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create temp directory
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
trap 'rm -rf "$TEMP_DIR"' EXIT
|
||||
|
||||
echo "Upscaling with $MODEL..." >&2
|
||||
|
||||
# Build payload based on model
|
||||
if [[ "$MODEL" == *"aura-sr"* ]]; then
|
||||
# AuraSR has fixed 4x scale
|
||||
PAYLOAD=$(cat <<EOF
|
||||
{
|
||||
"image_url": "$IMAGE_URL"
|
||||
}
|
||||
EOF
|
||||
)
|
||||
else
|
||||
# Other models support scale parameter
|
||||
PAYLOAD=$(cat <<EOF
|
||||
{
|
||||
"image_url": "$IMAGE_URL",
|
||||
"scale": $SCALE
|
||||
}
|
||||
EOF
|
||||
)
|
||||
fi
|
||||
|
||||
# Make API request
|
||||
RESPONSE=$(curl -s -X POST "$FAL_API_ENDPOINT/$MODEL" \
|
||||
-H "Authorization: Key $FAL_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$PAYLOAD")
|
||||
|
||||
# Check for errors
|
||||
if echo "$RESPONSE" | grep -q '"error"'; then
|
||||
ERROR_MSG=$(echo "$RESPONSE" | grep -o '"message":"[^"]*"' | head -1 | cut -d'"' -f4)
|
||||
if [ -z "$ERROR_MSG" ]; then
|
||||
ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
|
||||
fi
|
||||
echo "Error: $ERROR_MSG" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Upscale complete!" >&2
|
||||
echo "" >&2
|
||||
|
||||
# Extract and display result
|
||||
OUTPUT_URL=$(echo "$RESPONSE" | grep -o '"url":"[^"]*"' | head -1 | cut -d'"' -f4)
|
||||
echo "Image URL: $OUTPUT_URL" >&2
|
||||
|
||||
# Output JSON for programmatic use
|
||||
echo "$RESPONSE"
|
||||
Reference in New Issue
Block a user